aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorDenis Kasak2009-06-27 01:04:24 +0000
committerDenis Kasak2009-06-27 01:04:24 +0000
commit04309390069f8466ddeadd599c403aca9c1e3ccd (patch)
tree04a71b46865962ca0e00e7cfaab193f09ed92101 /engines
parentc1644493b87204728f2ec9a32df28e40e9542103 (diff)
downloadscummvm-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.cpp1
-rw-r--r--engines/draci/draci.h2
-rw-r--r--engines/draci/game.cpp27
-rw-r--r--engines/draci/game.h18
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