diff options
author | Denis Kasak | 2009-06-27 01:04:24 +0000 |
---|---|---|
committer | Denis Kasak | 2009-06-27 01:04:24 +0000 |
commit | 04309390069f8466ddeadd599c403aca9c1e3ccd (patch) | |
tree | 04a71b46865962ca0e00e7cfaab193f09ed92101 /engines | |
parent | c1644493b87204728f2ec9a32df28e40e9542103 (diff) | |
download | scummvm-rg350-04309390069f8466ddeadd599c403aca9c1e3ccd.tar.gz scummvm-rg350-04309390069f8466ddeadd599c403aca9c1e3ccd.tar.bz2 scummvm-rg350-04309390069f8466ddeadd599c403aca9c1e3ccd.zip |
Added Game's constructor. Added the Person struct and made Game constructor read in the list of persons from INIT.DFW. Added Game instance to DraciEngine.
svn-id: r41907
Diffstat (limited to 'engines')
-rw-r--r-- | engines/draci/draci.cpp | 1 | ||||
-rw-r--r-- | engines/draci/draci.h | 2 | ||||
-rw-r--r-- | engines/draci/game.cpp | 27 | ||||
-rw-r--r-- | engines/draci/game.h | 18 |
4 files changed, 48 insertions, 0 deletions
diff --git a/engines/draci/draci.cpp b/engines/draci/draci.cpp index e0cbcafe19..3fc9553a8c 100644 --- a/engines/draci/draci.cpp +++ b/engines/draci/draci.cpp @@ -69,6 +69,7 @@ int DraciEngine::init() { _screen = new Screen(this); _font = new Font(); _mouse = new Mouse(this); + _game = new Game(); // Load default font _font->setFont(kFontBig); diff --git a/engines/draci/draci.h b/engines/draci/draci.h index 1b91e89623..5062eba563 100644 --- a/engines/draci/draci.h +++ b/engines/draci/draci.h @@ -30,6 +30,7 @@ #include "engines/engine.h" #include "engines/advancedDetector.h" +#include "draci/game.h" #include "draci/mouse.h" #include "draci/screen.h" #include "draci/font.h" @@ -50,6 +51,7 @@ public: Font *_font; Screen *_screen; Mouse *_mouse; + Game *_game; private: Common::RandomSource _rnd; diff --git a/engines/draci/game.cpp b/engines/draci/game.cpp index cc008abd8f..358956c50b 100644 --- a/engines/draci/game.cpp +++ b/engines/draci/game.cpp @@ -23,4 +23,31 @@ * */ +#include "common/stream.h" + +#include "draci/draci.h" #include "draci/game.h" +#include "draci/barchive.h" + +namespace Draci { + +Game::Game() { + Common::String path("INIT.DFW"); + + BArchive initArchive(path); + BAFile *file; + + file = initArchive[5]; + Common::MemoryReadStream reader(file->_data, file->_length); + + unsigned int numPersons = file->_length / personSize; + _persons = new Person[numPersons]; + + for (unsigned int i = 0; i < numPersons; ++i) { + _persons[i]._x = reader.readByte(); + _persons[i]._y = reader.readByte(); + _persons[i]._fontColour = reader.readUint16LE(); + } +} + +} diff --git a/engines/draci/game.h b/engines/draci/game.h index d2c42fe83e..5c0524fab5 100644 --- a/engines/draci/game.h +++ b/engines/draci/game.h @@ -26,9 +26,27 @@ #ifndef DRACI_GAME_H #define DRACI_GAME_H +#include "common/str.h" + namespace Draci { +enum StructSizes { + personSize = 3 +}; + +struct Person { + uint16 _x, _y; + byte _fontColour; +}; + class Game { + +public: + Game(); + ~Game(); + +private: + Person *_persons; }; } // End of namespace Draci |