bool SimInterior::processQuery(SimQuery* query)
{
   switch (query->type){
      onQuery(SimRenderQueryImage);
      onQuery(SimCollisionImageQuery);
      onQuery(SimObjectTransformQuery);
      
     default:
      return Parent::processQuery(query);
   }
}
Beispiel #2
0
bool Player::processQuery(SimQuery* query)
{
	switch (query->type)
	{
		onQuery (SimRenderQueryImage);
		onQuery (SimLightQuery);
		onQuery (SimCollisionImageQuery);
		
		default:
			return Parent::processQuery (query);
	}
}
bool FlyingCamera::processQuery(SimQuery *query)
{
   switch (query->type)
   {
      onQuery(SimCameraQuery);
      onQuery(SimImageTransformQuery);
      onQuery(SimCollisionImageQuery);
      onQuery(SimObjectTransformQuery);

      default :
         return (false);
   }
}
Beispiel #4
0
/*
 * @brief Do the protocal level command handler
 * Note: this function does hiden process in embeded target, mobile phone can
 * get those information via commands to identify it.
 *
 * @param[i] cmdType    command type
 * @param[i] cmd        command id
 * @param[i] pData      data to be handled
 * @param[i] len        length of pData context
 *
 * @return
 *  0 : continue process
 *  1 : this is an internal command, no needer further process
 */
int32_t bicProcessCmd(uint8_t cmdType,
            uint8_t cmd, uint8_t *pData, uint8_t len)
{
    uint32_t ret = 0;

    Trace("type:%d, cmd:%d, len:%d", cmdType, cmd, len);
    switch(cmdType)
    {
        case CMD_TYPE_ACK:
            break;

        case CMD_TYPE_QUERY:
            ret = onQuery(cmd, pData, len);
            break;

        case CMD_TYPE_SET:
            ret = onSet(cmd, pData, len);
            break;

        default:
            break;
    }

    return ret;
}
bool SimExplosionCloud::processQuery(SimQuery * query)
{
	switch (query->type)
	{
		onQuery(SimRenderQueryImage);
	}
	return false;
}
bool DropPointGroup::processQuery(SimQuery* query)
{
	switch (query->type){
		onQuery (DropPointQuery);
     
     default:
      return Parent::processQuery(query);
	}
}
Beispiel #7
0
bool Turret::processQuery(SimQuery* query)
{
	switch (query->type)
		{
         onQuery(SimRenderQueryImage);

			default:
				return Parent::processQuery (query);
		}
}
void CDatagrams::onPacket(CEndPoint addr, G2Packet* pPacket)
{
	try
	{
		if(pPacket->isType("PI"))
		{
			onPing(addr, pPacket);
		}
		else if(pPacket->isType("PO"))
		{
			onPong(addr, pPacket);
		}
		else if(pPacket->isType("CRAWLR"))
		{
			onCRAWLR(addr, pPacket);
		}
		else if(pPacket->isType("QKR"))
		{
			onQKR(addr, pPacket);
		}
		else if(pPacket->isType("QKA"))
		{
			onQKA(addr, pPacket);
		}
		else if(pPacket->isType("QA"))
		{
			onQA(addr, pPacket);
		}
		else if(pPacket->isType("QH2"))
		{
			onQH2(addr, pPacket);
		}
		else if(pPacket->isType("Q2"))
		{
			onQuery(addr, pPacket);
		}
		else
		{
			//systemLog.postLog(LogSeverity::Debug, QString("G2 UDP recieved unknown packet %1").arg(pPacket->GetType()));
			//qDebug() << "UDP RECEIVED unknown packet " << pPacket->GetType();
		}
	}
	catch(...)
	{
		systemLog.postLog(LogSeverity::Debug, QString("malformed packet"));
		//qDebug() << "malformed packet";
	}
}
/**
 * Returns true if a physics body was selected at the given position.
 *
 * This method contructs and AABB the size of the mouse pointer, centered at the
 * given position.  If any part of the AABB overlaps a fixture, it is selected.
 *
 * @param  pos  the position (in physics space) to select
 *
 * @return true if a physics body was selected at the given position.
 */
bool ObstacleSelector::select(const Vec2& pos) {
    std::function<bool(b2Fixture* fixture)> callback = [this](b2Fixture* fixture) {
        return onQuery(fixture);
    };
    
    _pointer.origin.set(pos.x-_pointer.size.width/2.0f, pos.y-_pointer.size.height/2.0f);
    
    _controller->queryAABB(callback,_pointer);
    if (_selection != nullptr) {
        b2Body* body = _selection->GetBody();
        _jointDef.bodyA = _ground;
        _jointDef.bodyB = body;
        _jointDef.maxForce = _force * body->GetMass();
        _jointDef.target.Set(pos.x,pos.y);
        _mouseJoint = (b2MouseJoint*)_controller->getWorld()->CreateJoint(&_jointDef);
        body->SetAwake(true);
    }
    
    return _selection != nullptr;
}
Beispiel #10
0
unicorn::Bus::Bus( QObject* parent )
    :PlayBus( "unicorn", parent )
{
    connect( this, SIGNAL( message(QByteArray)), SLOT( onMessage(QByteArray)));
    connect( this, SIGNAL( queryRequest( QString, QByteArray )), SLOT( onQuery( QString, QByteArray )));
}
Beispiel #11
0
//--------------------------------------------------------------------------- 
bool SimFire::processQuery(SimQuery *query)
{
   switch (query->type)
   {
      onQuery(SimLightQuery);
   
      case SimRenderQueryImageType: 
      {
         if ((float)manager->getCurrentTime() > fireOut)
            return false;

         if (shapeTag==-1 && translucentShapeTag==-1)
               return false;

           SimRenderQueryImage *qp = static_cast<SimRenderQueryImage *>(query);
         TSRenderContext & rc = *qp->renderContext;
         GFXSurface *srf = rc.getSurface();

         // shall we draw translucent?
         bool inHardware = srf->getCaps()&GFX_DEVCAP_SUPPORTS_CONST_ALPHA;
         bool translucent = (inHardware || 
                             SimExplosion::SoftwareTranslucency ||
                             shapeTag==-1)
                            && translucentShapeTag!=-1;

         if (!renderedYet || translucent!=image.drawTranslucent)
         {
            // need to switch modes
            if (translucent && !image.translucentShape)
               // need to load translucent shape
               getShape(translucentShapeTag,
                        &image.translucentShape,
                        &image.translucentThread);
            else if (!translucent && !image.nonTranslucentShape)
               // need to load non-translucent shape
               getShape(shapeTag,
                        &image.nonTranslucentShape,
                        &image.nonTranslucentThread);

            image.setTranslucent(translucent);

            if (!renderedYet)
               // got right radius (above)
               // update bounding box in container db next timer update
               updateBox = true;
         }

         // face camera
         if ( (!renderedYet && faceCam) || followCam)
            image.faceCamera(rc);

         // advance the animation
         float now = manager->getCurrentTime();
         image.thread->AdvanceTime(now-prevAnimTime);
         prevAnimTime = now;

         // get haze value from container
			SimContainer * cnt = getContainer();
			if (cnt)
				image.hazeValue = cnt->getHazeValue(rc, image.transform.p);

         image.setSortValue(rc.getCamera());
           qp->count = 1;
           qp->image[0] = &image;

         renderedYet = true;

         return true;
      }
   }
   return false;
}