From 3c29d61f6705a6f05d86fa2599a6992d2d17e3ac Mon Sep 17 00:00:00 2001 From: lukaslw Date: Fri, 1 Aug 2014 17:38:04 +0200 Subject: PRINCE: Code clean-up --- engines/prince/animation.cpp | 2 - engines/prince/animation.h | 4 +- engines/prince/archive.cpp | 10 +- engines/prince/archive.h | 2 - engines/prince/common.h | 28 +++-- engines/prince/cursor.cpp | 26 ++--- engines/prince/cursor.h | 8 +- engines/prince/debugger.cpp | 4 +- engines/prince/debugger.h | 4 +- engines/prince/detection.cpp | 2 - engines/prince/flags.cpp | 7 +- engines/prince/flags.h | 5 +- engines/prince/font.cpp | 29 +++--- engines/prince/font.h | 13 +-- engines/prince/graphics.cpp | 22 ++-- engines/prince/graphics.h | 6 +- engines/prince/hero.cpp | 34 +++--- engines/prince/hero.h | 5 +- engines/prince/hero_set.cpp | 243 ------------------------------------------- engines/prince/hero_set.h | 221 ++++++++++++++++++++++++++++++++++++++- engines/prince/mhwanh.cpp | 27 +++-- engines/prince/mhwanh.h | 10 +- engines/prince/mob.cpp | 6 +- engines/prince/mob.h | 9 +- engines/prince/module.mk | 1 - engines/prince/musNum.h | 2 +- engines/prince/object.cpp | 9 +- engines/prince/object.h | 3 +- engines/prince/option_text.h | 3 +- engines/prince/prince.cpp | 145 +++++--------------------- engines/prince/prince.h | 11 +- engines/prince/pscr.cpp | 17 +-- engines/prince/pscr.h | 9 +- engines/prince/resource.h | 4 +- engines/prince/saveload.cpp | 2 + engines/prince/script.cpp | 21 ++-- engines/prince/script.h | 12 +-- engines/prince/sound.cpp | 6 +- engines/prince/sound.h | 2 - engines/prince/variatxt.cpp | 14 +-- engines/prince/variatxt.h | 6 +- 41 files changed, 394 insertions(+), 600 deletions(-) delete mode 100644 engines/prince/hero_set.cpp diff --git a/engines/prince/animation.cpp b/engines/prince/animation.cpp index 98d1e33620..db16adacbc 100644 --- a/engines/prince/animation.cpp +++ b/engines/prince/animation.cpp @@ -192,5 +192,3 @@ Graphics::Surface *Animation::getFrame(int frameIndex) { } } // End of namespace Prince - -/* vim: set tabstop=4 noexpandtab: */ diff --git a/engines/prince/animation.h b/engines/prince/animation.h index 0634d7a937..87d21f5dbc 100644 --- a/engines/prince/animation.h +++ b/engines/prince/animation.h @@ -73,8 +73,6 @@ private: int16 _baseY; }; -} +} // End of namespace Prince #endif - -/* vim: set tabstop=4 noexpandtab: */ diff --git a/engines/prince/archive.cpp b/engines/prince/archive.cpp index ac00261337..11be0b224a 100644 --- a/engines/prince/archive.cpp +++ b/engines/prince/archive.cpp @@ -60,7 +60,7 @@ bool PtcArchive::open(const Common::String &filename) { _stream->seek(fileTableOffset); - byte *fileTable = new byte[fileTableSize]; + byte *fileTable = (byte *)malloc(fileTableSize); byte *fileTableEnd = fileTable + fileTableSize; _stream->read(fileTable, fileTableSize); decrypt(fileTable, fileTableSize); @@ -73,8 +73,8 @@ bool PtcArchive::open(const Common::String &filename) { //debug("%12s %8X %d", name.c_str(), item._offset, item._size); _items[name] = item; } - - delete[] fileTable; + + free(fileTable); return true; } @@ -141,6 +141,4 @@ Common::SeekableReadStream *PtcArchive::createReadStreamForMember(const Common:: return new Common::MemoryReadStream(buffer, size, DisposeAfterUse::YES); } -} - -/* vim: set tabstop=4 noexpandtab: */ +} // End of namespace Prince diff --git a/engines/prince/archive.h b/engines/prince/archive.h index 29d3d58560..e211036ed6 100644 --- a/engines/prince/archive.h +++ b/engines/prince/archive.h @@ -59,5 +59,3 @@ private: } // End of namespace Prince #endif - -/* vim: set tabstop=4 noexpandtab: */ diff --git a/engines/prince/common.h b/engines/prince/common.h index 808b6900ec..c846f9a751 100644 --- a/engines/prince/common.h +++ b/engines/prince/common.h @@ -26,22 +26,20 @@ namespace Prince { enum Direction { - kDirLD = 0, - kDirL = 1, - kDirLU = 2, - kDirRD = 3, - kDirR = 4, - kDirRU = 5, - kDirUL = 6, - kDirU = 7, - kDirUR = 8, - kDirDL = 9, - kDirD = 10, - kDirDR = 11 + kDirLD, + kDirL, + kDirLU, + kDirRD, + kDirR, + kDirRU, + kDirUL, + kDirU, + kDirUR, + kDirDL, + kDirD, + kDirDR }; -} +} // End of namespace Prince #endif - -/* vim: set tabstop=4 noexpandtab: */ diff --git a/engines/prince/cursor.cpp b/engines/prince/cursor.cpp index 865ae99cad..c09fe43bfc 100644 --- a/engines/prince/cursor.cpp +++ b/engines/prince/cursor.cpp @@ -23,32 +23,32 @@ #include "prince/cursor.h" #include "common/debug.h" -#include "common/stream.h" namespace Prince { -Cursor::Cursor() : _surface(NULL) { +Cursor::Cursor() : _surface(nullptr) { } Cursor::~Cursor() { - _surface->free(); - delete _surface; - _surface = NULL; + if (_surface != nullptr) { + _surface->free(); + delete _surface; + _surface = nullptr; + } } bool Cursor::loadFromStream(Common::SeekableReadStream &stream) { stream.skip(4); - uint16 w = stream.readUint16LE(); - uint16 h = stream.readUint16LE(); + uint16 width = stream.readUint16LE(); + uint16 heigth = stream.readUint16LE(); _surface = new Graphics::Surface(); - _surface->create(w, h, Graphics::PixelFormat::createFormatCLUT8()); + _surface->create(width, heigth, Graphics::PixelFormat::createFormatCLUT8()); - for (int ih = 0; ih < h; ++ih) - stream.read(_surface->getBasePtr(0, ih), w); + for (int h = 0; h < heigth; h++) { + stream.read(_surface->getBasePtr(0, h), width); + } return true; } -} - -/* vim: set tabstop=4 noexpandtab: */ +} // End of namespace Prince diff --git a/engines/prince/cursor.h b/engines/prince/cursor.h index 70516519e6..683a158ba8 100644 --- a/engines/prince/cursor.h +++ b/engines/prince/cursor.h @@ -25,9 +25,7 @@ #include "graphics/surface.h" -namespace Common { - class SeekableReadStream; -} +#include "common/stream.h" namespace Prince { @@ -43,8 +41,6 @@ private: Graphics::Surface *_surface; }; -} +} // End of namespace Prince #endif - -/* vim: set tabstop=4 expandtab!: */ diff --git a/engines/prince/debugger.cpp b/engines/prince/debugger.cpp index cf74b7b423..481ea695f5 100644 --- a/engines/prince/debugger.cpp +++ b/engines/prince/debugger.cpp @@ -171,6 +171,4 @@ bool Debugger::Cmd_AddItem(int argc, const char **argv) { return true; } -} - -/* vim: set tabstop=4 noexpandtab: */ +} // End of namespace Prince diff --git a/engines/prince/debugger.h b/engines/prince/debugger.h index 10c82d5282..a4467e63d5 100644 --- a/engines/prince/debugger.h +++ b/engines/prince/debugger.h @@ -53,8 +53,6 @@ private: InterpreterFlags *_flags; }; -} +} // End of namespace Prince #endif - -/* vim: set tabstop=4 noexpandtab: */ diff --git a/engines/prince/detection.cpp b/engines/prince/detection.cpp index 285d7d1ce3..3f83009de8 100644 --- a/engines/prince/detection.cpp +++ b/engines/prince/detection.cpp @@ -71,5 +71,3 @@ REGISTER_PLUGIN_DYNAMIC(PRINCE, PLUGIN_TYPE_ENGINE, Prince::PrinceMetaEngine); #else REGISTER_PLUGIN_STATIC(PRINCE, PLUGIN_TYPE_ENGINE, Prince::PrinceMetaEngine); #endif - -/* vim: set tabstop=4 noexpandtab: */ diff --git a/engines/prince/flags.cpp b/engines/prince/flags.cpp index 18d9e212c1..3b0d1d95dc 100644 --- a/engines/prince/flags.cpp +++ b/engines/prince/flags.cpp @@ -24,8 +24,7 @@ namespace Prince { -const char *Flags::getFlagName(uint16 flagId) -{ +const char *Flags::getFlagName(uint16 flagId) { switch (flagId) { default: return "unknown_flag"; case FLAGA1: return "FLAGA1"; @@ -401,6 +400,4 @@ const char *Flags::getFlagName(uint16 flagId) } } -} - -/* vim: set tabstop=4 noexpandtab: */ +} // End of namespace Prince diff --git a/engines/prince/flags.h b/engines/prince/flags.h index 5af6bffa00..efa97eb5ed 100644 --- a/engines/prince/flags.h +++ b/engines/prince/flags.h @@ -410,7 +410,6 @@ struct Flags { }; }; -} -#endif -/* vim: set tabstop=4 noexpandtab: */ +} // End of namespace Prince +#endif diff --git a/engines/prince/font.cpp b/engines/prince/font.cpp index 40b6d014e6..0ac61f29be 100644 --- a/engines/prince/font.cpp +++ b/engines/prince/font.cpp @@ -23,24 +23,25 @@ #include "common/archive.h" #include "common/debug.h" #include "common/stream.h" -#include "common/str.h" - -#include "graphics/surface.h" #include "prince/font.h" namespace Prince { -Font::Font() { +Font::Font() : _fontData(nullptr) { } Font::~Font() { - delete [] _fontData; + if (_fontData != nullptr) { + free(_fontData); + _fontData = nullptr; + } } bool Font::loadFromStream(Common::SeekableReadStream &stream) { stream.seek(0); - _fontData = new byte[stream.size()]; + uint32 dataSize = stream.size(); + _fontData = (byte *)malloc(dataSize); stream.read(_fontData, stream.size()); return true; } @@ -55,11 +56,11 @@ int Font::getMaxCharWidth() const { Font::ChrData Font::getChrData(byte chr) const { chr -= 32; - uint16 chrOffset = 4*chr+6; + uint16 chrOffset = 4 * chr + 6; ChrData chrData; - chrData._width = _fontData[chrOffset+2]; - chrData._height = _fontData[chrOffset+3]; + chrData._width = _fontData[chrOffset + 2]; + chrData._height = _fontData[chrOffset + 3]; chrData._pixels = _fontData + READ_LE_UINT16(_fontData + chrOffset); return chrData; @@ -72,20 +73,18 @@ int Font::getCharWidth(uint32 chr) const { void Font::drawChar(Graphics::Surface *dst, uint32 chr, int posX, int posY, uint32 color) const { const ChrData chrData = getChrData(chr); - for (int y = 0; y < chrData._height; ++y) { - for (int x = 0; x < chrData._width; ++x) { + for (int y = 0; y < chrData._height; y++) { + for (int x = 0; x < chrData._width; x++) { byte d = chrData._pixels[x + (chrData._width * y)]; if (d == 0) d = 255; else if (d == 1) d = 0; else if (d == 2) d = color; else if (d == 3) d = 0; if (d != 255) { - *(byte*)dst->getBasePtr(posX + x, posY + y) = d; + *(byte *)dst->getBasePtr(posX + x, posY + y) = d; } } } } -} - -/* vim: set tabstop=4 expandtab!: */ +} // End of namespace Prince diff --git a/engines/prince/font.h b/engines/prince/font.h index bf9c09d0e9..001e9f7668 100644 --- a/engines/prince/font.h +++ b/engines/prince/font.h @@ -23,14 +23,9 @@ #define PRINCE_FONT_H #include "graphics/font.h" +#include "graphics/surface.h" -namespace Graphics { - struct Surface; -} - -namespace Common { - class String; -} +#include "common/str.h" namespace Prince { @@ -63,8 +58,6 @@ private: byte *_fontData; }; -} +} // End of namespace Prince #endif - -/* vim: set tabstop=4 expandtab!: */ diff --git a/engines/prince/graphics.cpp b/engines/prince/graphics.cpp index 58ab7b0f21..f70002c28b 100644 --- a/engines/prince/graphics.cpp +++ b/engines/prince/graphics.cpp @@ -21,9 +21,7 @@ */ #include "prince/graphics.h" - #include "prince/prince.h" - #include "prince/mhwanh.h" #include "graphics/palette.h" @@ -32,28 +30,34 @@ namespace Prince { -GraphicsMan::GraphicsMan(PrinceEngine *vm) - : _vm(vm), _changed(false) { +GraphicsMan::GraphicsMan(PrinceEngine *vm) : _vm(vm), _changed(false) { initGraphics(640, 480, true); + _frontScreen = new Graphics::Surface(); _frontScreen->create(640, 480, Graphics::PixelFormat::createFormatCLUT8()); + _screenForInventory = new Graphics::Surface(); _screenForInventory->create(640, 480, Graphics::PixelFormat::createFormatCLUT8()); + _mapScreen = new Graphics::Surface(); _mapScreen->create(640, 480, Graphics::PixelFormat::createFormatCLUT8()); - _shadowTable70 = new byte[256]; - _shadowTable50 = new byte[256]; + + _shadowTable70 = (byte *)malloc(256); + _shadowTable50 = (byte *)malloc(256); } GraphicsMan::~GraphicsMan() { _frontScreen->free(); delete _frontScreen; + _screenForInventory->free(); delete _screenForInventory; + _mapScreen->free(); delete _mapScreen; - delete[] _shadowTable70; - delete[] _shadowTable50; + + free(_shadowTable70); + free(_shadowTable50); } void GraphicsMan::update(Graphics::Surface *screen) { @@ -382,5 +386,3 @@ void GraphicsMan::makeShadowTable(int brightness, byte *shadowPalette) { } } // End of namespace Prince - -/* vim: set tabstop=4 noexpandtab: */ diff --git a/engines/prince/graphics.h b/engines/prince/graphics.h index 57e28fdae5..95c10ec790 100644 --- a/engines/prince/graphics.h +++ b/engines/prince/graphics.h @@ -28,8 +28,8 @@ namespace Prince { class PrinceEngine; -struct DrawNode; class MhwanhDecoder; +struct DrawNode; class GraphicsMan { public: @@ -68,12 +68,10 @@ public: void drawPixel(Graphics::Surface *screen, int32 posX, int32 posY); private: - PrinceEngine *_vm; - bool _changed; }; -} +} // End of namespace Prince #endif diff --git a/engines/prince/hero.cpp b/engines/prince/hero.cpp index 79a69da471..685964c787 100644 --- a/engines/prince/hero.cpp +++ b/engines/prince/hero.cpp @@ -19,6 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */ + #include "common/debug.h" #include "common/random.h" @@ -33,21 +34,24 @@ namespace Prince { -Hero::Hero(PrinceEngine *vm, GraphicsMan *graph) : _vm(vm), _graph(graph) - , _number(0), _visible(false), _state(kHeroStateStay), _middleX(0), _middleY(0) - , _boreNum(1), _currHeight(0), _moveDelay(0), _shadMinus(0), _moveSetType(0), _zoomedHeroSurface(nullptr) - , _lastDirection(kHeroDirDown), _destDirection(kHeroDirDown), _talkTime(0), _boredomTime(0), _phase(0) - , _specAnim(nullptr), _drawX(0), _drawY(0), _drawZ(0), _zoomFactor(0), _scaleValue(0) - , _shadZoomFactor(0), _shadScaleValue(0), _shadLineLen(0), _shadDrawX(0), _shadDrawY(0) - , _frameXSize(0), _frameYSize(0), _scaledFrameXSize(0), _scaledFrameYSize(0), _color(0) - , _coords(nullptr), _dirTab(nullptr), _currCoords(nullptr), _currDirTab(nullptr), _step(0) - , _maxBoredom(200), _turnAnim(0), _leftRightMainDir(0), _upDownMainDir(0), _animSetNr(0) +Hero::Hero(PrinceEngine *vm, GraphicsMan *graph) : _vm(vm), _graph(graph), + _number(0), _visible(false), _state(kHeroStateStay), _middleX(0), _middleY(0), + _boreNum(1), _currHeight(0), _moveDelay(0), _shadMinus(0), _moveSetType(0), _zoomedHeroSurface(nullptr), + _lastDirection(kHeroDirDown), _destDirection(kHeroDirDown), _talkTime(0), _boredomTime(0), _phase(0), + _specAnim(nullptr), _drawX(0), _drawY(0), _drawZ(0), _zoomFactor(0), _scaleValue(0), + _shadZoomFactor(0), _shadScaleValue(0), _shadLineLen(0), _shadDrawX(0), _shadDrawY(0), + _frameXSize(0), _frameYSize(0), _scaledFrameXSize(0), _scaledFrameYSize(0), _color(0), + _coords(nullptr), _dirTab(nullptr), _currCoords(nullptr), _currDirTab(nullptr), _step(0), + _maxBoredom(200), _turnAnim(0), _leftRightMainDir(0), _upDownMainDir(0), _animSetNr(0) { - _shadowLine = new byte[kShadowLineArraySize]; + _shadowLine = (byte *)malloc(kShadowLineArraySize); } Hero::~Hero() { - delete[] _shadowLine; + if (_shadowLine != nullptr) { + free(_shadowLine); + _shadowLine = nullptr; + } freeHeroAnim(); freeOldMove(); freeZoomedSurface(); @@ -141,7 +145,7 @@ Graphics::Surface *Hero::zoomSprite(Graphics::Surface *heroFrame) { for (int i = 0; i < _scaledFrameYSize; i++) { // linear_loop: - while(1) { + while (1) { sprZoomY -= 100; if (sprZoomY >= 0 || _scaleValue == 10000) { // all_r_y @@ -477,7 +481,7 @@ void Hero::showHeroShadow(Graphics::Surface *heroFrame) { } } //krap2 - shadWallDestAddr -= kScreenWidth; + shadWallDestAddr -= _vm->kNormalWidth; shadWallBitAddr -= _vm->kMaxPicWidth / 8; shadWallPosY--; } @@ -1027,6 +1031,4 @@ void Hero::freeZoomedSurface() { } } -} - -/* vim: set tabstop=4 noexpandtab: */ +} // End of namespace Prince diff --git a/engines/prince/hero.h b/engines/prince/hero.h index 7c30fda559..00c47e1dc4 100644 --- a/engines/prince/hero.h +++ b/engines/prince/hero.h @@ -41,7 +41,6 @@ class Hero { public: static const uint32 kMoveSetSize = 26; static const int16 kShadowLineArraySize = 2 * 1280 * 4; - static const int16 kScreenWidth = 640; static const int16 kStepLeftRight = 8; static const int16 kStepUpDown = 4; @@ -189,8 +188,6 @@ public: uint32 _shadMinus; }; -} +} // End of namespace Prince #endif - -/* vim: set tabstop=4 noexpandtab: */ diff --git a/engines/prince/hero_set.cpp b/engines/prince/hero_set.cpp deleted file mode 100644 index 1d235a567a..0000000000 --- a/engines/prince/hero_set.cpp +++ /dev/null @@ -1,243 +0,0 @@ - -/* 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 "prince/hero_set.h" -#include "common/scummsys.h" - -namespace Prince { - -static HeroSetAnimNames heroSet5 = { - "SL_DIAB.ANI", - "SR_DIAB.ANI", - "SU_DIAB.ANI", - "SD_DIAB.ANI", - NULL, - NULL, - "MU_DIAB.ANI", - "MD_DIAB.ANI", - "TL_DIAB.ANI", - "TR_DIAB.ANI", - "TU_DIAB.ANI", - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -static HeroSetAnimNames heroSet1 = { - "SL_HERO1.ANI", - "SR_HERO1.ANI", - "SU_HERO1.ANI", - "SD_HERO1.ANI", - "ML_HERO1.ANI", - "MR_HERO1.ANI", - "MU_HERO1.ANI", - "MD_HERO1.ANI", - "TL_HERO1.ANI", - "TR_HERO1.ANI", - "TU_HERO1.ANI", - "TD_HERO1.ANI", - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - "KSI_KURZ.ANI", - "KS_WLOSY.ANI" -}; - -static HeroSetAnimNames heroSet2 = { - "SL_HERO2.ANI", - "SR_HERO2.ANI", - "SU_HERO2.ANI", - "SD_HERO2.ANI", - "ML_HERO2.ANI", - "MR_HERO2.ANI", - "MU_HERO2.ANI", - "MD_HERO2.ANI", - "TL_HERO2.ANI", - "TR_HERO2.ANI", - "TU_HERO2.ANI", - "TD_HERO2.ANI", - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - "KSI_KU_S.ANI", - "KS_WLO_S.ANI" -}; - -static HeroSetAnimNames heroSet3 = { - "SL_BEAR.ANI", - "SR_BEAR.ANI", - "SU_BEAR.ANI", - "SD_BEAR.ANI", - "NIED-LEW.ANI", - "NIED-PRW.ANI", - "NIED-TYL.ANI", - "NIED-PRZ.ANI", - "SL_BEAR.ANI", - "SR_BEAR.ANI", - "SU_BEAR.ANI", - "SD_BEAR.ANI", - "N_LW-TYL.ANI", - "N_LW-PRZ.ANI", - "N_LW-PR.ANI", - "N_PR-TYL.ANI", - "N_PR-PRZ.ANI", - "N_PR-LW.ANI", - "N_TYL-LW.ANI", - "N_TYL-PR.ANI", - "N_TL-PRZ.ANI", - "N_PRZ-LW.ANI", - "N_PRZ-PR.ANI", - "N_PRZ-TL.ANI", - NULL, - NULL, -}; - -static HeroSetAnimNames shanSet1 = { - "SL_SHAN.ANI", - "SR_SHAN.ANI", - "SU_SHAN.ANI", - "SD_SHAN.ANI", - "ML_SHAN.ANI", - "MR_SHAN.ANI", - "MU_SHAN.ANI", - "MD_SHAN.ANI", - "TL_SHAN.ANI", - "TR_SHAN.ANI", - "TU_SHAN.ANI", - "TD_SHAN.ANI", - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - "B1_SHAN.ANI", - "B2_SHAN.ANI", -}; - -static HeroSetAnimNames shanSet2 = { - "SL_SHAN2.ANI", - "SR_SHAN2.ANI", - "SU_SHAN.ANI", - "SD_SHAN2.ANI", - "ML_SHAN2.ANI", - "MR_SHAN2.ANI", - "MU_SHAN.ANI", - "MD_SHAN2.ANI", - "TL_SHAN2.ANI", - "TR_SHAN2.ANI", - "TU_SHAN.ANI", - "TD_SHAN2.ANI", - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - "B1_SHAN2.ANI", - "B2_SHAN2.ANI" -}; - -static HeroSetAnimNames arivSet1 = { - "SL_ARIV.ANI", - "SR_ARIV.ANI", - "SU_ARIV.ANI", - "SD_ARIV.ANI", - "ML_ARIV.ANI", - "MR_ARIV.ANI", - "MU_ARIV.ANI", - "MD_ARIV.ANI", - "TL_ARIV.ANI", - "TR_ARIV.ANI", - "TU_ARIV.ANI", - "TD_ARIV.ANI", - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL -}; - -const HeroSetAnimNames *heroSetTable[7] = { - &heroSet1, - &heroSet2, - &heroSet3, - &shanSet1, - &arivSet1, - &heroSet5, - &shanSet2, -}; - -} -/* vim: set tabstop=4 noexpandtab: */ diff --git a/engines/prince/hero_set.h b/engines/prince/hero_set.h index e0c7887b94..1674f67503 100644 --- a/engines/prince/hero_set.h +++ b/engines/prince/hero_set.h @@ -20,12 +20,225 @@ * */ +#include "common/scummsys.h" + namespace Prince { +const int heroSetBack[7] = { 0, 0, 10, 0, 6, 0, 0 }; + typedef const char *HeroSetAnimNames[26]; -const int heroSetBack[7] = { 0, 0, 10, 0, 6, 0, 0 }; -extern const HeroSetAnimNames *heroSetTable[7]; +static HeroSetAnimNames heroSet5 = { + "SL_DIAB.ANI", + "SR_DIAB.ANI", + "SU_DIAB.ANI", + "SD_DIAB.ANI", + NULL, + NULL, + "MU_DIAB.ANI", + "MD_DIAB.ANI", + "TL_DIAB.ANI", + "TR_DIAB.ANI", + "TU_DIAB.ANI", + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +}; + +static HeroSetAnimNames heroSet1 = { + "SL_HERO1.ANI", + "SR_HERO1.ANI", + "SU_HERO1.ANI", + "SD_HERO1.ANI", + "ML_HERO1.ANI", + "MR_HERO1.ANI", + "MU_HERO1.ANI", + "MD_HERO1.ANI", + "TL_HERO1.ANI", + "TR_HERO1.ANI", + "TU_HERO1.ANI", + "TD_HERO1.ANI", + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + "KSI_KURZ.ANI", + "KS_WLOSY.ANI" +}; + +static HeroSetAnimNames heroSet2 = { + "SL_HERO2.ANI", + "SR_HERO2.ANI", + "SU_HERO2.ANI", + "SD_HERO2.ANI", + "ML_HERO2.ANI", + "MR_HERO2.ANI", + "MU_HERO2.ANI", + "MD_HERO2.ANI", + "TL_HERO2.ANI", + "TR_HERO2.ANI", + "TU_HERO2.ANI", + "TD_HERO2.ANI", + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + "KSI_KU_S.ANI", + "KS_WLO_S.ANI" +}; + +static HeroSetAnimNames heroSet3 = { + "SL_BEAR.ANI", + "SR_BEAR.ANI", + "SU_BEAR.ANI", + "SD_BEAR.ANI", + "NIED-LEW.ANI", + "NIED-PRW.ANI", + "NIED-TYL.ANI", + "NIED-PRZ.ANI", + "SL_BEAR.ANI", + "SR_BEAR.ANI", + "SU_BEAR.ANI", + "SD_BEAR.ANI", + "N_LW-TYL.ANI", + "N_LW-PRZ.ANI", + "N_LW-PR.ANI", + "N_PR-TYL.ANI", + "N_PR-PRZ.ANI", + "N_PR-LW.ANI", + "N_TYL-LW.ANI", + "N_TYL-PR.ANI", + "N_TL-PRZ.ANI", + "N_PRZ-LW.ANI", + "N_PRZ-PR.ANI", + "N_PRZ-TL.ANI", + NULL, + NULL, +}; + +static HeroSetAnimNames shanSet1 = { + "SL_SHAN.ANI", + "SR_SHAN.ANI", + "SU_SHAN.ANI", + "SD_SHAN.ANI", + "ML_SHAN.ANI", + "MR_SHAN.ANI", + "MU_SHAN.ANI", + "MD_SHAN.ANI", + "TL_SHAN.ANI", + "TR_SHAN.ANI", + "TU_SHAN.ANI", + "TD_SHAN.ANI", + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + "B1_SHAN.ANI", + "B2_SHAN.ANI", +}; + +static HeroSetAnimNames shanSet2 = { + "SL_SHAN2.ANI", + "SR_SHAN2.ANI", + "SU_SHAN.ANI", + "SD_SHAN2.ANI", + "ML_SHAN2.ANI", + "MR_SHAN2.ANI", + "MU_SHAN.ANI", + "MD_SHAN2.ANI", + "TL_SHAN2.ANI", + "TR_SHAN2.ANI", + "TU_SHAN.ANI", + "TD_SHAN2.ANI", + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + "B1_SHAN2.ANI", + "B2_SHAN2.ANI" +}; + +static HeroSetAnimNames arivSet1 = { + "SL_ARIV.ANI", + "SR_ARIV.ANI", + "SU_ARIV.ANI", + "SD_ARIV.ANI", + "ML_ARIV.ANI", + "MR_ARIV.ANI", + "MU_ARIV.ANI", + "MD_ARIV.ANI", + "TL_ARIV.ANI", + "TR_ARIV.ANI", + "TU_ARIV.ANI", + "TD_ARIV.ANI", + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +}; + +const HeroSetAnimNames *heroSetTable[7] = { + &heroSet1, + &heroSet2, + &heroSet3, + &shanSet1, + &arivSet1, + &heroSet5, + &shanSet2, +}; -} -/* vim: set tabstop=4 noexpandtab: */ +} // End of namespace Prince diff --git a/engines/prince/mhwanh.cpp b/engines/prince/mhwanh.cpp index 3bd034e4a7..ef94ef71f9 100644 --- a/engines/prince/mhwanh.cpp +++ b/engines/prince/mhwanh.cpp @@ -28,8 +28,7 @@ namespace Prince { -MhwanhDecoder::MhwanhDecoder() - : _surface(NULL), _palette(0), _paletteColorCount(0) { +MhwanhDecoder::MhwanhDecoder() : _surface(nullptr), _palette(nullptr) { } MhwanhDecoder::~MhwanhDecoder() { @@ -37,38 +36,36 @@ MhwanhDecoder::~MhwanhDecoder() { } void MhwanhDecoder::destroy() { - if (_surface) { + if (_surface != nullptr) { _surface->free(); delete _surface; - _surface = 0; + _surface = nullptr; + } + if (_palette != nullptr) { + free(_palette); + _palette = nullptr; } - - delete [] _palette; _palette = 0; - _paletteColorCount = 0; } bool MhwanhDecoder::loadStream(Common::SeekableReadStream &stream) { destroy(); - _paletteColorCount = 256; stream.seek(0); stream.skip(0x20); // Read the palette - _palette = new byte[_paletteColorCount * 3]; - for (uint16 i = 0; i < _paletteColorCount; i++) { - _palette[i * 3 + 0] = stream.readByte(); + _palette = (byte *)malloc(kPaletteColorCount * 3); + for (uint16 i = 0; i < kPaletteColorCount; i++) { + _palette[i * 3] = stream.readByte(); _palette[i * 3 + 1] = stream.readByte(); _palette[i * 3 + 2] = stream.readByte(); } _surface = new Graphics::Surface(); _surface->create(640, 480, Graphics::PixelFormat::createFormatCLUT8()); - for (int h = 0; h < 480; ++h) { + for (int h = 0; h < 480; h++) { stream.read(_surface->getBasePtr(0, h), 640); } return true; } -} - -/* vim: set tabstop=4 noexpandtab: */ +} // End of namespace Prince diff --git a/engines/prince/mhwanh.h b/engines/prince/mhwanh.h index 02256569ce..cfa14630b7 100644 --- a/engines/prince/mhwanh.h +++ b/engines/prince/mhwanh.h @@ -25,7 +25,9 @@ #include "image/image_decoder.h" #include "image/bmp.h" + #include "graphics/surface.h" + #include "resource.h" namespace Prince { @@ -40,12 +42,12 @@ public: virtual bool loadStream(Common::SeekableReadStream &stream); virtual Graphics::Surface *getSurface() const { return _surface; } virtual const byte *getPalette() const { return _palette; } - uint16 getPaletteCount() const { return _paletteColorCount; } + uint16 getPaletteCount() const { return kPaletteColorCount; } + static const uint16 kPaletteColorCount = 256; private: Graphics::Surface *_surface; byte *_palette; - uint16 _paletteColorCount; }; namespace Resource { @@ -60,8 +62,6 @@ namespace Resource { } } -} +} // End of namespace Prince #endif - -/* vim: set tabstop=4 noexpandtab: */ diff --git a/engines/prince/mob.cpp b/engines/prince/mob.cpp index 7ed4f58103..9f3ff5d7b8 100644 --- a/engines/prince/mob.cpp +++ b/engines/prince/mob.cpp @@ -22,8 +22,6 @@ #include "prince/mob.h" -#include "common/stream.h" - namespace Prince { bool Mob::loadFromStream(Common::SeekableReadStream &stream) { @@ -107,6 +105,4 @@ uint16 Mob::getData(AttrId dataId) { } } -} - -/* vim: set tabstop=4 noexpandtab: */ +} // End of namespace Prince diff --git a/engines/prince/mob.h b/engines/prince/mob.h index 36630eb6eb..aaa51988b2 100644 --- a/engines/prince/mob.h +++ b/engines/prince/mob.h @@ -26,13 +26,10 @@ #include "common/scummsys.h" #include "common/rect.h" #include "common/str.h" +#include "common/stream.h" #include "prince/common.h" -namespace Common { - class SeekableReadStream; -} - namespace Prince { class Mob { @@ -79,8 +76,6 @@ public: Common::String _examText; }; -} +} // End of namespace Prince #endif - -/* vim: set tabstop=4 noexpandtab: */ diff --git a/engines/prince/module.mk b/engines/prince/module.mk index 584fb99a97..2dfa538a6e 100644 --- a/engines/prince/module.mk +++ b/engines/prince/module.mk @@ -17,7 +17,6 @@ MODULE_OBJS = \ archive.o \ decompress.o \ hero.o \ - hero_set.o \ cursor.o \ pscr.o \ saveload.o diff --git a/engines/prince/musNum.h b/engines/prince/musNum.h index 65b31f8175..c24cba6ad7 100644 --- a/engines/prince/musNum.h +++ b/engines/prince/musNum.h @@ -84,4 +84,4 @@ enum RoomMus { ROOM61MUS = 0 }; -} +} // End of namespace Prince diff --git a/engines/prince/object.cpp b/engines/prince/object.cpp index 7e4bd1bbee..a9a96455b1 100644 --- a/engines/prince/object.cpp +++ b/engines/prince/object.cpp @@ -25,7 +25,6 @@ #include "common/debug.h" #include "common/stream.h" - #include "graphics/surface.h" #include "prince/object.h" @@ -65,8 +64,9 @@ void Object::loadSurface(Common::SeekableReadStream &stream) { bool Object::loadFromStream(Common::SeekableReadStream &stream) { int32 pos = stream.pos(); uint16 x = stream.readUint16LE(); - if (x == 0xFFFF) + if (x == 0xFFFF) { return false; + } _x = x; _y = stream.readSint16LE(); // skull mini-game has some signed y coords @@ -82,8 +82,6 @@ bool Object::loadFromStream(Common::SeekableReadStream &stream) { stream.seek(pos + 16); - //debug("Object x %d, y %d, z %d overlay %d", _x, _y, _z, _mask); - return true; } @@ -112,5 +110,4 @@ int32 Object::getData(AttrId dataId) { } } -} -/* vim: set tabstop=4 noexpandtab: */ +} // End of namespace Prince diff --git a/engines/prince/object.h b/engines/prince/object.h index 31e88ac9e4..68edd061a0 100644 --- a/engines/prince/object.h +++ b/engines/prince/object.h @@ -65,7 +65,6 @@ private: Graphics::Surface *_surface; }; -} +} // End of namespace Prince #endif -/* vim: set tabstop=4 noexpandtab: */ diff --git a/engines/prince/option_text.h b/engines/prince/option_text.h index 0a1548a8a5..d4d214c98c 100644 --- a/engines/prince/option_text.h +++ b/engines/prince/option_text.h @@ -82,5 +82,4 @@ const char *optionsTextEN[] = { "Talk to" }; -} - +} // End of namespace Prince diff --git a/engines/prince/prince.cpp b/engines/prince/prince.cpp index ee96895d31..49d76afab7 100644 --- a/engines/prince/prince.cpp +++ b/engines/prince/prince.cpp @@ -21,7 +21,6 @@ */ #include "common/scummsys.h" - #include "common/config-manager.h" #include "common/debug-channels.h" #include "common/debug.h" @@ -77,8 +76,8 @@ void PrinceEngine::debugEngine(const char *s, ...) { PrinceEngine::PrinceEngine(OSystem *syst, const PrinceGameDescription *gameDesc) : Engine(syst), _gameDescription(gameDesc), _graph(nullptr), _script(nullptr), _interpreter(nullptr), _flags(nullptr), - _locationNr(0), _debugger(nullptr), _midiPlayer(nullptr), _room(nullptr), testAnimNr(0), testAnimFrame(0), - _frameNr(0), _cursor1(nullptr), _cursor2(nullptr), _cursor3(nullptr), _font(nullptr), + _locationNr(0), _debugger(nullptr), _midiPlayer(nullptr), _room(nullptr), _frameNr(0), + _cursor1(nullptr), _cursor2(nullptr), _cursor3(nullptr), _font(nullptr), _suitcaseBmp(nullptr), _roomBmp(nullptr), _cursorNr(0), _picWindowX(0), _picWindowY(0), _randomSource("prince"), _invLineX(134), _invLineY(176), _invLine(5), _invLines(3), _invLineW(70), _invLineH(76), _maxInvW(72), _maxInvH(76), _invLineSkipX(2), _invLineSkipY(3), _showInventoryFlag(false), _inventoryBackgroundRemember(false), @@ -121,9 +120,9 @@ PrinceEngine::~PrinceEngine() { delete _roomBmp; delete _suitcaseBmp; delete _variaTxt; - delete[] _talkTxt; - delete[] _invTxt; - delete[] _dialogDat; + free(_talkTxt); + free(_invTxt); + free(_dialogDat); delete _graph; delete _room; @@ -137,7 +136,7 @@ PrinceEngine::~PrinceEngine() { } _objList.clear(); - delete[] _objSlot; + free(_objSlot); for (uint32 i = 0; i < _pscrList.size(); i++) { delete _pscrList[i]; @@ -258,7 +257,7 @@ void PrinceEngine::init() { return; } _talkTxtSize = talkTxtStream->size(); - _talkTxt = new byte[_talkTxtSize]; + _talkTxt = (byte *)malloc(_talkTxtSize); talkTxtStream->read(_talkTxt, _talkTxtSize); delete talkTxtStream; @@ -269,7 +268,7 @@ void PrinceEngine::init() { return; } _invTxtSize = invTxtStream->size(); - _invTxt = new byte[_invTxtSize]; + _invTxt = (byte *)malloc(_invTxtSize); invTxtStream->read(_invTxt, _invTxtSize); delete invTxtStream; @@ -282,7 +281,7 @@ void PrinceEngine::init() { return; } _dialogDatSize = dialogDatStream->size(); - _dialogDat = new byte[_dialogDatSize]; + _dialogDat = (byte *)malloc(_dialogDatSize); dialogDatStream->read(_dialogDat, _dialogDatSize); delete dialogDatStream; @@ -325,7 +324,7 @@ void PrinceEngine::init() { _normAnimList.push_back(tempAnim); } - _objSlot = new int[kMaxObjects]; + _objSlot = (uint16 *)malloc(kMaxObjects * sizeof(uint16)); for (int i = 0; i < kMaxObjects; i++) { _objSlot[i] = 0xFF; } @@ -551,10 +550,10 @@ void PrinceEngine::makeInvCursor(int itemNr) { byte *src1 = (byte *)itemSurface->getBasePtr(0, 0); byte *dst1 = (byte *)_cursor2->getBasePtr(cur1W, cur1H); - if (itemH % 2 != 0) { + if (itemH % 2) { itemH--; } - if (itemW % 2 != 0) { + if (itemW % 2) { itemW--; } @@ -564,7 +563,7 @@ void PrinceEngine::makeInvCursor(int itemNr) { if (y % 2 == 0) { for (int x = 0; x < itemW; x++, src2++) { if (x % 2 == 0) { - if (*src2 != 0) { + if (*src2) { *dst2 = *src2; } else { *dst2 = 255; @@ -880,81 +879,9 @@ void PrinceEngine::keyHandler(Common::Event event) { getDebugger()->attach(); } break; - case Common::KEYCODE_LEFT: - if(testAnimNr > 0) { - testAnimNr--; - } - debug("testAnimNr: %d", testAnimNr); - break; - case Common::KEYCODE_RIGHT: - testAnimNr++; - debug("testAnimNr: %d", testAnimNr); - break; case Common::KEYCODE_ESCAPE: _flags->setFlagValue(Flags::ESCAPED2, 1); break; - case Common::KEYCODE_UP: - _mainHero->_phase++; - debugEngine("%d", _mainHero->_phase); - testAnimFrame++; - break; - case Common::KEYCODE_DOWN: - if(_mainHero->_phase > 0) { - _mainHero->_phase--; - } - if (testAnimFrame > 0) { - testAnimFrame--; - } - debugEngine("%d", _mainHero->_phase); - break; - case Common::KEYCODE_w: - _mainHero->_lastDirection = _mainHero->kHeroDirUp; - debugEngine("UP"); - break; - case Common::KEYCODE_s: - _mainHero->_lastDirection = _mainHero->kHeroDirDown; - debugEngine("DOWN"); - break; - case Common::KEYCODE_a: - _mainHero->_lastDirection = _mainHero->kHeroDirLeft; - debugEngine("LEFT"); - break; - case Common::KEYCODE_f: - _mainHero->_lastDirection = _mainHero->kHeroDirRight; - debugEngine("RIGHT"); - break; - case Common::KEYCODE_1: - if(_mainHero->_state > 0) { - _mainHero->_state--; - } - debugEngine("%d", _mainHero->_state); - break; - case Common::KEYCODE_2: - _mainHero->_state++; - debugEngine("%d", _mainHero->_state); - break; - case Common::KEYCODE_i: - _mainHero->_middleY -= 5; - break; - case Common::KEYCODE_k: - _mainHero->_middleY += 5; - break; - case Common::KEYCODE_j: - _mainHero->_middleX -= 5; - break; - case Common::KEYCODE_l: - _mainHero->_middleX += 5; - break; - case Common::KEYCODE_EQUALS: - if (_debugger->_locationNr > 1) { - _debugger->_locationNr--; - } - break; - case Common::KEYCODE_BACKSPACE: - if (_debugger->_locationNr < 43) { - _debugger->_locationNr++; - } - break; } } @@ -1144,10 +1071,11 @@ void PrinceEngine::printAt(uint32 slot, uint8 color, char *s, uint16 x, uint16 y text._x = x; text._y = y; text._color = color; - text._time = calcText(s) * 30; + int lines = calcTextLines(s); + text._time = calcTextTime(lines); } -int PrinceEngine::calcText(const char *s) { +int PrinceEngine::calcTextLines(const char *s) { int lines = 1; while (*s) { if (*s == '\n') { @@ -1156,7 +1084,10 @@ int PrinceEngine::calcText(const char *s) { s++; } return lines; - //time = lines * 30 +} + +int PrinceEngine::calcTextTime(int numberOfLines) { + return numberOfLines * 30; } uint32 PrinceEngine::getTextWidth(const char *s) { @@ -1742,7 +1673,7 @@ void PrinceEngine::showParallax() { if (pscrSurface != nullptr) { int x = _pscrList[i]->_x - (_pscrList[i]->_step * _picWindowX / 4); int y = _pscrList[i]->_y; - int z = 1000; + int z = PScr::kPScrZ; if (spriteCheck(pscrSurface->w, pscrSurface->h, x, y)) { showSprite(pscrSurface, x, y, z); } @@ -2355,24 +2286,17 @@ void PrinceEngine::inventoryLeftMouseButton() { } if (_optionsFlag == 1) { - //check_opt if (_selectedMob != -1) { - //inv_check_mob if (_optionEnabled < _invOptionsNumber) { _optionsFlag = 0; - //do_option } else { return; } } else { error("PrinceEngine::inventoryLeftMouseButton() - optionsFlag = 1, selectedMob = 0"); - // test bx, RMBMask 7996 ? right mouse button here? - > return; - //disable_use if (_currentPointerNumber == 2) { - //disableuseuse changeCursor(1); _currentPointerNumber = 1; - //exit_normally _selectedMob = -1; _optionsMob = -1; return; @@ -2389,7 +2313,6 @@ void PrinceEngine::inventoryLeftMouseButton() { // map item _optionEnabled = 1; } - //do_option } else { //use_item_on_item int invObjUU = _script->scanMobEventsWithItem(_invMobList[_selectedMob]._mask, _script->_scriptInfo.invObjUU, _selectedItem); @@ -2402,15 +2325,12 @@ void PrinceEngine::inventoryLeftMouseButton() { printAt(0, 216, (char *)_variaTxt->getString(textNr - 80000), kNormalWidth / 2, 100); setVoice(0, 28, 1); playSample(28, 0); - //exit_normally _selectedMob = -1; _optionsMob = -1; return; } else { - //store_new_pc _interpreter->storeNewPC(invObjUU); _flags->setFlagValue(Flags::CURRMOB, _invMobList[_selectedMob]._mask); - //byeinv _showInventoryFlag = false; } } @@ -2430,12 +2350,9 @@ void PrinceEngine::inventoryLeftMouseButton() { // disableuseuse changeCursor(0); _currentPointerNumber = 1; - //exit_normally } else { - //store_new_pc _interpreter->storeNewPC(invObjExamEvent); _flags->setFlagValue(Flags::CURRMOB, _invMobList[_selectedMob]._mask); - //bye_inv _showInventoryFlag = false; } } else if (_optionEnabled == 1) { @@ -2448,23 +2365,18 @@ void PrinceEngine::inventoryLeftMouseButton() { makeInvCursor(_invMobList[_selectedMob]._mask); _currentPointerNumber = 2; changeCursor(2); - //exit_normally } else { - //store_new_pc _interpreter->storeNewPC(invObjUse); _flags->setFlagValue(Flags::CURRMOB, _invMobList[_selectedMob]._mask); - //bye_inv _showInventoryFlag = false; } } else if (_optionEnabled == 4) { - // not_use_inv // do_standard_give _selectedMode = 1; _selectedItem = _invMobList[_selectedMob]._mask; makeInvCursor(_invMobList[_selectedMob]._mask); _currentPointerNumber = 2; changeCursor(2); - //exit_normally } else { // use_item_on_item int invObjUU = _script->scanMobEventsWithItem(_invMobList[_selectedMob]._mask, _script->_scriptInfo.invObjUU, _selectedItem); @@ -2477,16 +2389,12 @@ void PrinceEngine::inventoryLeftMouseButton() { printAt(0, 216, (char *)_variaTxt->getString(textNr - 80000), kNormalWidth / 2, 100); setVoice(0, 28, 1); playSample(28, 0); - //exit_normally } else { - //store_new_pc _interpreter->storeNewPC(invObjUU); _flags->setFlagValue(Flags::CURRMOB, _invMobList[_selectedMob]._mask); - //byeinv _showInventoryFlag = false; } } - //exit_normally _selectedMob = -1; _optionsMob = -1; } @@ -2733,7 +2641,7 @@ void PrinceEngine::createDialogBox(int dialogBoxNr) { while ((sentenceNumber = *dialogText) != 0xFF) { dialogText++; if (!(dialogDataValue & (1 << sentenceNumber))) { - _dialogLines += calcText((const char *)dialogText); + _dialogLines += calcTextLines((const char *)dialogText); amountOfDialogOptions++; } do { @@ -2756,7 +2664,7 @@ void PrinceEngine::runDialog() { while (!shouldQuit()) { drawScreen(); - // background iterpreter? + // TODO - background iterpreter? int dialogX = (640 - _dialogWidth) / 2; int dialogY = 460 - _dialogHeight; @@ -2849,7 +2757,6 @@ void PrinceEngine::runDialog() { _dialogImage->free(); delete _dialogImage; _dialogFlag = false; - // cursor? } void PrinceEngine::dialogLeftMouseButton(byte *string, int dialogSelected) { @@ -2873,7 +2780,7 @@ void PrinceEngine::dialogLeftMouseButton(byte *string, int dialogSelected) { void PrinceEngine::talkHero(int slot) { // heroSlot = textSlot (slot 0 or 1) Text &text = _textSlots[slot]; - int lines = calcText((const char *)_interpreter->getString()); + int lines = calcTextLines((const char *)_interpreter->getString()); int time = lines * 30; if (slot == 0) { @@ -2896,7 +2803,7 @@ void PrinceEngine::talkHero(int slot) { void PrinceEngine::doTalkAnim(int animNumber, int slot, AnimType animType) { Text &text = _textSlots[slot]; - int lines = calcText((const char *)_interpreter->getString()); + int lines = calcTextLines((const char *)_interpreter->getString()); int time = lines * 30; if (animType == kNormalAnimation) { Anim &normAnim = _normAnimList[animNumber]; @@ -4545,5 +4452,3 @@ void PrinceEngine::mainLoop() { } } // End of namespace Prince - -/* vim: set tabstop=4 expandtab!: */ diff --git a/engines/prince/prince.h b/engines/prince/prince.h index 4b8d78ad94..a1379d6b59 100644 --- a/engines/prince/prince.h +++ b/engines/prince/prince.h @@ -49,7 +49,6 @@ #include "prince/object.h" #include "prince/pscr.h" - namespace Prince { struct PrinceGameDescription; @@ -301,7 +300,8 @@ public: void changeCursor(uint16 curId); void printAt(uint32 slot, uint8 color, char *s, uint16 x, uint16 y); - int calcText(const char *s); + int calcTextLines(const char *s); + int calcTextTime(int numberOfLines); static const uint8 kMaxTexts = 32; Text _textSlots[kMaxTexts]; @@ -355,7 +355,7 @@ public: Common::Array _mobPriorityList; Common::Array _maskList; Common::Array _objList; - int *_objSlot; + uint16 *_objSlot; void freeNormAnim(int slot); void freeAllNormAnims(); @@ -563,9 +563,6 @@ public: int checkRightDownDir(); int checkRightUpDir(); - int testAnimNr; - int testAnimFrame; - private: bool playNextFrame(); void keyHandler(Common::Event event); @@ -620,5 +617,3 @@ private: } // End of namespace Prince #endif - -/* vim: set tabstop=4 noexpandtab: */ diff --git a/engines/prince/pscr.cpp b/engines/prince/pscr.cpp index bb4316d465..d9d36a3356 100644 --- a/engines/prince/pscr.cpp +++ b/engines/prince/pscr.cpp @@ -21,17 +21,13 @@ */ #include "common/archive.h" -#include "common/debug-channels.h" -#include "common/debug.h" #include "common/stream.h" -#include "graphics/surface.h" - #include "prince/pscr.h" namespace Prince { -PScr::PScr() :_file(0), _x(0), _y(0), _step(0), _addr(0), _len(0), _surface(nullptr) +PScr::PScr() : _x(0), _y(0), _step(0), _surface(nullptr) { } @@ -58,15 +54,14 @@ void PScr::loadSurface(Common::SeekableReadStream &stream) { bool PScr::loadFromStream(Common::SeekableReadStream &stream) { int32 pos = stream.pos(); uint16 file = stream.readUint16LE(); - if (file == 0xFFFF) + if (file == 0xFFFF) { return false; - _file = file; + } _x = stream.readUint16LE(); _y = stream.readUint16LE(); _step = stream.readUint16LE(); - _addr = stream.readUint32LE(); - const Common::String pscrStreamName = Common::String::format("PS%02d", _file); + const Common::String pscrStreamName = Common::String::format("PS%02d", file); Common::SeekableReadStream *pscrStream = SearchMan.createReadStreamForMember(pscrStreamName); if (pscrStream != nullptr) { loadSurface(*pscrStream); @@ -74,9 +69,7 @@ bool PScr::loadFromStream(Common::SeekableReadStream &stream) { delete pscrStream; stream.seek(pos + 12); // size of PScrList struct - debug("Parallex nr %d, x %d, y %d, step %d", _file, _x, _y, _step); - return true; } -} +} // End of namespace Prince diff --git a/engines/prince/pscr.h b/engines/prince/pscr.h index 76add9602d..d59fa37d81 100644 --- a/engines/prince/pscr.h +++ b/engines/prince/pscr.h @@ -23,7 +23,6 @@ #ifndef PRINCE_PSCR_H #define PRINCE_PSCR_H -#include "image/image_decoder.h" #include "graphics/surface.h" namespace Prince { @@ -32,13 +31,10 @@ class PScr { public: PScr(); ~PScr(); - - int16 _file; int16 _x; int16 _y; int16 _step; - int32 _addr; - byte _len; + static const int16 kPScrZ = 1000; bool loadFromStream(Common::SeekableReadStream &stream); Graphics::Surface *getSurface() const { return _surface; } @@ -47,7 +43,6 @@ private: Graphics::Surface *_surface; }; -} +} // End of namespace Prince #endif - diff --git a/engines/prince/resource.h b/engines/prince/resource.h index c30bec0e09..76ac5b0505 100644 --- a/engines/prince/resource.h +++ b/engines/prince/resource.h @@ -95,8 +95,6 @@ namespace Resource { } -} +} // End of namespace Prince #endif - -/* vim: set tabstop=4 noexpandtab: */ diff --git a/engines/prince/saveload.cpp b/engines/prince/saveload.cpp index 4bf41b43c1..094d66b292 100644 --- a/engines/prince/saveload.cpp +++ b/engines/prince/saveload.cpp @@ -26,10 +26,12 @@ #include "prince/flags.h" #include "prince/script.h" #include "prince/hero.h" + #include "common/savefile.h" #include "common/system.h" #include "common/config-manager.h" #include "common/memstream.h" + #include "graphics/thumbnail.h" #include "graphics/surface.h" #include "graphics/palette.h" diff --git a/engines/prince/script.cpp b/engines/prince/script.cpp index a621c864cb..4f122d8bec 100644 --- a/engines/prince/script.cpp +++ b/engines/prince/script.cpp @@ -31,7 +31,6 @@ #include "common/debug.h" #include "common/debug-channels.h" -#include "common/stream.h" #include "common/archive.h" #include "common/memstream.h" @@ -90,20 +89,24 @@ Script::Script(PrinceEngine *vm) : _vm(vm), _data(nullptr), _dataSize(0) { } Script::~Script() { - delete[] _data; - _dataSize = 0; - _data = nullptr; + if (_data != nullptr) { + free(_data); + _dataSize = 0; + _data = nullptr; + } } bool Script::loadFromStream(Common::SeekableReadStream &stream) { _dataSize = stream.size(); - if (!_dataSize) + if (!_dataSize) { return false; + } - _data = new byte[_dataSize]; + _data = (byte *)malloc(_dataSize); - if (!_data) + if (!_data) { return false; + } stream.read(_data, _dataSize); @@ -2015,6 +2018,4 @@ Interpreter::OpcodeFunc Interpreter::_opcodes[kNumOpcodes] = { &Interpreter::O_BREAK_POINT, }; -} - -/* vim: set tabstop=4 noexpandtab: */ +} // End of namespace Prince diff --git a/engines/prince/script.h b/engines/prince/script.h index 57f9268598..f033128e97 100644 --- a/engines/prince/script.h +++ b/engines/prince/script.h @@ -26,13 +26,10 @@ #include "common/random.h" #include "common/endian.h" #include "common/array.h" +#include "common/stream.h" #include "prince/flags.h" -namespace Common { - class SeekableReadStream; -} - namespace Prince { class PrinceEngine; @@ -42,9 +39,9 @@ struct Anim; struct BackgroundAnim; struct Mask; +// TODO - change this to sth else? namespace Detail { template T LittleEndianReader(void *data); - template <> inline uint8 LittleEndianReader(void *data) { return *(uint8*)(data); } template <> inline uint16 LittleEndianReader(void *data) { return READ_LE_UINT16(data); } template <> inline uint32 LittleEndianReader(void *data) { return READ_LE_UINT32(data); } } @@ -233,7 +230,6 @@ private: uint32 currentString; } _stringStack; uint8 _stacktop; - //uint8 _savedStacktop; uint32 _waitFlag; byte *_string; @@ -404,8 +400,6 @@ private: }; -} +} // End of namespace Prince #endif - -/* vim: set tabstop=4 noexpandtab: */ diff --git a/engines/prince/sound.cpp b/engines/prince/sound.cpp index 3509bbc291..0f536973b6 100644 --- a/engines/prince/sound.cpp +++ b/engines/prince/sound.cpp @@ -37,7 +37,7 @@ namespace Prince { -const char * MusicPlayer::_musTable[] = { +const char *MusicPlayer::_musTable[] = { "", "Battlfld.mid", "Cave.mid", @@ -217,6 +217,4 @@ void MusicPlayer::sendToChannel(byte channel, uint32 b) { _channelsTable[channel]->send(b); } -} - -/* vim: set tabstop=4 expandtab!: */ +} // End of namespace Prince diff --git a/engines/prince/sound.h b/engines/prince/sound.h index 07ac9f38d9..b1711bd682 100644 --- a/engines/prince/sound.h +++ b/engines/prince/sound.h @@ -70,5 +70,3 @@ public: } // End of namespace Prince #endif - -/* vim: set tabstop=4 expandtab!: */ diff --git a/engines/prince/variatxt.cpp b/engines/prince/variatxt.cpp index eb4efd8877..839ed5e662 100644 --- a/engines/prince/variatxt.cpp +++ b/engines/prince/variatxt.cpp @@ -25,19 +25,21 @@ namespace Prince { -VariaTxt::VariaTxt() : _dataSize(0), _data(NULL) { +VariaTxt::VariaTxt() : _dataSize(0), _data(nullptr) { } VariaTxt::~VariaTxt() { _dataSize = 0; - delete[] _data; - _data = NULL; + if (_data != nullptr) { + free(_data); + _data = nullptr; + } } bool VariaTxt::loadFromStream(Common::SeekableReadStream &stream) { _dataSize = stream.size(); - _data = new byte [_dataSize]; + _data = (byte *)malloc(_dataSize); stream.read(_data, _dataSize); return true; } @@ -50,6 +52,4 @@ byte *VariaTxt::getString(uint32 stringId) { return _data + stringOffset; } -} - -/* vim: set tabstop=4 noexpandtab: */ +} // End of namespace Prince diff --git a/engines/prince/variatxt.h b/engines/prince/variatxt.h index 98efad2059..99b225f362 100644 --- a/engines/prince/variatxt.h +++ b/engines/prince/variatxt.h @@ -27,11 +27,9 @@ namespace Prince { class VariaTxt { public: VariaTxt(); - ~VariaTxt(); bool loadFromStream(Common::SeekableReadStream &stream); - byte *getString(uint32 stringId); private: @@ -39,6 +37,4 @@ private: byte *_data; }; -} - -/* vim: set tabstop=4 noexpandtab: */ +} // End of namespace Prince -- cgit v1.2.3