This commit is contained in:
h4570
2020-12-07 22:11:21 +01:00
parent 6d9b93998a
commit 5787b6a920
6 changed files with 32 additions and 23 deletions
+14 -17
View File
@@ -17,8 +17,7 @@
const u16 FLOORS_COUNT = 144; // Temp change it also in floor_manager.hpp
Floors::Floors(Engine *t_engine)
: engine(t_engine), floorManager(FLOORS_COUNT),
player(&t_engine->audio), camera(&t_engine->screen)
: engine(t_engine), floorManager(), camera(&t_engine->screen)
{
audioTicks = 0;
skip1Beat = 0;
@@ -28,6 +27,8 @@ Floors::~Floors()
{
delete enemy;
delete ui;
delete floorManager;
delete player;
}
// ----
@@ -41,30 +42,26 @@ void Floors::onInit()
engine->audio.addSongListener(this);
engine->audio.loadSong("sounds/mafikizolo-loot.wav");
engine->audio.playSong();
engine->audio.setSongVolume(80);
texRepo = engine->renderer->getTextureRepository();
enemy = new Enemy(texRepo);
ui = new Ui(texRepo);
engine->audio.setSongVolume(80);
texRepo->addByMesh("meshes/player/", player.mesh, BMP);
texRepo->addByMesh("meshes/floor/", floorManager.floors[0].mesh, BMP);
for (u32 i = 1; i < floorManager.floorAmount; i++)
texRepo->getByMesh(floorManager.floors[0].mesh.getId(), floorManager.floors[0].mesh.getMaterial(0).getId())
->addLink(floorManager.floors[i].mesh.getId(), floorManager.floors[i].mesh.getMaterial(0).getId());
floorManager = new FloorManager(FLOORS_COUNT, texRepo);
player = new Player(&engine->audio, texRepo);
}
void Floors::onUpdate()
{
ui->update(player);
enemy->update(floorManager);
ui->update(*player);
enemy->update(*floorManager);
lightManager.update();
camera.update(engine->pad, player.mesh);
floorManager.update(player);
player.update(engine->pad, camera, floorManager, *enemy);
engine->renderer->draw(player.mesh);
camera.update(engine->pad, player->mesh);
floorManager->update(*player);
player->update(engine->pad, camera, *floorManager, *enemy);
engine->renderer->draw(player->mesh);
engine->renderer->draw(enemy->getMeshes(), enemy->getMeshesCount());
for (u16 i = 0; i < FLOORS_COUNT; i++)
engine->renderer->drawByPath3(floorManager.floors[i].mesh, lightManager.bulbs, lightManager.bulbsCount);
engine->renderer->drawByPath3(floorManager->floors[i].mesh, lightManager.bulbs, lightManager.bulbsCount);
ui->render(engine->renderer); // 2D rendering ist LAST step, because layers gonna play there.
}
@@ -73,7 +70,7 @@ void Floors::onAudioTick()
if ((++audioTicks + 20) % 21 == 0)
{
if (skip1Beat)
floorManager.onAudioTick();
floorManager->onAudioTick();
lightManager.onAudioTick();
skip1Beat = !skip1Beat;
}