aboutsummaryrefslogtreecommitdiff
path: root/queen/graphics.h
diff options
context:
space:
mode:
authorGregory Montoir2003-12-19 09:22:20 +0000
committerGregory Montoir2003-12-19 09:22:20 +0000
commitb7a5d9720791bd112730d1384c7c7cf94a40e381 (patch)
treeb4a35d45270cc93533455f8d70f5d4b43047364b /queen/graphics.h
parentdae474e86da67330fa0d0fd7a4637d6bedff43e6 (diff)
downloadscummvm-rg350-b7a5d9720791bd112730d1384c7c7cf94a40e381.tar.gz
scummvm-rg350-b7a5d9720791bd112730d1384c7c7cf94a40e381.tar.bz2
scummvm-rg350-b7a5d9720791bd112730d1384c7c7cf94a40e381.zip
put all 'bam' related stuff in a class and allow load/save during a 'bam' scene
svn-id: r11759
Diffstat (limited to 'queen/graphics.h')
-rw-r--r--queen/graphics.h89
1 files changed, 51 insertions, 38 deletions
diff --git a/queen/graphics.h b/queen/graphics.h
index 7227bcf6c3..116bc464c6 100644
--- a/queen/graphics.h
+++ b/queen/graphics.h
@@ -102,34 +102,6 @@ struct TextSlot {
};
-struct BamDataObj {
- int16 x, y;
- int16 frame;
-};
-
-struct BamDataBlock {
- BamDataObj obj1; // truck / Frank
- BamDataObj obj2; // Rico / robot
- BamDataObj fx;
- int16 sfx;
-};
-
-struct BamData {
-
- BamData() : flag(0), index(0) {}
-
- int16 flag;
- int16 index;
-
- bool _screenShaked;
- const BamDataBlock *_fightData;
- static const BamDataBlock _carData[];
- static const BamDataBlock _fight1Data[];
- static const BamDataBlock _fight2Data[];
- static const BamDataBlock _fight3Data[];
-};
-
-
class QueenEngine;
class Graphics {
@@ -182,15 +154,6 @@ public:
void cameraBob(int bobNum) { _cameraBob = bobNum; }
int cameraBob() const { return _cameraBob; }
- BamData *bamData() { return &_bam; }
-
- void initCarBamScene();
- void updateCarBamScene();
- void cleanupCarBamScene(uint16 i);
-
- void initFightBamScene();
- void updateFightBamScene();
-
void update(uint16 room);
enum {
@@ -233,9 +196,59 @@ private:
int _cameraBob;
- BamData _bam;
+ QueenEngine *_vm;
+};
+
+
+struct BamDataObj {
+ int16 x, y;
+ int16 frame;
+};
+
+struct BamDataBlock {
+ BamDataObj obj1; // truck / Frank
+ BamDataObj obj2; // Rico / robot
+ BamDataObj fx;
+ int16 sfx;
+};
+
+class BamScene {
+public:
+
+ BamScene(QueenEngine *vm);
+
+ void prepareAnimation();
+ void updateCarAnimation();
+ void updateFightAnimation();
+
+ enum {
+ BOB_OBJ1 = 5,
+ BOB_OBJ2 = 6,
+ BOB_FX = 7
+ };
+
+ enum {
+ F_STOP = 0,
+ F_PLAY = 1,
+ F_REQ_STOP = 2
+ };
+
+ uint16 _flag, _index;
+
+private:
+
+ BobSlot *_obj1;
+ BobSlot *_obj2;
+ BobSlot *_objfx;
+ bool _screenShaked;
+ const BamDataBlock *_fightData;
QueenEngine *_vm;
+
+ static const BamDataBlock _carData[];
+ static const BamDataBlock _fight1Data[];
+ static const BamDataBlock _fight2Data[];
+ static const BamDataBlock _fight3Data[];
};
} // End of namespace Queen