aboutsummaryrefslogtreecommitdiff
path: root/engines/draci/game.cpp
diff options
context:
space:
mode:
authorDenis Kasak2009-06-28 16:19:10 +0000
committerDenis Kasak2009-06-28 16:19:10 +0000
commitf61b2d289d0e6ec960e20ac5b59a0fe7dfe8740e (patch)
tree2acbce26249ce6b898032ba8590a094ec3faada5 /engines/draci/game.cpp
parent948bf2cfcc23dc95fa7b29ff2f6ae7a27af132bd (diff)
downloadscummvm-rg350-f61b2d289d0e6ec960e20ac5b59a0fe7dfe8740e.tar.gz
scummvm-rg350-f61b2d289d0e6ec960e20ac5b59a0fe7dfe8740e.tar.bz2
scummvm-rg350-f61b2d289d0e6ec960e20ac5b59a0fe7dfe8740e.zip
Changed Script::run() to accept a GPL2Program struct instead of a byte pointer and a length. Also, Script::run() now executes the GPL program until a gplend instruction rather than to the end of the whole program. Modified GameObject according to the new changes.
svn-id: r41927
Diffstat (limited to 'engines/draci/game.cpp')
-rw-r--r--engines/draci/game.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/engines/draci/game.cpp b/engines/draci/game.cpp
index 7cceb0e854..9b8a2855ef 100644
--- a/engines/draci/game.cpp
+++ b/engines/draci/game.cpp
@@ -28,10 +28,11 @@
#include "draci/draci.h"
#include "draci/game.h"
#include "draci/barchive.h"
+#include "draci/script.h"
namespace Draci {
-Game::Game() {
+Game::Game(DraciEngine *vm) : _vm(vm) {
unsigned int i;
Common::String path("INIT.DFW");
@@ -161,9 +162,9 @@ void Game::loadObject(uint16 objNum, GameObject *obj) {
memcpy(obj->_title, file->_data, file->_length);
file = objArchive[objNum * 3 + 2];
- obj->_program = new byte[file->_length];
- memcpy(obj->_program, file->_data, file->_length);
- obj->_progLen = file->_length;
+ obj->_program._bytecode = new byte[file->_length];
+ obj->_program._length = file->_length;
+ memcpy(obj->_program._bytecode, file->_data, file->_length);
}
Game::~Game() {
@@ -176,12 +177,9 @@ Game::~Game() {
}
GameObject::~GameObject() {
- if (_seqTab)
- delete[] _seqTab;
- if (_title)
- delete[] _title;
- if (_program)
- delete[] _program;
+ delete[] _seqTab;
+ delete[] _title;
+ delete[] _program._bytecode;
}
}