22 #ifndef TWINE_RENDERER_REDRAW_H 23 #define TWINE_RENDERER_REDRAW_H 25 #include "common/scummsys.h" 26 #include "common/rect.h" 27 #include "twine/shared.h" 31 #define OVERLAY_MAX_ENTRIES 10 33 enum class OverlayType {
46 enum class OverlayPosType {
53 OverlayType type = OverlayType::koSprite;
58 OverlayPosType posType = OverlayPosType::koNormal;
75 return posValue == other.posValue;
79 return posValue < other.posValue;
83 #define TYPE_OBJ_SHIFT (10) 84 #define TYPE_OBJ_FIRST (1 << TYPE_OBJ_SHIFT) // 1024 85 #define NUM_OBJ_MASK (TYPE_OBJ_FIRST - 1) 92 DrawObject3D = (0 << TYPE_OBJ_SHIFT),
93 DrawFlagRed = (1 << TYPE_OBJ_SHIFT),
94 DrawFlagYellow = (2 << TYPE_OBJ_SHIFT),
95 DrawShadows = (3 << TYPE_OBJ_SHIFT),
96 DrawActorSprites = (4 << TYPE_OBJ_SHIFT),
97 DrawZoneDec = (5 << TYPE_OBJ_SHIFT),
98 DrawExtras = (6 << TYPE_OBJ_SHIFT),
99 DrawPrimitive = (7 << TYPE_OBJ_SHIFT)
105 int16 _overlayRotation = 0;
108 int32 _bubbleActor = -1;
109 int32 _bubbleSpriteIndex;
111 IVec3 _projPosScreen;
115 int32 _textDisappearTime = -1;
121 void addRedrawCurrentArea(
const Common::Rect &redrawArea);
126 void moveNextAreas();
127 void updateOverlayTypePosition(int16 x1, int16 y1, int16 x2, int16 y2);
130 void processDrawListActors(
const DrawListStruct& drawCmd,
bool bgRedraw);
131 void processDrawListActorSprites(
const DrawListStruct& drawCmd,
bool bgRedraw);
134 int32 fillActorDrawingList(
DrawListStruct *drawList,
bool bgRedraw);
135 int32 fillExtraDrawingList(
DrawListStruct *drawList, int32 drawListPos);
137 void processDrawList(
DrawListStruct *drawList, int32 drawListPos,
bool bgRedraw);
138 void renderOverlays();
144 bool _flagMCGA =
false;
147 bool _firstTime =
false;
150 int32 _currNumOfRedrawBox = 0;
152 int32 _numOfRedrawBox = 0;
154 int _sceneryViewX = 0;
155 int _sceneryViewY = 0;
162 int32 addOverlay(OverlayType type, int16 info0, int16 x, int16 y, int16 info1, OverlayPosType posType, int16 lifeTime);
172 void addRedrawArea(int32 left, int32 top, int32 right, int32 bottom);
179 void flipRedrawAreas();
182 void blitBackgroundAreas();
188 void redrawEngineActions(
bool bgRedraw);
191 void drawBubble(int32 actorIdx);
Definition: achievements_tables.h:27