22 #ifndef TWINE_RENDERER_REDRAW_H 23 #define TWINE_RENDERER_REDRAW_H 25 #include "common/scummsys.h" 26 #include "common/rect.h" 27 #include "common/str.h" 28 #include "twine/shared.h" 33 #define OVERLAY_MAX_ENTRIES 10 35 enum class OverlayType {
49 #define INCRUST_YCLIP (1 << 8) 51 enum class OverlayPosType {
61 OverlayType type = OverlayType::koSprite;
63 OverlayPosType
move = OverlayPosType::koNormal;
88 #define TYPE_OBJ_SHIFT (10) 89 #define TYPE_OBJ_FIRST (1 << TYPE_OBJ_SHIFT) // 1024 90 #define NUM_OBJ_MASK (TYPE_OBJ_FIRST - 1) 97 DrawObject3D = (0 << TYPE_OBJ_SHIFT),
98 DrawFlagRed = (1 << TYPE_OBJ_SHIFT),
99 DrawFlagYellow = (2 << TYPE_OBJ_SHIFT),
100 DrawShadows = (3 << TYPE_OBJ_SHIFT),
101 DrawActorSprites = (4 << TYPE_OBJ_SHIFT),
102 DrawZoneDec = (5 << TYPE_OBJ_SHIFT),
103 DrawExtras = (6 << TYPE_OBJ_SHIFT),
104 DrawPrimitive = (7 << TYPE_OBJ_SHIFT)
110 int16 _overlayRotation = 0;
113 int32 _bubbleActor = -1;
114 int32 _bubbleSpriteIndex;
118 int32 _textDisappearTime = -1;
124 void addRedrawCurrentArea(
const Common::Rect &redrawArea);
129 void moveNextAreas();
130 void updateOverlayTypePosition(int16 x1, int16 y1, int16 x2, int16 y2);
133 void processDrawListActors(
const DrawListStruct& drawCmd,
bool bgRedraw);
134 void processDrawListActorSprites(
const DrawListStruct& drawCmd,
bool bgRedraw);
137 int32 fillActorDrawingList(
DrawListStruct *drawList,
bool bgRedraw);
138 int32 fillExtraDrawingList(
DrawListStruct *drawList, int32 drawListPos);
140 void processDrawList(
DrawListStruct *drawList, int32 drawListPos,
bool bgRedraw);
141 void renderOverlays();
147 bool _flagMCGA =
false;
150 bool _firstTime =
false;
152 IVec3 _projPosScreen;
155 int32 _nbPhysBox = 0;
157 int32 _nbOptPhysBox = 0;
159 int _sceneryViewX = 0;
160 int _sceneryViewY = 0;
167 int32 addOverlay(OverlayType type, int16 info0, int16 x, int16 y, int16 info1, OverlayPosType posType, int16 lifeTime);
177 void addRedrawArea(int32 left, int32 top, int32 right, int32 bottom);
193 void drawScene(
bool bgRedraw);
196 void drawBubble(int32 actorIdx);
Definition: achievements_tables.h:27
Out move(In first, In last, Out dst)
Definition: algorithm.h:109