yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
sheet_role.h
Go to the documentation of this file.
1#ifndef YAZE_APP_GFX_TYPES_SHEET_ROLE_H_
2#define YAZE_APP_GFX_TYPES_SHEET_ROLE_H_
3
4#include <cstdint>
5
6namespace yaze {
7namespace gfx {
8
9// Enumerates the role a graphics sheet plays in the rendering pipeline.
10//
11// Roles are slot-based, not sheet-id-based: the same physical sheet can take
12// different roles depending on which blockset/roomset/spriteset slot it
13// occupies. The role determines which palette region the sheet should render
14// against. This mirrors the implicit mapping in tile16_editor.cc's
15// GetPaletteSlotForSheet / GetPaletteBaseForSheet (sheet 0,3,4 -> AUX1,
16// 1,2 -> MAIN, 5,6 -> AUX2, 7 -> ANIMATED).
17//
18// Sheet-id partitioning (kDungeonMain/kHud) exists only as a coarse fallback
19// for callers that have a raw sheet ID without slot context. It mirrors the
20// initial palette seeding in zelda3/game_data.cc:ProcessSheetBitmap.
21enum class SheetRole : uint8_t {
22 kUnclassified = 0,
23
24 // Overworld blockset slot 0 (sometimes called "main blockset graphics" -
25 // includes house tiles in town tilesets, dungeon entrances, etc).
27
28 // Overworld blockset slots 1-2 - general area background graphics
29 // (terrain, ground textures).
31
32 // Overworld blockset slots 3-4 - secondary aux graphics
33 // (trees, decoration, area-specific bg detail).
35
36 // Overworld blockset slots 5-6 - tertiary aux graphics
37 // (cave/special area graphics, often shared between similar areas).
39
40 // Overworld blockset slot 7 - animated tiles (water, lava, torches).
42
43 // Spriteset slot - sprite/enemy graphics (sheets 113-127 in default load).
45
46 // HUD / item icons / font graphics (sheets 128+).
47 kHud,
48
49 // Dungeon graphics (sheets 0-112 in the default seeding partition).
51};
52
53} // namespace gfx
54} // namespace yaze
55
56#endif // YAZE_APP_GFX_TYPES_SHEET_ROLE_H_