34 #ifndef AGS_ENGINE_AC_SCREEN_OVERLAY_H 35 #define AGS_ENGINE_AC_SCREEN_OVERLAY_H 37 #include "common/std/memory.h" 38 #include "ags/shared/core/types.h" 39 #include "ags/shared/util/geometry.h" 53 class IDriverDependantBitmap;
60 kOver_AlphaChannel = 0x0001,
61 kOver_PositionAtRoomXY = 0x0002,
62 kOver_RoomLayer = 0x0004,
63 kOver_SpriteShared = 0x0008
66 enum OverlaySvgVersion {
67 kOverSvgVersion_Initial = 0,
68 kOverSvgVersion_35028 = 1,
69 kOverSvgVersion_36008 = 2,
70 kOverSvgVersion_36025 = 3,
71 kOverSvgVersion_36108 = 4,
84 int offsetX = 0, offsetY = 0;
86 int scaleWidth = 0, scaleHeight = 0;
87 int bgSpeechForChar = -1;
88 int associatedOverlayHandle = 0;
102 bool HasAlphaChannel()
const {
103 return (_flags & kOver_AlphaChannel) != 0;
105 bool IsSpriteShared()
const {
106 return (_flags & kOver_SpriteShared) != 0;
108 bool IsRoomRelative()
const {
109 return (_flags & kOver_PositionAtRoomXY) != 0;
111 bool IsRoomLayer()
const {
112 return (_flags & kOver_RoomLayer) != 0;
114 void SetAlphaChannel(
bool on) {
115 on ? _flags |= kOver_AlphaChannel : _flags &= ~kOver_AlphaChannel;
117 void SetRoomRelative(
bool on) {
118 on ? _flags |= kOver_PositionAtRoomXY : _flags &= ~kOver_PositionAtRoomXY;
120 void SetRoomLayer(
bool on) {
121 on ? _flags |= (kOver_RoomLayer | kOver_PositionAtRoomXY) :
122 _flags &= ~(kOver_RoomLayer | kOver_PositionAtRoomXY);
127 int GetSpriteNum()
const {
130 Size GetGraphicSize()
const;
135 void SetSpriteNum(
int sprnum,
int offx = 0,
int offy = 0);
137 bool HasChanged()
const {
145 void ClearChanged() {
149 void ReadFromSavegame(
Shared::Stream *in,
bool &has_bitmap, int32_t cmp_ver);
157 bool _hasChanged =
false;
Definition: achievements_tables.h:27
Definition: allegro_bitmap.h:44
Definition: screen_overlay.h:74
Definition: geometry.h:148