From c545ebd0d5d1b0690e16f7472048e7ffde40d934 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 8 Jun 2011 00:01:44 +0200 Subject: CGE: Add minimal engine and detection --- engines/cge/cge.cpp | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 engines/cge/cge.cpp (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp new file mode 100644 index 0000000000..e7c462e772 --- /dev/null +++ b/engines/cge/cge.cpp @@ -0,0 +1,68 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "common/scummsys.h" + +#include "common/config-manager.h" +#include "common/debug.h" +#include "common/debug-channels.h" +#include "common/error.h" +#include "common/EventRecorder.h" +#include "common/file.h" +#include "common/fs.h" + +#include "engines/util.h" + +#include "cge/cge.h" + +namespace CGE { + +CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) + : Engine(syst), _gameDescription(gameDescription) { + + DebugMan.addDebugChannel(kCGEDebug, "general", "CGE general debug channel"); + _console = new CGEConsole(this); + + debug("CGEEngine::CGEEngine"); +} + +CGEEngine::~CGEEngine() { + debug("CGEEngine::~CGEEngine"); + + // Remove all of our debug levels here + DebugMan.clearAllDebugChannels(); +} + +Common::Error CGEEngine::run() { + // Initialize graphics using following: + initGraphics(320, 200, false); + + // Create debugger console. It requires GFX to be initialized + _console = new CGEConsole(this); + + // Additional setup. + debug("CGEEngine::init"); + + return Common::kNoError; +} + +} // End of namespace CGE -- cgit v1.2.3 From 01a7e7ad60819d247bfe815a8e2183a46c1c6437 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Thu, 9 Jun 2011 08:20:53 +0200 Subject: CGE: Add several sources based on headers --- engines/cge/cge.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index e7c462e772..5613c3bb68 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -33,6 +33,7 @@ #include "engines/util.h" #include "cge/cge.h" +#include "cge/cge_main.h" namespace CGE { @@ -61,7 +62,9 @@ Common::Error CGEEngine::run() { // Additional setup. debug("CGEEngine::init"); - + + cge_main(); + return Common::kNoError; } -- cgit v1.2.3 From ffc2aa4e4f41aa679d773ccafdec87bf8d7b5e85 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Mon, 13 Jun 2011 11:57:24 +0200 Subject: CGE: Format code --- engines/cge/cge.cpp | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 5613c3bb68..0d0df4ea9c 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -21,7 +21,6 @@ */ #include "common/scummsys.h" - #include "common/config-manager.h" #include "common/debug.h" #include "common/debug-channels.h" @@ -29,43 +28,41 @@ #include "common/EventRecorder.h" #include "common/file.h" #include "common/fs.h" - #include "engines/util.h" - #include "cge/cge.h" #include "cge/cge_main.h" - + namespace CGE { - + CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) - : Engine(syst), _gameDescription(gameDescription) { - + : Engine(syst), _gameDescription(gameDescription) { + DebugMan.addDebugChannel(kCGEDebug, "general", "CGE general debug channel"); - _console = new CGEConsole(this); + _console = new CGEConsole(this); debug("CGEEngine::CGEEngine"); } - + CGEEngine::~CGEEngine() { debug("CGEEngine::~CGEEngine"); - + // Remove all of our debug levels here DebugMan.clearAllDebugChannels(); } - + Common::Error CGEEngine::run() { // Initialize graphics using following: initGraphics(320, 200, false); - - // Create debugger console. It requires GFX to be initialized + + // Create debugger console. It requires GFX to be initialized _console = new CGEConsole(this); - + // Additional setup. debug("CGEEngine::init"); - + cge_main(); - + return Common::kNoError; } - + } // End of namespace CGE -- cgit v1.2.3 From 78e3f2a57bc0442066e00c9b625bbdde3c80ddf9 Mon Sep 17 00:00:00 2001 From: eriktorbjorn Date: Sun, 19 Jun 2011 11:17:54 +0200 Subject: CGE: Get rid of some static initializing ScummVM itself (not the engine; I haven't tried that) now starts without crashing. It exits immediately, but as far as I can tell it does not crash. It still produces lots of Valgrind warnings, though... --- engines/cge/cge.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 0d0df4ea9c..8b3bea3eb5 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -31,6 +31,7 @@ #include "engines/util.h" #include "cge/cge.h" #include "cge/cge_main.h" +#include "cge/text.h" namespace CGE { @@ -39,6 +40,10 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) DebugMan.addDebugChannel(kCGEDebug, "general", "CGE general debug channel"); _console = new CGEConsole(this); + Text = new TEXT(ProgName()); + Vga = new VGA(M13H); + + OffUseCount = atoi(Text->getText(OFF_USE_COUNT)); debug("CGEEngine::CGEEngine"); } -- cgit v1.2.3 From 77d4dcade26a69a6e2ebcc69a4224059c450f3e4 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Mon, 20 Jun 2011 00:55:47 +0200 Subject: CGE: Remove static parts of HEART --- engines/cge/cge.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 8b3bea3eb5..f28be8b224 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -42,6 +42,8 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) _console = new CGEConsole(this); Text = new TEXT(ProgName()); Vga = new VGA(M13H); + Heart = new HEART; + OffUseCount = atoi(Text->getText(OFF_USE_COUNT)); -- cgit v1.2.3 From 6dc29e4a0489a62498653a880f38369ce05d41f8 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Mon, 20 Jun 2011 23:40:22 +0200 Subject: CGE: Remove some statics --- engines/cge/cge.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index f28be8b224..04a950faf0 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -30,8 +30,11 @@ #include "common/fs.h" #include "engines/util.h" #include "cge/cge.h" +#include "cge/vga13h.h" #include "cge/cge_main.h" #include "cge/text.h" +#include "cge/bitmaps.h" + namespace CGE { @@ -43,7 +46,12 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) Text = new TEXT(ProgName()); Vga = new VGA(M13H); Heart = new HEART; - + Hero = new WALK(NULL); + Sys = new SYSTEM(); + PocLight = new SPRITE(LI); + Mouse = new MOUSE; + for (int i = 0; i < POCKET_NX; i++) + Pocket[i] = new SPRITE(NULL); OffUseCount = atoi(Text->getText(OFF_USE_COUNT)); -- cgit v1.2.3 From b5ad69d13cf531c2d4c841c043a89f732fc4d4e0 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Tue, 21 Jun 2011 19:38:16 +0200 Subject: CGE: ScummVM no longer crashes instantly --- engines/cge/cge.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 04a950faf0..a34288b7e9 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -52,6 +52,30 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) Mouse = new MOUSE; for (int i = 0; i < POCKET_NX; i++) Pocket[i] = new SPRITE(NULL); + Sprite = new SPRITE(NULL); + MiniCave = new SPRITE(NULL); + Shadow = new SPRITE(NULL); + HorzLine = new SPRITE(HL); + InfoLine = new INFO_LINE(INFO_W); + CavLight = new SPRITE(PR); + DebugLine = new INFO_LINE(SCR_WID); + MB[0] = new BITMAP("BRICK"); + MB[1] = NULL; + HL[0] = new BITMAP("HLINE"); + HL[1] = NULL; + MC[0] = new BITMAP("MOUSE"); + MC[1] = new BITMAP("DUMMY"); + MC[2] = NULL; + PR[0] = new BITMAP("PRESS"); + PR[1] = NULL; + SP[0] = new BITMAP("SPK_L"); + SP[1] = new BITMAP("SPK_R"); + SP[2] = NULL; + LI[0] = new BITMAP("LITE0"); + LI[1] = new BITMAP("LITE1"), + LI[2] = new BITMAP("LITE2"), + LI[3] = new BITMAP("LITE3"), + LI[4] = NULL; OffUseCount = atoi(Text->getText(OFF_USE_COUNT)); -- cgit v1.2.3 From a307d405b6ddf4cb94d57e8365327667a6291bac Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 22 Jun 2011 08:11:18 +0200 Subject: CGE: suppress a couple of static, add ProgName and MergeExt --- engines/cge/cge.cpp | 43 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index a34288b7e9..ef00d0e517 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -42,8 +42,9 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) : Engine(syst), _gameDescription(gameDescription) { DebugMan.addDebugChannel(kCGEDebug, "general", "CGE general debug channel"); + _console = new CGEConsole(this); - Text = new TEXT(ProgName()); + Text = new TEXT(ProgName(), 128); Vga = new VGA(M13H); Heart = new HEART; Hero = new WALK(NULL); @@ -72,10 +73,12 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) SP[1] = new BITMAP("SPK_R"); SP[2] = NULL; LI[0] = new BITMAP("LITE0"); - LI[1] = new BITMAP("LITE1"), - LI[2] = new BITMAP("LITE2"), - LI[3] = new BITMAP("LITE3"), + LI[1] = new BITMAP("LITE1"); + LI[2] = new BITMAP("LITE2"); + LI[3] = new BITMAP("LITE3"); LI[4] = NULL; + Snail = new SNAIL(false); + Snail_ = new SNAIL(true); OffUseCount = atoi(Text->getText(OFF_USE_COUNT)); @@ -87,6 +90,38 @@ CGEEngine::~CGEEngine() { // Remove all of our debug levels here DebugMan.clearAllDebugChannels(); + + _console = new CGEConsole(this); + + delete Text; + delete Vga; + delete Heart; + delete Hero; + delete Sys; + delete PocLight; + delete Mouse; + for (int i = 0; i < POCKET_NX; i++) + delete Pocket[i]; + delete Sprite; + delete MiniCave; + delete Shadow; + delete HorzLine; + delete InfoLine; + delete CavLight; + delete DebugLine; + delete MB[0]; + delete HL[0]; + delete MC[0]; + delete MC[1]; + delete PR[0]; + delete SP[0]; + delete SP[1]; + delete LI[0]; + delete LI[1]; + delete LI[2]; + delete LI[3]; + delete Snail; + delete Snail_; } Common::Error CGEEngine::run() { -- cgit v1.2.3 From fe9dc10964ab4dc4528cc473ef841709732fceff Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 26 Jun 2011 17:53:55 +1000 Subject: CGE: Implemented basic file access functionality --- engines/cge/cge.cpp | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index ef00d0e517..d056a6737d 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -34,6 +34,7 @@ #include "cge/cge_main.h" #include "cge/text.h" #include "cge/bitmaps.h" +#include "cge/vol.h" namespace CGE { @@ -41,9 +42,20 @@ namespace CGE { CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) : Engine(syst), _gameDescription(gameDescription) { + // Debug/console setup DebugMan.addDebugChannel(kCGEDebug, "general", "CGE general debug channel"); + debug("CGEEngine::CGEEngine"); +} + +void CGEEngine::setup() { + // Create debugger console _console = new CGEConsole(this); + + // Initialise classes that have static members + VFILE::init(); + + // Initialise engine objects Text = new TEXT(ProgName(), 128); Vga = new VGA(M13H); Heart = new HEART; @@ -81,18 +93,20 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) Snail_ = new SNAIL(true); OffUseCount = atoi(Text->getText(OFF_USE_COUNT)); - - debug("CGEEngine::CGEEngine"); } CGEEngine::~CGEEngine() { debug("CGEEngine::~CGEEngine"); + // Call classes with static members to clear them up + VFILE::deinit(); + // Remove all of our debug levels here DebugMan.clearAllDebugChannels(); _console = new CGEConsole(this); + // Delete engine objects delete Text; delete Vga; delete Heart; @@ -128,8 +142,8 @@ Common::Error CGEEngine::run() { // Initialize graphics using following: initGraphics(320, 200, false); - // Create debugger console. It requires GFX to be initialized - _console = new CGEConsole(this); + // Setup necessary game objects + setup(); // Additional setup. debug("CGEEngine::init"); -- cgit v1.2.3 From 083d6ff6122cb2faf0a4330eb480bb9f77afa255 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Mon, 27 Jun 2011 01:03:47 +0200 Subject: CGE: remove some if(n)def DEMO by using a new flag. Added CGEEngine in several classes in order to do so. --- engines/cge/cge.cpp | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index d056a6737d..d09085857f 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -45,7 +45,8 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) // Debug/console setup DebugMan.addDebugChannel(kCGEDebug, "general", "CGE general debug channel"); - debug("CGEEngine::CGEEngine"); + _isDemo = _gameDescription->flags & ADGF_DEMO; + } void CGEEngine::setup() { @@ -56,22 +57,22 @@ void CGEEngine::setup() { VFILE::init(); // Initialise engine objects - Text = new TEXT(ProgName(), 128); + Text = new TEXT(this, ProgName(), 128); Vga = new VGA(M13H); Heart = new HEART; - Hero = new WALK(NULL); - Sys = new SYSTEM(); - PocLight = new SPRITE(LI); - Mouse = new MOUSE; + Hero = new WALK(this, NULL); + Sys = new SYSTEM(this); + PocLight = new SPRITE(this, LI); + Mouse = new MOUSE(this); for (int i = 0; i < POCKET_NX; i++) - Pocket[i] = new SPRITE(NULL); - Sprite = new SPRITE(NULL); - MiniCave = new SPRITE(NULL); - Shadow = new SPRITE(NULL); - HorzLine = new SPRITE(HL); - InfoLine = new INFO_LINE(INFO_W); - CavLight = new SPRITE(PR); - DebugLine = new INFO_LINE(SCR_WID); + Pocket[i] = new SPRITE(this, NULL); + Sprite = new SPRITE(this, NULL); + MiniCave = new SPRITE(this, NULL); + Shadow = new SPRITE(this, NULL); + HorzLine = new SPRITE(this, HL); + InfoLine = new INFO_LINE(this, INFO_W); + CavLight = new SPRITE(this, PR); + DebugLine = new INFO_LINE(this, SCR_WID); MB[0] = new BITMAP("BRICK"); MB[1] = NULL; HL[0] = new BITMAP("HLINE"); @@ -89,8 +90,8 @@ void CGEEngine::setup() { LI[2] = new BITMAP("LITE2"); LI[3] = new BITMAP("LITE3"); LI[4] = NULL; - Snail = new SNAIL(false); - Snail_ = new SNAIL(true); + Snail = new SNAIL(this, false); + Snail_ = new SNAIL(this, true); OffUseCount = atoi(Text->getText(OFF_USE_COUNT)); } -- cgit v1.2.3 From e13317baeab99f4868d49a89e110deda1d5ca5f4 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Mon, 27 Jun 2011 18:57:58 +1000 Subject: CGE: Beginnings of work on graphics support --- engines/cge/cge.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index d056a6737d..287586e092 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -53,7 +53,9 @@ void CGEEngine::setup() { _console = new CGEConsole(this); // Initialise classes that have static members + BITMAP::init(); VFILE::init(); + VGA::init(); // Initialise engine objects Text = new TEXT(ProgName(), 128); @@ -99,7 +101,9 @@ CGEEngine::~CGEEngine() { debug("CGEEngine::~CGEEngine"); // Call classes with static members to clear them up + BITMAP::deinit(); VFILE::deinit(); + VGA::deinit(); // Remove all of our debug levels here DebugMan.clearAllDebugChannels(); -- cgit v1.2.3 From a89ce394bcaa9f967f2db7e9281bf25f381ceb69 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Tue, 28 Jun 2011 22:18:21 +1000 Subject: CGE: Fix initialisation of the TALK class --- engines/cge/cge.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 2fd196f509..f2bebef258 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -32,6 +32,7 @@ #include "cge/cge.h" #include "cge/vga13h.h" #include "cge/cge_main.h" +#include "cge/talk.h" #include "cge/text.h" #include "cge/bitmaps.h" #include "cge/vol.h" @@ -54,9 +55,10 @@ void CGEEngine::setup() { _console = new CGEConsole(this); // Initialise classes that have static members - BITMAP::init(); - VFILE::init(); VGA::init(); + VFILE::init(); + BITMAP::init(); + TALK::init(); // Initialise engine objects Text = new TEXT(this, ProgName(), 128); @@ -102,6 +104,7 @@ CGEEngine::~CGEEngine() { debug("CGEEngine::~CGEEngine"); // Call classes with static members to clear them up + TALK::deinit(); BITMAP::deinit(); VFILE::deinit(); VGA::deinit(); -- cgit v1.2.3 From 290305ad4320a489d6dc98279433e0d3b3a7de40 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 29 Jun 2011 00:35:21 +0200 Subject: CGE: Cleanup : Start renaming. Add BMPLoad() function --- engines/cge/cge.cpp | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index f2bebef258..07638ebdd8 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -63,19 +63,19 @@ void CGEEngine::setup() { // Initialise engine objects Text = new TEXT(this, ProgName(), 128); Vga = new VGA(M13H); - Heart = new HEART; + _heart = new Heart; Hero = new WALK(this, NULL); Sys = new SYSTEM(this); - PocLight = new SPRITE(this, LI); + _pocLight = new Sprite(this, LI); Mouse = new MOUSE(this); for (int i = 0; i < POCKET_NX; i++) - Pocket[i] = new SPRITE(this, NULL); - Sprite = new SPRITE(this, NULL); - MiniCave = new SPRITE(this, NULL); - Shadow = new SPRITE(this, NULL); - HorzLine = new SPRITE(this, HL); + _pocket[i] = new Sprite(this, NULL); + _sprite = new Sprite(this, NULL); + _miniCave = new Sprite(this, NULL); + _shadow = new Sprite(this, NULL); + _horzLine = new Sprite(this, HL); InfoLine = new INFO_LINE(this, INFO_W); - CavLight = new SPRITE(this, PR); + _cavLight = new Sprite(this, PR); DebugLine = new INFO_LINE(this, SCR_WID); MB[0] = new BITMAP("BRICK"); MB[1] = NULL; @@ -117,19 +117,19 @@ CGEEngine::~CGEEngine() { // Delete engine objects delete Text; delete Vga; - delete Heart; + delete _heart; delete Hero; delete Sys; - delete PocLight; + delete _pocLight; delete Mouse; for (int i = 0; i < POCKET_NX; i++) - delete Pocket[i]; - delete Sprite; - delete MiniCave; - delete Shadow; - delete HorzLine; + delete _pocket[i]; + delete _sprite; + delete _miniCave; + delete _shadow; + delete _horzLine; delete InfoLine; - delete CavLight; + delete _cavLight; delete DebugLine; delete MB[0]; delete HL[0]; -- cgit v1.2.3 From f2f3124246a77036f843dee2d83ad28084234ebc Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 29 Jun 2011 16:13:17 +0200 Subject: CGE: Some more renaming (wip) --- engines/cge/cge.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 07638ebdd8..885aa4d492 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -57,7 +57,7 @@ void CGEEngine::setup() { // Initialise classes that have static members VGA::init(); VFILE::init(); - BITMAP::init(); + Bitmap::init(); TALK::init(); // Initialise engine objects @@ -77,22 +77,22 @@ void CGEEngine::setup() { InfoLine = new INFO_LINE(this, INFO_W); _cavLight = new Sprite(this, PR); DebugLine = new INFO_LINE(this, SCR_WID); - MB[0] = new BITMAP("BRICK"); + MB[0] = new Bitmap("BRICK"); MB[1] = NULL; - HL[0] = new BITMAP("HLINE"); + HL[0] = new Bitmap("HLINE"); HL[1] = NULL; - MC[0] = new BITMAP("MOUSE"); - MC[1] = new BITMAP("DUMMY"); + MC[0] = new Bitmap("MOUSE"); + MC[1] = new Bitmap("DUMMY"); MC[2] = NULL; - PR[0] = new BITMAP("PRESS"); + PR[0] = new Bitmap("PRESS"); PR[1] = NULL; - SP[0] = new BITMAP("SPK_L"); - SP[1] = new BITMAP("SPK_R"); + SP[0] = new Bitmap("SPK_L"); + SP[1] = new Bitmap("SPK_R"); SP[2] = NULL; - LI[0] = new BITMAP("LITE0"); - LI[1] = new BITMAP("LITE1"); - LI[2] = new BITMAP("LITE2"); - LI[3] = new BITMAP("LITE3"); + LI[0] = new Bitmap("LITE0"); + LI[1] = new Bitmap("LITE1"); + LI[2] = new Bitmap("LITE2"); + LI[3] = new Bitmap("LITE3"); LI[4] = NULL; Snail = new SNAIL(this, false); Snail_ = new SNAIL(this, true); @@ -105,7 +105,7 @@ CGEEngine::~CGEEngine() { // Call classes with static members to clear them up TALK::deinit(); - BITMAP::deinit(); + Bitmap::deinit(); VFILE::deinit(); VGA::deinit(); -- cgit v1.2.3 From f59c910b8f41cfa9eeda88ce5f4d5c2a18b97662 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Thu, 30 Jun 2011 08:30:23 +0200 Subject: CGE: Some more renaming (wip) --- engines/cge/cge.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 885aa4d492..c921d7c6ba 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -77,22 +77,22 @@ void CGEEngine::setup() { InfoLine = new INFO_LINE(this, INFO_W); _cavLight = new Sprite(this, PR); DebugLine = new INFO_LINE(this, SCR_WID); - MB[0] = new Bitmap("BRICK"); + MB[0] = new Bitmap("BRICK", true); MB[1] = NULL; - HL[0] = new Bitmap("HLINE"); + HL[0] = new Bitmap("HLINE", true); HL[1] = NULL; - MC[0] = new Bitmap("MOUSE"); - MC[1] = new Bitmap("DUMMY"); + MC[0] = new Bitmap("MOUSE", true); + MC[1] = new Bitmap("DUMMY", true); MC[2] = NULL; - PR[0] = new Bitmap("PRESS"); + PR[0] = new Bitmap("PRESS", true); PR[1] = NULL; - SP[0] = new Bitmap("SPK_L"); - SP[1] = new Bitmap("SPK_R"); + SP[0] = new Bitmap("SPK_L", true); + SP[1] = new Bitmap("SPK_R", true); SP[2] = NULL; - LI[0] = new Bitmap("LITE0"); - LI[1] = new Bitmap("LITE1"); - LI[2] = new Bitmap("LITE2"); - LI[3] = new Bitmap("LITE3"); + LI[0] = new Bitmap("LITE0", true); + LI[1] = new Bitmap("LITE1", true); + LI[2] = new Bitmap("LITE2", true); + LI[3] = new Bitmap("LITE3", true); LI[4] = NULL; Snail = new SNAIL(this, false); Snail_ = new SNAIL(this, true); -- cgit v1.2.3 From c982298cbdf8220aa9a8151233e972f2c886c5fc Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Fri, 1 Jul 2011 18:17:58 +1000 Subject: CGE: Fix initialisation of the MOUSE class --- engines/cge/cge.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index c921d7c6ba..e844322e0e 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -67,7 +67,6 @@ void CGEEngine::setup() { Hero = new WALK(this, NULL); Sys = new SYSTEM(this); _pocLight = new Sprite(this, LI); - Mouse = new MOUSE(this); for (int i = 0; i < POCKET_NX; i++) _pocket[i] = new Sprite(this, NULL); _sprite = new Sprite(this, NULL); @@ -97,6 +96,7 @@ void CGEEngine::setup() { Snail = new SNAIL(this, false); Snail_ = new SNAIL(this, true); + Mouse = new MOUSE(this); OffUseCount = atoi(Text->getText(OFF_USE_COUNT)); } -- cgit v1.2.3 From 8e531d0da391b895a573c36c4b1bd8074571df83 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 2 Jul 2011 01:02:14 +0200 Subject: CGE: Some more renaming (WIP) --- engines/cge/cge.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index e844322e0e..43d74ab3a5 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -61,7 +61,7 @@ void CGEEngine::setup() { TALK::init(); // Initialise engine objects - Text = new TEXT(this, ProgName(), 128); + Text = new TEXT(this, progName(), 128); Vga = new VGA(M13H); _heart = new Heart; Hero = new WALK(this, NULL); -- cgit v1.2.3 From d55401c2e10276827372f8df29418937cc2daf22 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 2 Jul 2011 16:46:31 +1000 Subject: CGE: Changed MOUSE class from using static fields to an instantiated class --- engines/cge/cge.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 43d74ab3a5..3feb8f64d2 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -96,7 +96,8 @@ void CGEEngine::setup() { Snail = new SNAIL(this, false); Snail_ = new SNAIL(this, true); - Mouse = new MOUSE(this); + _mouse = new MOUSE(this); + _keyboard = new Keyboard(); OffUseCount = atoi(Text->getText(OFF_USE_COUNT)); } @@ -121,7 +122,8 @@ CGEEngine::~CGEEngine() { delete Hero; delete Sys; delete _pocLight; - delete Mouse; + delete _keyboard; + delete _mouse; for (int i = 0; i < POCKET_NX; i++) delete _pocket[i]; delete _sprite; -- cgit v1.2.3 From bb3d61b137aea4cab3e82d4f9f93b1dbea27c54e Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 2 Jul 2011 18:38:25 +1000 Subject: CGE: Created an EventManager class and hooked it up to the Keyboard class --- engines/cge/cge.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 3feb8f64d2..f7e66183ce 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -51,6 +51,9 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) } void CGEEngine::setup() { + // Initialise fields + _lastFrame = 0; + // Create debugger console _console = new CGEConsole(this); @@ -98,6 +101,7 @@ void CGEEngine::setup() { _mouse = new MOUSE(this); _keyboard = new Keyboard(); + _eventManager = new EventManager(); OffUseCount = atoi(Text->getText(OFF_USE_COUNT)); } -- cgit v1.2.3 From adb27016294b995eb273663a2c33904050723f96 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 2 Jul 2011 20:38:27 +1000 Subject: CGE: Graceful exit rather than an error --- engines/cge/cge.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index f7e66183ce..da6365ca83 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -119,17 +119,7 @@ CGEEngine::~CGEEngine() { _console = new CGEConsole(this); - // Delete engine objects - delete Text; - delete Vga; - delete _heart; - delete Hero; - delete Sys; - delete _pocLight; - delete _keyboard; - delete _mouse; - for (int i = 0; i < POCKET_NX; i++) - delete _pocket[i]; + // Delete engine objects delete _sprite; delete _miniCave; delete _shadow; @@ -148,8 +138,18 @@ CGEEngine::~CGEEngine() { delete LI[1]; delete LI[2]; delete LI[3]; + delete Text; + delete _heart; + delete _pocLight; + delete _keyboard; + delete _mouse; + for (int i = 0; i < POCKET_NX; i++) + delete _pocket[i]; delete Snail; delete Snail_; + delete Hero; + delete Vga; + delete Sys; } Common::Error CGEEngine::run() { -- cgit v1.2.3 From bdc213846e1c35c7b6b7f5a397f97d8fe334c1b1 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 2 Jul 2011 18:20:41 +0200 Subject: CGE: Some more renaming (WIP) --- engines/cge/cge.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index da6365ca83..4af10b2b8d 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -96,8 +96,8 @@ void CGEEngine::setup() { LI[2] = new Bitmap("LITE2", true); LI[3] = new Bitmap("LITE3", true); LI[4] = NULL; - Snail = new SNAIL(this, false); - Snail_ = new SNAIL(this, true); + _snail = new Snail(this, false); + _snail_ = new Snail(this, true); _mouse = new MOUSE(this); _keyboard = new Keyboard(); @@ -145,8 +145,8 @@ CGEEngine::~CGEEngine() { delete _mouse; for (int i = 0; i < POCKET_NX; i++) delete _pocket[i]; - delete Snail; - delete Snail_; + delete _snail; + delete _snail_; delete Hero; delete Vga; delete Sys; -- cgit v1.2.3 From dff8bd5474905c924f4039ab079c20b3f145b364 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 3 Jul 2011 17:14:47 +1000 Subject: CGE: Fix some memory leaks --- engines/cge/cge.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 4af10b2b8d..89d5c0a86e 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -117,7 +117,7 @@ CGEEngine::~CGEEngine() { // Remove all of our debug levels here DebugMan.clearAllDebugChannels(); - _console = new CGEConsole(this); + delete _console; // Delete engine objects delete _sprite; -- cgit v1.2.3 From 4116189395a87959f1981ca7ebae0604aa4ca9a4 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sun, 3 Jul 2011 11:28:22 +0200 Subject: CGE: Some more renaming (WIP) --- engines/cge/cge.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 89d5c0a86e..6eae8f3c0e 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -61,10 +61,10 @@ void CGEEngine::setup() { VGA::init(); VFILE::init(); Bitmap::init(); - TALK::init(); + Talk::init(); // Initialise engine objects - Text = new TEXT(this, progName(), 128); + _text = new Text(this, progName(), 128); Vga = new VGA(M13H); _heart = new Heart; Hero = new WALK(this, NULL); @@ -76,9 +76,9 @@ void CGEEngine::setup() { _miniCave = new Sprite(this, NULL); _shadow = new Sprite(this, NULL); _horzLine = new Sprite(this, HL); - InfoLine = new INFO_LINE(this, INFO_W); + _infoLine = new InfoLine(this, INFO_W); _cavLight = new Sprite(this, PR); - DebugLine = new INFO_LINE(this, SCR_WID); + _debugLine = new InfoLine(this, SCR_WID); MB[0] = new Bitmap("BRICK", true); MB[1] = NULL; HL[0] = new Bitmap("HLINE", true); @@ -102,14 +102,14 @@ void CGEEngine::setup() { _mouse = new MOUSE(this); _keyboard = new Keyboard(); _eventManager = new EventManager(); - OffUseCount = atoi(Text->getText(OFF_USE_COUNT)); + _offUseCount = atoi(_text->getText(OFF_USE_COUNT)); } CGEEngine::~CGEEngine() { debug("CGEEngine::~CGEEngine"); // Call classes with static members to clear them up - TALK::deinit(); + Talk::deinit(); Bitmap::deinit(); VFILE::deinit(); VGA::deinit(); @@ -124,9 +124,9 @@ CGEEngine::~CGEEngine() { delete _miniCave; delete _shadow; delete _horzLine; - delete InfoLine; + delete _infoLine; delete _cavLight; - delete DebugLine; + delete _debugLine; delete MB[0]; delete HL[0]; delete MC[0]; @@ -138,7 +138,7 @@ CGEEngine::~CGEEngine() { delete LI[1]; delete LI[2]; delete LI[3]; - delete Text; + delete _text; delete _heart; delete _pocLight; delete _keyboard; -- cgit v1.2.3 From c313d2cce8d647265f192400c667d72824874dbc Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sun, 3 Jul 2011 16:22:26 +0200 Subject: CGE: Even more renaming (WIP) --- engines/cge/cge.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 6eae8f3c0e..0487441517 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -58,17 +58,17 @@ void CGEEngine::setup() { _console = new CGEConsole(this); // Initialise classes that have static members - VGA::init(); - VFILE::init(); + Vga::init(); + VFile::init(); Bitmap::init(); Talk::init(); // Initialise engine objects _text = new Text(this, progName(), 128); - Vga = new VGA(M13H); + _vga = new Vga(M13H); _heart = new Heart; - Hero = new WALK(this, NULL); - Sys = new SYSTEM(this); + _hero = new WALK(this, NULL); + _sys = new SYSTEM(this); _pocLight = new Sprite(this, LI); for (int i = 0; i < POCKET_NX; i++) _pocket[i] = new Sprite(this, NULL); @@ -111,8 +111,8 @@ CGEEngine::~CGEEngine() { // Call classes with static members to clear them up Talk::deinit(); Bitmap::deinit(); - VFILE::deinit(); - VGA::deinit(); + VFile::deinit(); + Vga::deinit(); // Remove all of our debug levels here DebugMan.clearAllDebugChannels(); @@ -147,9 +147,9 @@ CGEEngine::~CGEEngine() { delete _pocket[i]; delete _snail; delete _snail_; - delete Hero; - delete Vga; - delete Sys; + delete _hero; + delete _vga; + delete _sys; } Common::Error CGEEngine::run() { -- cgit v1.2.3 From fae1d7efd885eae98ee9b0c8ae9bc99612942430 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Mon, 4 Jul 2011 08:15:56 +0200 Subject: CGE: This ends the first renaming pass. Also move some functions to CGEEngine --- engines/cge/cge.cpp | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 64 insertions(+), 2 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 0487441517..87c3964563 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -46,7 +46,12 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) // Debug/console setup DebugMan.addDebugChannel(kCGEDebug, "general", "CGE general debug channel"); - _isDemo = _gameDescription->flags & ADGF_DEMO; + _isDemo = _gameDescription->flags & ADGF_DEMO; + _startupMode = 1; + _demoText = DEMO_TEXT; + _oldLev = 0; + _jbw = false; + _pocPtr = 0; } @@ -68,7 +73,7 @@ void CGEEngine::setup() { _vga = new Vga(M13H); _heart = new Heart; _hero = new WALK(this, NULL); - _sys = new SYSTEM(this); + _sys = new System(this); _pocLight = new Sprite(this, LI); for (int i = 0; i < POCKET_NX; i++) _pocket[i] = new Sprite(this, NULL); @@ -103,6 +108,63 @@ void CGEEngine::setup() { _keyboard = new Keyboard(); _eventManager = new EventManager(); _offUseCount = atoi(_text->getText(OFF_USE_COUNT)); + _music = true; + + for (int i = 0; i < POCKET_NX; i++) + _pocref[i] = -1; + _volume[0] = 0; + _volume[1] = 0; + + _savTab[0].Ptr = &_now; + _savTab[0].Len = sizeof(_now); + _savTab[0].Flg = 1; + _savTab[1].Ptr = &_oldLev; + _savTab[1].Len = sizeof(_oldLev); + _savTab[1].Flg = 1; + _savTab[2].Ptr = &_demoText; + _savTab[2].Len = sizeof(_demoText); + _savTab[2].Flg = 1; + _savTab[3].Ptr = &_game; + _savTab[3].Len = sizeof(_game); + _savTab[3].Flg = 1; + _savTab[4].Ptr = &_game; + _savTab[4].Len = sizeof(_game); + _savTab[4].Flg = 1; + _savTab[5].Ptr = &_game; + _savTab[5].Len = sizeof(_game); + _savTab[5].Flg = 1; + _savTab[6].Ptr = &_game; + _savTab[6].Len = sizeof(_game); + _savTab[6].Flg = 1; + _savTab[7].Ptr = &_game; + _savTab[7].Len = sizeof(_game); + _savTab[7].Flg = 1; + _savTab[8].Ptr = &_vga->_mono; + _savTab[8].Len = sizeof(_vga->_mono); + _savTab[8].Flg = 0; + _savTab[9].Ptr = &_music; + _savTab[9].Len = sizeof(_music); + _savTab[9].Flg = 1; + _savTab[10].Ptr = _volume; + _savTab[10].Len = sizeof(_volume); + _savTab[10].Flg = 1; + _savTab[11].Ptr = _flag; + _savTab[11].Len = sizeof(_flag); + _savTab[11].Flg = 1; + _savTab[12].Ptr = _heroXY; +// _savTab[12].Len = sizeof(_heroXY); FIXME: illegal sizeof + _savTab[12].Len = 0; + _savTab[12].Flg = 1; + _savTab[13].Ptr = _barriers; +// _savTab[13].Len = sizeof(_barriers); FIXME: illegal sizeof + _savTab[13].Len = 0; + _savTab[13].Flg = 1; + _savTab[14].Ptr = _pocref; + _savTab[14].Len = sizeof(_pocref); + _savTab[14].Flg = 1; + _savTab[15].Ptr = NULL; + _savTab[15].Len = 0; + _savTab[15].Flg = 0; } CGEEngine::~CGEEngine() { -- cgit v1.2.3 From 41c7482a525951407dfa09b9793eeef140f21979 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Tue, 5 Jul 2011 20:51:29 +1000 Subject: CGE: Implement random number source --- engines/cge/cge.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 87c3964563..7eeb20bebb 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -41,7 +41,7 @@ namespace CGE { CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) - : Engine(syst), _gameDescription(gameDescription) { + : Engine(syst), _gameDescription(gameDescription), _randomSource("cge") { // Debug/console setup DebugMan.addDebugChannel(kCGEDebug, "general", "CGE general debug channel"); -- cgit v1.2.3 From 44490c378dd78f8a51203ca8c3d45126bbd9fd08 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Tue, 5 Jul 2011 21:07:14 +1000 Subject: CGE: _hero isn't meant to be instantiated during the engine setup --- engines/cge/cge.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 7eeb20bebb..df40db55e6 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -58,6 +58,7 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) void CGEEngine::setup() { // Initialise fields _lastFrame = 0; + _hero = NULL; // Create debugger console _console = new CGEConsole(this); @@ -72,7 +73,6 @@ void CGEEngine::setup() { _text = new Text(this, progName(), 128); _vga = new Vga(M13H); _heart = new Heart; - _hero = new WALK(this, NULL); _sys = new System(this); _pocLight = new Sprite(this, LI); for (int i = 0; i < POCKET_NX; i++) -- cgit v1.2.3 From c676f88da02f56a8b7caecb83bcf9e1a9f7e663c Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Tue, 5 Jul 2011 21:39:14 +1000 Subject: CGE: Rearrange engine setup so sprite arrays are setup before they're needed --- engines/cge/cge.cpp | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index df40db55e6..eee359b74c 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -69,21 +69,7 @@ void CGEEngine::setup() { Bitmap::init(); Talk::init(); - // Initialise engine objects - _text = new Text(this, progName(), 128); - _vga = new Vga(M13H); - _heart = new Heart; - _sys = new System(this); - _pocLight = new Sprite(this, LI); - for (int i = 0; i < POCKET_NX; i++) - _pocket[i] = new Sprite(this, NULL); - _sprite = new Sprite(this, NULL); - _miniCave = new Sprite(this, NULL); - _shadow = new Sprite(this, NULL); - _horzLine = new Sprite(this, HL); - _infoLine = new InfoLine(this, INFO_W); - _cavLight = new Sprite(this, PR); - _debugLine = new InfoLine(this, SCR_WID); + // Initialise sprite arrays used by game objects MB[0] = new Bitmap("BRICK", true); MB[1] = NULL; HL[0] = new Bitmap("HLINE", true); @@ -101,6 +87,22 @@ void CGEEngine::setup() { LI[2] = new Bitmap("LITE2", true); LI[3] = new Bitmap("LITE3", true); LI[4] = NULL; + + // Initialise engine objects + _text = new Text(this, progName(), 128); + _vga = new Vga(M13H); + _heart = new Heart; + _sys = new System(this); + _pocLight = new Sprite(this, LI); + for (int i = 0; i < POCKET_NX; i++) + _pocket[i] = new Sprite(this, NULL); + _sprite = new Sprite(this, NULL); + _miniCave = new Sprite(this, NULL); + _shadow = new Sprite(this, NULL); + _horzLine = new Sprite(this, HL); + _infoLine = new InfoLine(this, INFO_W); + _cavLight = new Sprite(this, PR); + _debugLine = new InfoLine(this, SCR_WID); _snail = new Snail(this, false); _snail_ = new Snail(this, true); -- cgit v1.2.3 From c86c62b288dd3c8a1a630864142f99b177e4db3a Mon Sep 17 00:00:00 2001 From: Strangerke Date: Tue, 5 Jul 2011 23:13:12 +0200 Subject: CGE: Cleanup and renaming. Also move some static and global functions to CGEEngine. --- engines/cge/cge.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index eee359b74c..067b9eb6e9 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -167,6 +167,27 @@ void CGEEngine::setup() { _savTab[15].Ptr = NULL; _savTab[15].Len = 0; _savTab[15].Flg = 0; + + if (_isDemo) { + _maxCaveArr[0] = CAVE_MAX; + _maxCaveArr[1] = -1; + _maxCaveArr[2] = -1; + _maxCaveArr[3] = -1; + _maxCaveArr[4] = -1; + } else { + _maxCaveArr[0] = 1; + _maxCaveArr[1] = 8; + _maxCaveArr[2] = 16; + _maxCaveArr[3] = 23; + _maxCaveArr[4] = 24; + }; + _maxCave = 0; + _dark = false; + _game = false; + _now = 1; + _lev = -1; + + } CGEEngine::~CGEEngine() { -- cgit v1.2.3 From affaa1f4d6cf5f27f654029133b1aec7b9eca4b5 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Thu, 7 Jul 2011 08:11:29 +0200 Subject: CGE: Some cleanup: Move some static functions to CGEEngine, remove parameters to GetText, rename members of SavTab --- engines/cge/cge.cpp | 102 ++++++++++++++++++++++++++-------------------------- 1 file changed, 52 insertions(+), 50 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 067b9eb6e9..b953f2f5b0 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -117,56 +117,56 @@ void CGEEngine::setup() { _volume[0] = 0; _volume[1] = 0; - _savTab[0].Ptr = &_now; - _savTab[0].Len = sizeof(_now); - _savTab[0].Flg = 1; - _savTab[1].Ptr = &_oldLev; - _savTab[1].Len = sizeof(_oldLev); - _savTab[1].Flg = 1; - _savTab[2].Ptr = &_demoText; - _savTab[2].Len = sizeof(_demoText); - _savTab[2].Flg = 1; - _savTab[3].Ptr = &_game; - _savTab[3].Len = sizeof(_game); - _savTab[3].Flg = 1; - _savTab[4].Ptr = &_game; - _savTab[4].Len = sizeof(_game); - _savTab[4].Flg = 1; - _savTab[5].Ptr = &_game; - _savTab[5].Len = sizeof(_game); - _savTab[5].Flg = 1; - _savTab[6].Ptr = &_game; - _savTab[6].Len = sizeof(_game); - _savTab[6].Flg = 1; - _savTab[7].Ptr = &_game; - _savTab[7].Len = sizeof(_game); - _savTab[7].Flg = 1; - _savTab[8].Ptr = &_vga->_mono; - _savTab[8].Len = sizeof(_vga->_mono); - _savTab[8].Flg = 0; - _savTab[9].Ptr = &_music; - _savTab[9].Len = sizeof(_music); - _savTab[9].Flg = 1; - _savTab[10].Ptr = _volume; - _savTab[10].Len = sizeof(_volume); - _savTab[10].Flg = 1; - _savTab[11].Ptr = _flag; - _savTab[11].Len = sizeof(_flag); - _savTab[11].Flg = 1; - _savTab[12].Ptr = _heroXY; -// _savTab[12].Len = sizeof(_heroXY); FIXME: illegal sizeof - _savTab[12].Len = 0; - _savTab[12].Flg = 1; - _savTab[13].Ptr = _barriers; -// _savTab[13].Len = sizeof(_barriers); FIXME: illegal sizeof - _savTab[13].Len = 0; - _savTab[13].Flg = 1; - _savTab[14].Ptr = _pocref; - _savTab[14].Len = sizeof(_pocref); - _savTab[14].Flg = 1; - _savTab[15].Ptr = NULL; - _savTab[15].Len = 0; - _savTab[15].Flg = 0; + _savTab[0]._ptr = &_now; + _savTab[0]._len = sizeof(_now); + _savTab[0]._flag = true; + _savTab[1]._ptr = &_oldLev; + _savTab[1]._len = sizeof(_oldLev); + _savTab[1]._flag = true; + _savTab[2]._ptr = &_demoText; + _savTab[2]._len = sizeof(_demoText); + _savTab[2]._flag = true; + _savTab[3]._ptr = &_game; + _savTab[3]._len = sizeof(_game); + _savTab[3]._flag = true; + _savTab[4]._ptr = &_game; + _savTab[4]._len = sizeof(_game); + _savTab[4]._flag = true; + _savTab[5]._ptr = &_game; + _savTab[5]._len = sizeof(_game); + _savTab[5]._flag = true; + _savTab[6]._ptr = &_game; + _savTab[6]._len = sizeof(_game); + _savTab[6]._flag = true; + _savTab[7]._ptr = &_game; + _savTab[7]._len = sizeof(_game); + _savTab[7]._flag = true; + _savTab[8]._ptr = &_vga->_mono; + _savTab[8]._len = sizeof(_vga->_mono); + _savTab[8]._flag = false; + _savTab[9]._ptr = &_music; + _savTab[9]._len = sizeof(_music); + _savTab[9]._flag = true; + _savTab[10]._ptr = _volume; + _savTab[10]._len = sizeof(_volume); + _savTab[10]._flag = true; + _savTab[11]._ptr = _flag; + _savTab[11]._len = sizeof(_flag); + _savTab[11]._flag = true; + _savTab[12]._ptr = _heroXY; +// _savTab[12]._len = sizeof(_heroXY); FIXME: illegal sizeof + _savTab[12]._len = 0; + _savTab[12]._flag = true; + _savTab[13]._ptr = _barriers; +// _savTab[13]._len = sizeof(_barriers); FIXME: illegal sizeof + _savTab[13]._len = 0; + _savTab[13]._flag = true; + _savTab[14]._ptr = _pocref; + _savTab[14]._len = sizeof(_pocref); + _savTab[14]._flag = true; + _savTab[15]._ptr = NULL; + _savTab[15]._len = 0; + _savTab[15]._flag = false; if (_isDemo) { _maxCaveArr[0] = CAVE_MAX; @@ -187,6 +187,8 @@ void CGEEngine::setup() { _now = 1; _lev = -1; + for (int i = 0; i < 4; i++) + _flag[i] = false; } -- cgit v1.2.3 From fe2e1bb2fd11d4f9e656f1e9392dc8e97c069d73 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Thu, 7 Jul 2011 20:43:09 +0200 Subject: CGE: Remove "bitmaps" files --- engines/cge/cge.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index b953f2f5b0..4c21b21f87 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -34,7 +34,6 @@ #include "cge/cge_main.h" #include "cge/talk.h" #include "cge/text.h" -#include "cge/bitmaps.h" #include "cge/vol.h" -- cgit v1.2.3 From 080d7cf7f082b5faa245da965211a099ed37fd2b Mon Sep 17 00:00:00 2001 From: Strangerke Date: Fri, 8 Jul 2011 08:21:35 +0200 Subject: CGE: Rename Mouse class --- engines/cge/cge.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 4c21b21f87..2c173b8990 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -105,7 +105,7 @@ void CGEEngine::setup() { _snail = new Snail(this, false); _snail_ = new Snail(this, true); - _mouse = new MOUSE(this); + _mouse = new Mouse(this); _keyboard = new Keyboard(); _eventManager = new EventManager(); _offUseCount = atoi(_text->getText(OFF_USE_COUNT)); -- cgit v1.2.3 From 989e071bb9d101696f5498d1eeea5e32c7291e5d Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 10 Jul 2011 09:44:46 +1000 Subject: CGE: Implemented code for saving games, removing the need for the SavTab array --- engines/cge/cge.cpp | 51 --------------------------------------------------- 1 file changed, 51 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 2c173b8990..25fc4f7c00 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -116,57 +116,6 @@ void CGEEngine::setup() { _volume[0] = 0; _volume[1] = 0; - _savTab[0]._ptr = &_now; - _savTab[0]._len = sizeof(_now); - _savTab[0]._flag = true; - _savTab[1]._ptr = &_oldLev; - _savTab[1]._len = sizeof(_oldLev); - _savTab[1]._flag = true; - _savTab[2]._ptr = &_demoText; - _savTab[2]._len = sizeof(_demoText); - _savTab[2]._flag = true; - _savTab[3]._ptr = &_game; - _savTab[3]._len = sizeof(_game); - _savTab[3]._flag = true; - _savTab[4]._ptr = &_game; - _savTab[4]._len = sizeof(_game); - _savTab[4]._flag = true; - _savTab[5]._ptr = &_game; - _savTab[5]._len = sizeof(_game); - _savTab[5]._flag = true; - _savTab[6]._ptr = &_game; - _savTab[6]._len = sizeof(_game); - _savTab[6]._flag = true; - _savTab[7]._ptr = &_game; - _savTab[7]._len = sizeof(_game); - _savTab[7]._flag = true; - _savTab[8]._ptr = &_vga->_mono; - _savTab[8]._len = sizeof(_vga->_mono); - _savTab[8]._flag = false; - _savTab[9]._ptr = &_music; - _savTab[9]._len = sizeof(_music); - _savTab[9]._flag = true; - _savTab[10]._ptr = _volume; - _savTab[10]._len = sizeof(_volume); - _savTab[10]._flag = true; - _savTab[11]._ptr = _flag; - _savTab[11]._len = sizeof(_flag); - _savTab[11]._flag = true; - _savTab[12]._ptr = _heroXY; -// _savTab[12]._len = sizeof(_heroXY); FIXME: illegal sizeof - _savTab[12]._len = 0; - _savTab[12]._flag = true; - _savTab[13]._ptr = _barriers; -// _savTab[13]._len = sizeof(_barriers); FIXME: illegal sizeof - _savTab[13]._len = 0; - _savTab[13]._flag = true; - _savTab[14]._ptr = _pocref; - _savTab[14]._len = sizeof(_pocref); - _savTab[14]._flag = true; - _savTab[15]._ptr = NULL; - _savTab[15]._len = 0; - _savTab[15]._flag = false; - if (_isDemo) { _maxCaveArr[0] = CAVE_MAX; _maxCaveArr[1] = -1; -- cgit v1.2.3 From 1e83e27925e121ee50b3ee66f5fb007e2d6b338f Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 10 Jul 2011 09:51:18 +1000 Subject: CGE: Moved MB sprite array into Square class --- engines/cge/cge.cpp | 3 --- 1 file changed, 3 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 25fc4f7c00..4fca901873 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -69,8 +69,6 @@ void CGEEngine::setup() { Talk::init(); // Initialise sprite arrays used by game objects - MB[0] = new Bitmap("BRICK", true); - MB[1] = NULL; HL[0] = new Bitmap("HLINE", true); HL[1] = NULL; MC[0] = new Bitmap("MOUSE", true); @@ -162,7 +160,6 @@ CGEEngine::~CGEEngine() { delete _infoLine; delete _cavLight; delete _debugLine; - delete MB[0]; delete HL[0]; delete MC[0]; delete MC[1]; -- cgit v1.2.3 From 817a52ed56abc172b158d794501f2bff0ab70e94 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 10 Jul 2011 09:57:19 +1000 Subject: CGE: Created a HorizLine stub class to hold the HL sprite array --- engines/cge/cge.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 4fca901873..1fba9dfdc2 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -69,8 +69,6 @@ void CGEEngine::setup() { Talk::init(); // Initialise sprite arrays used by game objects - HL[0] = new Bitmap("HLINE", true); - HL[1] = NULL; MC[0] = new Bitmap("MOUSE", true); MC[1] = new Bitmap("DUMMY", true); MC[2] = NULL; @@ -96,7 +94,7 @@ void CGEEngine::setup() { _sprite = new Sprite(this, NULL); _miniCave = new Sprite(this, NULL); _shadow = new Sprite(this, NULL); - _horzLine = new Sprite(this, HL); + _horzLine = new HorizLine(this); _infoLine = new InfoLine(this, INFO_W); _cavLight = new Sprite(this, PR); _debugLine = new InfoLine(this, SCR_WID); @@ -160,7 +158,6 @@ CGEEngine::~CGEEngine() { delete _infoLine; delete _cavLight; delete _debugLine; - delete HL[0]; delete MC[0]; delete MC[1]; delete PR[0]; -- cgit v1.2.3 From 9d40a1ba9d79fd8623dc0525cf25cfc4756a36d2 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 10 Jul 2011 10:00:57 +1000 Subject: CGE: Mouse MC sprite array into the Mouse class --- engines/cge/cge.cpp | 5 ----- 1 file changed, 5 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 1fba9dfdc2..5ce83f109d 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -69,9 +69,6 @@ void CGEEngine::setup() { Talk::init(); // Initialise sprite arrays used by game objects - MC[0] = new Bitmap("MOUSE", true); - MC[1] = new Bitmap("DUMMY", true); - MC[2] = NULL; PR[0] = new Bitmap("PRESS", true); PR[1] = NULL; SP[0] = new Bitmap("SPK_L", true); @@ -158,8 +155,6 @@ CGEEngine::~CGEEngine() { delete _infoLine; delete _cavLight; delete _debugLine; - delete MC[0]; - delete MC[1]; delete PR[0]; delete SP[0]; delete SP[1]; -- cgit v1.2.3 From 622dc2d503c247e750d82fb9dea885bcf14881ed Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 10 Jul 2011 10:04:41 +1000 Subject: CGE: Created a CavLight class to encapsulate the PR sprite array --- engines/cge/cge.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 5ce83f109d..6dbe12d9c6 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -69,8 +69,6 @@ void CGEEngine::setup() { Talk::init(); // Initialise sprite arrays used by game objects - PR[0] = new Bitmap("PRESS", true); - PR[1] = NULL; SP[0] = new Bitmap("SPK_L", true); SP[1] = new Bitmap("SPK_R", true); SP[2] = NULL; @@ -93,7 +91,7 @@ void CGEEngine::setup() { _shadow = new Sprite(this, NULL); _horzLine = new HorizLine(this); _infoLine = new InfoLine(this, INFO_W); - _cavLight = new Sprite(this, PR); + _cavLight = new CavLight(this); _debugLine = new InfoLine(this, SCR_WID); _snail = new Snail(this, false); _snail_ = new Snail(this, true); @@ -155,7 +153,6 @@ CGEEngine::~CGEEngine() { delete _infoLine; delete _cavLight; delete _debugLine; - delete PR[0]; delete SP[0]; delete SP[1]; delete LI[0]; -- cgit v1.2.3 From 47b17cd1cec22dfaafe80ce23805587d3a6e4821 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 10 Jul 2011 10:07:35 +1000 Subject: CGE: Create Spike class to encapsulate the SP spite array --- engines/cge/cge.cpp | 5 ----- 1 file changed, 5 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 6dbe12d9c6..1df0165e5d 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -69,9 +69,6 @@ void CGEEngine::setup() { Talk::init(); // Initialise sprite arrays used by game objects - SP[0] = new Bitmap("SPK_L", true); - SP[1] = new Bitmap("SPK_R", true); - SP[2] = NULL; LI[0] = new Bitmap("LITE0", true); LI[1] = new Bitmap("LITE1", true); LI[2] = new Bitmap("LITE2", true); @@ -153,8 +150,6 @@ CGEEngine::~CGEEngine() { delete _infoLine; delete _cavLight; delete _debugLine; - delete SP[0]; - delete SP[1]; delete LI[0]; delete LI[1]; delete LI[2]; -- cgit v1.2.3 From 0bbefbef901e5bf5686f6fe0b49ebbdc9f89a3df Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 10 Jul 2011 10:10:51 +1000 Subject: CGE: Created PocLight class to encapsulate the LI sprite array --- engines/cge/cge.cpp | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 1df0165e5d..2957ba87f1 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -68,19 +68,12 @@ void CGEEngine::setup() { Bitmap::init(); Talk::init(); - // Initialise sprite arrays used by game objects - LI[0] = new Bitmap("LITE0", true); - LI[1] = new Bitmap("LITE1", true); - LI[2] = new Bitmap("LITE2", true); - LI[3] = new Bitmap("LITE3", true); - LI[4] = NULL; - // Initialise engine objects _text = new Text(this, progName(), 128); _vga = new Vga(M13H); _heart = new Heart; _sys = new System(this); - _pocLight = new Sprite(this, LI); + _pocLight = new PocLight(this); for (int i = 0; i < POCKET_NX; i++) _pocket[i] = new Sprite(this, NULL); _sprite = new Sprite(this, NULL); @@ -150,10 +143,6 @@ CGEEngine::~CGEEngine() { delete _infoLine; delete _cavLight; delete _debugLine; - delete LI[0]; - delete LI[1]; - delete LI[2]; - delete LI[3]; delete _text; delete _heart; delete _pocLight; -- cgit v1.2.3 From 88c7b25e5b0cdf8bb0709f0f7e728f637e72b33c Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 10 Jul 2011 17:56:29 +1000 Subject: CGE: Fixed more free/delete[] mismatches identified by Valgrind --- engines/cge/cge.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 2957ba87f1..731f92854e 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -136,6 +136,8 @@ CGEEngine::~CGEEngine() { delete _console; // Delete engine objects + delete _vga; + delete _sys; delete _sprite; delete _miniCave; delete _shadow; @@ -153,8 +155,6 @@ CGEEngine::~CGEEngine() { delete _snail; delete _snail_; delete _hero; - delete _vga; - delete _sys; } Common::Error CGEEngine::run() { -- cgit v1.2.3 From a693ff2ecfa960b25ac33a936ef8b7b6055e68ae Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 10 Jul 2011 19:23:14 +1000 Subject: CGE: A few more fixes for memory leaks identified by Valgrind --- engines/cge/cge.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 731f92854e..55b79d5b35 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -78,7 +78,9 @@ void CGEEngine::setup() { _pocket[i] = new Sprite(this, NULL); _sprite = new Sprite(this, NULL); _miniCave = new Sprite(this, NULL); + _miniCave->_flags._kill = false; _shadow = new Sprite(this, NULL); + _shadow->_flags._kill = false; _horzLine = new HorizLine(this); _infoLine = new InfoLine(this, INFO_W); _cavLight = new CavLight(this); @@ -138,7 +140,7 @@ CGEEngine::~CGEEngine() { // Delete engine objects delete _vga; delete _sys; - delete _sprite; + //delete _sprite; Sprite is destroyed by the queue it's added to delete _miniCave; delete _shadow; delete _horzLine; -- cgit v1.2.3 From e2b19ad9b0bc3e2a437eaab3aaa62302e0e892d3 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Tue, 12 Jul 2011 21:53:07 +1000 Subject: CGE: Fixed several memory leaks of main objects --- engines/cge/cge.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 55b79d5b35..884af2cd46 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -74,8 +74,10 @@ void CGEEngine::setup() { _heart = new Heart; _sys = new System(this); _pocLight = new PocLight(this); - for (int i = 0; i < POCKET_NX; i++) + for (int i = 0; i < POCKET_NX; i++) { _pocket[i] = new Sprite(this, NULL); + _pocket[i]->_flags._kill = false; + } _sprite = new Sprite(this, NULL); _miniCave = new Sprite(this, NULL); _miniCave->_flags._kill = false; -- cgit v1.2.3 From 6c9719009223947572c8e81fdefe9e4cd17f717f Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Wed, 13 Jul 2011 19:18:23 +1000 Subject: CGE: Fixed initialising of _shadow that was crashing the intro sequence --- engines/cge/cge.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 884af2cd46..527b16d288 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -58,6 +58,7 @@ void CGEEngine::setup() { // Initialise fields _lastFrame = 0; _hero = NULL; + _shadow = NULL; // Create debugger console _console = new CGEConsole(this); @@ -81,8 +82,6 @@ void CGEEngine::setup() { _sprite = new Sprite(this, NULL); _miniCave = new Sprite(this, NULL); _miniCave->_flags._kill = false; - _shadow = new Sprite(this, NULL); - _shadow->_flags._kill = false; _horzLine = new HorizLine(this); _infoLine = new InfoLine(this, INFO_W); _cavLight = new CavLight(this); -- cgit v1.2.3 From 324ccb1760b4915d91b58e643bd0d079eaa095f6 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Wed, 13 Jul 2011 21:04:44 +1000 Subject: CGE: Split pathfinding related code into walk.cpp --- engines/cge/cge.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 527b16d288..0861e3e7f2 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -35,7 +35,7 @@ #include "cge/talk.h" #include "cge/text.h" #include "cge/vol.h" - +#include "cge/walk.h" namespace CGE { -- cgit v1.2.3 From 11fa6b941c520129c017c946474114afa71fe41f Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Fri, 15 Jul 2011 20:43:29 +1000 Subject: CGE: Fix some errors in the pathfinder setup --- engines/cge/cge.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 0861e3e7f2..e192774f45 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -68,6 +68,7 @@ void CGEEngine::setup() { VFile::init(); Bitmap::init(); Talk::init(); + Cluster::init(this); // Initialise engine objects _text = new Text(this, progName(), 128); @@ -132,6 +133,7 @@ CGEEngine::~CGEEngine() { Bitmap::deinit(); VFile::deinit(); Vga::deinit(); + Cluster::init(this); // Remove all of our debug levels here DebugMan.clearAllDebugChannels(); -- cgit v1.2.3 From 453fbb7454b5e6d517febd29aea4e589c44247bf Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Fri, 15 Jul 2011 22:56:49 +1000 Subject: CGE: Bugfixes for loading the room preview shapes list --- engines/cge/cge.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index e192774f45..5c1bf2caf0 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -36,6 +36,7 @@ #include "cge/text.h" #include "cge/vol.h" #include "cge/walk.h" +#include "cge/startup.h" namespace CGE { @@ -95,6 +96,7 @@ void CGEEngine::setup() { _eventManager = new EventManager(); _offUseCount = atoi(_text->getText(OFF_USE_COUNT)); _music = true; + _mini = new byte[MINI_EMM_SIZE]; for (int i = 0; i < POCKET_NX; i++) _pocref[i] = -1; @@ -160,6 +162,7 @@ CGEEngine::~CGEEngine() { delete _snail; delete _snail_; delete _hero; + delete[] _mini; } Common::Error CGEEngine::run() { -- cgit v1.2.3 From c3f3120194151cdeb31d9b3622c76cd4e5b7ed6a Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 16 Jul 2011 15:17:18 +1000 Subject: CGE: Cleaned up room preview handling code and fixed memory leak --- engines/cge/cge.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 5c1bf2caf0..6924f0b14e 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -60,6 +60,9 @@ void CGEEngine::setup() { _lastFrame = 0; _hero = NULL; _shadow = NULL; + _miniCave = NULL; + _miniShp = NULL; + _miniShpList = NULL; // Create debugger console _console = new CGEConsole(this); @@ -82,8 +85,6 @@ void CGEEngine::setup() { _pocket[i]->_flags._kill = false; } _sprite = new Sprite(this, NULL); - _miniCave = new Sprite(this, NULL); - _miniCave->_flags._kill = false; _horzLine = new HorizLine(this); _infoLine = new InfoLine(this, INFO_W); _cavLight = new CavLight(this); -- cgit v1.2.3 From 00061bc5dd6492fcb3be9781b134f1928f69205b Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 16 Jul 2011 21:12:19 +1000 Subject: CGE: Added support for GMM save/load and launcher loading --- engines/cge/cge.cpp | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 6924f0b14e..bb5b786330 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -126,6 +126,7 @@ void CGEEngine::setup() { for (int i = 0; i < 4; i++) _flag[i] = false; + _startGameSlot = ConfMan.hasKey("save_slot") ? ConfMan.getInt("save_slot") : -1; } CGEEngine::~CGEEngine() { @@ -173,12 +174,25 @@ Common::Error CGEEngine::run() { // Setup necessary game objects setup(); - // Additional setup. - debug("CGEEngine::init"); - + // Run the game cge_main(); return Common::kNoError; } +bool CGEEngine::hasFeature(EngineFeature f) const { + return + (f == kSupportsRTL) || + (f == kSupportsLoadingDuringRuntime) || + (f == kSupportsSavingDuringRuntime); +} + +bool CGEEngine::canLoadGameStateCurrently() { + return (_startupMode == 0) && _mouse->_active; +} + +bool CGEEngine::canSaveGameStateCurrently() { + return (_startupMode == 0) && _mouse->_active; +} + } // End of namespace CGE -- cgit v1.2.3 From e1df646ace3f0b487ef810a5489c3f0c2090da71 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 16 Jul 2011 22:28:49 +1000 Subject: CGE: Set up a separate variable for the game tick speed, independent from frame rate --- engines/cge/cge.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index bb5b786330..97712591fa 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -58,6 +58,7 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) void CGEEngine::setup() { // Initialise fields _lastFrame = 0; + _lastTick = 0; _hero = NULL; _shadow = NULL; _miniCave = NULL; -- cgit v1.2.3 From 8aa4f739af014303cc6a0fb90f13c22a1f77d33f Mon Sep 17 00:00:00 2001 From: Strangerke Date: Mon, 18 Jul 2011 18:05:57 +0200 Subject: CGE: Add debug channels (WIP) --- engines/cge/cge.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 97712591fa..7e8c8377a8 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -45,6 +45,9 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) // Debug/console setup DebugMan.addDebugChannel(kCGEDebug, "general", "CGE general debug channel"); + DebugMan.addDebugChannel(kDebugBitmap, "bitmap", "CGE Bitmap debug channel"); + DebugMan.addDebugChannel(kDebugFile, "file", "CGE IO debug channel"); + DebugMan.addDebugChannel(kDebugEngine, "engine", "CGE Engine debug channel"); _isDemo = _gameDescription->flags & ADGF_DEMO; _startupMode = 1; @@ -56,6 +59,8 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) } void CGEEngine::setup() { + debugC(1, kDebugEngine, "CGEEngine::setup()"); + // Initialise fields _lastFrame = 0; _lastTick = 0; @@ -131,7 +136,7 @@ void CGEEngine::setup() { } CGEEngine::~CGEEngine() { - debug("CGEEngine::~CGEEngine"); + debugC(1, kDebugEngine, "CGEEngine::~CGEEngine()"); // Call classes with static members to clear them up Talk::deinit(); @@ -169,12 +174,13 @@ CGEEngine::~CGEEngine() { } Common::Error CGEEngine::run() { + debugC(1, kDebugEngine, "CGEEngine::run()"); + // Initialize graphics using following: initGraphics(320, 200, false); // Setup necessary game objects setup(); - // Run the game cge_main(); -- cgit v1.2.3 From 17003d0e906f776996b483a18e463b1994c8fb61 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Mon, 18 Jul 2011 23:14:22 +0200 Subject: CGE: Fix name of showBak() --- engines/cge/cge.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 7e8c8377a8..239fc89dfc 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -123,11 +123,12 @@ void CGEEngine::setup() { _maxCaveArr[3] = 23; _maxCaveArr[4] = 24; }; - _maxCave = 0; - _dark = false; - _game = false; - _now = 1; - _lev = -1; + _maxCave = 0; + _dark = false; + _game = false; + _now = 1; + _lev = -1; + _recentStep = -2; for (int i = 0; i < 4; i++) _flag[i] = false; -- cgit v1.2.3 From 420516b45e1822c249775c68f9c61b62aba5de0b Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 20 Jul 2011 14:22:56 +0200 Subject: CGE: Rename Debug channel constants --- engines/cge/cge.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 239fc89dfc..a3478b14f8 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -44,10 +44,9 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) : Engine(syst), _gameDescription(gameDescription), _randomSource("cge") { // Debug/console setup - DebugMan.addDebugChannel(kCGEDebug, "general", "CGE general debug channel"); - DebugMan.addDebugChannel(kDebugBitmap, "bitmap", "CGE Bitmap debug channel"); - DebugMan.addDebugChannel(kDebugFile, "file", "CGE IO debug channel"); - DebugMan.addDebugChannel(kDebugEngine, "engine", "CGE Engine debug channel"); + DebugMan.addDebugChannel(kCGEDebugBitmap, "bitmap", "CGE Bitmap debug channel"); + DebugMan.addDebugChannel(kCGEDebugFile, "file", "CGE IO debug channel"); + DebugMan.addDebugChannel(kCGEDebugEngine, "engine", "CGE Engine debug channel"); _isDemo = _gameDescription->flags & ADGF_DEMO; _startupMode = 1; @@ -59,7 +58,7 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) } void CGEEngine::setup() { - debugC(1, kDebugEngine, "CGEEngine::setup()"); + debugC(1, kCGEDebugEngine, "CGEEngine::setup()"); // Initialise fields _lastFrame = 0; @@ -137,7 +136,7 @@ void CGEEngine::setup() { } CGEEngine::~CGEEngine() { - debugC(1, kDebugEngine, "CGEEngine::~CGEEngine()"); + debugC(1, kCGEDebugEngine, "CGEEngine::~CGEEngine()"); // Call classes with static members to clear them up Talk::deinit(); @@ -175,7 +174,7 @@ CGEEngine::~CGEEngine() { } Common::Error CGEEngine::run() { - debugC(1, kDebugEngine, "CGEEngine::run()"); + debugC(1, kCGEDebugEngine, "CGEEngine::run()"); // Initialize graphics using following: initGraphics(320, 200, false); -- cgit v1.2.3 From 5d41ab8b5fd778f206633157ffa87efc31f643cf Mon Sep 17 00:00:00 2001 From: Strangerke Date: Thu, 21 Jul 2011 01:56:40 +0200 Subject: CGE: Rename some more constants, remove some useless ones --- engines/cge/cge.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index a3478b14f8..58c32dd575 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -85,15 +85,15 @@ void CGEEngine::setup() { _heart = new Heart; _sys = new System(this); _pocLight = new PocLight(this); - for (int i = 0; i < POCKET_NX; i++) { + for (int i = 0; i < kPocketNX; i++) { _pocket[i] = new Sprite(this, NULL); _pocket[i]->_flags._kill = false; } _sprite = new Sprite(this, NULL); _horzLine = new HorizLine(this); - _infoLine = new InfoLine(this, INFO_W); + _infoLine = new InfoLine(this, kInfoW); _cavLight = new CavLight(this); - _debugLine = new InfoLine(this, SCR_WID); + _debugLine = new InfoLine(this, kScrWidth); _snail = new Snail(this, false); _snail_ = new Snail(this, true); @@ -104,7 +104,7 @@ void CGEEngine::setup() { _music = true; _mini = new byte[MINI_EMM_SIZE]; - for (int i = 0; i < POCKET_NX; i++) + for (int i = 0; i < kPocketNX; i++) _pocref[i] = -1; _volume[0] = 0; _volume[1] = 0; @@ -165,7 +165,7 @@ CGEEngine::~CGEEngine() { delete _pocLight; delete _keyboard; delete _mouse; - for (int i = 0; i < POCKET_NX; i++) + for (int i = 0; i < kPocketNX; i++) delete _pocket[i]; delete _snail; delete _snail_; -- cgit v1.2.3 From 3ef0558aa933ce20242b3f842c235f792a6d2d32 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Fri, 22 Jul 2011 11:54:46 +0200 Subject: CGE: Rename some more constants, some cleanup --- engines/cge/cge.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 58c32dd575..6068dee46e 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -50,7 +50,7 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) _isDemo = _gameDescription->flags & ADGF_DEMO; _startupMode = 1; - _demoText = DEMO_TEXT; + _demoText = kDemo; _oldLev = 0; _jbw = false; _pocPtr = 0; @@ -100,7 +100,7 @@ void CGEEngine::setup() { _mouse = new Mouse(this); _keyboard = new Keyboard(); _eventManager = new EventManager(); - _offUseCount = atoi(_text->getText(OFF_USE_COUNT)); + _offUseCount = atoi(_text->getText(kOffUseCount)); _music = true; _mini = new byte[MINI_EMM_SIZE]; -- cgit v1.2.3 From dad302b640524224cb9381b3cfdcac7f430f0b21 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Mon, 25 Jul 2011 19:09:12 +0200 Subject: CGE: Remove _core from Startup class --- engines/cge/cge.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 6068dee46e..6542518a7e 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -102,20 +102,22 @@ void CGEEngine::setup() { _eventManager = new EventManager(); _offUseCount = atoi(_text->getText(kOffUseCount)); _music = true; - _mini = new byte[MINI_EMM_SIZE]; for (int i = 0; i < kPocketNX; i++) _pocref[i] = -1; _volume[0] = 0; _volume[1] = 0; + if (_isDemo) { + _mini = new byte[16384]; _maxCaveArr[0] = CAVE_MAX; _maxCaveArr[1] = -1; _maxCaveArr[2] = -1; _maxCaveArr[3] = -1; _maxCaveArr[4] = -1; } else { + _mini = new byte[65536]; _maxCaveArr[0] = 1; _maxCaveArr[1] = 8; _maxCaveArr[2] = 16; -- cgit v1.2.3 From 7d5eb1ee639bf04e8f3b2ca280e631c3f67b1e9b Mon Sep 17 00:00:00 2001 From: Strangerke Date: Thu, 28 Jul 2011 15:35:12 +0200 Subject: CGE: Janitorial: remove trailing spaces --- engines/cge/cge.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 6542518a7e..3c3f14884d 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -152,10 +152,10 @@ CGEEngine::~CGEEngine() { delete _console; - // Delete engine objects + // Delete engine objects delete _vga; delete _sys; - //delete _sprite; Sprite is destroyed by the queue it's added to + //delete _sprite; Sprite is destroyed by the queue it's added to delete _miniCave; delete _shadow; delete _horzLine; -- cgit v1.2.3 From 316b73ee00091da6f0399bd7b446e859cd9d8c0d Mon Sep 17 00:00:00 2001 From: Strangerke Date: Fri, 29 Jul 2011 10:02:32 +0200 Subject: CGE: Remove Startup class, set _fx and _sound as dynamic --- engines/cge/cge.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 3c3f14884d..435a552bb4 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -36,7 +36,6 @@ #include "cge/text.h" #include "cge/vol.h" #include "cge/walk.h" -#include "cge/startup.h" namespace CGE { @@ -100,6 +99,9 @@ void CGEEngine::setup() { _mouse = new Mouse(this); _keyboard = new Keyboard(); _eventManager = new EventManager(); + _fx = new Fx(16); // must precede SOUND!! + _sound = new Sound(this); + _offUseCount = atoi(_text->getText(kOffUseCount)); _music = true; @@ -134,6 +136,9 @@ void CGEEngine::setup() { for (int i = 0; i < 4; i++) _flag[i] = false; + _mode = 0; + _soundOk = 0; + _startGameSlot = ConfMan.hasKey("save_slot") ? ConfMan.getInt("save_slot") : -1; } @@ -167,6 +172,9 @@ CGEEngine::~CGEEngine() { delete _pocLight; delete _keyboard; delete _mouse; + delete _eventManager; + delete _fx; + delete _sound; for (int i = 0; i < kPocketNX; i++) delete _pocket[i]; delete _snail; -- cgit v1.2.3 From 5c7eb9a7686e6c701af083072fa944d3fc2e88fd Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 30 Jul 2011 12:52:04 +0200 Subject: CGE: un-static-fy several variables, clean Heart class --- engines/cge/cge.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 435a552bb4..168f45e45b 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -138,6 +138,8 @@ void CGEEngine::setup() { _mode = 0; _soundOk = 0; + _sprTv = NULL; + _gameCase2Cpt = 0; _startGameSlot = ConfMan.hasKey("save_slot") ? ConfMan.getInt("save_slot") : -1; } -- cgit v1.2.3 From 8b53899ca7d5ab1599f6bf3e1d4e49746876674b Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 30 Jul 2011 15:28:57 +0200 Subject: CGE: Remove Heart --- engines/cge/cge.cpp | 2 -- 1 file changed, 2 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 168f45e45b..116bafcb64 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -81,7 +81,6 @@ void CGEEngine::setup() { // Initialise engine objects _text = new Text(this, progName(), 128); _vga = new Vga(M13H); - _heart = new Heart; _sys = new System(this); _pocLight = new PocLight(this); for (int i = 0; i < kPocketNX; i++) { @@ -170,7 +169,6 @@ CGEEngine::~CGEEngine() { delete _cavLight; delete _debugLine; delete _text; - delete _heart; delete _pocLight; delete _keyboard; delete _mouse; -- cgit v1.2.3 From b53ffa8f2c31d27ac5a7b3fd48143102be6ff4ff Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 30 Jul 2011 15:43:49 +0200 Subject: CGE: Move some conditional defines to variables --- engines/cge/cge.cpp | 62 ++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 47 insertions(+), 15 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 116bafcb64..8d2073b66f 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -56,6 +56,49 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) } +void CGEEngine::initCaveValues() { + if (_isDemo) { + _mini = new byte[16384]; + CAVE_DX = 23; + CAVE_DY = 29; + CAVE_NX = 3; + CAVE_NY = 1; + } else { + _mini = new byte[65536]; + CAVE_DX = 9; + CAVE_DY = 10; + CAVE_NX = 8; + CAVE_NY = 3; + } + CAVE_MAX = CAVE_NX * CAVE_NY; + + if (_isDemo) { + _maxCaveArr[0] = CAVE_MAX; + _maxCaveArr[1] = -1; + _maxCaveArr[2] = -1; + _maxCaveArr[3] = -1; + _maxCaveArr[4] = -1; + } else { + _maxCaveArr[0] = 1; + _maxCaveArr[1] = 8; + _maxCaveArr[2] = 16; + _maxCaveArr[3] = 23; + _maxCaveArr[4] = 24; + }; + + _heroXY = (Hxy *) malloc (sizeof(Hxy) * CAVE_MAX); + for (int i = 0; i < CAVE_MAX; i++) { + _heroXY[i]._x = 0; + _heroXY[i]._y = 0; + } + + _barriers = (Bar *) malloc (sizeof(Bar) * (1 + CAVE_MAX)); + for (int i = 0; i < CAVE_MAX + 1; i++) { + _barriers[i]._horz = 0xFF; + _barriers[i]._vert = 0xFF; + } +} + void CGEEngine::setup() { debugC(1, kCGEDebugEngine, "CGEEngine::setup()"); @@ -109,22 +152,8 @@ void CGEEngine::setup() { _volume[0] = 0; _volume[1] = 0; + initCaveValues(); - if (_isDemo) { - _mini = new byte[16384]; - _maxCaveArr[0] = CAVE_MAX; - _maxCaveArr[1] = -1; - _maxCaveArr[2] = -1; - _maxCaveArr[3] = -1; - _maxCaveArr[4] = -1; - } else { - _mini = new byte[65536]; - _maxCaveArr[0] = 1; - _maxCaveArr[1] = 8; - _maxCaveArr[2] = 16; - _maxCaveArr[3] = 23; - _maxCaveArr[4] = 24; - }; _maxCave = 0; _dark = false; _game = false; @@ -181,6 +210,9 @@ CGEEngine::~CGEEngine() { delete _snail_; delete _hero; delete[] _mini; + + free(_heroXY); + free(_barriers); } Common::Error CGEEngine::run() { -- cgit v1.2.3 From 55df4d063596c774969a8d3537c999a95b7dfcc0 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sun, 31 Jul 2011 00:52:35 +0200 Subject: CGE: Rename some class members, various clean up --- engines/cge/cge.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 8d2073b66f..2baf1cde1e 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -59,21 +59,21 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) void CGEEngine::initCaveValues() { if (_isDemo) { _mini = new byte[16384]; - CAVE_DX = 23; - CAVE_DY = 29; - CAVE_NX = 3; - CAVE_NY = 1; + _caveDx = 23; + _caveDy = 29; + _caveNx = 3; + _caveNy = 1; } else { _mini = new byte[65536]; - CAVE_DX = 9; - CAVE_DY = 10; - CAVE_NX = 8; - CAVE_NY = 3; + _caveDx = 9; + _caveDy = 10; + _caveNx = 8; + _caveNy = 3; } - CAVE_MAX = CAVE_NX * CAVE_NY; + _caveMax = _caveNx * _caveNy; if (_isDemo) { - _maxCaveArr[0] = CAVE_MAX; + _maxCaveArr[0] = _caveMax; _maxCaveArr[1] = -1; _maxCaveArr[2] = -1; _maxCaveArr[3] = -1; @@ -86,14 +86,14 @@ void CGEEngine::initCaveValues() { _maxCaveArr[4] = 24; }; - _heroXY = (Hxy *) malloc (sizeof(Hxy) * CAVE_MAX); - for (int i = 0; i < CAVE_MAX; i++) { + _heroXY = (Hxy *) malloc (sizeof(Hxy) * _caveMax); + for (int i = 0; i < _caveMax; i++) { _heroXY[i]._x = 0; _heroXY[i]._y = 0; } - _barriers = (Bar *) malloc (sizeof(Bar) * (1 + CAVE_MAX)); - for (int i = 0; i < CAVE_MAX + 1; i++) { + _barriers = (Bar *) malloc (sizeof(Bar) * (1 + _caveMax)); + for (int i = 0; i < _caveMax + 1; i++) { _barriers[i]._horz = 0xFF; _barriers[i]._vert = 0xFF; } -- cgit v1.2.3 From 1f6c27480d67593cdd786ef25762eee249f74d36 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 6 Aug 2011 17:22:04 +1000 Subject: CGE: Fix memory leak with _sprite global sprite --- engines/cge/cge.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 2baf1cde1e..c06e65491d 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -131,6 +131,7 @@ void CGEEngine::setup() { _pocket[i]->_flags._kill = false; } _sprite = new Sprite(this, NULL); + _sprite->_flags._kill = false; _horzLine = new HorizLine(this); _infoLine = new InfoLine(this, kInfoW); _cavLight = new CavLight(this); @@ -190,7 +191,7 @@ CGEEngine::~CGEEngine() { // Delete engine objects delete _vga; delete _sys; - //delete _sprite; Sprite is destroyed by the queue it's added to + delete _sprite; delete _miniCave; delete _shadow; delete _horzLine; -- cgit v1.2.3 From 5aba6b5a0c5876792290fac806695fee9fecd743 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 6 Aug 2011 18:23:53 +1000 Subject: CGE: Removed redundant _sprite creation in engine setup --- engines/cge/cge.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index c06e65491d..603352d8a0 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -110,6 +110,7 @@ void CGEEngine::setup() { _miniCave = NULL; _miniShp = NULL; _miniShpList = NULL; + _sprite = NULL; // Create debugger console _console = new CGEConsole(this); @@ -130,8 +131,6 @@ void CGEEngine::setup() { _pocket[i] = new Sprite(this, NULL); _pocket[i]->_flags._kill = false; } - _sprite = new Sprite(this, NULL); - _sprite->_flags._kill = false; _horzLine = new HorizLine(this); _infoLine = new InfoLine(this, kInfoW); _cavLight = new CavLight(this); -- cgit v1.2.3 From 46e1f03585ffd841eba3a2f5570bd0559cb833bd Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 6 Aug 2011 20:03:42 +1000 Subject: CGE: Fixed up freeing of caveValues data --- engines/cge/cge.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 603352d8a0..2a4ea6bea2 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -99,6 +99,12 @@ void CGEEngine::initCaveValues() { } } +void CGEEngine::freeCaveValues() { + delete[] _mini; + free(_heroXY); + free(_barriers); +} + void CGEEngine::setup() { debugC(1, kCGEDebugEngine, "CGEEngine::setup()"); @@ -209,10 +215,8 @@ CGEEngine::~CGEEngine() { delete _snail; delete _snail_; delete _hero; - delete[] _mini; - free(_heroXY); - free(_barriers); + freeCaveValues(); } Common::Error CGEEngine::run() { -- cgit v1.2.3 From 1208e7e5af5d5cf74c615f6b5e7f40800100d146 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 6 Aug 2011 21:03:24 +1000 Subject: CGE: Removed the _mini data block originally used to hold inventory shapes in high memory --- engines/cge/cge.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 2a4ea6bea2..b38b6d392f 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -58,13 +58,11 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) void CGEEngine::initCaveValues() { if (_isDemo) { - _mini = new byte[16384]; _caveDx = 23; _caveDy = 29; _caveNx = 3; _caveNy = 1; } else { - _mini = new byte[65536]; _caveDx = 9; _caveDy = 10; _caveNx = 8; @@ -100,7 +98,6 @@ void CGEEngine::initCaveValues() { } void CGEEngine::freeCaveValues() { - delete[] _mini; free(_heroXY); free(_barriers); } @@ -216,6 +213,8 @@ CGEEngine::~CGEEngine() { delete _snail_; delete _hero; + delete[] _miniShpList; + freeCaveValues(); } -- cgit v1.2.3 From 04e09e530a3bff231022ebf1c50ae5b70fc1c4a7 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 6 Aug 2011 22:14:23 +1000 Subject: CGE: Fix memory leaks in pocket list --- engines/cge/cge.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index b38b6d392f..0d63b32d09 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -130,10 +130,8 @@ void CGEEngine::setup() { _vga = new Vga(M13H); _sys = new System(this); _pocLight = new PocLight(this); - for (int i = 0; i < kPocketNX; i++) { - _pocket[i] = new Sprite(this, NULL); - _pocket[i]->_flags._kill = false; - } + for (int i = 0; i < kPocketNX; i++) + _pocket[i] = NULL; _horzLine = new HorizLine(this); _infoLine = new InfoLine(this, kInfoW); _cavLight = new CavLight(this); @@ -207,12 +205,12 @@ CGEEngine::~CGEEngine() { delete _eventManager; delete _fx; delete _sound; - for (int i = 0; i < kPocketNX; i++) - delete _pocket[i]; delete _snail; delete _snail_; delete _hero; + for (int i = 0; _miniShpList[i]; ++i) + delete _miniShpList[i]; delete[] _miniShpList; freeCaveValues(); -- cgit v1.2.3 From de40ab5e0a24de6139be41f58399b83545a0928d Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sun, 7 Aug 2011 11:36:49 +0200 Subject: CGE: Remove JBW flag (useless) --- engines/cge/cge.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 0d63b32d09..6fc23969c2 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -51,7 +51,6 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) _startupMode = 1; _demoText = kDemo; _oldLev = 0; - _jbw = false; _pocPtr = 0; } -- cgit v1.2.3 From b76c0af2f4fe9cafeafdde70867e159e076b2752 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Fri, 12 Aug 2011 21:33:45 +1000 Subject: CGE: Work on implementing MIDI music playback. Music playback is now sort of working, but it seems like only a beat track of the MIDI is getting played --- engines/cge/cge.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 6fc23969c2..cfd941017e 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -165,7 +165,7 @@ void CGEEngine::setup() { _flag[i] = false; _mode = 0; - _soundOk = 0; + _soundOk = 1; _sprTv = NULL; _gameCase2Cpt = 0; @@ -186,6 +186,7 @@ CGEEngine::~CGEEngine() { DebugMan.clearAllDebugChannels(); delete _console; + _midiPlayer.killMidi(); // Delete engine objects delete _vga; @@ -208,9 +209,11 @@ CGEEngine::~CGEEngine() { delete _snail_; delete _hero; - for (int i = 0; _miniShpList[i]; ++i) - delete _miniShpList[i]; - delete[] _miniShpList; + if (_miniShpList) { + for (int i = 0; _miniShpList[i]; ++i) + delete _miniShpList[i]; + delete[] _miniShpList; + } freeCaveValues(); } -- cgit v1.2.3 From ef7a17a64a9d3781108ccdf2c7338b02bf3b3aa6 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sat, 13 Aug 2011 16:44:48 +1000 Subject: CGE: Fix for HLINE not being available for demo The HorizLine class is really only used for on-screen debugging information anyway, so it's not a problem. --- engines/cge/cge.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index cfd941017e..936aeea75a 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -131,7 +131,7 @@ void CGEEngine::setup() { _pocLight = new PocLight(this); for (int i = 0; i < kPocketNX; i++) _pocket[i] = NULL; - _horzLine = new HorizLine(this); + _horzLine = isDemo() ? NULL : new HorizLine(this); _infoLine = new InfoLine(this, kInfoW); _cavLight = new CavLight(this); _debugLine = new InfoLine(this, kScrWidth); @@ -247,4 +247,8 @@ bool CGEEngine::canSaveGameStateCurrently() { return (_startupMode == 0) && _mouse->_active; } +bool CGEEngine::isDemo() const { + return _gameDescription->flags & ADGF_DEMO; +} + } // End of namespace CGE -- cgit v1.2.3 From bb591b5415bcf63f554c14d5be9d74bba9e5b6cc Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sun, 21 Aug 2011 11:15:28 +0200 Subject: CGE: Some clean up in Vga class --- engines/cge/cge.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 936aeea75a..584512b69a 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -126,7 +126,7 @@ void CGEEngine::setup() { // Initialise engine objects _text = new Text(this, progName(), 128); - _vga = new Vga(M13H); + _vga = new Vga(); _sys = new System(this); _pocLight = new PocLight(this); for (int i = 0; i < kPocketNX; i++) -- cgit v1.2.3 From 71440760307dfb99e6194929fb0c8d3bf1a0df10 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 27 Aug 2011 09:05:32 +0200 Subject: CGE: Move IO classes to a separated source file --- engines/cge/cge.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 584512b69a..0dbc1c8696 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -34,7 +34,6 @@ #include "cge/cge_main.h" #include "cge/talk.h" #include "cge/text.h" -#include "cge/vol.h" #include "cge/walk.h" namespace CGE { -- cgit v1.2.3 From 4cb6c739a4cf75a0e072197845a54620db0b10b8 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 27 Aug 2011 19:09:13 +0200 Subject: CGE: Change a couple of static members to non static in Vga class --- engines/cge/cge.cpp | 2 -- 1 file changed, 2 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 0dbc1c8696..f471b63866 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -117,7 +117,6 @@ void CGEEngine::setup() { _console = new CGEConsole(this); // Initialise classes that have static members - Vga::init(); VFile::init(); Bitmap::init(); Talk::init(); @@ -178,7 +177,6 @@ CGEEngine::~CGEEngine() { Talk::deinit(); Bitmap::deinit(); VFile::deinit(); - Vga::deinit(); Cluster::init(this); // Remove all of our debug levels here -- cgit v1.2.3 From 5e0c546aa99b789d528da307dac99dc704a0a995 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Mon, 29 Aug 2011 22:51:45 +0200 Subject: CGE: Remove code related to demos, and tag demos as unsupported --- engines/cge/cge.cpp | 60 ++++++++++++++++++++++------------------------------- 1 file changed, 25 insertions(+), 35 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index f471b63866..514580bbe3 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -46,7 +46,6 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) DebugMan.addDebugChannel(kCGEDebugFile, "file", "CGE IO debug channel"); DebugMan.addDebugChannel(kCGEDebugEngine, "engine", "CGE Engine debug channel"); - _isDemo = _gameDescription->flags & ADGF_DEMO; _startupMode = 1; _demoText = kDemo; _oldLev = 0; @@ -55,32 +54,17 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) } void CGEEngine::initCaveValues() { - if (_isDemo) { - _caveDx = 23; - _caveDy = 29; - _caveNx = 3; - _caveNy = 1; - } else { - _caveDx = 9; - _caveDy = 10; - _caveNx = 8; - _caveNy = 3; - } + _caveDx = 9; + _caveDy = 10; + _caveNx = 8; + _caveNy = 3; _caveMax = _caveNx * _caveNy; - if (_isDemo) { - _maxCaveArr[0] = _caveMax; - _maxCaveArr[1] = -1; - _maxCaveArr[2] = -1; - _maxCaveArr[3] = -1; - _maxCaveArr[4] = -1; - } else { - _maxCaveArr[0] = 1; - _maxCaveArr[1] = 8; - _maxCaveArr[2] = 16; - _maxCaveArr[3] = 23; - _maxCaveArr[4] = 24; - }; + _maxCaveArr[0] = 1; + _maxCaveArr[1] = 8; + _maxCaveArr[2] = 16; + _maxCaveArr[3] = 23; + _maxCaveArr[4] = 24; _heroXY = (Hxy *) malloc (sizeof(Hxy) * _caveMax); for (int i = 0; i < _caveMax; i++) { @@ -100,7 +84,7 @@ void CGEEngine::freeCaveValues() { free(_barriers); } -void CGEEngine::setup() { +void CGEEngine::init() { debugC(1, kCGEDebugEngine, "CGEEngine::setup()"); // Initialise fields @@ -129,7 +113,7 @@ void CGEEngine::setup() { _pocLight = new PocLight(this); for (int i = 0; i < kPocketNX; i++) _pocket[i] = NULL; - _horzLine = isDemo() ? NULL : new HorizLine(this); + _horzLine = new HorizLine(this); _infoLine = new InfoLine(this, kInfoW); _cavLight = new CavLight(this); _debugLine = new InfoLine(this, kScrWidth); @@ -170,9 +154,7 @@ void CGEEngine::setup() { _startGameSlot = ConfMan.hasKey("save_slot") ? ConfMan.getInt("save_slot") : -1; } -CGEEngine::~CGEEngine() { - debugC(1, kCGEDebugEngine, "CGEEngine::~CGEEngine()"); - +void CGEEngine::deinit() { // Call classes with static members to clear them up Talk::deinit(); Bitmap::deinit(); @@ -215,17 +197,29 @@ CGEEngine::~CGEEngine() { freeCaveValues(); } +CGEEngine::~CGEEngine() { + debugC(1, kCGEDebugEngine, "CGEEngine::~CGEEngine()"); +} + Common::Error CGEEngine::run() { debugC(1, kCGEDebugEngine, "CGEEngine::run()"); + if (_gameDescription->flags & ADGF_DEMO) { + warning("Demos of Soltys are not supported.\nPlease get a free version on ScummVM download page"); + return Common::kUnsupportedGameidError; + } + // Initialize graphics using following: initGraphics(320, 200, false); // Setup necessary game objects - setup(); + init(); // Run the game cge_main(); + // Remove game objects + deinit(); + return Common::kNoError; } @@ -244,8 +238,4 @@ bool CGEEngine::canSaveGameStateCurrently() { return (_startupMode == 0) && _mouse->_active; } -bool CGEEngine::isDemo() const { - return _gameDescription->flags & ADGF_DEMO; -} - } // End of namespace CGE -- cgit v1.2.3 From 76f410958a6682406264032c401b80f322749950 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sun, 4 Sep 2011 14:28:12 +0200 Subject: CGE: Use F5/F7 to display the save/load dialog box --- engines/cge/cge.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 514580bbe3..b56635125d 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -121,7 +121,7 @@ void CGEEngine::init() { _snail_ = new Snail(this, true); _mouse = new Mouse(this); - _keyboard = new Keyboard(); + _keyboard = new Keyboard(this); _eventManager = new EventManager(); _fx = new Fx(16); // must precede SOUND!! _sound = new Sound(this); -- cgit v1.2.3 From 5bad1a7c7fc14caaa8af7d51addc70c94804e435 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Tue, 6 Sep 2011 00:43:40 +0200 Subject: CGE: Take into account some of LordHoto's comments --- engines/cge/cge.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index b56635125d..dafb8a3782 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -66,13 +66,13 @@ void CGEEngine::initCaveValues() { _maxCaveArr[3] = 23; _maxCaveArr[4] = 24; - _heroXY = (Hxy *) malloc (sizeof(Hxy) * _caveMax); + _heroXY = (Hxy *)malloc(sizeof(Hxy) * _caveMax); for (int i = 0; i < _caveMax; i++) { _heroXY[i]._x = 0; _heroXY[i]._y = 0; } - _barriers = (Bar *) malloc (sizeof(Bar) * (1 + _caveMax)); + _barriers = (Bar *)malloc(sizeof(Bar) * (1 + _caveMax)); for (int i = 0; i < _caveMax + 1; i++) { _barriers[i]._horz = 0xFF; _barriers[i]._vert = 0xFF; @@ -139,6 +139,7 @@ void CGEEngine::init() { _maxCave = 0; _dark = false; _game = false; + _finis = false; _now = 1; _lev = -1; _recentStep = -2; @@ -150,6 +151,7 @@ void CGEEngine::init() { _soundOk = 1; _sprTv = NULL; _gameCase2Cpt = 0; + _offUseCount = 0; _startGameSlot = ConfMan.hasKey("save_slot") ? ConfMan.getInt("save_slot") : -1; } -- cgit v1.2.3 From 39d09d5865d9a01bfdbde02b047806f801a5d5c8 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Tue, 6 Sep 2011 22:59:10 +0200 Subject: CGE: Cleanup: remove residuals of the demo code Thanks to fingolfin and LordHoto for pointing it out --- engines/cge/cge.cpp | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index dafb8a3782..66262e5e4a 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -38,6 +38,8 @@ namespace CGE { +const int CGEEngine::_maxCaveArr[5] = {1, 8, 16, 23, 24}; + CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) : Engine(syst), _gameDescription(gameDescription), _randomSource("cge") { @@ -54,36 +56,17 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) } void CGEEngine::initCaveValues() { - _caveDx = 9; - _caveDy = 10; - _caveNx = 8; - _caveNy = 3; - _caveMax = _caveNx * _caveNy; - - _maxCaveArr[0] = 1; - _maxCaveArr[1] = 8; - _maxCaveArr[2] = 16; - _maxCaveArr[3] = 23; - _maxCaveArr[4] = 24; - - _heroXY = (Hxy *)malloc(sizeof(Hxy) * _caveMax); - for (int i = 0; i < _caveMax; i++) { + for (int i = 0; i < kCaveMax; i++) { _heroXY[i]._x = 0; _heroXY[i]._y = 0; } - _barriers = (Bar *)malloc(sizeof(Bar) * (1 + _caveMax)); - for (int i = 0; i < _caveMax + 1; i++) { + for (int i = 0; i < kCaveMax + 1; i++) { _barriers[i]._horz = 0xFF; _barriers[i]._vert = 0xFF; } } -void CGEEngine::freeCaveValues() { - free(_heroXY); - free(_barriers); -} - void CGEEngine::init() { debugC(1, kCGEDebugEngine, "CGEEngine::setup()"); @@ -195,8 +178,6 @@ void CGEEngine::deinit() { delete _miniShpList[i]; delete[] _miniShpList; } - - freeCaveValues(); } CGEEngine::~CGEEngine() { -- cgit v1.2.3 From 52f669c93c9497a03e3e32467a4614263e1c6382 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Tue, 6 Sep 2011 23:14:49 +0200 Subject: CGE: Replace Hxy by Common::Point --- engines/cge/cge.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 66262e5e4a..7a181a58be 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -57,8 +57,8 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) void CGEEngine::initCaveValues() { for (int i = 0; i < kCaveMax; i++) { - _heroXY[i]._x = 0; - _heroXY[i]._y = 0; + _heroXY[i].x = 0; + _heroXY[i].y = 0; } for (int i = 0; i < kCaveMax + 1; i++) { -- cgit v1.2.3 From 45de8747d5dd97dcad09667393fc0e534d199f3a Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 7 Sep 2011 22:37:03 +0200 Subject: CGE: Clean up and split snBarrier(), remove progName() --- engines/cge/cge.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 7a181a58be..944413471b 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -90,7 +90,7 @@ void CGEEngine::init() { Cluster::init(this); // Initialise engine objects - _text = new Text(this, progName(), 128); + _text = new Text(this, "CGE", 128); _vga = new Vga(); _sys = new System(this); _pocLight = new PocLight(this); -- cgit v1.2.3 From 4848683e56b1466a7dabbbecb7bb1bf7e4c857a7 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Fri, 9 Sep 2011 18:24:11 +0200 Subject: CGE: Remove some static variables from fileIO --- engines/cge/cge.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 944413471b..d5d21726b1 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -79,12 +79,13 @@ void CGEEngine::init() { _miniShp = NULL; _miniShpList = NULL; _sprite = NULL; + _dat = new Dat(); + _cat = new BtFile(kCatName, XCrypt); // Create debugger console _console = new CGEConsole(this); // Initialise classes that have static members - VFile::init(); Bitmap::init(); Talk::init(); Cluster::init(this); @@ -143,7 +144,6 @@ void CGEEngine::deinit() { // Call classes with static members to clear them up Talk::deinit(); Bitmap::deinit(); - VFile::deinit(); Cluster::init(this); // Remove all of our debug levels here @@ -172,6 +172,8 @@ void CGEEngine::deinit() { delete _snail; delete _snail_; delete _hero; + delete _dat; + delete _cat; if (_miniShpList) { for (int i = 0; _miniShpList[i]; ++i) -- cgit v1.2.3 From 0784b7e0b4f0f19b4c5a34f7081fdbf8ce9f75d9 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Fri, 9 Sep 2011 20:03:23 +0200 Subject: CGE: Remove Dat class --- engines/cge/cge.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index d5d21726b1..1b9fcf64ed 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -79,7 +79,7 @@ void CGEEngine::init() { _miniShp = NULL; _miniShpList = NULL; _sprite = NULL; - _dat = new Dat(); + _dat = new CFile(kDatName, XCrypt); _cat = new BtFile(kCatName, XCrypt); // Create debugger console -- cgit v1.2.3 From 08d87130aa31606bfb62ef8a574e161a30866225 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sun, 11 Sep 2011 14:19:46 +0200 Subject: CGE: Use EncryptedStream in Text: rewrite caching, remove some methods. --- engines/cge/cge.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 1b9fcf64ed..ade3071497 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -91,7 +91,7 @@ void CGEEngine::init() { Cluster::init(this); // Initialise engine objects - _text = new Text(this, "CGE", 128); + _text = new Text(this, "CGE"); _vga = new Vga(); _sys = new System(this); _pocLight = new PocLight(this); -- cgit v1.2.3 From 5d8bbc2f48a5c736fbeeb42b31b3fa6e453cc5e1 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Tue, 13 Sep 2011 00:07:00 +0200 Subject: CGE: Remove IoBuf and CFile --- engines/cge/cge.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index ade3071497..a5967da13e 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -79,7 +79,7 @@ void CGEEngine::init() { _miniShp = NULL; _miniShpList = NULL; _sprite = NULL; - _dat = new CFile(kDatName, XCrypt); + _dat = new IoHand(kDatName, XCrypt); _cat = new BtFile(kCatName, XCrypt); // Create debugger console -- cgit v1.2.3 From c9900b605ac8f943bdc3231ba415fdda5ce48964 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Tue, 13 Sep 2011 00:28:31 +0200 Subject: CGE: Some more cleanup in fileIo --- engines/cge/cge.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index a5967da13e..9ff8a76a30 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -79,8 +79,8 @@ void CGEEngine::init() { _miniShp = NULL; _miniShpList = NULL; _sprite = NULL; - _dat = new IoHand(kDatName, XCrypt); - _cat = new BtFile(kCatName, XCrypt); + _dat = new IoHand(kDatName); + _cat = new BtFile(kCatName); // Create debugger console _console = new CGEConsole(this); -- cgit v1.2.3 From 82e0b6fc4bb719e9b3e647c3fcb40cefec9fcd28 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 14 Sep 2011 00:10:59 +0200 Subject: CGE: Rewrite fileIO --- engines/cge/cge.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 9ff8a76a30..ef2796b169 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -79,8 +79,7 @@ void CGEEngine::init() { _miniShp = NULL; _miniShpList = NULL; _sprite = NULL; - _dat = new IoHand(kDatName); - _cat = new BtFile(kCatName); + _resman = new ResourceManager(); // Create debugger console _console = new CGEConsole(this); @@ -172,8 +171,7 @@ void CGEEngine::deinit() { delete _snail; delete _snail_; delete _hero; - delete _dat; - delete _cat; + delete _resman; if (_miniShpList) { for (int i = 0; _miniShpList[i]; ++i) -- cgit v1.2.3 From d28ac81a12958db77868fe889c0b93c902a5bdc3 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Wed, 14 Sep 2011 08:15:30 +0200 Subject: CGE: Rename cave into scene --- engines/cge/cge.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index ef2796b169..11c722d32b 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -38,7 +38,7 @@ namespace CGE { -const int CGEEngine::_maxCaveArr[5] = {1, 8, 16, 23, 24}; +const int CGEEngine::_maxSceneArr[5] = {1, 8, 16, 23, 24}; CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) : Engine(syst), _gameDescription(gameDescription), _randomSource("cge") { @@ -55,13 +55,13 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) } -void CGEEngine::initCaveValues() { - for (int i = 0; i < kCaveMax; i++) { +void CGEEngine::initSceneValues() { + for (int i = 0; i < kSceneMax; i++) { _heroXY[i].x = 0; _heroXY[i].y = 0; } - for (int i = 0; i < kCaveMax + 1; i++) { + for (int i = 0; i < kSceneMax + 1; i++) { _barriers[i]._horz = 0xFF; _barriers[i]._vert = 0xFF; } @@ -75,7 +75,7 @@ void CGEEngine::init() { _lastTick = 0; _hero = NULL; _shadow = NULL; - _miniCave = NULL; + _miniScene = NULL; _miniShp = NULL; _miniShpList = NULL; _sprite = NULL; @@ -98,7 +98,7 @@ void CGEEngine::init() { _pocket[i] = NULL; _horzLine = new HorizLine(this); _infoLine = new InfoLine(this, kInfoW); - _cavLight = new CavLight(this); + _sceneLight = new SceneLight(this); _debugLine = new InfoLine(this, kScrWidth); _snail = new Snail(this, false); _snail_ = new Snail(this, true); @@ -117,9 +117,9 @@ void CGEEngine::init() { _volume[0] = 0; _volume[1] = 0; - initCaveValues(); + initSceneValues(); - _maxCave = 0; + _maxScene = 0; _dark = false; _game = false; _finis = false; @@ -155,11 +155,11 @@ void CGEEngine::deinit() { delete _vga; delete _sys; delete _sprite; - delete _miniCave; + delete _miniScene; delete _shadow; delete _horzLine; delete _infoLine; - delete _cavLight; + delete _sceneLight; delete _debugLine; delete _text; delete _pocLight; -- cgit v1.2.3 From c99310820720714083b34d7d01080c54c977eb75 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Thu, 15 Sep 2011 07:58:31 +0200 Subject: CGE: Transform some static and globals into class members --- engines/cge/cge.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 11c722d32b..1297aea5e3 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -86,10 +86,10 @@ void CGEEngine::init() { // Initialise classes that have static members Bitmap::init(); - Talk::init(); Cluster::init(this); // Initialise engine objects + _font = new Font(this, "CGE"); _text = new Text(this, "CGE"); _vga = new Vga(); _sys = new System(this); @@ -141,7 +141,6 @@ void CGEEngine::init() { void CGEEngine::deinit() { // Call classes with static members to clear them up - Talk::deinit(); Bitmap::deinit(); Cluster::init(this); @@ -168,6 +167,7 @@ void CGEEngine::deinit() { delete _eventManager; delete _fx; delete _sound; + delete _font; delete _snail; delete _snail_; delete _hero; -- cgit v1.2.3 From 938c08ae589eaa9b0cafc02478997f34bf7d598d Mon Sep 17 00:00:00 2001 From: Strangerke Date: Fri, 16 Sep 2011 20:31:11 +0200 Subject: CGE: Get rid of some more global functions and static members --- engines/cge/cge.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 1297aea5e3..349bf3f31c 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -105,7 +105,7 @@ void CGEEngine::init() { _mouse = new Mouse(this); _keyboard = new Keyboard(this); - _eventManager = new EventManager(); + _eventManager = new EventManager(this); _fx = new Fx(16); // must precede SOUND!! _sound = new Sound(this); -- cgit v1.2.3 From 4778ff720c3e7c6527dde90c9eba7ccab7646cbb Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 17 Sep 2011 10:54:50 +0200 Subject: CGE: Move some more globals to CGEEngine --- engines/cge/cge.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 349bf3f31c..68b07c8fb2 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -102,11 +102,11 @@ void CGEEngine::init() { _debugLine = new InfoLine(this, kScrWidth); _snail = new Snail(this, false); _snail_ = new Snail(this, true); - + _midiPlayer = new MusicPlayer(this); _mouse = new Mouse(this); _keyboard = new Keyboard(this); _eventManager = new EventManager(this); - _fx = new Fx(16); // must precede SOUND!! + _fx = new Fx(this, 16); // must precede SOUND!! _sound = new Sound(this); _offUseCount = atoi(_text->getText(kOffUseCount)); @@ -148,7 +148,7 @@ void CGEEngine::deinit() { DebugMan.clearAllDebugChannels(); delete _console; - _midiPlayer.killMidi(); + _midiPlayer->killMidi(); // Delete engine objects delete _vga; -- cgit v1.2.3 From 3583c949f253330dbf4c53a66b74e764de9ea156 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 17 Sep 2011 17:17:22 +0200 Subject: CGE: Move some more globals to CGEEngine --- engines/cge/cge.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index 68b07c8fb2..f1b69a0ecd 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -52,6 +52,9 @@ CGEEngine::CGEEngine(OSystem *syst, const ADGameDescription *gameDescription) _demoText = kDemo; _oldLev = 0; _pocPtr = 0; + _bitmapPalette = NULL; + + } @@ -84,10 +87,6 @@ void CGEEngine::init() { // Create debugger console _console = new CGEConsole(this); - // Initialise classes that have static members - Bitmap::init(); - Cluster::init(this); - // Initialise engine objects _font = new Font(this, "CGE"); _text = new Text(this, "CGE"); @@ -140,10 +139,6 @@ void CGEEngine::init() { } void CGEEngine::deinit() { - // Call classes with static members to clear them up - Bitmap::deinit(); - Cluster::init(this); - // Remove all of our debug levels here DebugMan.clearAllDebugChannels(); -- cgit v1.2.3 From d574cfe272e80c08387333a56ffe9955130f276b Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sat, 17 Sep 2011 17:27:05 +0200 Subject: CGE: Move _talk and _text to CGEEngine --- engines/cge/cge.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index f1b69a0ecd..b8ccbc8638 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -90,6 +90,7 @@ void CGEEngine::init() { // Initialise engine objects _font = new Font(this, "CGE"); _text = new Text(this, "CGE"); + _talk = NULL; _vga = new Vga(); _sys = new System(this); _pocLight = new PocLight(this); -- cgit v1.2.3 From 2d882fdf18f9c43fb73d669e9b4b02f65351d4a3 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Sun, 18 Sep 2011 11:25:34 +0200 Subject: CGE: Rename Snail into CommandHandler, plus some associated renamings --- engines/cge/cge.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'engines/cge/cge.cpp') diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp index b8ccbc8638..4ed2932cd9 100644 --- a/engines/cge/cge.cpp +++ b/engines/cge/cge.cpp @@ -100,8 +100,8 @@ void CGEEngine::init() { _infoLine = new InfoLine(this, kInfoW); _sceneLight = new SceneLight(this); _debugLine = new InfoLine(this, kScrWidth); - _snail = new Snail(this, false); - _snail_ = new Snail(this, true); + _commandHandler = new CommandHandler(this, false); + _commandHandlerTurbo = new CommandHandler(this, true); _midiPlayer = new MusicPlayer(this); _mouse = new Mouse(this); _keyboard = new Keyboard(this); @@ -164,8 +164,8 @@ void CGEEngine::deinit() { delete _fx; delete _sound; delete _font; - delete _snail; - delete _snail_; + delete _commandHandler; + delete _commandHandlerTurbo; delete _hero; delete _resman; -- cgit v1.2.3