Example #1
0
bool CommandMakeEvent::finalize()
{
    if ( m_event.isValid() ) {
        EventView* view = dynamic_cast<EventView*>( owner() );
        Q_ASSERT( view ); // this command is "owned" by the event view
        view->makeVisibleAndCurrent( m_event );
        emit finishedOk( m_event );
        return true;
    } else {
        return false;
    }
}
bool CommandMakeEvent::finalize()
{
    if ( m_rollback )
        return false;
    if ( m_event.isValid() ) {
        EventView* view = dynamic_cast<EventView*>( owner() );
        if ( view )
            view->makeVisibleAndCurrent( m_event );
        emit finishedOk( m_event );
        return true;
    } else {
        return false;
    }
}
Example #3
0
// If saucer and player collide, mark both for deletion.
void Saucer::hit(EventCollision *p_c)
{

	// If Saucer on Saucer, ignore.
	if ((p_c->getObject1()->getType() == "Saucer") &&
		(p_c->getObject2()->getType() == "Saucer"))
		return;

	// If Bullet ...
	if ((p_c->getObject1()->getType() == "Bullet") ||
		(p_c->getObject2()->getType() == "Bullet"))
	{

		// Create an explosion.
		Explosion *p_explosion = new Explosion;
		p_explosion->setPosition(this->getPosition());

		auto& worldMgr = WorldManager::getInstance();
		EventView ev;
		ev.setDelta(true);
		ev.setValue(10);
		ev.setTag("Score");
		worldMgr.onEvent(&ev);
		// Saucers appear stay around perpetually.
		new Saucer;
	}

	// If Hero, mark both objects for destruction.
	if (((p_c->getObject1()->getType()) == "Hero") ||
		((p_c->getObject2()->getType()) == "Hero"))
	{
		WorldManager &world_manager = WorldManager::getInstance();
		world_manager.markForDelete(p_c->getObject1());
		world_manager.markForDelete(p_c->getObject2());
	}

}