void WarpMapEventAction::VisitPlayer (IPlayer& visitable) { switch (GetContextType ()) { case MapEventActionType::Enter: GetArgs ().AbortEvents (true); visitable.Warp (mapWorldID_, mapPoint_); break; default: break; } }
bool AnyMapEventAction::HandleExecute (MapEventArgs& args) { return callback_ (GetContextType (), args); }
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; } } }
std::string Constraint::GetFullName() const { return GetContextType() + "::" + GetName(); }