diff options
author | Gregory Montoir | 2003-12-19 09:22:20 +0000 |
---|---|---|
committer | Gregory Montoir | 2003-12-19 09:22:20 +0000 |
commit | b7a5d9720791bd112730d1384c7c7cf94a40e381 (patch) | |
tree | b4a35d45270cc93533455f8d70f5d4b43047364b /queen/graphics.h | |
parent | dae474e86da67330fa0d0fd7a4637d6bedff43e6 (diff) | |
download | scummvm-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.h | 89 |
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 |