Beispiel #1
0
void StatsWindow::addGroup(const std::string &label, MyGUI::IntCoord &coord1, MyGUI::IntCoord &coord2)
{
    MyGUI::StaticTextPtr groupWidget = skillClientWidget->createWidget<MyGUI::StaticText>("SandBrightText", MyGUI::IntCoord(0, coord1.top, coord1.width + coord2.width, coord1.height), MyGUI::Align::Default);
    groupWidget->setCaption(label);
    skillWidgets.push_back(groupWidget);

    coord1.top += lineHeight;
    coord2.top += lineHeight;
}
Beispiel #2
0
void StatsWindow::setStyledText(MyGUI::StaticTextPtr widget, ColorStyle style, const std::string &value)
{
    widget->setCaption(value);
    if (style == CS_Super)
        widget->setTextColour(MyGUI::Colour(0, 1, 0));
    else if (style == CS_Sub)
        widget->setTextColour(MyGUI::Colour(1, 0, 0));
    else
        widget->setTextColour(MyGUI::Colour(1, 1, 1));
}
Beispiel #3
0
void StatsWindow::addItem(const std::string text, MyGUI::IntCoord &coord1, MyGUI::IntCoord &coord2)
{
    MyGUI::StaticTextPtr skillNameWidget;

    skillNameWidget = skillClientWidget->createWidget<MyGUI::StaticText>("SandText", coord1 + MyGUI::IntSize(coord2.width, 0), MyGUI::Align::Default);
    skillNameWidget->setCaption(text);

    skillWidgets.push_back(skillNameWidget);

    coord1.top += lineHeight;
    coord2.top += lineHeight;
}
void PropertiesPanelView::createPropertiesWidgetsPair(MyGUI::WidgetPtr _window, std::string _property, std::string _value, std::string _type,int y)
{
	pairs_counter++;
	int x1 = 0, x2 = 125;
	int w1 = 120;
	int w2 = _window->getWidth() - x2;
	const int h = PropertyItemHeight;

	if (_property == "Position")
	{
		x1 = 66;
		w1 = w1 - x1;
	}

	MyGUI::StaticTextPtr text;
	MyGUI::WidgetPtr editOrCombo;
	//int string_int_float; // 0 - string, 1 - int, 2 - float

	int widget_for_type;// 0 - Edit, 1 - Combo mode drop, 2 - ...
	std::string type_names[2] = {"Edit", "ComboBox"};
	if ("Name" == _type) widget_for_type = 0;
	else if ("Skin" == _type) widget_for_type = 1;
	else if ("Position" == _type) widget_for_type = 0;
	else if ("Layer" == _type) widget_for_type = 1;
	else if ("String" == _type) widget_for_type = 0;
	else if ("Align" == _type) widget_for_type = 1;
	// не совсем правильно FIXME
	else if ("1 int" == _type) widget_for_type = 0;
	else if ("2 int" == _type) widget_for_type = 0;
	else if ("4 int" == _type) widget_for_type = 0;
	else if ("1 float" == _type) widget_for_type = 0;
	else if ("2 float" == _type) widget_for_type = 0;
	// надо сделать проще FIXME
	else if ("Colour" == _type) widget_for_type = 0;//"Colour" хорошо бы колорпикером
	else if ("MessageButton" == _type) widget_for_type = 1;
	else if ("FileName" == _type) widget_for_type = 0;
	else widget_for_type = 1;

	if ((propertiesText.size() < pairs_counter) || (propertiesText[pairs_counter-1]->getParent() != _window))
	{
		text = _window->createWidget<MyGUI::StaticText>("Editor_StaticText", x1, y, w1, h, MyGUI::Align::Default);
		text->setTextAlign(MyGUI::Align::Right);
		if (propertiesText.size() < pairs_counter)
		{
			propertiesText.push_back(text);
		}
		else
		{
			MyGUI::Gui::getInstance().destroyWidget(propertiesText[pairs_counter-1]);
			propertiesText[pairs_counter-1] = text;
		}
	}
	else
	{
		text = propertiesText[pairs_counter-1];
		text->setVisible(true);
		text->setCoord(x1, y, w1, h);
	}
	std::string prop = _property;
	// trim widget name
	std::string::iterator iter = std::find(prop.begin(), prop.end(), '_');
	if (iter != prop.end()) prop.erase(prop.begin(), ++iter);
	text->setCaption(prop);

	if ((propertiesElement.size() < pairs_counter) || (propertiesElement[pairs_counter-1]->getParent() != _window) ||
		(type_names[widget_for_type] != propertiesElement[pairs_counter-1]->getTypeName()))
	{
		if (widget_for_type == 0)
		{
			editOrCombo = _window->createWidget<MyGUI::Edit>("Edit", x2, y, w2, h, MyGUI::Align::Top | MyGUI::Align::HStretch);
			editOrCombo->castType<MyGUI::Edit>()->eventEditTextChange = newDelegate (this, &PropertiesPanelView::notifyTryApplyProperties);
			editOrCombo->castType<MyGUI::Edit>()->eventEditSelectAccept = newDelegate (this, &PropertiesPanelView::notifyForceApplyProperties);
		}
		else if (widget_for_type == 1)
		{
			editOrCombo = _window->createWidget<MyGUI::ComboBox>("ComboBox", x2, y, w2, h, MyGUI::Align::Top | MyGUI::Align::HStretch);
			editOrCombo->castType<MyGUI::ComboBox>()->eventComboAccept = newDelegate (this, &PropertiesPanelView::notifyForceApplyProperties2);

			editOrCombo->castType<MyGUI::ComboBox>()->setComboModeDrop(true);
		}

		if (propertiesElement.size() < pairs_counter)
		{
			propertiesElement.push_back(editOrCombo);
		}
		else
		{
			MyGUI::Gui::getInstance().destroyWidget(propertiesElement[pairs_counter-1]);
			propertiesElement[pairs_counter-1] = editOrCombo;
		}
	}
	else
	{
		editOrCombo = propertiesElement[pairs_counter-1];
		if (widget_for_type == 1) editOrCombo->castType<MyGUI::ComboBox>()->removeAllItems();
		editOrCombo->setVisible(true);
		editOrCombo->setCoord(x2, y, w2, h);
	}

	// fill possible values
	if (widget_for_type == 1)
	{
		std::vector<std::string> values;
		if (_type == "Skin") values = WidgetTypes::getInstance().find(current_widget->getTypeName())->skin;
		else values = WidgetTypes::getInstance().findPossibleValues(_type);

		for (std::vector<std::string>::iterator iter = values.begin(); iter != values.end(); ++iter)
			editOrCombo->castType<MyGUI::ComboBox>()->addItem(*iter);
	}

	editOrCombo->setUserString("action", _property);
	editOrCombo->setUserString("type", _type);

	if (_value.empty()){
		editOrCombo->setCaption(DEFAULT_VALUE);
	}
	else
	{
		editOrCombo->castType<MyGUI::Edit>()->setOnlyText(_value);
		checkType(editOrCombo->castType<MyGUI::Edit>(), _type);
	}
}
Beispiel #5
0
void PlayState::createScene()
{
    // Needed to separate translate from rotate
    mDebugCamNode = mSceneMgr->getRootSceneNode()->createChildSceneNode("DebugCamNode", Vector3(0.0f, 0.0f, 0.0f));
    mTransitionCamNode = mSceneMgr->getRootSceneNode()->createChildSceneNode("TransitionCamNode", Vector3(0.0f, 0.0f, 0.0f));
    mTransitionRotate=0;
    mTransitionHeight=50;
    mTransitionRadius=50;

    mWorld = new OgreBulletDynamics::DynamicsWorld(mSceneMgr, AxisAlignedBox(Vector3(-1000,-1000,-1000), Vector3(1000,1000,1000)), Vector3(0,-9.801,0));
    mDebugDrawer = new OgreBulletCollisions::DebugDrawer();
    SceneNode *debug = mSceneMgr->getRootSceneNode()->createChildSceneNode("debugDrawer");
    mWorld->setDebugDrawer(mDebugDrawer);
    mDebugShapesOn = NORMAL;

    gContactAddedCallback = &PlayState::contactAddedWrapper;
    mWorld->getBulletDynamicsWorld()->setInternalTickCallback(PlayState::internalTickCallbackWrapper);

    if(mLoadSavedGame) {
        rapidxml::file<> savedFile(mSavedGameFilename.c_str());
        rapidxml::xml_document<> XMLDocDotLost;
        XMLDocDotLost.parse<0>( savedFile.data() );
        rapidxml::xml_node<>* pElement;
        pElement = XMLDocDotLost.first_node("LostMarblesSavedGame");
        std::string levelName = "currentLevelName";
        levelName = pElement->first_attribute(levelName.c_str())->value();
        int levelNumber = mCurrentLevel;
        for(std::vector<LevelInformation>::iterator i = mLevels.begin(); i != mLevels.end(); i++) {
            if((*i).filename == levelName)
                levelNumber = (*i).number;
        }
        mCurrentLevel = (unsigned int)(levelNumber - 1);
    }

    Ogre::DotLevelLoader loader(mLuaState);
    loader.parseDotLevel(mLevels[mCurrentLevel].filename+".level","General", mSceneMgr);
    loader.parseActors(mLevels[mCurrentLevel].filename+".actors","General", mSceneMgr, mWorld, mActors, mFriends, mRivals, mTargets, &mFocusActor);
    mFocusActor->mNeedsHelp = true;

    mNumTargets = mTargets.size();
    mCamera = mSceneMgr->getCamera("PlayerCam");
    mCamNode = mSceneMgr->getSceneNode("PlayerCam");

    if(mLoadSavedGame) {
        mLoadSavedGame = false;
    }

    if(!mLevels[mCurrentLevel].music.empty())
        mSoundMgr->PlaySound(mLevels[mCurrentLevel].music, NULL, &mSoundMgr->mBgmChannel);

    if(mViewport)
        mViewport->setCamera(mCamera);
    if(mRenderTexture)
        mRenderTexture->getViewport(0)->setCamera(mCamera);

    PlayState::alterPlayState(PlayState::TRANSITION);
    if(!mGUI) {
        MyGUI::OgreRenderManager::getInstance().setSceneManager(mSceneMgr);
        mGUI = MyGUI::Gui::getInstancePtr();
        mGUI->setVisiblePointer(false);
    }
    mTransitionLayout = MyGUI::LayoutManager::getInstance().loadLayout("Transition.layout");
    MyGUI::StaticTextPtr staticText = mGUI->findWidget<MyGUI::StaticText>("LevelNameText");
    staticText->setCaption(mLevels[mCurrentLevel].levelname);
    staticText = mGUI->findWidget<MyGUI::StaticText>("LevelNumberText");
    staticText->setCaption("Level     " + Ogre::StringConverter::toString(mLevels[mCurrentLevel].number));

    try {
        MyGUI::StaticImagePtr image = mGUI->findWidget<MyGUI::StaticImage>("RivalScoreBG");
        MyGUI::StaticTextPtr rivalScoreLabel = mGUI->findWidget<MyGUI::StaticText>("RivalScore");

        if(mRivals.empty()) {
            if(image)
                image->setVisible(false);
            if(rivalScoreLabel)
                rivalScoreLabel->setVisible(false);
        } else {
            if(image)
                image->setVisible(true);
            if(rivalScoreLabel)
                rivalScoreLabel->setVisible(true);
        }
    } catch(MyGUI::Exception &) {}

}