Files
2026-02-02 04:50:13 +01:00

104 lines
3.1 KiB
C++

/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef AWE_VIDEO_H
#define AWE_VIDEO_H
#include "awe/intern.h"
namespace Awe {
struct StrEntry {
uint16 id;
const char *str;
};
struct Gfx;
struct Resource;
struct Scaler;
struct SystemStub;
struct Video {
enum {
BITMAP_W = 320,
BITMAP_H = 200
};
static const StrEntry STRINGS_TABLE_AMIGA_CODES[];
static const StrEntry STRINGS_TABLE_FR[];
static const StrEntry STRINGS_TABLE_ENG[];
static const StrEntry STRINGS_TABLE_ITA[];
static const StrEntry STRINGS_TABLE_DEMO[];
static const uint16 STRINGS_ID_15TH[];
static const char *STRINGS_TABLE_15TH[];
static const char *_str0x194AtariDemo;
static const StrEntry STRINGS_TABLE_3DO[];
static const char *NOTE_TEXT_3DO;
static const char *END_TEXT_3DO;
static const uint8 *VERTICES_3DO[201];
static const uint8 PALETTE_EGA[];
static bool _useEGA;
Resource *_res;
Gfx *_graphics = nullptr;
bool _hasHeadSprites = false;
bool _displayHead = true;
uint8 _nextPal = 0, _currentPal = 0;
uint8 _buffers[3] = { 0 };
Ptr _pData;
uint8 *_dataBuf = nullptr;
const StrEntry *_stringsTable = nullptr;
uint8 _tempBitmap[BITMAP_W * BITMAP_H] = { 0 };
uint16 _bitmap555[BITMAP_W * BITMAP_H] = { 0 };
Video(Resource *res);
~Video() {}
void init();
void setDefaultFont();
void setFont(const uint8 *font);
void setHeads(const uint8 *src);
void setDataBuffer(uint8 *dataBuf, uint16 offset);
void drawShape(uint8 color, uint16 zoom, const Point *pt);
void drawShapePart3DO(int color, int part, const Point *pt);
void drawShape3DO(int color, int zoom, const Point *pt);
void fillPolygon(uint16 color, uint16 zoom, const Point *pt);
void drawShapeParts(uint16 zoom, const Point *pt);
void drawString(uint8 color, uint16 x, uint16 y, uint16 strId);
uint8 getPagePtr(uint8 page);
void setWorkPagePtr(uint8 page);
void fillPage(uint8 page, uint8 color);
void copyPage(uint8 src, uint8 dst, int16 vscroll);
void scaleBitmap(const uint8 *src, int fmt);
void copyBitmapPtr(const uint8 *src, uint32 size = 0);
void changePal(uint8 pal);
void updateDisplay(uint8 page, SystemStub *stub);
void setPaletteColor(uint8 color, int r, int g, int b);
void drawRect(uint8 page, uint8 color, int x1, int y1, int x2, int y2);
void drawBitmap3DO(const char *name, SystemStub *stub);
};
} // namespace Awe
#endif