BosonX/src/level.cpp

34 lines
815 B
C++

#include "level.h"
#include "generator.h"
#include "util.h"
#include <gint/display.h>
struct level level_create(int level)
{
struct level l;
switch(level) {
default:
l.gen = std::make_unique<struct gen1>();
l.bgcolor = RGB24(0x49759f);
break;
case 2:
l.gen = std::make_unique<AcceleronGenerator>();
l.bgcolor = RGB24(0xe7c272);
break;
case 3:
l.gen = std::make_unique<struct gen3>();
l.bgcolor = C_WHITE;
break;
}
return l;
}
void level_update(struct level *level, num z)
{
while(!level->platform_buffer.size()
|| level->platform_buffer[level->platform_buffer.size() - 1].z
< z + RENDER_DEPTH)
level->gen->generate(level);
}