NANCY: Document engine data structs

Added comments describing the structs inside enginedata.h
This commit is contained in:
Kaloyan Chehlarski 2023-09-13 00:26:36 +03:00
parent 6b719b4b44
commit 6c4621b8ee

View File

@ -33,6 +33,7 @@ struct EngineData {
virtual ~EngineData() {} virtual ~EngineData() {}
}; };
// Boot summary. Contains data for the UI, game clock, starting a new game.
struct BSUM : public EngineData { struct BSUM : public EngineData {
BSUM(Common::SeekableReadStream *chunkStream); BSUM(Common::SeekableReadStream *chunkStream);
@ -69,6 +70,7 @@ struct BSUM : public EngineData {
uint16 fastMovementTimeDelta; uint16 fastMovementTimeDelta;
}; };
// Contains rects defining the in-game viewport
struct VIEW : public EngineData { struct VIEW : public EngineData {
VIEW(Common::SeekableReadStream *chunkStream); VIEW(Common::SeekableReadStream *chunkStream);
@ -76,12 +78,17 @@ struct VIEW : public EngineData {
Common::Rect bounds; Common::Rect bounds;
}; };
// Contains a list of .cal filenames, which are to be loaded at startup.
// .cal files themselves are just collections of image files used in dialogue.
// First introduced in nancy2.
struct PCAL : public EngineData { struct PCAL : public EngineData {
PCAL(Common::SeekableReadStream *chunkStream); PCAL(Common::SeekableReadStream *chunkStream);
Common::Array<Common::String> calNames; Common::Array<Common::String> calNames;
}; };
// Contains definitions for all in-game items, as well as data for the
// inventory box at the bottom right of the game screen.
struct INV : public EngineData { struct INV : public EngineData {
struct ItemDescription { struct ItemDescription {
Common::String name; Common::String name;
@ -117,6 +124,7 @@ struct INV : public EngineData {
Common::Array<ItemDescription> itemDescriptions; Common::Array<ItemDescription> itemDescriptions;
}; };
// Contains data about the textbox at the bottom left of the game screen
struct TBOX : public EngineData { struct TBOX : public EngineData {
TBOX(Common::SeekableReadStream *chunkStream); TBOX(Common::SeekableReadStream *chunkStream);
@ -138,6 +146,7 @@ struct TBOX : public EngineData {
uint16 highlightConversationFontID; uint16 highlightConversationFontID;
}; };
// Contains data about the map state. Only used in TVD and nancy1
struct MAP : public EngineData { struct MAP : public EngineData {
struct Location { struct Location {
Common::String description; Common::String description;
@ -171,6 +180,7 @@ struct MAP : public EngineData {
Common::Point cursorPosition; Common::Point cursorPosition;
}; };
// Contains data for the help screen.
struct HELP : public EngineData { struct HELP : public EngineData {
HELP(Common::SeekableReadStream *chunkStream); HELP(Common::SeekableReadStream *chunkStream);
@ -180,6 +190,7 @@ struct HELP : public EngineData {
Common::Rect buttonHoverSrc; Common::Rect buttonHoverSrc;
}; };
// Contains data for the credits screen.
struct CRED : public EngineData { struct CRED : public EngineData {
CRED(Common::SeekableReadStream *chunkStream); CRED(Common::SeekableReadStream *chunkStream);
@ -191,6 +202,7 @@ struct CRED : public EngineData {
SoundDescription sound; SoundDescription sound;
}; };
// Contains data for the main menu.
struct MENU : public EngineData { struct MENU : public EngineData {
MENU(Common::SeekableReadStream *chunkStream); MENU(Common::SeekableReadStream *chunkStream);
@ -201,6 +213,7 @@ struct MENU : public EngineData {
Common::Array<Common::Rect> _buttonDisabledSrcs; Common::Array<Common::Rect> _buttonDisabledSrcs;
}; };
// Contains data for the Setup screen (a.k.a settings menu)
struct SET : public EngineData { struct SET : public EngineData {
SET(Common::SeekableReadStream *chunkStream); SET(Common::SeekableReadStream *chunkStream);
@ -219,6 +232,7 @@ struct SET : public EngineData {
Common::Array<SoundDescription> _sounds; Common::Array<SoundDescription> _sounds;
}; };
// Contains data for the Save/Load screen
struct LOAD : public EngineData { struct LOAD : public EngineData {
LOAD(Common::SeekableReadStream *chunkStream); LOAD(Common::SeekableReadStream *chunkStream);
@ -258,6 +272,8 @@ struct LOAD : public EngineData {
// Common::Rect _gameSavedBounds // Common::Rect _gameSavedBounds
}; };
// Contains data for the prompt that appears when exiting the game
// without saving first. Introduced in nancy3.
struct SDLG : public EngineData { struct SDLG : public EngineData {
SDLG(Common::SeekableReadStream *chunkStream); SDLG(Common::SeekableReadStream *chunkStream);
@ -276,18 +292,22 @@ struct SDLG : public EngineData {
Common::Rect _cancelDownSrc; Common::Rect _cancelDownSrc;
}; };
// Contains data for the hint system. Only used in nancy1.
struct HINT : public EngineData { struct HINT : public EngineData {
HINT(Common::SeekableReadStream *chunkStream); HINT(Common::SeekableReadStream *chunkStream);
Common::Array<uint16> numHints; Common::Array<uint16> numHints;
}; };
// Contains data for the slider puzzle. First used in nancy1
struct SPUZ : public EngineData { struct SPUZ : public EngineData {
SPUZ(Common::SeekableReadStream *chunkStream); SPUZ(Common::SeekableReadStream *chunkStream);
Common::Array<Common::Array<int16>> tileOrder; Common::Array<Common::Array<int16>> tileOrder;
}; };
// Contains data for the clock UI that appears at the bottom left of the screen (top left in TVD)
// Not used in nancy1 but still present in the data.
struct CLOK : public EngineData { struct CLOK : public EngineData {
CLOK(Common::SeekableReadStream *chunkStream); CLOK(Common::SeekableReadStream *chunkStream);
@ -311,6 +331,8 @@ struct CLOK : public EngineData {
Common::Array<Common::Rect> nancy5CountdownSrcs; Common::Array<Common::Rect> nancy5CountdownSrcs;
}; };
// Contains data for special effects (fades between scenes/fades to black).
// Introduced in nancy2.
struct SPEC : public EngineData { struct SPEC : public EngineData {
SPEC(Common::SeekableReadStream *chunkStream); SPEC(Common::SeekableReadStream *chunkStream);
@ -319,6 +341,8 @@ struct SPEC : public EngineData {
byte crossDissolveNumFrames; byte crossDissolveNumFrames;
}; };
// Contains data for the raycast puzzle in nancy3. Specifically, this is the
// data for the different "themes" that appear in the 3D space.
struct RCLB : public EngineData { struct RCLB : public EngineData {
struct Theme { struct Theme {
Common::String themeName; Common::String themeName;
@ -349,6 +373,8 @@ struct RCLB : public EngineData {
Common::Array<Theme> themes; Common::Array<Theme> themes;
}; };
// Contains data about the raycast puzzle in nancy3. Specifically, this is the
// data for the debug map and the names of the textures to be used when rendering.
struct RCPR : public EngineData { struct RCPR : public EngineData {
RCPR(Common::SeekableReadStream *chunkStream); RCPR(Common::SeekableReadStream *chunkStream);
@ -372,6 +398,7 @@ struct RCPR : public EngineData {
Common::Array<Common::String> floorNames; Common::Array<Common::String> floorNames;
}; };
// Contains the name and dimensions of an image.
struct ImageChunk : public EngineData { struct ImageChunk : public EngineData {
ImageChunk(Common::SeekableReadStream *chunkStream); ImageChunk(Common::SeekableReadStream *chunkStream);
@ -380,6 +407,10 @@ struct ImageChunk : public EngineData {
uint16 height; uint16 height;
}; };
// Contains text data. Every string is tagged with a key via which
// it can be accessed. Used to store dialogue and journal (autotext) strings.
// NOT found inside BOOT; these are stored in their own cifs, the names of which
// can be found inside BSUM. Introduced in nancy6.
struct CVTX : public EngineData { struct CVTX : public EngineData {
CVTX(Common::SeekableReadStream *chunkStream); CVTX(Common::SeekableReadStream *chunkStream);