diff options
| -rw-r--r-- | engines/cge/cge_main.cpp | 25 | ||||
| -rw-r--r-- | engines/cge/cge_main.h | 3 | ||||
| -rw-r--r-- | engines/cge/general.cpp | 2 | ||||
| -rw-r--r-- | engines/cge/gettext.cpp | 2 | ||||
| -rw-r--r-- | engines/cge/mixer.cpp | 13 | ||||
| -rw-r--r-- | engines/cge/snail.cpp | 10 | ||||
| -rw-r--r-- | engines/cge/snddrv.h | 36 | ||||
| -rw-r--r-- | engines/cge/sound.h | 4 | ||||
| -rw-r--r-- | engines/cge/talk.cpp | 13 | ||||
| -rw-r--r-- | engines/cge/talk.h | 17 | ||||
| -rw-r--r-- | engines/cge/text.cpp | 4 | ||||
| -rw-r--r-- | engines/cge/vga13h.cpp | 5 | ||||
| -rw-r--r-- | engines/cge/vga13h.h | 10 | ||||
| -rw-r--r-- | engines/cge/vmenu.cpp | 2 | ||||
| -rw-r--r-- | engines/cge/vol.h | 2 | ||||
| -rw-r--r-- | engines/cge/walk.cpp | 42 | ||||
| -rw-r--r-- | engines/cge/walk.h | 6 | 
17 files changed, 64 insertions, 132 deletions
| diff --git a/engines/cge/cge_main.cpp b/engines/cge/cge_main.cpp index b6f342edff..98de57597d 100644 --- a/engines/cge/cge_main.cpp +++ b/engines/cge/cge_main.cpp @@ -317,8 +317,11 @@ void CGEEngine::syncGame(Common::SeekableReadStream *readStream, Common::WriteSt  			_pocref[i] = (s) ? s->_ref : -1;  		} -		_volume[0] = _sndDrvInfo.Vol2._d; -		_volume[1] = _sndDrvInfo.Vol2._m; +		warning("STUB: CGEEngine::syncGame Digital and Midi volume"); +//		_volume[0] = _sndDrvInfo.Vol2._d; +//		_volume[1] = _sndDrvInfo.Vol2._m; +		_volume[0] = 0; +		_volume[1] = 0;  	}  	// Synchronise header data @@ -336,8 +339,9 @@ void CGEEngine::syncGame(Common::SeekableReadStream *readStream, Common::WriteSt  			_music = false;  		if (Startup::_soundOk == 1 && Startup::_mode == 0) { -			_sndDrvInfo.Vol2._d = _volume[0]; -			_sndDrvInfo.Vol2._m = _volume[1]; +//			_sndDrvInfo.Vol2._d = _volume[0]; +//			_sndDrvInfo.Vol2._m = _volume[1]; +			warning("STUB: CGEEngine::syncGame Digital and Midi volume");  			sndSetVolume();  		} @@ -587,12 +591,11 @@ void CGEEngine::caveUp() {  			}  		spr = n;  	} -	if (_sndDrvInfo._dDev) { -		_sound.stop(); -		_fx.clear(); -		_fx.preload(0); -		_fx.preload(BakRef); -	} + +	_sound.stop(); +	_fx.clear(); +	_fx.preload(0); +	_fx.preload(BakRef);  	if (_hero) {  		_hero->gotoxy(_heroXY[_now - 1]._x, _heroXY[_now - 1]._y); @@ -1265,7 +1268,7 @@ void CGEEngine::loadSprite(const char *fname, int ref, int cav, int col = 0, int  		break;  	}  	case 2 : { // WALK -		WALK *w = new WALK(this, NULL); +		Walk *w = new Walk(this, NULL);  		if (w && ref == 1) {  			w->gotoxy(col, row);  			if (_hero) diff --git a/engines/cge/cge_main.h b/engines/cge/cge_main.h index 2a467761b3..8586d84d50 100644 --- a/engines/cge/cge_main.h +++ b/engines/cge/cge_main.h @@ -72,6 +72,9 @@ namespace CGE {  #define kGetNamePrompt 50  #define kGetNameTitle  51  #define kTSeq          96 +//Useless? +//#define kBadSnd        97 +//#define kBadMidi       98  #define kNoMusic       98  #define kBadSVG        99  #define kSeqHTalk      (kTSeq + 4) diff --git a/engines/cge/general.cpp b/engines/cge/general.cpp index 909c517c32..46df263b93 100644 --- a/engines/cge/general.cpp +++ b/engines/cge/general.cpp @@ -93,8 +93,6 @@ Dac _stdPal[] =  {// R    G   B  	{ 255, 255, 255},   // 255  }; -DrvInfo _sndDrvInfo; -  void _fqsort(void *base, uint16 nelem, uint16 width, int (*fcmp)(const void *, const void *)) {  	warning("STUB: _fqsort");  } diff --git a/engines/cge/gettext.cpp b/engines/cge/gettext.cpp index 7a8cff3cb2..fa30b3a9d1 100644 --- a/engines/cge/gettext.cpp +++ b/engines/cge/gettext.cpp @@ -39,7 +39,7 @@ GetText::GetText(CGEEngine *vm, const char *info, char *text, int size)  	_cntr(kGetTextBlink), _oldKeybClient(_keyboard->setClient(this)), _vm(vm) {  	int i = 2 * kTextHMargin + _font->width(info);  	_ptr = this; -	_mode = RECT; +	_mode = kTBRect;  	_ts = new BMP_PTR[2];  	_ts[0] = box((i + 3) & ~3, 2 * kTextVMargin + 2 * kFontHigh + kTextLineSpace); diff --git a/engines/cge/mixer.cpp b/engines/cge/mixer.cpp index aeaaa86593..36f7a8e2f7 100644 --- a/engines/cge/mixer.cpp +++ b/engines/cge/mixer.cpp @@ -86,12 +86,14 @@ Mixer::Mixer(CGEEngine *vm, int x, int y) : Sprite(vm, NULL), _fall(kMixFall), _  		_vga->_showQ->insert(_led[i]);  	//--- reset balance -	i = (_sndDrvInfo.Vol4._ml + _sndDrvInfo.Vol4._mr) / 2; +	warning("STUB: MIXER::MIXER() reset balance of digital and midi volumes"); +/*	i = (_sndDrvInfo.Vol4._ml + _sndDrvInfo.Vol4._mr) / 2;  	_sndDrvInfo.Vol4._ml = i;  	_sndDrvInfo.Vol4._mr = i;  	i = (_sndDrvInfo.Vol4._dl + _sndDrvInfo.Vol4._dr) / 2;  	_sndDrvInfo.Vol4._dl = i;  	_sndDrvInfo.Vol4._dr = i; +*/  	update();  	_time = kMixDelay;  } @@ -104,8 +106,10 @@ Mixer::~Mixer() {  #pragma argsused  void Mixer::touch(uint16 mask, int x, int y) {  	Sprite::touch(mask, x, y); +  	if (mask & L_UP) { -		uint8 *vol = (&_sndDrvInfo.Vol2._d) + (x < _w / 2); +		warning("STUB: Mixer::touch(): Digital Volume"); +/*		uint8 *vol = (&_sndDrvInfo.Vol2._d) + (x < _w / 2);  		if (y < kMixButtonHigh) {  			if (*vol < 0xFF)  				*vol += 0x11; @@ -114,6 +118,7 @@ void Mixer::touch(uint16 mask, int x, int y) {  				*vol -= 0x11;  		}  		update(); +*/  	}  } @@ -139,9 +144,11 @@ void Mixer::tick() {  void Mixer::update() { +	warning("STUB: Mixer::Update"); +/*  	_led[0]->step(_sndDrvInfo.Vol4._ml);  	_led[1]->step(_sndDrvInfo.Vol4._dl); - +*/  	_snail_->addCom2(kSnExec, -1, 0, kSndSetVolume);  } diff --git a/engines/cge/snail.cpp b/engines/cge/snail.cpp index d2ed77d755..697e70bf8e 100644 --- a/engines/cge/snail.cpp +++ b/engines/cge/snail.cpp @@ -797,12 +797,10 @@ void CGEEngine::snKill(Sprite *spr) {  void CGEEngine::snSound(Sprite *spr, int wav, int cnt) {  	debugC(1, kCGEDebugEngine, "CGEEngine::snSound(spr, %d, %d)", wav, cnt); -	if (_sndDrvInfo._dDev) { -		if (wav == -1) -			_sound.stop(); -		else -			_sound.play(_fx[wav], (spr) ? ((spr->_x + spr->_w / 2) / (kScrWidth / 16)) : 8, cnt); -	} +	if (wav == -1) +		_sound.stop(); +	else +		_sound.play(_fx[wav], (spr) ? ((spr->_x + spr->_w / 2) / (kScrWidth / 16)) : 8, cnt);  } diff --git a/engines/cge/snddrv.h b/engines/cge/snddrv.h index 0ea776b784..07c4ccd0dd 100644 --- a/engines/cge/snddrv.h +++ b/engines/cge/snddrv.h @@ -42,40 +42,6 @@ namespace CGE {  // ******************************************************  // *  Constants                                         *  // ****************************************************** -// available devices - -enum  DEV_TYPE  { DEV_AUTO = -1,                    // auto-detect mode -                  DEV_QUIET,                        // disable sound -                  DEV_SB,                           // sb/pro/16/awe32 -                  DEV_GUS,                          // gus/max -                  DEV_GM                            // general midi -                }; - -#define SERR_OK           0                         // no error -#define SERR_INITFAIL     1                         // couldn't initialize -#define SERR_BADDDEV      128                       // bad device - -// driver info -struct DrvInfo { -	DEV_TYPE _dDev;                                    // digi device -	DEV_TYPE _mDev;                                    // midi device -	uint16   _dBase;                                   // digi base port -	uint16   _dDma;                                    // digi dma no -	uint16   _dIrq;                                    // digi irq no -	uint16   _mBase;                                   // midi base port -	union { -		struct { -			uint16 _dr : 4; -			uint16 _dl : 4; -			uint16 _mr : 4; -			uint16 _ml : 4; -		} Vol4; -		struct { -			uint8  _d;                                     // digi volume -			uint8  _m;                                     // midi volume -		} Vol2; -	}; -};  // sample info  struct SmpInfo { @@ -88,8 +54,6 @@ struct SmpInfo {  // ******************************************************  // *  Data                                              *  // ****************************************************** -// driver info -extern DrvInfo _sndDrvInfo;  // midi player flag (1 means we are playing)  extern uint16 _midiPlayFlag; diff --git a/engines/cge/sound.h b/engines/cge/sound.h index fda8d4f128..5e1af71307 100644 --- a/engines/cge/sound.h +++ b/engines/cge/sound.h @@ -33,10 +33,6 @@  namespace CGE { -#define BAD_SND_TEXT    97 -#define BAD_MIDI_TEXT   98 - -  class Sound {  public:  	SmpInfo _smpinf; diff --git a/engines/cge/talk.cpp b/engines/cge/talk.cpp index a164a69f99..4e367e3318 100644 --- a/engines/cge/talk.cpp +++ b/engines/cge/talk.cpp @@ -87,7 +87,7 @@ void Font::save() {  */ -Talk::Talk(CGEEngine *vm, const char *tx, TBOX_STYLE mode) +Talk::Talk(CGEEngine *vm, const char *tx, TextBoxStyle mode)  	: Sprite(vm, NULL), _mode(mode), _vm(vm) {  	_ts = NULL; @@ -97,7 +97,7 @@ Talk::Talk(CGEEngine *vm, const char *tx, TBOX_STYLE mode)  Talk::Talk(CGEEngine *vm) -	: Sprite(vm, NULL), _mode(PURE), _vm(vm) { +	: Sprite(vm, NULL), _mode(kTBPure), _vm(vm) {  	_ts = NULL;  	_flags._syst = true;  } @@ -179,20 +179,17 @@ void Talk::update(const char *tx) {  	setShapeList(_ts);  } - - -  Bitmap *Talk::box(uint16 w, uint16 h) {  	uint8 *b, * p, * q; -	uint16 n, r = (_mode == ROUND) ? kTextRoundCorner : 0; +	uint16 r = (_mode == kTBRound) ? kTextRoundCorner : 0;  	if (w < 8)  		w = 8;  	if (h < 8)  		h = 8; -	n = w * h; +	uint16 n = w * h;  	b = (uint8 *) malloc(sizeof(uint8) * n); -	if (! b) +	if (!b)  		error("No core");  	memset(b, kTextColBG, n); diff --git a/engines/cge/talk.h b/engines/cge/talk.h index 5eab6672e3..d9c29261f6 100644 --- a/engines/cge/talk.h +++ b/engines/cge/talk.h @@ -46,18 +46,14 @@ namespace CGE {  #define kFontHigh   8  #define kFontExt    ".CFT" - - -  #define kPathMax           128 +enum TextBoxStyle { kTBPure, kTBRect, kTBRound }; +  class Font {  	char _path[kPathMax];  	void load();  public: -//  static uint8 _wid[256]; -//  static uint16 _pos[256]; -//  static uint8 _map[256*8];  	uint8  *_wid;  	uint16 *_pos;  	uint8  *_map; @@ -67,17 +63,13 @@ public:  	void save();  }; - -enum    TBOX_STYLE  { PURE, RECT, ROUND }; - -  class Talk : public Sprite {  protected: -	TBOX_STYLE _mode; +	TextBoxStyle _mode;  	BMP_PTR *_ts;  	Bitmap *box(uint16 w, uint16 h);  public: -	Talk(CGEEngine *vm, const char *tx, TBOX_STYLE mode); +	Talk(CGEEngine *vm, const char *tx, TextBoxStyle mode);  	Talk(CGEEngine *vm);  	//~TALK(); @@ -92,7 +84,6 @@ private:  	CGEEngine *_vm;  }; -  class InfoLine : public Talk {  	const char *_oldTxt;  public: diff --git a/engines/cge/text.cpp b/engines/cge/text.cpp index edf7931278..f688546810 100644 --- a/engines/cge/text.cpp +++ b/engines/cge/text.cpp @@ -178,7 +178,7 @@ char *Text::getText(int ref) {  void Text::say(const char *txt, Sprite *spr) {  	killText(); -	_talk = new Talk(_vm, txt, ROUND); +	_talk = new Talk(_vm, txt, kTBRound);  	if (_talk) {  		bool east = spr->_flags._east;  		int x = (east) ? (spr->_x + spr->_w - 2) : (spr->_x + 2); @@ -221,7 +221,7 @@ void CGEEngine::inf(const char *txt) {  	debugC(1, kCGEDebugEngine, "CGEEngine::inf(%s)", txt);  	killText(); -	_talk = new Talk(this, txt, RECT); +	_talk = new Talk(this, txt, kTBRect);  	if (_talk) {  		_talk->_flags._kill = true;  		_talk->_flags._bDel = true; diff --git a/engines/cge/vga13h.cpp b/engines/cge/vga13h.cpp index 94a4963a5e..f5a3fdd22f 100644 --- a/engines/cge/vga13h.cpp +++ b/engines/cge/vga13h.cpp @@ -37,11 +37,6 @@  namespace CGE { -#define FADE_STEP   2 -#define TMR_DIV     ((0x8000/TMR_RATE)*2) -#define NREP         9 -#define FREP        24 -  static  VgaRegBlk VideoMode[] = {  	{ 0x04, VGASEQ, 0x08, 0x04 },   // memory mode  	{ 0x03, VGAGRA, 0xFF, 0x00 },   // data rotate = 0 diff --git a/engines/cge/vga13h.h b/engines/cge/vga13h.h index 4884ae104e..f192d962ff 100644 --- a/engines/cge/vga13h.h +++ b/engines/cge/vga13h.h @@ -37,6 +37,11 @@  namespace CGE { +#define FADE_STEP   2 +#define TMR_DIV     ((0x8000/TMR_RATE)*2) +#define NREP         9 +#define FREP        24 +  #define TMR_RATE1   16  #define TMR_RATE2   4  #define TMR_RATE   (TMR_RATE1 * TMR_RATE2) @@ -60,11 +65,6 @@ namespace CGE {  #define SPR_EXT     ".SPR" -#define IsFile(s)   (access(s, 0) == 0) -#define IsWrit(s)   (access(s, 2) == 0) - - -  struct Rgb {  	uint16 _r : 2;  	uint16 _R : 6; diff --git a/engines/cge/vmenu.cpp b/engines/cge/vmenu.cpp index 2c22625ae3..f846b3d061 100644 --- a/engines/cge/vmenu.cpp +++ b/engines/cge/vmenu.cpp @@ -90,7 +90,7 @@ int    Vmenu::_recent   = -1;  Vmenu::Vmenu(CGEEngine *vm, Choice *list, int x, int y) -	: Talk(vm, VMGather(list), RECT), _menu(list), _bar(NULL), _vm(vm) { +	: Talk(vm, VMGather(list), kTBRect), _menu(list), _bar(NULL), _vm(vm) {  	Choice *cp;  	_addr = this; diff --git a/engines/cge/vol.h b/engines/cge/vol.h index e975cc34e6..f64e7eec54 100644 --- a/engines/cge/vol.h +++ b/engines/cge/vol.h @@ -36,9 +36,7 @@ namespace CGE {  #define CAT_NAME    "VOL.CAT"  #define DAT_NAME    "VOL.DAT" -#ifndef CRP  #define CRP     XCrypt -#endif  #define XMASK       0xA5 diff --git a/engines/cge/walk.cpp b/engines/cge/walk.cpp index f9c542ec92..9bcc2be23d 100644 --- a/engines/cge/walk.cpp +++ b/engines/cge/walk.cpp @@ -25,32 +25,14 @@   * Copyright (c) 1994-1995 Janus B. Wisniewski and L.K. Avalon   */ -#include "common/scummsys.h"  #include "cge/walk.h" -#include "cge/cge.h" -#include "cge/sound.h" -#include "cge/startup.h" -#include "cge/config.h" -#include "cge/vga13h.h" -#include "cge/snail.h" -#include "cge/text.h" -#include "cge/game.h" -#include "cge/events.h" -#include "cge/cfile.h" -#include "cge/vol.h" -#include "cge/talk.h" -#include "cge/vmenu.h" -#include "cge/gettext.h" -#include "cge/mixer.h"  #include "cge/cge_main.h" -#include "cge/cge.h" -#include "common/str.h"  namespace CGE {  extern Bar _barriers[]; -WALK *_hero; +Walk *_hero;  uint8 Cluster::_map[MAP_ZCNT][MAP_XCNT];  CGEEngine *Cluster::_vm; @@ -89,12 +71,12 @@ Cluster XZ(Couple xy) {  	return XZ(x, y);  } -WALK::WALK(CGEEngine *vm, BMP_PTR *shpl) +Walk::Walk(CGEEngine *vm, BMP_PTR *shpl)  	: Sprite(vm, shpl), Dir(NO_DIR), _tracePtr(-1), _level(0), _vm(vm) {  } -void WALK::tick() { +void Walk::tick() {  	if (_flags._hide)  		return; @@ -141,7 +123,7 @@ void WALK::tick() {  } -int WALK::distance(Sprite *spr) { +int Walk::distance(Sprite *spr) {  	int dx, dz;  	dx = spr->_x - (_x + _w - kWalkSide);  	if (dx < 0) @@ -163,7 +145,7 @@ int WALK::distance(Sprite *spr) {  } -void WALK::turn(DIR d) { +void Walk::turn(DIR d) {  	DIR dir = (Dir == NO_DIR) ? SS : Dir;  	if (d != Dir) {  		step((d == dir) ? (1 + dir + dir) : (9 + 4 * dir + d)); @@ -172,7 +154,7 @@ void WALK::turn(DIR d) {  } -void WALK::park() { +void Walk::park() {  	if (_time == 0)  		++_time; @@ -184,7 +166,7 @@ void WALK::park() {  } -void WALK::findWay(Cluster c) { +void Walk::findWay(Cluster c) {  	if (c != _here) {  		for (_findLevel = 1; _findLevel <= MAX_FIND_LEVEL; _findLevel++) {  			signed char x, z; @@ -203,7 +185,7 @@ void WALK::findWay(Cluster c) {  } -void WALK::findWay(Sprite *spr) { +void Walk::findWay(Sprite *spr) {  	if (spr && spr != this) {  		int x = spr->_x;  		int z = spr->_z; @@ -218,12 +200,12 @@ void WALK::findWay(Sprite *spr) {  } -bool WALK::lower(Sprite *spr) { +bool Walk::lower(Sprite *spr) {  	return (spr->_y > _y + (_h * 3) / 5);  } -void WALK::reach(Sprite *spr, int mode) { +void Walk::reach(Sprite *spr, int mode) {  	if (spr) {  		_hero->findWay(spr);  		if (mode < 0) { @@ -243,11 +225,11 @@ void WALK::reach(Sprite *spr, int mode) {  	// now it is just at sprite appear (disappear) point  } -void WALK::noWay() { +void Walk::noWay() {  	_vm->trouble(kSeqNoWay, kNoWay);  } -bool WALK::find1Way(Cluster c) { +bool Walk::find1Way(Cluster c) {  	Cluster start = c;  	const Cluster tab[4] = { Cluster(-1, 0), Cluster(1, 0), Cluster(0, -1), Cluster(0, 1)};  	const int tabLen = 4; diff --git a/engines/cge/walk.h b/engines/cge/walk.h index 52f372c363..15ea9ee0ce 100644 --- a/engines/cge/walk.h +++ b/engines/cge/walk.h @@ -97,7 +97,7 @@ public:  }; -class WALK : public Sprite { +class Walk : public Sprite {  private:  	CGEEngine *_vm;  public: @@ -109,7 +109,7 @@ public:  	Cluster _trace[MAX_FIND_LEVEL];  	enum DIR { NO_DIR = -1, NN, EE, SS, WW } Dir; -	WALK(CGEEngine *vm, BMP_PTR *shpl); +	Walk(CGEEngine *vm, BMP_PTR *shpl);  	void tick();  	void findWay(Cluster c);  	void findWay(Sprite *spr); @@ -126,7 +126,7 @@ public:  Cluster XZ(int x, int y);  Cluster XZ(Couple xy); -extern WALK *_hero; +extern Walk *_hero;  } // End of namespace CGE | 
