Example #1
0
void CAA_DragonFire::init(FloatRect dragonRect, bool bOrientation, CGame * pGame, int WormID, int TeamID) {
	m_pGame = pGame;
	m_WormID = WormID;
	m_TeamID = TeamID;
	m_bOrientation = bOrientation;
	m_pSprite = g_pSpritepool->at(SPRITEID::DRAGONFIRE);
	FloatRect FR;
	CVec dir(0.0f,0.0f);
	setIsSolid(true);
	setCanMove(true);
	FR = m_pSprite->GetRect();
	if (m_bOrientation == OLEFT) {
		FR.x = dragonRect.x;
		dir.x = -500.0f;
	} else {
		FR.x = dragonRect.x+dragonRect.w-FR.w;
		dir.x = 500.0f;
	}
	FR.y = dragonRect.y;
	if (m_bOrientation == OLEFT)//Physical rect is smaller then sprite ;) --> looks better
		FR.y -= 20.0f;
	else
		FR.w -= 20.0f;
	setDir(dir);
	setRect(FR);
	setHasGravity(false);

	initKillTime(1.5f);
}
Example #2
0
void CIFlag::init() {//MBE maybe its better to init sprites in inits (if not null... but where to set null?)
	this->CItem::init();
	setIsSolid(true);
	setName("Flag");

	setIcon(g_pSpritepool->at(SPRITEID::ICONFLAG));
	setSprite(g_pSpritepool->at(SPRITEID::FLAG));

	FloatRect FR;
	FR = m_pSprite->GetRect();
	setRect( FR );

	g_pLogfile->Textout("</ br>inited Flag!");
}
Example #3
0
void CIDragon::init(CGame * pGame) {
    m_pGame = pGame;

    m_fAnimPhase = 0.0f;
    this->CItem::init();
    setIsSolid(true);
    setName("Dragon");
    setDropable(true);

    //TODO: for debug only:
    setOwner(NULL);


    setIcon(g_pSpritepool->at(SPRITEID::ICONDRAGON));
    m_pSpriteBody = g_pSpritepool->at(SPRITEID::DRAGONBODY);
    m_pSpriteWings = g_pSpritepool->at(SPRITEID::DRAGONWINGS);
    FloatRect FR;
    FR = m_pSpriteBody->GetRect();
    setRect(FR);
    m_bActive = false;
    m_fLastShot = 0.0f;
}
Example #4
0
void Base3DOverlay::setProperties(const QScriptValue& properties) {
    Overlay::setProperties(properties);

    QScriptValue drawInFront = properties.property("drawInFront");

    if (drawInFront.isValid()) {
        bool value = drawInFront.toVariant().toBool();
        setDrawInFront(value);
    }

    QScriptValue drawOnHUD = properties.property("drawOnHUD");

    if (drawOnHUD.isValid()) {
        bool value = drawOnHUD.toVariant().toBool();
        setDrawOnHUD(value);
    }

    QScriptValue position = properties.property("position");

    // if "position" property was not there, check to see if they included aliases: point, p1
    if (!position.isValid()) {
        position = properties.property("p1");
        if (!position.isValid()) {
            position = properties.property("point");
        }
    }

    if (position.isValid()) {
        QScriptValue x = position.property("x");
        QScriptValue y = position.property("y");
        QScriptValue z = position.property("z");
        if (x.isValid() && y.isValid() && z.isValid()) {
            glm::vec3 newPosition;
            newPosition.x = x.toVariant().toFloat();
            newPosition.y = y.toVariant().toFloat();
            newPosition.z = z.toVariant().toFloat();
            setPosition(newPosition);
        }
    }

    if (properties.property("lineWidth").isValid()) {
        setLineWidth(properties.property("lineWidth").toVariant().toFloat());
    }

    QScriptValue rotation = properties.property("rotation");

    if (rotation.isValid()) {
        glm::quat newRotation;

        // size, scale, dimensions is special, it might just be a single scalar, or it might be a vector, check that here
        QScriptValue x = rotation.property("x");
        QScriptValue y = rotation.property("y");
        QScriptValue z = rotation.property("z");
        QScriptValue w = rotation.property("w");


        if (x.isValid() && y.isValid() && z.isValid() && w.isValid()) {
            newRotation.x = x.toVariant().toFloat();
            newRotation.y = y.toVariant().toFloat();
            newRotation.z = z.toVariant().toFloat();
            newRotation.w = w.toVariant().toFloat();
            setRotation(newRotation);
        }
    }

    if (properties.property("isSolid").isValid()) {
        setIsSolid(properties.property("isSolid").toVariant().toBool());
    }
    if (properties.property("isFilled").isValid()) {
        setIsSolid(properties.property("isSolid").toVariant().toBool());
    }
    if (properties.property("isWire").isValid()) {
        setIsSolid(!properties.property("isWire").toVariant().toBool());
    }
    if (properties.property("solid").isValid()) {
        setIsSolid(properties.property("solid").toVariant().toBool());
    }
    if (properties.property("filled").isValid()) {
        setIsSolid(properties.property("filled").toVariant().toBool());
    }
    if (properties.property("wire").isValid()) {
        setIsSolid(!properties.property("wire").toVariant().toBool());
    }

    if (properties.property("isDashedLine").isValid()) {
        setIsDashedLine(properties.property("isDashedLine").toVariant().toBool());
    }
    if (properties.property("dashed").isValid()) {
        setIsDashedLine(properties.property("dashed").toVariant().toBool());
    }
    if (properties.property("ignoreRayIntersection").isValid()) {
        setIgnoreRayIntersection(properties.property("ignoreRayIntersection").toVariant().toBool());
    }
}
Example #5
0
void Base3DOverlay::setProperties(const QVariantMap& properties) {
    Overlay::setProperties(properties);

    bool needRenderItemUpdate = false;

    auto drawInFront = properties["drawInFront"];

    if (drawInFront.isValid()) {
        bool value = drawInFront.toBool();
        setDrawInFront(value);
        needRenderItemUpdate = true;
    }

    auto position = properties["position"];

    // if "position" property was not there, check to see if they included aliases: point, p1
    if (!position.isValid()) {
        position = properties["p1"];
        if (!position.isValid()) {
            position = properties["point"];
        }
    }
    if (position.isValid()) {
        setPosition(vec3FromVariant(position));
        needRenderItemUpdate = true;
    }

    if (properties["lineWidth"].isValid()) {
        setLineWidth(properties["lineWidth"].toFloat());
        needRenderItemUpdate = true;
    }

    auto rotation = properties["rotation"];

    if (rotation.isValid()) {
        setRotation(quatFromVariant(rotation));
        needRenderItemUpdate = true;
    }

    if (properties["isSolid"].isValid()) {
        setIsSolid(properties["isSolid"].toBool());
    }
    if (properties["isFilled"].isValid()) {
        setIsSolid(properties["isSolid"].toBool());
    }
    if (properties["isWire"].isValid()) {
        setIsSolid(!properties["isWire"].toBool());
    }
    if (properties["solid"].isValid()) {
        setIsSolid(properties["solid"].toBool());
    }
    if (properties["filled"].isValid()) {
        setIsSolid(properties["filled"].toBool());
    }
    if (properties["wire"].isValid()) {
        setIsSolid(!properties["wire"].toBool());
    }

    if (properties["isDashedLine"].isValid()) {
        setIsDashedLine(properties["isDashedLine"].toBool());
    }
    if (properties["dashed"].isValid()) {
        setIsDashedLine(properties["dashed"].toBool());
    }
    if (properties["ignoreRayIntersection"].isValid()) {
        setIgnoreRayIntersection(properties["ignoreRayIntersection"].toBool());
    }

    // Communicate changes to the renderItem if needed
    if (needRenderItemUpdate) {
        auto itemID = getRenderItemID();
        if (render::Item::isValidID(itemID)) {
            render::ScenePointer scene = qApp->getMain3DScene();
            render::PendingChanges pendingChanges;
            pendingChanges.updateItem(itemID);
            scene->enqueuePendingChanges(pendingChanges);
        }
    }
}