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
35enum class OverlayType {
49#define INCRUST_YCLIP (1 << 8)
51enum 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)
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();
144 void fillBackground(uint8 color);
149 bool _flagMCGA =
false;
154 IVec3 _projPosScreen;
161 int _sceneryViewX = 0;
162 int _sceneryViewY = 0;
169 int32 addOverlay(OverlayType type, int16 info0, int16 x, int16 y, int16 info1, OverlayPosType posType, int16 lifeTime);
int32 _nbOptPhysBox
Definition: redraw.h:159
int32 _nbPhysBox
Definition: redraw.h:157
void drawBubble(int32 actorIdx)
bool _firstTime
Definition: redraw.h:152
void addRedrawArea(int32 left, int32 top, int32 right, int32 bottom)
void sortDrawingList(DrawListStruct *list, int32 listSize) const
void drawScene(bool bgRedraw)