19 lines
1.1 KiB
Markdown
19 lines
1.1 KiB
Markdown
# RPG Layer
|
|
|
|
The RPG layer lives in `src/dusk/rpg/` and is the game-logic tier above the engine. It is initialized and ticked by `engine.c` via `rpgInit` / `rpgUpdate` / `rpgDispose`. The `rpg_t` struct is currently a stub; all meaningful state lives in the subsystems below.
|
|
|
|
## Contents
|
|
|
|
- [world.md](world.md) — scene manager, overworld map, chunks, tiles, coordinate system, camera
|
|
- [entity.md](entity.md) — entity pool, types, direction, animation, interaction, player, NPC
|
|
- [cutscene.md](cutscene.md) — cutscene system, item types, mode control, textbox
|
|
- [story.md](story.md) — story flags, items, inventory, backpack, save system
|
|
|
|
## Scene system
|
|
|
|
The scene manager (`src/dusk/scene/`) sits above the RPG layer and owns the single active scene. Scenes are identified by `scenetype_t` and registered in `SCENE_TYPES[]` (`scene/scenetype.c`) as `scenecallbacks_t` (init / update / render / dispose).
|
|
|
|
`scenedata_t` is a union so all scene structs share memory. `sceneSet(type)` defers the transition — the old scene disposes before the new one inits.
|
|
|
|
Currently the only scene is `SCENE_TYPE_OVERWORLD` → `src/dusk/scene/overworld/sceneoverworld.c`.
|