diff options
author | Torbjörn Andersson | 2003-11-01 16:55:20 +0000 |
---|---|---|
committer | Torbjörn Andersson | 2003-11-01 16:55:20 +0000 |
commit | 94edf540ef57e801efda2145026d97b6606d66b3 (patch) | |
tree | 9fbe2f0f9f8169c25d96c952212191b5cf0a63d1 /sword2/sword2.h | |
parent | 078091e7f4f67293a414979daf2062f5edfc393c (diff) | |
download | scummvm-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.h | 100 |
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); |