示例#1
0
void ComponentPhysicsGeom::load(const PropertyBag &data)
{
	resetMembers();

	desiredHeight = data.getFloat("height");
	collisionRadius = data.getFloat("radius");

	// Create as physics geometry
	if(geom){dGeomDestroy(geom);} geom=0;
	createGeom(data.getString("physicsGeometryType"));

	// Set initial position
	{
		vec3 position;
		if(data.get("position", position)) // optional tag
		{
			setPosition(position);
		}
	}

	// Declare the initial state
	getParentBlackBoard().relayMessage(MessagePositionHasBeenSet(getPosition()));
	getParentBlackBoard().relayMessage(MessageOrientationHasBeenSet(getOrientation()));
	getParentBlackBoard().relayMessage(MessageRequestSetHeight(desiredHeight));
}
void ComponentExitMapOnUse::load(const PropertyBag &data)
{
	resetMembers();
	nextMap = data.getFileName("nextMap");
	sfxOnFail = data.getFileName("sfxOnFailed");
	requiresCoins = data.getBool("requiresCoins");
}
示例#3
0
ComponentDeathBehavior::
ComponentDeathBehavior(UID uid, ScopedEventHandler *parentScope)
		: Component(uid, parentScope) {
	REGISTER_HANDLER(ComponentDeathBehavior::handleEventCharacterRevived);
	REGISTER_HANDLER(ComponentDeathBehavior::handleEventDeathBehaviorUpdate);
	resetMembers();
}
示例#4
0
ComponentSpinAround::ComponentSpinAround(BlackBoardUID uid,
										 BlackBoard *blackBoard)
: Component(uid, blackBoard)
{
	resetMembers();
	registerMessageHandler("MessageDeclareInitialPosition", bind(&ComponentSpinAround::handleMessageDeclareInitialPosition, this, _1));
}
void ComponentRenderAsModel::load(const PropertyBag &data)
{
	resetMembers();
	const FileName modelFileName = data.getFileName("model");
	loadModel(modelFileName);
	data.get("independentModelOrientation", independentModelOrientation);
}
示例#6
0
void ComponentSpinAround::load(const PropertyBag &data)
{
	resetMembers();
	rotationSpeed = data.getFloat("rotationSpeed");
	bounceHeight = data.getFloat("bounceHeight");
	bounceSpeed = data.getFloat("bounceSpeed");
}
示例#7
0
void ComponentExplodeAfterTimeout::load(const PropertyBag &data) {
	resetMembers();
	
	timeleft = data.getFloat("timeout");
	baseDamage = data.getInt("baseDamage");
	soundFileName = data.getFileName("soundFileName");
	particlesFileName = data.getFileName("particlesFileName");
}
示例#8
0
ComponentObjectCanBeUsed::
ComponentObjectCanBeUsed(UID uid, ScopedEventHandler *parentScope)
    : Component(uid, parentScope) {
    REGISTER_HANDLER(ComponentObjectCanBeUsed::handleActionUseObject);
    REGISTER_HANDLER(ComponentObjectCanBeUsed::handleEventApproachActor);
    REGISTER_HANDLER(ComponentObjectCanBeUsed::handleEventRecedesFromActor);

    resetMembers();
}
ComponentExitMapOnUse::ComponentExitMapOnUse(BlackBoardUID uid,
											 BlackBoard *blackBoard)
: Component(uid, blackBoard),
  world(0)
{
	registerMessageHandler("MessageClientUsesObject", bind(&ComponentExitMapOnUse::handleMessageClientUsesObject, this, _1));
	registerMessageHandler("MessageSetWorld",         bind(&ComponentExitMapOnUse::handleMessageSetWorld, this, _1));
	resetMembers();
}
示例#10
0
void ComponentBrainShooter::load(const PropertyBag &data)
{
	resetMembers();

	data.get("fov", fov); // optional tag
	data.get("maxSightDistance", maxSightDistance); // optional tag
	data.get("shootDistance", shootDistance); // optional tag

	wanderAngle = FRAND_RANGE(0.0f, 2.0f * (float)M_PI);
}
示例#11
0
ComponentObjectApproachable::ComponentObjectApproachable( UID uid, ScopedEventHandler *parentScope )
		: Component(uid, parentScope),
		world(0),
		thresholdTrigger(0.0f),
		thresholdRelease(0.0f) {
	REGISTER_HANDLER(ComponentObjectApproachable::handleEventPositionUpdate);
	REGISTER_HANDLER(ComponentObjectApproachable::handleMessagePassWorld);
	
	resetMembers();
}
示例#12
0
void Message::reset()
{
    setHttpVersion(1,1) ;
    httpVersion_.clear() ;
    headers_.clear() ;
    body_.clear() ;

    // allow additional reseting by subclasses
    resetMembers() ;
}
示例#13
0
void ComponentHealth::load(const PropertyBag &data)
{
    resetMembers();
    health = data.getInt("health");
    maxHealth = data.getInt("maxHealth");
    damageToPowerRatio = data.getFloat("damageToPowerRatio");
    willResurrectAfterCountDown = data.getBool("willResurrectAfterCountDown");
    timeUntilResurrection = data.getFloat("timeUntilResurrection");

    data.get("displayPower", displayPower); // optional tag
}
示例#14
0
ComponentPhysicsGeom::ComponentPhysicsGeom(BlackBoardUID uid,
										   BlackBoard *blackBoard)
