#ifndef GREATMACHINE_DUNGEON_H_ #define GREATMACHINE_DUNGEON_H_ #include #include #include #include "olcPixelGameEngine.hpp" #include "olcPGEX_AnimatedSprite.hpp" #include "Logger.hpp" class Camera; class Tile; class Entity; class Enemy; class Playable; class FixedItem; class TileDictionary; // Single level dungeon, no need for fancy levels class Dungeon { public: Dungeon(); void Generate(); void Input(olc::PixelGameEngine* engine, float fTime); void Update(olc::PixelGameEngine* engine, float fTime); void Draw(olc::PixelGameEngine* engine, float fTime); bool HasBegun = false; Playable* Player; Camera* ActiveCamera; olc::Renderable* EnemyRenderable; olc::AnimatedSprite* EnemyAnimator; std::vector Enemies; int TileSize = 64; int DungeonWidth; int DungeonHeight; std::unordered_map DungeonTiles; TileDictionary* TileSetDictionary; olc::Renderable* TileSet; olc::Renderable* FireOverlay; bool IsFireLit = false; bool IsLightOn = true; sf::SoundBuffer SoundBufferFireLighting; sf::Sound SoundFireLighting; sf::SoundBuffer SoundBufferFire; sf::Sound SoundFire; sf::SoundBuffer SoundBufferAmbient; sf::Sound SoundAmbient; sf::SoundBuffer SoundBufferFootsteps; sf::Sound SoundFootsteps; ~Dungeon(); private: Logger& _Logger; }; #endif