37 lines
974 B
C++
37 lines
974 B
C++
#ifndef __CC3K_H__
|
|
#define __CC3K_H__
|
|
|
|
#include <string>
|
|
#include "input.h"
|
|
#include "output.h"
|
|
#include "game.h"
|
|
#include "menu.h"
|
|
#include "result.h"
|
|
|
|
class CC3K final {
|
|
private:
|
|
static const int DEFAULT_LVL_CNT = 5;
|
|
const feature enabled_features;
|
|
input *in;
|
|
output *out;
|
|
RNG *rng;
|
|
|
|
game_result gresult;
|
|
std::unique_ptr<game> curr_game;
|
|
std::unique_ptr<menu> curr_menu;
|
|
|
|
std::vector<level_data> lvls;
|
|
void proc_lvls(std::ifstream &data);
|
|
void push_tile(const char ch, const position &pos, level_data &lvl);
|
|
void number_rooms(level_data &lvl);
|
|
size_t remap_pos(const position &pos);
|
|
void number_block(std::string &map_data, const position &pos, int num);
|
|
bool in_bounds(const position &pos);
|
|
public:
|
|
CC3K(const feature enabled_features,
|
|
input *in, output *out, RNG *rng, std::ifstream &data);
|
|
game_status run();
|
|
};
|
|
|
|
#endif
|