bool RawPlayer::load(const std::string& filename) { FileStream f(filename); if(!f) return false; // file validation section char id[8]; f.read(id, 8); if(!std::equal(id, id + 8, "RAWADATA")) { return false; } // load section uint16_t clock; f >> clock; setInitialSpeed(clock); setCurrentSpeed(clock); BOOST_ASSERT(f.pos() == 10); static_assert(sizeof(TrackData) == 2, "Ooops"); m_data.resize((f.size() - 10) / 2); f.read(m_data.data(), m_data.size()); addOrder(0); rewind(0); return true; }
OrangeGift::OrangeGift(float xPos, float yPos, float xSpeed, float ySpeed) : BonusEntity("orange_gift", 100, 65) { setPosition(xPos, yPos) ; setInitialSpeed(xSpeed, ySpeed) ; }
Gnome::Gnome(Position pos, Speed speed) : MalusEntity("items/gnome", 5, -100) { setPosition(pos.x, pos.y) ; setInitialSpeed(speed.x, speed.y) ; setCuttedSprite("items/cutted/gnome_cutted") ; makeDisappearOnBreak(false) ; }
Gnome::Gnome(float xPos, float yPos, float xSpeed, float ySpeed) : MalusEntity("items/gnome", 5, -100) { setPosition(xPos, yPos) ; setInitialSpeed(xSpeed, ySpeed) ; setCuttedSprite("items/cutted/gnome_cutted") ; makeDisappearOnBreak(false) ; }
void Gnome::additionnalStuffOnBreak() { // Play pain sound AudioManager::getInstance() -> playSound("gnome_hurt") ; m_angleStep = Math::toRadian((rand() % 6) + 2) ; if (rand() % 2 == 0) m_angleStep = -m_angleStep ; Speed newSpeed ; newSpeed.x = rand() % 4 ; newSpeed.y = rand() % 3 ; if (rand() % 2 == 0) newSpeed.x = -newSpeed.x ; if (rand() % 2 == 0) newSpeed.y = -newSpeed.y ; setInitialSpeed(newSpeed.x, newSpeed.y) ; }
OrangeGift::OrangeGift(Position pos, Speed speed) : BonusEntity("orange_gift", 100, 65) { setPosition(pos.x, pos.y) ; setInitialSpeed(speed.x, speed.y) ; }