int LuaPlayerObject::addEventPerk(lua_State* L) {
	SceneObject* item = (SceneObject*) lua_touserdata(L, -1);

	if (item == nullptr) {
		return 0;
	}

	Locker locker(item);

	ManagedReference<CreatureObject*> creature = dynamic_cast<CreatureObject*>(realObject->getParent().get().get());

	if (creature != nullptr) {
		if (item->isEventPerkDeed()) {
			EventPerkDeed* deed = cast<EventPerkDeed*>(item);
			deed->setOwner(creature);
		} else if (item->isEventPerkItem()) {
			if (item->getServerObjectCRC() == 0x46BD798B) { // Jukebox
				Jukebox* jbox = cast<Jukebox*>(item);

				if (jbox != nullptr)
					jbox->setOwner(creature);
			} else if (item->getServerObjectCRC() == 0x255F612C) { // Shuttle Beacon
				ShuttleBeacon* beacon = cast<ShuttleBeacon*>(item);

				if (beacon != nullptr)
					beacon->setOwner(creature);
			}
		}
	}

	realObject->addEventPerk(item);

	return 0;
}
Example #2
0
int LuaPlayerObject::addEventPerk(lua_State* L) {
	SceneObject* item = (SceneObject*) lua_touserdata(L, -1);

	if (item == NULL) {
		return 0;
	}

	Locker locker(item);

	ManagedReference<CreatureObject*> creature = dynamic_cast<CreatureObject*>(realObject->getParent().get().get());

	if (item->isEventPerkDeed() && creature != NULL) {
		EventPerkDeed* deed = cast<EventPerkDeed*>(item);
		deed->setOwner(creature);
	} else if (item->isEventPerkItem() && creature != NULL) {
		if (item->getServerObjectCRC() == 0x46BD798B) { // Jukebox
			Jukebox* jbox = cast<Jukebox*>(item);
			jbox->setOwner(creature);
		}
	}

	realObject->addEventPerk(item);

	return 0;
}
Example #3
0
 EndingState::EndingState( Application* a )
    : State( a )
    , mElapsedTime(0)
    , mLeavingState(false)
 {
    mImage = Texture::create("ending");
    // Start playing the theme song.
    Jukebox* jukebox = GameManager::instance().getSoundManager()->getJukebox();
    jukebox->clear();
    jukebox->addTrack("music/theme.ogg");
    jukebox->play();
 }