Beispiel #1
0
bool MapComposite::activate()
{
    assert(!isActive());

    if (!mMap)
        return false;

    initializeContent();

    std::string sPvP = mMap->getProperty("pvp");
    if (sPvP.empty())
        sPvP = Configuration::getValue("game_defaultPvp", std::string());

    if (sPvP == "free")
        mPvPRules = PVP_FREE;
    else
        mPvPRules = PVP_NONE;

    mActive = true;

    if (!mInitializeCallback.isValid())
    {
        LOG_WARN("No callback for map initialization found");
    }
    else
    {
        Script *s = ScriptManager::currentState();
        s->prepare(mInitializeCallback);
        s->execute(this);
    }

    return true;
}
	ContainerContentWindow::ContainerContentWindow(Container* container, InventoryWindow* parent)
		: AbstractWindow("containercontentwindow.xml", WIT_MOUSE_INPUT),
		mContainer(container),
        mInventoryWindow(parent)
	{
		mContentWindow = getWindow("ContainerContentWindow/Content");
		mContentWindow->setUserData(container);
		mContentWindow->subscribeEvent(
			Window::EventDragDropItemDropped,
			boost::bind(&ContainerContentWindow::handleItemDroppedOnContainer, this, _1));
		mContentWindow->subscribeEvent(
            Window::EventDragDropItemEnters,
			boost::bind(&ContainerContentWindow::handleItemEntersContainer, this, _1));
		mContentWindow->subscribeEvent(
            Window::EventDragDropItemLeaves,
			boost::bind(&ContainerContentWindow::handleItemLeavesContainer, this, _1));

        UVector2 size = UVector2(
			cegui_absdim(container->getVolume().first*30),
            cegui_absdim(container->getVolume().second*30));
		mContentWindow->setSize(size);
        size.d_x += cegui_absdim(40);
        size.d_y += cegui_absdim(50);
        mContentWindow->getParent()->setMaxSize(size);
        mContentWindow->getParent()->setMinSize(size);

		initializeContent();

		bindDestroyWindowToXButton();
	}