: ComponentPhysics(uid, blackBoard)
{
	resetMembers();
	registerMessageHandler("MessageSetWorld",               bind(&ComponentPhysicsGeom::handleMessageSetWorld, this, _1));
	registerMessageHandler("MessageRequestPositionBeSet",   bind(&ComponentPhysicsGeom::handleMessageRequestPositionBeSet, this, _1));
	registerMessageHandler("MessageRequestLookAt",          bind(&ComponentPhysicsGeom::handleMessageRequestLookAt, this, _1));
	registerMessageHandler("MessageRequestSetOrientation",  bind(&ComponentPhysicsGeom::handleMessageRequestSetOrientation, this, _1));
	registerMessageHandler("MessageDeclareInitialPosition", bind(&ComponentPhysicsGeom::handleMessageDeclareInitialPosition, this, _1));
	registerMessageHandler("MessageZombifyActor",           bind(&ComponentPhysicsGeom::handleMessageZombifyActor, this, _1));
}
示例#15
0
ComponentAttachParticleSystem::
ComponentAttachParticleSystem(UID uid, ScopedEventHandler *blackBoard)
		: Component(uid, blackBoard),
		world(0),
		active(true) {
	REGISTER_HANDLER(ComponentAttachParticleSystem::handleEventOrientationUpdate);
	REGISTER_HANDLER(ComponentAttachParticleSystem::handleEventPositionUpdate);
	REGISTER_HANDLER(ComponentAttachParticleSystem::handleMessagePassWorld);
	REGISTER_HANDLER(ComponentAttachParticleSystem::handleActionDeleteActor);
	
	resetMembers();
}
ComponentAttachParticleSystem::
ComponentAttachParticleSystem(BlackBoardUID uid, BlackBoard *blackBoard)
: Component(uid, blackBoard),
  world(0),
  active(true)
{
	registerMessageHandler("MessageOrientationHasBeenSet", bind(&ComponentAttachParticleSystem::handleMessageOrientationHasBeenSet, this, _1));
	registerMessageHandler("MessagePositionHasBeenSet",    bind(&ComponentAttachParticleSystem::handleMessagePositionHasBeenSet, this, _1));
	registerMessageHandler("MessageSetWorld",              bind(&ComponentAttachParticleSystem::handleMessageSetWorld, this, _1));
	registerMessageHandler("MessageZombifyActor",          bind(&ComponentAttachParticleSystem::handleMessageZombifyActor, this, _1));

	resetMembers();
}
示例#17
0
void ComponentGate::load(const PropertyBag &data)
{
    resetMembers();

    state = ("a" == toLowerCase(data.getString("initialState")))
            ? STATE_A
            : STATE_B;

    positionA = data.getVec3("positionA");
    positionB = data.getVec3("positionB");
    timeToTransitionAB = data.getFloat("timeToTransitionAB");
    timeToTransitionBA = data.getFloat("timeToTransitionBA");
}
/*
 * Begin: Parse KeePassX XML Files.
 */
