Ejemplo n.º 1
0
  void WarpMapEventAction::VisitPlayer (IPlayer& visitable)
  {
    switch (GetContextType ())
    {
      case MapEventActionType::Enter:

        GetArgs ().AbortEvents (true);
        visitable.Warp (mapWorldID_, mapPoint_);

        break;

      default: break;
    }
  }
Ejemplo n.º 2
0
bool AnyMapEventAction::HandleExecute (MapEventArgs& args)
{
    return callback_ (GetContextType (), args);
}
Ejemplo n.º 3
0
void DiffuseContext::PrepareBuffers(LayerQueue& renderQueue)
{
	// Add components to buffer in order based on layer but bounce if we run into another context
	// on the same layer (because of ordering we wont have any more of our context on that
	// layer), we'll come back on the next layer.

	// save the layer and what index it's at
	unsigned int layer = renderQueue.top()->getLayer();

	// Save what layers we have entities on
	m_activeOnLayers.push_back(layer);

	// Add the first render component
	textureLayerAndCount tlc;
	// MAGIC! (nah it's me disgusing a pointer on the engine side as an int)
	tlc.texture = reinterpret_cast<Texture*>(renderQueue.top()->getTexture());
	tlc.count = 1;
	tlc.layer = layer;
	AddRenderCompToCurrentRenderBuffer(renderQueue.top());
	renderQueue.pop();

	if(renderQueue.size() == 0)
	{
		GetShader()->AddTextureLayerAndCount(tlc);
		return;
	}
	
	while(renderQueue.size() > 0)
	{
		// Quit if next context isn't diffuse or on diff layer
		if(renderQueue.top()->getShader() != GetContextType() || 
			renderQueue.top()->getLayer() != layer)
		{
			if(tlc.texture != nullptr)
			{
				GetShader()->AddTextureLayerAndCount(tlc);
			}

			return;
		}

		if(tlc.texture == reinterpret_cast<Texture*>(renderQueue.top()->getTexture()))
		{			
			tlc.count++;
			AddRenderCompToCurrentRenderBuffer(renderQueue.top());
			renderQueue.pop();

			if(renderQueue.size() == 0)
			{
				GetShader()->AddTextureLayerAndCount(tlc);
				tlc.texture = nullptr;
			}
		}
		else if(tlc.texture == nullptr)
		{
			tlc.texture = reinterpret_cast<Texture*>(renderQueue.top()->getTexture());
			tlc.count = 1;
			AddRenderCompToCurrentRenderBuffer(renderQueue.top());
			renderQueue.pop();

			if(renderQueue.size() == 0)
			{
				GetShader()->AddTextureLayerAndCount(tlc);
				tlc.texture = nullptr;
			}
		}
		else
		{
			GetShader()->AddTextureLayerAndCount(tlc);
			tlc.texture = nullptr;		
		}		
	}	
}
Ejemplo n.º 4
0
std::string Constraint::GetFullName() const
{
    return GetContextType() + "::" + GetName();
}