Commit Graph
67 Commits
Author SHA1 Message Date
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
Kaloyan Chehlarski a62f7cd7d7 NANCY: Implement TangramPuzzle
Implemented the puzzle type responsible for nancy3's tile
fitting puzzle.
2023-09-02 17:24:39 +03:00
Kaloyan Chehlarski b174006c5b NANCY: Implement TurningPuzzle
Implemented the puzzle type that handles the sun/moon
and staircase spindle puzzles in nancy3.
2023-08-31 12:20:40 +03:00
Kaloyan Chehlarski 3850da2c92 NANCY: Implement TextboxClear action record 2023-08-25 20:32:06 +03:00
Kaloyan Chehlarski dac3378729 NANCY: Implement HotMultiframeMultisceneCursorTypeSceneChange
Implemented action record type which selects a scene based
on the item the player is currently holding. Yes, that's the
actual name the original devs used.
2023-08-25 20:32:06 +03:00
Kaloyan Chehlarski 31f90a3015 NANCY: Implement EventFlagsCursorHS record type 2023-08-25 20:32:06 +03:00
Kaloyan Chehlarski 6303a5b0b7 NANCY: Implement PlayDigiSoundCC record type
Added support for PlayDigiSoundCC, which plays a sound
file and displays text in the textbox. First introduced in nancy5.
2023-08-25 14:19:47 +03:00
Kaloyan Chehlarski bc12fbf01c NANCY: Implement PianoPuzzle
Implemented nancy3's PianoPuzzle action record. Since the
record is extremely similar to OrderingPuzzle, the latter's
implementation was extended to cover both record types.
2023-08-24 12:47:50 +03:00
Kaloyan Chehlarski ac0dd80fb0 NANCY: Add support for AR types using arrow cursors
Added support for the variants of Hot1FrSceneChange and
HotMultiframeSceneChange introduced in nancy4 that have
special hover cursors indicating direction of movement.
2023-08-08 12:13:05 +03:00
Eugene Sandulenko f94464ecb1 NANCY: JANITORIAL: Remove trailing spaces 2023-08-07 10:47:50 +02:00
Kaloyan Chehlarski a7e063e71f NANCY: Partially implement RaycastPuzzle
Added code to support nancy3's raycasted maze minigame.
The minigame (mostly) works but is not yet completable,
and needs further optimization work.
2023-08-06 19:29:10 +03:00
Kaloyan Chehlarski 893545f9bf NANCY: Implement alarm clock
Implemented the SetPlayerClock action record, which
is responsible for the alarm clock introduced in nancy3.
2023-07-14 15:47:34 +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 fb0039ea8f NANCY: Implement StopSound action record
Also implemented StopAndUnloadSound, but since our
sound manager always unloads on stop they both do
the same. Hopefully this won't cause any issues.
2023-05-12 12:42:31 +03:00
Kaloyan Chehlarski 932e93d714 NANCY: Implement BombPuzzle 2023-05-07 11:46:32 +03:00
Kaloyan Chehlarski fe58d58e27 NANCY: Implement OverrideLockPuzzle
Implemented the OverrideLockPuzzle, which appears at the
very end of nancy2 and has the player remember a
sequence of button presses.
2023-04-19 15:02:32 +03:00
Kaloyan Chehlarski 01de81a7d7 NANCY: Implement RiddlePuzzle
Implemented the RiddlePuzzle action record, where
the player has to type in the answers to several riddles.
2023-04-19 15:02:29 +03:00