void KeePassXmlStreamReader::parseDatabase(){
    resetMembers();
    while(xmlReader.readNextStartElement()){
        if(xmlReader.name() == "group"){
            qDebug("Found group in database.");
            parseGroup();
        }else{
            qDebug("Skipping database child element: %s", xmlReader.name().toString().toUtf8().constData());
            xmlReader.skipCurrentElement();
        }
    }
    qDebug("Leaving parseDatabase...");
}
示例#19
0
ComponentHealth::ComponentHealth(BlackBoardUID _uid,
                                 BlackBoard *_blackBoard)
    : Component(_uid, _blackBoard),
      world(0)
{
    registerMessageHandler("MessageCharacterHasBeenResurrected",   bind(&ComponentHealth::handleMessageCharacterHasBeenResurrected, this, _1));
    registerMessageHandler("MessageCharacterHasDied",              bind(&ComponentHealth::handleMessageCharacterHasDied, this, _1));
    registerMessageHandler("MessageCharacterReceivesWeaponPower",  bind(&ComponentHealth::handleMessageCharacterReceivesWeaponPower, this, _1));
    registerMessageHandler("MessageCharacterReceivesDamage",       bind(&ComponentHealth::handleMessageCharacterReceivesDamage, this, _1));
    registerMessageHandler("MessageCharacterReceivesHealing",      bind(&ComponentHealth::handleMessageCharacterReceivesHealing, this, _1));
    registerMessageHandler("MessagePositionHasBeenSet",            bind(&ComponentHealth::handleMessagePositionHasBeenSet, this, _1));
    registerMessageHandler("MessageRequestSetHeight",              bind(&ComponentHealth::handleMessageRequestSetHeight, this, _1));
    registerMessageHandler("MessagePassFont",                      bind(&ComponentHealth::handleMessagePassFont, this, _1));
    registerMessageHandler("MessageExplosionOccurs",               bind(&ComponentHealth::handleMessageExplosionOccurs, this, _1));
    registerMessageHandler("MessageSetWorld",                      bind(&ComponentHealth::handleMessageSetWorld, this, _1));

    resetMembers();
}
void KeePassXmlStreamReader::parseGroup(){
    while(xmlReader.readNextStartElement()){
        if(xmlReader.name() == "title"){
            if(! groupTitle.isEmpty()) groupTitleStack.append(groupTitle);
            groupTitle = xmlReader.readElementText();
        }else if(xmlReader.name() == "entry"){
            qDebug("Found entry in group.");
            parseEntry();
        }else if(xmlReader.name() == "group"){
            qDebug("Found group in group.");
            parseGroup();
        }else{
            qDebug("Skipping group child element: %s", xmlReader.name().toString().toUtf8().constData());
            xmlReader.skipCurrentElement();
        }
    }
    resetMembers();
    qDebug("Leaving parseGroup...");
}
示例#21
0
ComponentMovement::ComponentMovement(UID uid,  ScopedEventHandler *s)
		: Component(uid, s),
		amotor(0),
		lmotor(0),
		world(0),
		lastAction(Stand),
		dead(false),
		disablePhysics(false) {
	REGISTER_HANDLER(ComponentMovement::handleActionPerformAction);
	REGISTER_HANDLER(ComponentMovement::handleMessagePassWorld);
	REGISTER_HANDLER(ComponentMovement::handleEventCharacterRevived);
	REGISTER_HANDLER(ComponentMovement::handleEventCharacterHasDied);
	REGISTER_HANDLER(ComponentMovement::handleActionSetCharacterFaceAngle);
	REGISTER_HANDLER(ComponentMovement::handleActionTurn);
	REGISTER_HANDLER(ComponentMovement::handleActionPhysicsDisable);
	REGISTER_HANDLER(ComponentMovement::handleActionPhysicsEnable);
	
	resetMembers();
}
示例#22
0
void Application::destroy() {
	TRACE("Shutting down application...");
	
	kernel.destroy();
	TRACE("Kernel has been shutdown");
	
	soundSystem.reset();
	TRACE("Sound subsystem has been shutdown");
	
	input.reset();
	TRACE("Input subsystem has been shutdown");
	
	renderer.reset();
	TRACE("Renderer has been shutdown");
	
	dCloseODE();
	TRACE("Physics subsystem has been shutdown");
	
	SDL_Quit();
	TRACE("SDL libraries have been shutdown");
	
	resetMembers();
	TRACE("...shutdown completed");
}
示例#23
0
static void EndElement(const xmlChar *name, struct osmdata_t *osmdata)
{
    if (xmlStrEqual(name, BAD_CAST "node")) {
      if (node_wanted(osmdata, osmdata->node_lat, osmdata->node_lon)) {
	  reproject(&(osmdata->node_lat), &(osmdata->node_lon));
            if( osmdata->action == ACTION_CREATE )
	        osmdata->out->node_add(osmdata->osm_id, osmdata->node_lat, osmdata->node_lon, &(osmdata->tags));
            else if( osmdata->action == ACTION_MODIFY )
	        osmdata->out->node_modify(osmdata->osm_id, osmdata->node_lat, osmdata->node_lon, &(osmdata->tags));
            else if( osmdata->action == ACTION_DELETE )
                osmdata->out->node_delete(osmdata->osm_id);
            else
            {
                fprintf( stderr, "Don't know action for node %d\n", osmdata->osm_id );
                exit_nicely();
            }
        }
        resetList(&(osmdata->tags));
    } else if (xmlStrEqual(name, BAD_CAST "way")) {
        if( osmdata->action == ACTION_CREATE )
	    osmdata->out->way_add(osmdata->osm_id, osmdata->nds, osmdata->nd_count, &(osmdata->tags) );
        else if( osmdata->action == ACTION_MODIFY )
	    osmdata->out->way_modify(osmdata->osm_id, osmdata->nds, osmdata->nd_count, &(osmdata->tags) );
        else if( osmdata->action == ACTION_DELETE )
            osmdata->out->way_delete(osmdata->osm_id);
        else
        {
            fprintf( stderr, "Don't know action for way %d\n", osmdata->osm_id );
            exit_nicely();
        }
        resetList(&(osmdata->tags));
    } else if (xmlStrEqual(name, BAD_CAST "relation")) {
        if( osmdata->action == ACTION_CREATE )
	    osmdata->out->relation_add(osmdata->osm_id, osmdata->members, osmdata->member_count, &(osmdata->tags));
        else if( osmdata->action == ACTION_MODIFY )
	    osmdata->out->relation_modify(osmdata->osm_id, osmdata->members, osmdata->member_count, &(osmdata->tags));
        else if( osmdata->action == ACTION_DELETE )
            osmdata->out->relation_delete(osmdata->osm_id);
        else
        {
            fprintf( stderr, "Don't know action for relation %d\n", osmdata->osm_id );
            exit_nicely();
        }
        resetList(&(osmdata->tags));
        resetMembers(osmdata);
    } else if (xmlStrEqual(name, BAD_CAST "tag")) {
        /* ignore */
    } else if (xmlStrEqual(name, BAD_CAST "nd")) {
        /* ignore */
    } else if (xmlStrEqual(name, BAD_CAST "member")) {
	/* ignore */
    } else if (xmlStrEqual(name, BAD_CAST "osm")) {
        printStatus(osmdata);
        osmdata->filetype = FILETYPE_NONE;
    } else if (xmlStrEqual(name, BAD_CAST "osmChange")) {
        printStatus(osmdata);
        osmdata->filetype = FILETYPE_NONE;
    } else if (xmlStrEqual(name, BAD_CAST "planetdiff")) {
        printStatus(osmdata);
        osmdata->filetype = FILETYPE_NONE;
    } else if (xmlStrEqual(name, BAD_CAST "bound")) {
        /* ignore */
    } else if (xmlStrEqual(name, BAD_CAST "bounds")) {
        /* ignore */
    } else if (xmlStrEqual(name, BAD_CAST "changeset")) {
        /* ignore */
	resetList(&(osmdata->tags)); /* We may have accumulated some tags even if we ignored the changeset */
    } else if (xmlStrEqual(name, BAD_CAST "add")) {
        osmdata->action = ACTION_NONE;
    } else if (xmlStrEqual(name, BAD_CAST "create")) {
        osmdata->action = ACTION_NONE;
    } else if (xmlStrEqual(name, BAD_CAST "modify")) {
        osmdata->action = ACTION_NONE;
    } else if (xmlStrEqual(name, BAD_CAST "delete")) {
        osmdata->action = ACTION_NONE;
    } else {
        fprintf(stderr, "%s: Unknown element name: %s\n", __FUNCTION__, name);
    }
}
示例#24
0
void ComponentUseOnCollision::load(const PropertyBag &data) {
	resetMembers();
	onlyPlayers = data.getBool("onlyPlayers");
}
示例#25
0
void ComponentIsSwitch::load(const PropertyBag &data)
{
	resetMembers();
	categoryID = data.getInt("categoryID");
}
示例#26
0
ComponentSpinAround::
ComponentSpinAround(UID uid, ScopedEventHandler *parentScope)
		: Component(uid, parentScope) {
	REGISTER_HANDLER(ComponentSpinAround::handleEventDeclareInitialPosition);
	resetMembers();
}
示例#27
0
void ComponentPhysicsGeom::handleMessageZombifyActor(Message &message)
{
	if(geom){dGeomDestroy(geom);} geom=0;
	resetMembers();
}
示例#28
0
void ComponentBrainKamikaze::load(const PropertyBag &data)
{
	resetMembers();
	data.get("maxSightDistance", maxSightDistance); // optional tag
}
示例#29
0
void ComponentDeathBehavior::load(const PropertyBag &data) {
	resetMembers();
	deathBehavior = deathBehaviorFromString(data.getString("deathBehavior"));
	broadcastDeathBehavior(); // broadcast initial value
}
示例#30
0
void ComponentDestroySelfOnCollision::load(const PropertyBag &data) {
	resetMembers();
	data.get("onlyPlayers", onlyPlayers); // optional tag
}