[Scummvm-cvs-logs] SF.net SVN: scummvm: [29171] scummvm/trunk/engines/parallaction

peres001 at users.sourceforge.net peres001 at users.sourceforge.net
Sun Oct 7 21:18:41 CEST 2007


Revision: 29171
          http://scummvm.svn.sourceforge.net/scummvm/?rev=29171&view=rev
Author:   peres001
Date:     2007-10-07 12:18:41 -0700 (Sun, 07 Oct 2007)

Log Message:
-----------
Added beep sound to Nippon Safes for Amiga.

Modified Paths:
--------------
    scummvm/trunk/engines/parallaction/menu.cpp
    scummvm/trunk/engines/parallaction/parallaction.cpp
    scummvm/trunk/engines/parallaction/parallaction.h
    scummvm/trunk/engines/parallaction/parallaction_ns.cpp
    scummvm/trunk/engines/parallaction/sound.cpp
    scummvm/trunk/engines/parallaction/sound.h

Modified: scummvm/trunk/engines/parallaction/menu.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/menu.cpp	2007-10-07 12:35:30 UTC (rev 29170)
+++ scummvm/trunk/engines/parallaction/menu.cpp	2007-10-07 19:18:41 UTC (rev 29171)
@@ -212,7 +212,7 @@
 				if (128 + _si * 49 <= _vm->_mousePos.x) continue;
 				if (180 - _si * 25 <= _vm->_mousePos.y) continue;
 
-//				beep();
+				_vm->beep();
 
 				switch (_si) {
 				case 0:
@@ -368,7 +368,7 @@
 			if (_si != -1) {
 				_vm->_gfx->grabRect((byte*)v14.pixels, r, Gfx::kBitFront, BLOCK_WIDTH);
 				_vm->_gfx->flatBlitCnv(&v14, _di * SLOT_WIDTH + SLOT_X, SLOT_Y, Gfx::kBitFront);
-//				beep();
+				_vm->beep();
 
 				if (_vm->getPlatform() == Common::kPlatformAmiga && (_vm->getFeatures() & GF_LANG_MULT)) {
 					if (_amigaDinoKey[_di] == _si)

Modified: scummvm/trunk/engines/parallaction/parallaction.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/parallaction.cpp	2007-10-07 12:35:30 UTC (rev 29170)
+++ scummvm/trunk/engines/parallaction/parallaction.cpp	2007-10-07 19:18:41 UTC (rev 29171)
@@ -547,7 +547,7 @@
 				}
 			}
 
-//			beep();
+			beep();
 			setArrowCursor();
 			return &_input;
 		}
@@ -1142,6 +1142,9 @@
 }
 
 
+void Parallaction::beep() {
+	_soundMan->playSfx("beep", 3, false);
+}
 
 
 

Modified: scummvm/trunk/engines/parallaction/parallaction.h
===================================================================
--- scummvm/trunk/engines/parallaction/parallaction.h	2007-10-07 12:35:30 UTC (rev 29170)
+++ scummvm/trunk/engines/parallaction/parallaction.h	2007-10-07 19:18:41 UTC (rev 29171)
@@ -580,6 +580,7 @@
 	virtual void jobEraseLabel(void *parm, Job *j) = 0;
 	virtual void jobWaitRemoveJob(void *parm, Job *j) = 0;
 
+	void		beep();
 
 public:
 	const char **_zoneFlagNamesRes;
@@ -789,7 +790,6 @@
 	void 		initOpcodes();
 	void 		initParsers();
 
-
 	// program parser
 	OpcodeSet	_instructionParsers;
 	Table		*_instructionNames;

Modified: scummvm/trunk/engines/parallaction/parallaction_ns.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/parallaction_ns.cpp	2007-10-07 12:35:30 UTC (rev 29170)
+++ scummvm/trunk/engines/parallaction/parallaction_ns.cpp	2007-10-07 19:18:41 UTC (rev 29171)
@@ -407,4 +407,5 @@
 	return new OpcodeImpl2<Parallaction_ns>(this, _jobsFn[functionId], job);
 }
 
+
 } // namespace Parallaction

Modified: scummvm/trunk/engines/parallaction/sound.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/sound.cpp	2007-10-07 12:35:30 UTC (rev 29170)
+++ scummvm/trunk/engines/parallaction/sound.cpp	2007-10-07 19:18:41 UTC (rev 29171)
@@ -318,6 +318,28 @@
 	stopSfx(3);
 }
 
+static byte res_amigaBeep[] = {
+	0, 20, 40, 60, 80, 60, 40, 20, 0, 236, 216, 196, 176, 196, 216, 236
+};
+
+void AmigaSoundMan::loadChannelData(const char *filename, Channel *ch) {
+	if (!scumm_stricmp("beep", filename)) {
+		ch->header.oneShotHiSamples = 0;
+		ch->header.repeatHiSamples = 0;
+		ch->header.samplesPerHiCycle = 0;
+		ch->header.samplesPerSec = 12000;
+		ch->header.volume = 255;
+		ch->data = res_amigaBeep;
+		ch->dataSize = 16;
+		return;
+	}
+
+	Common::ReadStream *stream = _vm->_disk->loadSound(filename);
+	Audio::A8SVXDecoder decoder(*stream, ch->header, ch->data, ch->dataSize);
+	decoder.decode();
+	delete stream;
+}
+
 void AmigaSoundMan::playSfx(const char *filename, uint channel, bool looping, int volume, int rate) {
 	if (channel >= NUM_AMIGA_CHANNELS) {
 		warning("unknown sfx channel");
@@ -327,10 +349,7 @@
 	debugC(1, kDebugAudio, "AmigaSoundMan::playSfx(%s, %i)", filename, channel);
 
 	Channel *ch = &_channels[channel];
-	Common::ReadStream *stream = _vm->_disk->loadSound(filename);
-	Audio::A8SVXDecoder decoder(*stream, ch->header, ch->data, ch->dataSize);
-	decoder.decode();
-	delete stream;
+	loadChannelData(filename, ch);
 
 	uint32 loopStart, loopEnd, flags;
 	if (looping) {

Modified: scummvm/trunk/engines/parallaction/sound.h
===================================================================
--- scummvm/trunk/engines/parallaction/sound.h	2007-10-07 12:35:30 UTC (rev 29170)
+++ scummvm/trunk/engines/parallaction/sound.h	2007-10-07 19:18:41 UTC (rev 29171)
@@ -95,6 +95,8 @@
 		uint32				flags;
 	} _channels[NUM_AMIGA_CHANNELS];
 
+	void loadChannelData(const char *filename, Channel *ch);
+
 public:
 	AmigaSoundMan(Parallaction *vm);
 	~AmigaSoundMan();


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list