aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb/dreambase.h
diff options
context:
space:
mode:
authorFilippos Karapetis2011-12-08 00:31:33 -0800
committerFilippos Karapetis2011-12-08 00:31:33 -0800
commit5b5a684c050d937cb8b7284e3d4f17d7746319d0 (patch)
tree42300faeedf1d031f49fd2bc9cb5421c7dde3a33 /engines/dreamweb/dreambase.h
parent02fed995a96e697927c6b71ae6ca22e29b02febd (diff)
parentcb0a12033b97064b35c30d5d86406b4b16517532 (diff)
downloadscummvm-rg350-5b5a684c050d937cb8b7284e3d4f17d7746319d0.tar.gz
scummvm-rg350-5b5a684c050d937cb8b7284e3d4f17d7746319d0.tar.bz2
scummvm-rg350-5b5a684c050d937cb8b7284e3d4f17d7746319d0.zip
Merge pull request #128 from fingolfin/dreamweb-segments
DREAMWEB: Refactor segment management
Diffstat (limited to 'engines/dreamweb/dreambase.h')
-rw-r--r--engines/dreamweb/dreambase.h48
1 files changed, 36 insertions, 12 deletions
diff --git a/engines/dreamweb/dreambase.h b/engines/dreamweb/dreambase.h
index 6263adfe60..bad977c2df 100644
--- a/engines/dreamweb/dreambase.h
+++ b/engines/dreamweb/dreambase.h
@@ -25,7 +25,7 @@
#include "common/scummsys.h"
-#include "dreamweb/runtime.h"
+#include "dreamweb/segment.h"
namespace DreamWeb {
class DreamWebEngine;
@@ -43,21 +43,12 @@ namespace DreamGen {
* together with class Context. When that happens, we can probably merge
* DreamBase into DreamWebEngine.
*/
-class DreamBase {
+class DreamBase : public SegmentManager {
protected:
DreamWeb::DreamWebEngine *engine;
public:
- enum { kDefaultDataSegment = 0x1000 };
-
- SegmentPtr _realData; ///< the primary data segment, points to a huge blob of binary data
- SegmentRef data; ///< fake segment register always pointing to data segment
-
- DreamBase(DreamWeb::DreamWebEngine *en) :
- engine(en),
- _realData(new Segment()),
- data(kDefaultDataSegment, _realData) {
- }
+ DreamBase(DreamWeb::DreamWebEngine *en) : engine(en) { }
public:
// from pathfind.cpp
@@ -66,6 +57,11 @@ public:
// from print.cpp
uint8 getNextWord(const Frame *charSet, const uint8 *string, uint8 *totalWidth, uint8 *charCount);
+ void printChar(const Frame* charSet, uint16 *x, uint16 y, uint8 c, uint8 nextChar, uint8 *width, uint8 *height);
+ void printChar(const Frame* charSet, uint16 x, uint16 y, uint8 c, uint8 nextChar, uint8 *width, uint8 *height);
+ void printBoth(const Frame* charSet, uint16 *x, uint16 y, uint8 c, uint8 nextChar);
+ uint8 printDirect(const uint8** string, uint16 x, uint16 *y, uint8 maxWidth, bool centered);
+ uint8 printDirect(const uint8* string, uint16 x, uint16 y, uint8 maxWidth, bool centered);
uint8 getNumber(const Frame *charSet, const uint8 *string, uint16 maxWidth, bool centered, uint16 *offset);
uint8 kernChars(uint8 firstChar, uint8 secondChar, uint8 width);
@@ -82,11 +78,36 @@ public:
void dumpPointer();
void showRyanPage();
+ // from vgafades.cpp
+ uint8 *mainPalette();
+ uint8 *startPalette();
+ uint8 *endPalette();
+ void clearStartPal();
+ void clearEndPal();
+ void palToStartPal();
+ void endPalToStart();
+ void startPalToEnd();
+ void palToEndPal();
+ void doFade();
+ void fadeCalculation();
+ void fadeScreenUp();
+ void fadeScreenUps();
+ void fadeScreenUpHalf();
+ void fadeScreenDown();
+ void fadeScreenDowns();
+
// from vgagrafx.cpp
uint8 _workspace[(0x1000 + 2) * 16];
inline uint8 *workspace() { return _workspace; }
void clearWork();
+ uint8 *mapStore();
+ void panelToMap();
+ void mapToPanel();
+ void dumpMap();
+
+ void transferInv();
+
void multiGet(uint8 *dst, uint16 x, uint16 y, uint8 width, uint8 height);
void multiPut(const uint8 *src, uint16 x, uint16 y, uint8 width, uint8 height);
void multiDump(uint16 x, uint16 y, uint8 width, uint8 height);
@@ -98,9 +119,12 @@ public:
void frameOutBh(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y);
void frameOutFx(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y);
void doShake();
+ void vSync();
+ void setMode();
void showPCX(const Common::String &name);
void showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag, uint8 *width, uint8 *height);
void showFrame(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag);
+ void loadPalFromIFF();
void createPanel();
void createPanel2();
void showPanel();