Commit Graph
83 Commits
Author SHA1 Message Date
Kaloyan Chehlarski b1a861b50d NANCY: JANITORIAL: Fix trailing whitespace/tabs 2024-02-19 20:46:17 +01:00
Kaloyan Chehlarski f89967c979 NANCY: Implement NewPhone
Added support for the new Telephone AR type, which
adds a cellphone display with a phone number directory,
a dial button, and conditional phone numbers.
2024-02-18 22:31:13 +01:00
Kaloyan Chehlarski 5695018cd3 NANCY: Implement InteractiveVideo
Implemented an action record type that adds hotspots
on top of a SecondaryMovie.
2024-02-11 00:41:30 +01:00
Kaloyan Chehlarski 4558690ec9 NANCY: Implement GoInvViewScene record type
This record goes to an item's associated scene, and
(optionally) adds it to the inventory if it's not already
present in it.
2024-02-10 13:27:11 +01:00
Kaloyan Chehlarski 5683e5f6e6 NANCY: Implement even terser Conversation records
Implemented the ConversationSoundTerse and
ConversationCelTerse action records, which are even
shorter variants of the corresponding Conversation types.
Made changes to the base ConversationSound to reduce
code duplication.
2024-02-10 13:27:11 +01:00
Kaloyan Chehlarski 80d351969d NANCY: Implement TextScroll and AutotextEntryList
Added support for the record types that replaced the bare
Autotext, and combined it with a PeepholePuzzle. This
necessitates some ugly, diamond-shaped multiple
inheritance, but the original engine's solution of replacing
the current record with a different type one at runtime
is even uglier. Also, made changes to Autotext to correctly
support LIFO ordering.
2024-02-08 23:12:14 +01: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 8745a64dfc NANCY: Implement ValueTest
Implemented the record type responsible for actually
checking the values inside TableData.
2024-02-07 23:15:23 +01:00
Kaloyan Chehlarski a8dcc387a4 NANCY: Implement SetValueCombo
Implemented the action record type that computes a
sum of values, each one with an attached percentage
weight. The values themselves can be either supplied
verbatim, or extracted from the TableData struct.
This was implemented in nancy8, but only started getting
used in nancy9.
2024-02-07 23:15:23 +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 af2ff22907 NANCY: Split data-related records to separate file
Created a new header file for action records that mainly
serve to manipulate data. This is done in preparation for the
addition of SetValue, SetValueCombo, and ValueTest.
2024-02-07 23:15:23 +01:00
Kaloyan Chehlarski 66a7fdb58e NANCY: Implement SpigotPuzzle
Implemented the AR responsible for nancy7's spigot puzzle.
2024-02-06 20:32:27 +01:00
Kaloyan Chehlarski 140a8a209b NANCY: Get rid of PlaySecondaryVideo parameter
Was completely functionless, and multiple channels don't
seem to be used after TVD anyway.
2024-02-04 16:29:55 +01:00
Kaloyan Chehlarski f456169631 NANCY: Implement PlaySoundEventFlagTerse
Used in nancy8; same as PlaySoundTerse, but also has
an event flag.
2024-02-03 22:52:09 +01:00
Kaloyan Chehlarski 0df1785eb3 NANCY: Implement HamRadioPuzzle
Implemented the action record type responsible for nancy6's
ham radio puzzle sequence.
2023-12-30 00:16:14 +02:00
Kaloyan Chehlarski 6b8d3cd2b5 NANCY: Implement BulPuzzle
Implemented the puzzle based on the Mayan game Bul
found in nancy6.
2023-12-04 14:02:24 +02:00
Kaloyan Chehlarski e23b573e7a NANCY: Implement BBallPuzzle
Implemented the action record type responsible for
nancy6's basketball minigame.
2023-10-23 22:32:39 +03:00
Kaloyan Chehlarski cf188ca8fb NANCY: Implement CubePuzzle
Implemented the record type responsible for nancy6's
cube assembly minigame (not to be confused with the
pottery assembly one, which uses a different AR type)
2023-10-17 18:31:08 +03:00
Kaloyan Chehlarski 489b9c696d NANCY: Fix Coverity issues 2023-10-17 18:31:08 +03:00
Kaloyan Chehlarski 3551db675d NANCY: Implement AssemblyPuzzle
Implemented the record type responsible for nancy6's
broken pottery assembly minigame.
2023-10-17 18:31:08 +03:00
Kaloyan Chehlarski 151561e6ee NANCY: Implement KeypadTersePuzzle
Implemented the short variant of KeypadPuzzle introduced
in nancy7. Also added the new flag that marks whether
we need to check the order the buttons were pressed in.
2023-10-07 14:45:22 +03:00
Kaloyan Chehlarski a3f1695f2d NANCY: Implement terse Overlay variants
Added the short variants of Overlay, OverlayStaticTerse,
and OverlayAnimTerse, which were introduced in nancy7.
2023-10-07 14:45:21 +03:00
Kaloyan Chehlarski 8b7c7f9b17 NANCY: Implement SetVolume action record 2023-10-07 14:45:21 +03:00
Kaloyan Chehlarski d9e0bc954a NANCY: Move inventory-related records
Moved all ActionRecords related to the inventory to their
own source file.
2023-10-03 17:58:28 +03:00
Kaloyan Chehlarski 57c9f5f203 NANCY: Implement EnableDisableInventory
Implemented an action record type responsible for making
a specific item temporarily unusable.
2023-10-03 17:58:28 +03:00
Kaloyan Chehlarski b0bd3f1c3f NANCY: Implement viewable items in nancy7
Added support for the new type of item introduced in nancy7,
which, instead of getting picked up, transports the player to
a new scene with a close-up view of the item.
2023-10-03 17:58:28 +03:00
Kaloyan Chehlarski dbdb30e5cc NANCY: Implement terse PlaySound variants
Added support for PlaySoundTerse and
PlayRandomSoundTerse, as introduced in nancy7. Also
implemented the new functionality for reading closed
captioning text from the Autotext chunk.
2023-10-03 17:58:28 +03:00
Kaloyan Chehlarski 634b1eb260 NANCY: Rename sound ARs 2023-10-03 17:58:28 +03:00
Kaloyan Chehlarski 8b473098aa NANCY: Implement HotSceneChangeTerse
Added support for a short variant of Hot1FrSceneChange,
which combines all the directional scene changes into one.
Due to the weird way the data is combined, significant
changes to the way ActionRecords are created had to be made.
2023-10-03 17:58:28 +03:00
Kaloyan Chehlarski 824ba46990 NANCY: Implement terse EventFlags variants 2023-10-03 17:58:27 +03:00
Kaloyan Chehlarski 7aae7ec661 NANCY: Implement GotoMenu
Added support for an action record that boots the player
to the main menu.
2023-10-02 12:19:31 +03:00
Kaloyan Chehlarski 62ea6f4e21 NANCY: Implement MouseLightPuzzle
Implemented the ActionRecord type responsible for the
nancy6 sequence where the player holds a weak light
(which follows the cursor) in the dark and must use it
to illuminate the path ahead.
2023-10-01 13:20:34 +03:00
Kaloyan Chehlarski 3db0bcbbde NANCY: Implement TwoDialPuzzle
Added support for the TwoDialPuzzle action record, which
is an incredibly simple puzzle with two dials that need to
be rotated in the correct position.
2023-09-30 17:56:27 +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 eaf0c56182 NANCY: Implement PeepholePuzzle
Implemented the action record that, despite what its name
suggests, is actually responsible mostly for scrolling text
(e.g. Nancy's journal, the instructions to the Bul minigame).
Introduced in nancy6.
2023-09-23 21:59:40 +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 693411b199 NANCY: Implement PlayRandomSound record
Implemented a record type responsible for playing a
random sound from a provided list. Introduced in nancy6.
2023-09-23 21:59:40 +03:00
Kaloyan Chehlarski 29b8052958 NANCY: Correctly read PlayDigiSound in nancy6
Added support for the extra flag to trigger a scene change
immediately, as introduced in nancy6. Also removed the
"AndDie" from the class name since it was renamed all
the way back in nancy3.
2023-09-20 16:16:22 +03:00
Kaloyan Chehlarski b0c84deb2b NANCY: Do not exit when reaching unknown AR type
Changed the ActionRecord loading code so that reaching
an unknown/changed record type just shows a warning
and continues, instead of throwing an error and quitting.
2023-09-19 17:38:25 +03:00
Kaloyan Chehlarski ba5696786f NANCY: Implement InventorySoundOverride
Implemented the action record type responsible for
overriding the default "I can't" sound for a specific item.
Also implemented closed captioning for the same use
case, since it had previously been overlooked.
2023-09-16 17:04:37 +03:00
Kaloyan Chehlarski 11f6f9ec51 NANCY: Implement nancy4 SafeDialPuzzle
Added support for nancy4's sextant puzzle, which uses
a modified SafeDialPuzzle action record. Also renamed the
record, since it was erroneously named SafeLockPuzzle
instead of its actual name.
2023-09-16 13:14:52 +03:00
Kaloyan Chehlarski 555de022cb NANCY: Support nancy6 cursors 2023-09-16 13:14:52 +03:00
Kaloyan Chehlarski a862dcef29 NANCY: Add support for terse Conversation records
Added support for ConversationCelT and
ConversationSoundT, which are identical to their sister types,
except instead of containing their caption texts inside the
record data, they contain a key pointing inside the Convo
CVTX struct. First introduced in nancy6.
2023-09-16 13:14:52 +03:00
Kaloyan Chehlarski 2ee8b2cea6 NANCY: Implement MazeChasePuzzle
Added a new action record class implementing a specific
puzzle in nancy5 where a player piece is being chased by
several enemy pieces on a grid.
2023-09-12 19:43:30 +03:00
Kaloyan Chehlarski aecaf3591f NANCY: Reorganize ActionRecords
Moved all puzzle action records to a separate folder. Split
recordtypes.h into three different files, depending on record
function: navigation, sound, and miscellaneous.
2023-09-12 19:43:30 +03:00
Kaloyan Chehlarski 2d1dd3b731 NANCY: Implement TileMovePuzzle
Implemented the record type responsible for "unblock me"
type puzzles. Due to similarities in data and behavior, it
has been incorporated into the CollisionPuzzle class.
2023-09-12 19:43:30 +03:00
Kaloyan Chehlarski 99783b5408 NANCY: Implement KeypadPuzzle
Implemented the KeypadPuzzle action record type, which
is yet another variation on OrderingPuzzle, this time with
more buttons and the addition of a button for manually
checking whether the sequence is correct.
2023-09-12 19:43:29 +03:00
Kaloyan Chehlarski b2a3194aad NANCY: Implement CollisionPuzzle
Implemented the record type responsible for the
grid puzzle where pieces slide in four directions until they
hit a wall or another piece.
2023-09-03 18:37:48 +03:00
Kaloyan Chehlarski e9675a0e39 NANCY: Implement OrderItemsPuzzle
Implemented the OrderItemsPuzzle, which is an upgraded
version of OrderingPuzzle allowing for an interaction with
an inventory item.
2023-09-03 18:37:48 +03:00
Kaloyan Chehlarski 13f95f1781 NANCY: Implement SafeLockPuzzle
Implemented the puzzle type responsible for safe locks
with a single dial. First used in nancy3.
2023-09-02 17:24:39 +03:00