HUGO: Clean-up, move MidiPlayer class definition to .h file
svn-id: r54923
This commit is contained in:
parent
ca547118e3
commit
76eb9d7f64
9 changed files with 56 additions and 58 deletions
|
@ -354,7 +354,7 @@ void HugoEngine::runMachine() {
|
|||
gameStatus.viewState = V_INTRO;
|
||||
break;
|
||||
case V_INTRO: // Do any game-dependant preamble
|
||||
if (_intro->introPlay()) { // Process intro screen
|
||||
if (_intro->introPlay()) { // Process intro screen
|
||||
_scheduler->newScreen(0); // Initialize first screen
|
||||
gameStatus.viewState = V_PLAY;
|
||||
}
|
||||
|
|
|
@ -209,7 +209,7 @@ void ObjectHandler_v1d::moveObjects() {
|
|||
// Set first image in sequence (if multi-seq object)
|
||||
if (obj->seqNumb == 4) {
|
||||
if (!obj->vx) { // Got 4 directions
|
||||
if (obj->vx != dxOld) { // vx just stopped
|
||||
if (obj->vx != dxOld) { // vx just stopped
|
||||
if (dy > 0)
|
||||
obj->currImagePtr = obj->seqList[DOWN].seqPtr;
|
||||
else
|
||||
|
@ -243,7 +243,7 @@ void ObjectHandler_v1d::moveObjects() {
|
|||
// Set first image in sequence (if multi-seq object)
|
||||
if (obj->seqNumb > 1) {
|
||||
if (!obj->vx && (obj->seqNumb > 2)) {
|
||||
if (obj->vx != dxOld) { // vx just stopped
|
||||
if (obj->vx != dxOld) { // vx just stopped
|
||||
if (obj->vy > 0)
|
||||
obj->currImagePtr = obj->seqList[DOWN].seqPtr;
|
||||
else
|
||||
|
|
|
@ -210,7 +210,7 @@ void ObjectHandler_v1w::moveObjects() {
|
|||
switch (obj->seqNumb) {
|
||||
case 4:
|
||||
if (!obj->vx) { // Got 4 directions
|
||||
if (obj->vx != obj->oldvx) { // vx just stopped
|
||||
if (obj->vx != obj->oldvx) { // vx just stopped
|
||||
if (dy >= 0)
|
||||
obj->currImagePtr = obj->seqList[DOWN].seqPtr;
|
||||
else
|
||||
|
@ -254,7 +254,7 @@ void ObjectHandler_v1w::moveObjects() {
|
|||
// Set first image in sequence (if multi-seq object)
|
||||
if (obj->seqNumb > 1) {
|
||||
if (!obj->vx && (obj->seqNumb >= 4)) {
|
||||
if (obj->vx != obj->oldvx) { // vx just stopped
|
||||
if (obj->vx != obj->oldvx) { // vx just stopped
|
||||
if (obj->vy > 0)
|
||||
obj->currImagePtr = obj->seqList[DOWN].seqPtr;
|
||||
else
|
||||
|
|
|
@ -213,7 +213,7 @@ void ObjectHandler_v2d::moveObjects() {
|
|||
switch (obj->seqNumb) {
|
||||
case 4:
|
||||
if (!obj->vx) { // Got 4 directions
|
||||
if (obj->vx != obj->oldvx) { // vx just stopped
|
||||
if (obj->vx != obj->oldvx) { // vx just stopped
|
||||
if (dy > 0)
|
||||
obj->currImagePtr = obj->seqList[DOWN].seqPtr;
|
||||
else
|
||||
|
@ -257,7 +257,7 @@ void ObjectHandler_v2d::moveObjects() {
|
|||
// Set first image in sequence (if multi-seq object)
|
||||
if (obj->seqNumb > 1) {
|
||||
if (!obj->vx && (obj->seqNumb >= 4)) {
|
||||
if (obj->vx != obj->oldvx) { // vx just stopped
|
||||
if (obj->vx != obj->oldvx) { // vx just stopped
|
||||
if (obj->vy > 0)
|
||||
obj->currImagePtr = obj->seqList[DOWN].seqPtr;
|
||||
else
|
||||
|
|
|
@ -138,7 +138,7 @@ void ObjectHandler_v3d::moveObjects() {
|
|||
// Set first image in sequence (if multi-seq object)
|
||||
if (obj->seqNumb > 1) {
|
||||
if (!obj->vx && (obj->seqNumb >= 4)) {
|
||||
if (obj->vx != obj->oldvx) { // vx just stopped
|
||||
if (obj->vx != obj->oldvx) { // vx just stopped
|
||||
if (obj->vy > 0)
|
||||
obj->currImagePtr = obj->seqList[DOWN].seqPtr;
|
||||
else
|
||||
|
|
|
@ -62,7 +62,7 @@ void Parser::keyHandler(uint16 nChar, uint16 nFlags) {
|
|||
bool repeatedFl = (nFlags & 0x4000); // TRUE if key is a repeat
|
||||
|
||||
// Process key down event - called from OnKeyDown()
|
||||
switch (nChar) { // Set various toggle states
|
||||
switch (nChar) { // Set various toggle states
|
||||
case Common::KEYCODE_ESCAPE: // Escape key, may want to QUIT
|
||||
if (gameStatus.inventoryState == I_ACTIVE) // Remove inventory, if displayed
|
||||
gameStatus.inventoryState = I_UP;
|
||||
|
|
|
@ -58,7 +58,7 @@ void Parser_v1w::keyHandler(uint16 nChar, uint16 nFlags) {
|
|||
bool repeatedFl = (nFlags & 0x4000); // TRUE if key is a repeat
|
||||
|
||||
// Process key down event - called from OnKeyDown()
|
||||
switch (nChar) { // Set various toggle states
|
||||
switch (nChar) { // Set various toggle states
|
||||
case Common::KEYCODE_ESCAPE: // Escape key, may want to QUIT
|
||||
if (gameStatus.inventoryState == I_ACTIVE) // Remove inventory, if displayed
|
||||
gameStatus.inventoryState = I_UP;
|
||||
|
|
|
@ -36,8 +36,6 @@
|
|||
|
||||
#include "sound/decoders/raw.h"
|
||||
#include "sound/audiostream.h"
|
||||
#include "sound/midiparser.h"
|
||||
#include "sound/mididrv.h"
|
||||
|
||||
#include "hugo/hugo.h"
|
||||
#include "hugo/game.h"
|
||||
|
@ -46,51 +44,6 @@
|
|||
|
||||
namespace Hugo {
|
||||
|
||||
class MidiPlayer : public MidiDriver {
|
||||
public:
|
||||
|
||||
enum {
|
||||
NUM_CHANNELS = 16
|
||||
};
|
||||
|
||||
MidiPlayer(MidiDriver *driver);
|
||||
~MidiPlayer();
|
||||
|
||||
void play(uint8 *stream, uint16 size);
|
||||
void stop();
|
||||
void pause(bool p);
|
||||
void updateTimer();
|
||||
void adjustVolume(int diff);
|
||||
void setVolume(int volume);
|
||||
int getVolume() const { return _masterVolume; }
|
||||
void setLooping(bool loop) { _isLooping = loop; }
|
||||
|
||||
// MidiDriver interface
|
||||
int open();
|
||||
void close();
|
||||
void send(uint32 b);
|
||||
void metaEvent(byte type, byte *data, uint16 length);
|
||||
void setTimerCallback(void *timerParam, void (*timerProc)(void *)) { }
|
||||
uint32 getBaseTempo() { return _driver ? _driver->getBaseTempo() : 0; }
|
||||
MidiChannel *allocateChannel() { return 0; }
|
||||
MidiChannel *getPercussionChannel() { return 0; }
|
||||
|
||||
private:
|
||||
|
||||
static void timerCallback(void *p);
|
||||
|
||||
MidiDriver *_driver;
|
||||
MidiParser *_parser;
|
||||
uint8 *_midiData;
|
||||
bool _isLooping;
|
||||
bool _isPlaying;
|
||||
bool _paused;
|
||||
int _masterVolume;
|
||||
MidiChannel *_channelsTable[NUM_CHANNELS];
|
||||
uint8 _channelsVolume[NUM_CHANNELS];
|
||||
Common::Mutex _mutex;
|
||||
};
|
||||
|
||||
MidiPlayer::MidiPlayer(MidiDriver *driver)
|
||||
: _driver(driver), _parser(0), _midiData(0), _isLooping(false), _isPlaying(false), _paused(false), _masterVolume(0) {
|
||||
assert(_driver);
|
||||
|
|
|
@ -34,10 +34,55 @@
|
|||
#define HUGO_SOUND_H
|
||||
|
||||
#include "sound/mixer.h"
|
||||
#include "sound/mididrv.h"
|
||||
#include "sound/midiparser.h"
|
||||
|
||||
namespace Hugo {
|
||||
|
||||
class MidiPlayer;
|
||||
class MidiPlayer : public MidiDriver {
|
||||
public:
|
||||
|
||||
enum {
|
||||
NUM_CHANNELS = 16
|
||||
};
|
||||
|
||||
MidiPlayer(MidiDriver *driver);
|
||||
~MidiPlayer();
|
||||
|
||||
void play(uint8 *stream, uint16 size);
|
||||
void stop();
|
||||
void pause(bool p);
|
||||
void updateTimer();
|
||||
void adjustVolume(int diff);
|
||||
void setVolume(int volume);
|
||||
int getVolume() const { return _masterVolume; }
|
||||
void setLooping(bool loop) { _isLooping = loop; }
|
||||
|
||||
// MidiDriver interface
|
||||
int open();
|
||||
void close();
|
||||
void send(uint32 b);
|
||||
void metaEvent(byte type, byte *data, uint16 length);
|
||||
void setTimerCallback(void *timerParam, void (*timerProc)(void *)) { }
|
||||
uint32 getBaseTempo() { return _driver ? _driver->getBaseTempo() : 0; }
|
||||
MidiChannel *allocateChannel() { return 0; }
|
||||
MidiChannel *getPercussionChannel() { return 0; }
|
||||
|
||||
private:
|
||||
|
||||
static void timerCallback(void *p);
|
||||
|
||||
MidiDriver *_driver;
|
||||
MidiParser *_parser;
|
||||
uint8 *_midiData;
|
||||
bool _isLooping;
|
||||
bool _isPlaying;
|
||||
bool _paused;
|
||||
int _masterVolume;
|
||||
MidiChannel *_channelsTable[NUM_CHANNELS];
|
||||
uint8 _channelsVolume[NUM_CHANNELS];
|
||||
Common::Mutex _mutex;
|
||||
};
|
||||
|
||||
class SoundHandler {
|
||||
public:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue