3 #include <BLIB/Engine.hpp>
10 unsigned int layerCount,
const sf::Vector2u& ms, bl::rc::Scene* s) {
16 const unsigned int initialCapacity = mapSize.x * mapSize.y / 2;
17 zones.reserve(layerCount);
18 for (
unsigned int i = 0; i < layerCount; ++i) {
19 auto& zone = storage.emplace_back();
20 zones.emplace_back(&zone);
22 zone.tileSprites.create(engine, tileset, initialCapacity);
23 zone.tileAnims.create(engine, initialCapacity);
25 zone.tileSprites.addToScene(scene, bl::rc::UpdateSpeed::Static);
26 zone.tileAnims.addToScene(scene, bl::rc::UpdateSpeed::Static);
31 const bool isGt = i1 > i2;
32 const auto it1 = std::next(storage.begin(), i1);
33 const auto it2 = std::next(storage.begin(), i2);
34 const auto s1 = isGt ? it1 : it2;
35 const auto s2 = isGt ? it2 : it1;
36 storage.splice(s2, storage, s1);
41 auto& layer = *storage.emplace(std::next(storage.begin(), position));
42 zones.insert(
zones.begin() + position, &layer);
44 const unsigned int initialCapacity = mapSize.x * mapSize.y / 2;
45 layer.tileSprites.create(*enginePtr, tileset, initialCapacity);
46 layer.tileAnims.create(*enginePtr, initialCapacity);
47 layer.tileSprites.addToScene(scene, bl::rc::UpdateSpeed::Static);
48 layer.tileAnims.addToScene(scene, bl::rc::UpdateSpeed::Static);
52 storage.erase(std::next(storage.begin(), position));
Core classes and functionality for both the editor and game.
void swapLayers(unsigned int l1, unsigned int l2)
Swaps two render layers.
void removeLayer(unsigned int position)
Removes the layer at the given position.
std::vector< Zone * > zones
The graphics primitives for all the layers in the level.
void insertLayer(unsigned int position)
Inserts a layer at the given position.
void create(bl::engine::Engine &engine, bl::rc::res::TextureRef tileset, unsigned int layerCount, const sf::Vector2u &mapSize, bl::rc::Scene *scene)
Creates the graphics primitives and adds them to the given scene.