aboutsummaryrefslogtreecommitdiff
path: root/queen/graphics.h
diff options
context:
space:
mode:
authorGregory Montoir2004-01-05 13:40:28 +0000
committerGregory Montoir2004-01-05 13:40:28 +0000
commit232a709fd4bf22a0daff99b97eb5e4cc854e44f3 (patch)
treee290c0fe21e2576a45344c98275d902149232229 /queen/graphics.h
parentfbc4168a8e4f4ccd400f435fa4307472decfac33 (diff)
downloadscummvm-rg350-232a709fd4bf22a0daff99b97eb5e4cc854e44f3.tar.gz
scummvm-rg350-232a709fd4bf22a0daff99b97eb5e4cc854e44f3.tar.bz2
scummvm-rg350-232a709fd4bf22a0daff99b97eb5e4cc854e44f3.zip
added a class to manage banks, Queen::Graphics cleanup
svn-id: r12157
Diffstat (limited to 'queen/graphics.h')
-rw-r--r--queen/graphics.h63
1 files changed, 40 insertions, 23 deletions
diff --git a/queen/graphics.h b/queen/graphics.h
index 87b8f6f151..f056bf20a8 100644
--- a/queen/graphics.h
+++ b/queen/graphics.h
@@ -101,6 +101,46 @@ struct TextSlot {
bool outlined;
};
+class Resource;
+
+class BankManager {
+public:
+
+ BankManager(Resource *res);
+ ~BankManager();
+
+ void load(const char *bankname, uint32 bankslot);
+ void unpack(uint32 srcframe, uint32 dstframe, uint32 bankslot);
+ void overpack(uint32 srcframe, uint32 dstframe, uint32 bankslot);
+ void close(uint32 bankslot);
+
+ BobFrame *fetchFrame(uint32 index);
+ void eraseFrame(uint32 index);
+ void eraseAllFrames(bool joe);
+
+ enum {
+ MAX_BANK_SIZE = 110,
+ MAX_FRAMES_NUMBER = 256,
+ MAX_BANKS_NUMBER = 18
+ };
+
+
+private:
+
+ struct PackedBank {
+ uint32 indexes[MAX_BANK_SIZE];
+ uint8 *data;
+ };
+
+ //! unbanked bob frames
+ BobFrame _frames[MAX_FRAMES_NUMBER];
+
+ //! banked bob frames
+ PackedBank _banks[MAX_BANKS_NUMBER];
+
+ Resource *_res;
+};
+
class QueenEngine;
@@ -110,11 +150,6 @@ public:
Graphics(QueenEngine *vm);
~Graphics();
- void bankLoad(const char *bankname, uint32 bankslot); // loadbank()
- void bankUnpack(uint32 srcframe, uint32 dstframe, uint32 bankslot); // unpackbank()
- void bankOverpack(uint32 srcframe, uint32 dstframe, uint32 bankslot); // overpackbank()
- void bankErase(uint32 bankslot); // erase()
-
void bobSetupControl();
void bobDraw(const BobSlot *bs, int16 x, int16 y);
void bobDrawInventoryItem(uint32 frameNum, uint16 x, uint16 y);
@@ -144,10 +179,6 @@ public:
int textCenterX(const char *text) const; // MIDDLE()
void textColor(uint16 y, uint8 color) { _texts[y].color = color; }
- void frameErase(uint32 fslot);
- void frameEraseAll(bool joe); // freeframes, freeallframes
- BobFrame *frame(int index) { return _frames + index; }
-
void loadBackdrop(const char *name, uint16 room);
void loadPanel();
@@ -157,9 +188,6 @@ public:
void update(uint16 room);
enum {
- MAX_BANK_SIZE = 110,
- MAX_FRAMES_NUMBER = 256,
- MAX_BANKS_NUMBER = 18,
MAX_BOBS_NUMBER = 64,
MAX_STRING_LENGTH = 255,
MAX_STRING_SIZE = (MAX_STRING_LENGTH + 1),
@@ -169,17 +197,6 @@ public:
private:
- struct PackedBank {
- uint32 indexes[MAX_BANK_SIZE];
- uint8 *data;
- };
-
- //! unbanked bob frames
- BobFrame _frames[MAX_FRAMES_NUMBER];
-
- //! banked bob frames
- PackedBank _banks[MAX_BANKS_NUMBER];
-
BobSlot _bobs[MAX_BOBS_NUMBER];
//! bobs to display