46 lines
797 B
C++
46 lines
797 B
C++
|
#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, "@");
|
||
|
}
|
||
|
}
|
||
|
}
|