BosonX/src/level.cpp

34 lines
815 B
C++
Raw Normal View History

2022-08-20 16:32:37 +02:00
#include "level.h"
#include "generator.h"
#include "util.h"
2022-08-20 15:06:19 +02:00
#include <gint/display.h>
2023-05-24 13:08:59 +02:00
struct level level_create(int level)
2022-08-20 15:06:19 +02:00
{
2023-05-24 13:08:59 +02:00
struct level l;
switch(level) {
default:
l.gen = std::make_unique<struct gen1>();
l.bgcolor = RGB24(0x49759f);
break;
2023-05-24 13:08:59 +02:00
case 2:
l.gen = std::make_unique<AcceleronGenerator>();
l.bgcolor = RGB24(0xe7c272);
2023-05-24 13:08:59 +02:00
break;
case 3:
l.gen = std::make_unique<struct gen3>();
l.bgcolor = C_WHITE;
2023-05-24 13:08:59 +02:00
break;
}
return l;
2022-08-20 15:06:19 +02:00
}
2023-05-24 13:08:59 +02:00
void level_update(struct level *level, num z)
2022-08-20 15:06:19 +02:00
{
2023-05-24 13:08:59 +02:00
while(!level->platform_buffer.size()
|| level->platform_buffer[level->platform_buffer.size() - 1].z
< z + RENDER_DEPTH)
level->gen->generate(level);
2022-08-20 15:06:19 +02:00
}