From 26c2af49cc410b7bd2ea6017a5454381087e960b Mon Sep 17 00:00:00 2001 From: manuel Date: Tue, 12 Apr 2011 21:32:44 +0200 Subject: - socket.write returns signed integer - make waka sound working --- pacman-c++/actor.cpp | 17 +++++++++++++---- pacman-c++/actor.h | 3 ++- pacman-c++/point.cpp | 6 +----- pacman-c++/sceneholder.cpp | 9 +++++++-- pacman-c++/util.cpp | 4 ++-- pacman-c++/util.h | 2 +- 6 files changed, 26 insertions(+), 15 deletions(-) (limited to 'pacman-c++') diff --git a/pacman-c++/actor.cpp b/pacman-c++/actor.cpp index a746546..7b77851 100644 --- a/pacman-c++/actor.cpp +++ b/pacman-c++/actor.cpp @@ -190,7 +190,7 @@ void Actor::move(Actor::Movement direction) { //TODO qDebug() << "pause"; - m_wakaPlayer->pause(); + //m_wakaPlayer->pause(); } m_direction = direction; @@ -242,11 +242,20 @@ void Actor::eatingCherry() AudioManager::self()->play(Sound::EatingCherry); } -AudioPlayer *Actor::wakaPlayer() +void Actor::startEating() +{ + if (!m_local || !m_wakaPlayer->isWorking()) + return; + if (m_wakaPlayer->state() != Phonon::PlayingState) + m_wakaPlayer->play(); +} + +void Actor::stopEating() { if (!m_local || !m_wakaPlayer->isWorking()) - return NULL; - return m_wakaPlayer; + return; + if (m_wakaPlayer->state() != Phonon::PausedState) + m_wakaPlayer->pause(); } unsigned int Actor::getRoundPoints() diff --git a/pacman-c++/actor.h b/pacman-c++/actor.h index 6b6f743..794f00b 100644 --- a/pacman-c++/actor.h +++ b/pacman-c++/actor.h @@ -34,7 +34,8 @@ public: bool isMoving(); void die(); void eatingCherry(); - AudioPlayer *wakaPlayer(); + void startEating(); + void stopEating(); unsigned int getRoundPoints(); unsigned int getGamePoints(); diff --git a/pacman-c++/point.cpp b/pacman-c++/point.cpp index 755871d..7be09c0 100644 --- a/pacman-c++/point.cpp +++ b/pacman-c++/point.cpp @@ -28,9 +28,5 @@ bool Point::enter(Actor *actor) void Point::onDie(Actor *actor) { - AudioPlayer *player = actor->wakaPlayer(); - if (player == NULL) - return; - if (player->state() != Phonon::PlayingState) - player->play(); + actor->startEating(); } diff --git a/pacman-c++/sceneholder.cpp b/pacman-c++/sceneholder.cpp index f44f767..d9e07e5 100644 --- a/pacman-c++/sceneholder.cpp +++ b/pacman-c++/sceneholder.cpp @@ -113,9 +113,14 @@ void SceneHolder::updateMap(const Transmission::map_t& map) } else { - Actor::Movement direction = - Util::transmissionMovementToActor(cur & Transmission::direction_mask); + Actor::Movement direction = Util::transmissionMovementToActor( + cur & Transmission::direction_mask); actor->move(direction); + /* that's kind a hack but working right now + * I think that will fall on our's hat sooner or later + */ + if (!(cur & Transmission::empty)) + actor->stopEating(); qDebug() << "[SceneUpdate] actor moves: color=" << color << "direction=" << direction << "newpos=" << QPoint(x, y); } diff --git a/pacman-c++/util.cpp b/pacman-c++/util.cpp index 999c765..c60f2df 100644 --- a/pacman-c++/util.cpp +++ b/pacman-c++/util.cpp @@ -158,9 +158,9 @@ namespace Util sendPacket(data, dataStr.length(), socket); } - void sendPacket(const char *data, unsigned int length, QTcpSocket *socket) + void sendPacket(const char *data, int length, QTcpSocket *socket) { - unsigned int bytesWritten = socket->write(data, length); + int bytesWritten = socket->write(data, length); if (bytesWritten != length) { qDebug() << "[sendPacket] Not all data has been sent." diff --git a/pacman-c++/util.h b/pacman-c++/util.h index 9f7f784..e0f1264 100644 --- a/pacman-c++/util.h +++ b/pacman-c++/util.h @@ -23,6 +23,6 @@ namespace Util // send packet with error check and flush void sendPacket(const ::google::protobuf::Message& packet, QTcpSocket *socket); - void sendPacket(const char *data, unsigned int length, QTcpSocket *socket); + void sendPacket(const char *data, int length, QTcpSocket *socket); } #endif // UTIL_H -- cgit v1.2.3