Commit Graph
30 Commits
Author SHA1 Message Date
fracturehill 993f708dd0 NANCY: Don't adjust rects in The Vampire Diaries
readRect() no longer adds a pixel to the right and bottom for
The Vampire Diaries, since rects in that game are non-inclusive.
2021-04-25 00:04:53 +03:00
fracturehill 90c4f0c4dc NANCY: Move hardcoded data
Moved all hardcoded engine data that changes between games (e.g. number
of items, number of event flags) to a dedicated file and added a function for
accessing it in NancyEngine.
2021-04-24 23:59:03 +03:00
fracturehill 6a07442d53 NANCY: Cheat dialogs fixes
Moved CheatDialog and EventFlagDialog to dialogs.h and removed cheat.h. Fixed a crash on closing the event flags dialog. Fixed the timer data in CheatDialog being incorrectly written to the player time. Removed a couple of incorrectly marked translation strings.
2021-04-08 21:47:15 +03:00
fracturehill 68e54edd50 NANCY: Initial main menu implementation
Implemented the original engine's main menu and added an option to enable it from the custom options dialog. Several buttons in the main menu don't work yet since they require implementing additional game states.
2021-04-08 21:42:54 +03:00
fracturehill 9f35d133ca NANCY: Implement sound options, add options dialog
Hooked the engine into ScummVM's speech/subtitle settings, and added two extra options for player and character speech. Added a custom settings dialog which gets shown both inside the Edit Game window and the in-game Settings.
2021-04-08 21:42:53 +03:00
fracturehill 36883885f0 NANCY: Move ActionRecord::finishExecution() outside header file
Added an actionrecord.cpp file and moved the definition of ActionRecord::finishExecution() inside it.
2021-03-24 17:20:46 +01:00
fracturehill e324adf05f NANCY: Code cleanup
Did some cleanup of the engine, mostly focusing on the NancyEngine class. Reordered several classes' members, removed unused functions, edited comments, and renamed arfactory_v1.cpp to arfactory.cpp.
2021-03-24 17:20:46 +01:00
fracturehill 55fe1a5db4 NANCY: Implement credits and WinGame action record
Implemented the WinGame action record, which allows the player to reach the credits after winning, as well as the Credits state itself. Also made some minor changes to Scene and Nancy to accommodate for the addition.
2021-03-24 17:20:46 +01:00
fracturehill 5f35b8abcb NANCY: Implement help screen and UI buttons
The menu and help buttons on the sides of the frame are now functional, and the help screen is now also accessible. Also replaced the Frame class with a more general FullScreenImage that will be used across different game states.
2021-03-24 17:20:46 +01:00
fracturehill 9626437921 NANCY: Implement cheat dialogs
The original engine has two secret debug/cheat dialogs: one for general data (timers, current scene, inventory), and one for event flags. I decided to implement them as I find them much more useful than just using debug commands, particularly since they contain descriptions of every event flag and inventory item (this data is pulled directly from the executable's embedded resources, albeit in a slightly hacky way). Also, I've decided not to implement the slider puzzle tab present in nancy1 since I have no use for it.
2021-03-24 17:20:46 +01:00
fracturehill 51ba19dc70 NANCY: Secondary movie fixes
Secondary movies now actually reach the kActionTrigger state, and now also supports reverse playback. The PlaySecondaryMovie class was moved to its own header file, the SecondaryVideoDescription struct was moved to commontypes.h, and new methods for disabling mouse input were added to NancyEngine and Scene.
2021-03-24 17:20:46 +01:00
fracturehill d64a309fb3 NANCY: Small code refactor
Renamed and moved a few struct definitions to commontypes.h, added some convenience functions to Scene and removed a couple of unused variables.
2021-03-24 17:20:46 +01:00
fracturehill 197b055881 NANCY: Implement lever puzzle
Implemented the LeverPuzzle action record, which is used in the boiler room in nancy1.
2021-03-24 17:20:46 +01:00
fracturehill 628a4bd2b1 NANCY: Implement password puzzle
Added support for the PasswordPuzzle action record, which is used in the computer in the teacher's lounge in nancy1. To enable typing the password in, also added support for all keyboard down events in the Input class.
2021-03-24 17:20:46 +01:00
fracturehill 1cd406b5af NANCY: Implement slider puzzle
Implemented the SliderPuzzle action record, which is used for the jewel box in the safe in nancy1.
2021-03-24 17:20:46 +01:00
fracturehill d83edfdca3 NANCY: Implement telephone/hint system
Implemented the Telephone and HintSystem action records, which together make up the functionality of nancy1's in-game hint system.
2021-03-24 17:20:46 +01:00
fracturehill c7e1c95803 NANCY: Implement rotating lock puzzle
Implemented the RotatingLockPuzzle action record.
2021-03-24 17:20:46 +01:00
fracturehill 0ff64ca11a NANCY: Implement ordering puzzle
Implemented the OrderingPuzzle action record, which is used for the safe in nancy1.
2021-03-24 17:20:46 +01:00
fracturehill e4890a18fc NANCY: Sound manager improvements
The original engine stores sound information in at least four different types of structs, all of which can now be loaded and played back. Also implemented sound types, which will be configurable from the ScummVM interface, added the correct number of sound channels, and implemented sound fx in a couple of action record types.
2021-03-24 17:20:46 +01:00
fracturehill 3aaf2a9bea NANCY: Major engine rewrite
Rewrote most of the engine using a much more object-oriented approach and using more of ScummVM's common classes. This design deviates quite a lot from the original engine's, but should be more maintainable and extensible in the future.
2021-03-24 17:20:46 +01:00
fracturehill 673bfec209 NANCY: Initial dialogue implementation
Implemented most of the PlayPrimaryVideoChan0 action record, which is used in all dialogue and the intro cutscene. For now the audio and video are out of sync, the scrollbar doesn't work, and the mouse isn't constrained.
2021-03-24 17:20:46 +01:00
fracturehill 9152deeac7 NANCY: Implement map
Implemented the map state, as well as the two main action record types that call it. Also made some minor related changes to the scene and graphics managers.
2021-03-24 17:20:46 +01:00
fracturehill 11f89b5b97 NANCY: Add initial input support
Added an Input class with support for every nancy1 key combo (that I know of). Added code for skipping the Logo state with a left click. Proper mouse handling is still TODO.
2021-03-24 17:20:46 +01:00
fracturehill d97ca12d6c NANCY: Initial commit 2021-03-24 17:20:46 +01:00
Walter van Niftrik 0284d2172f NANCY: WIP 2021-03-24 17:20:46 +01:00
Walter van Niftrik c0fe9e83a0 NANCY: Add IFF parsing 2021-03-24 17:20:46 +01:00
Walter van Niftrik 6381b36643 NANCY: Add support for .his audio files 2021-03-24 17:20:46 +01:00
Walter van Niftrik 3efe6a6f76 NANCY: Add partial .avf video support 2021-03-24 17:20:46 +01:00
Walter van Niftrik fd1f0767f8 NANCY: Add resource decompressor 2021-03-24 17:20:46 +01:00
Strangerke fd11c41a8d NANCY: Add skeleton engine 2021-03-24 17:20:46 +01:00