aboutsummaryrefslogtreecommitdiff
path: root/sword2/sword2.h
diff options
context:
space:
mode:
authorTorbjörn Andersson2003-11-01 16:55:20 +0000
committerTorbjörn Andersson2003-11-01 16:55:20 +0000
commit94edf540ef57e801efda2145026d97b6606d66b3 (patch)
tree9fbe2f0f9f8169c25d96c952212191b5cf0a63d1 /sword2/sword2.h
parent078091e7f4f67293a414979daf2062f5edfc393c (diff)
downloadscummvm-rg350-94edf540ef57e801efda2145026d97b6606d66b3.tar.gz
scummvm-rg350-94edf540ef57e801efda2145026d97b6606d66b3.tar.bz2
scummvm-rg350-94edf540ef57e801efda2145026d97b6606d66b3.zip
More moving of stuff into classes
svn-id: r11025
Diffstat (limited to 'sword2/sword2.h')
-rw-r--r--sword2/sword2.h100
1 files changed, 100 insertions, 0 deletions
diff --git a/sword2/sword2.h b/sword2/sword2.h
index 03dd6aaf8f..cb71de2772 100644
--- a/sword2/sword2.h
+++ b/sword2/sword2.h
@@ -25,6 +25,7 @@
#include "common/map.h"
#include "common/rect.h"
#include "common/str.h"
+#include "sword2/build_display.h"
#include "sword2/console.h"
#include "sword2/driver/d_sound.h"
#include "sword2/driver/d_draw.h"
@@ -63,6 +64,68 @@ private:
uint32 _bootParam;
int32 _saveSlot;
+ // structure filled out by each object to register its graphic printing
+ // requrements
+
+ struct buildit {
+ int16 x;
+ int16 y;
+ uint16 scaled_width;
+ uint16 scaled_height;
+ int16 sort_y;
+ uint32 anim_resource;
+ uint16 anim_pc;
+
+ // Denotes a scaling sprite at print time - and holds the
+ // scaling value for the shrink routine
+
+ uint16 scale;
+
+ // Non-zero means this item is a layer - retrieve from
+ // background layer and send to special renderer
+
+ uint16 layer_number;
+
+ // True means we want this frame to be affected by the shading
+ // mask
+
+ bool shadingFlag;
+ };
+
+ buildit _bgp0List[MAX_bgp0_sprites];
+ buildit _bgp1List[MAX_bgp1_sprites];
+ buildit _backList[MAX_back_sprites];
+ buildit _sortList[MAX_sort_sprites];
+ buildit _foreList[MAX_fore_sprites];
+ buildit _fgp0List[MAX_fgp0_sprites];
+ buildit _fgp1List[MAX_fgp1_sprites];
+
+ // Holds the order of the sort list, i.e. the list stays static and we
+ // sort this array.
+
+ uint16 _sortOrder[MAX_sort_sprites];
+
+ // Last palette used - so that we can restore the correct one after a
+ // pause (which dims the screen) and it's not always the main screen
+ // palette that we want, eg. during the eclipse
+
+ // This flag gets set in startNewPalette() and setFullPalette()
+
+ uint32 _lastPaletteRes;
+
+ void sendBackPar0Frames(void);
+ void sendBackPar1Frames(void);
+ void sendBackFrames(void);
+ void sendSortFrames(void);
+ void sendForeFrames(void);
+ void sendForePar0Frames(void);
+ void sendForePar1Frames(void);
+
+ void sortTheSortList(void);
+
+ void startNewPalette(void);
+ void processLayer(uint32 layer_number);
+
public:
Sword2Engine(GameDetector *detector, OSystem *syst);
~Sword2Engine();
@@ -86,6 +149,43 @@ public:
uint32 _controlsFontId;
uint32 _redFontId;
+ void resetRenderLists(void);
+ void buildDisplay(void);
+ void processImage(buildit *build_unit);
+ void displayMsg(uint8 *text, int time);
+ void removeMsg(void);
+ void setFullPalette(int32 palRes);
+
+ int32 registerFrame(int32 *params);
+ void registerFrame(int32 *params, buildit *build_unit);
+
+ // The debugger wants to access these
+
+ uint32 _curBgp0;
+ uint32 _curBgp1;
+ uint32 _curBack;
+ uint32 _curSort;
+ uint32 _curFore;
+ uint32 _curFgp0;
+ uint32 _curFgp1;
+
+ // So I know if the control panel can be activated
+ int32 _mouseStatus;
+
+ // Debugging stuff
+
+ uint32 _largestLayerArea;
+ uint32 _largestSpriteArea;
+ char _largestLayerInfo[128];
+ char _largestSpriteInfo[128];
+
+ // 'frames per second' counting stuff
+ uint32 _fps;
+ uint32 _cycleTime;
+ uint32 _frameCount;
+
+ int32 initBackground(int32 res, int32 new_palette);
+
void errorString(const char *buf_input, char *buf_output);
void initialiseFontResourceFlags(void);
void initialiseFontResourceFlags(uint8 language);