BosonX/src/level.cpp

46 lines
797 B
C++
Raw Normal View History

2022-08-20 15:06:19 +02:00
#include "bosonx.h"
#include <gint/display.h>
level_t level_create(int level)
{
level_t l;
switch(level) {
default:
l.gen = std::make_unique<struct gen1>();
}
return l;
}
void level_update(level_t *level)
{
while (level->section_buffer.size() < 5) {
level->gen->generate(level);
}
}
void level_advance(level_t *level)
{
level->section_buffer.erase(level->section_buffer.begin());
}
void level_display(level_t *level)
{
int w;
int h;
int sx;
int sy;
dsize("@", NULL, &w, &h);
sx = (DWIDTH - (PLATFORM_COUNT * w)) / 2;
sy = (DHEIGHT - (PLATFORM_COUNT * h)) / 2;
for (int i = 4; i >= 0; --i) {
for (int j = 0; j < PLATFORM_COUNT; ++j) {
if (level->section_buffer[i].platforms[j].type != PLATFORM_EMPTY)
dtext(sx + (w * j), sy + (h * i), C_BLACK, "@");
}
}
}