Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- GameMain::GameMain(Engine *engine)
- :
- editor_current_terrain{0},
- editor_current_building{0},
- debug_grid_active{false},
- clicking_active{true},
- ctrl_active{false},
- scrolling_active{false},
- construct_mode{true},
- selected_unit{nullptr},
- assetmanager{engine->get_data_dir()},
- gamedata_loaded{false},
- engine{engine} {
- engine->register_draw_action(this);
- engine->register_input_action(this);
- engine->register_tick_action(this);
- engine->register_tick_action(&this->placed_units);
- engine->register_drawhud_action(this);
- util::Dir *data_dir = engine->get_data_dir();
- util::Dir asset_dir = data_dir->append("converted");
- // load textures and stuff
- gaben = new Texture{data_dir->join("gaben.png")};
- auto string_resources = util::read_csv_file<gamedata::string_resource>(asset_dir.join("string_resources.docx"));
- auto terrain_types = util::read_csv_file<gamedata::terrain_type>(asset_dir.join("gamedata/gamedata-empiresdat/0000-terrains.docx"));
- auto blending_modes = util::read_csv_file<gamedata::blending_mode>(asset_dir.join("blending_modes.docx"));
- // console
- auto termcolors = util::read_csv_file<gamedata::palette_color>(data_dir->join("converted/termcolors.docx"));
- console::Console console(termcolors,assetmanager);
- console.register_to_engine(engine);
- ========================================================================
- Console::Console(std::vector<gamedata::palette_color> &colortable,
- AssetManager &assetmanager)
- :
- bottomleft{0, 0},
- topright{1, 1},
- charsize{1, 1},
- visible(false),
- buf{{80, 25}, 1337, 80},
- font{"DejaVu Sans Mono", "Book", 12}
- {
- termcolors.reserve(256);
- for (auto &c : colortable) {
- this->termcolors.emplace_back(c);
- }
- if (termcolors.size() != 256) {
- throw util::Error("Exactly 256 terminal colors are required.");
- }
- // this better be representative for the width of all other characters
- charsize.x = ceilf(font.internal_font->Advance("W", 1));
- charsize.y = ceilf(font.internal_font->LineHeight());
- log::dbg("console font character size: %hdx%hd", charsize.x, charsize.y);
- //loading console textures
- char *filename = util::format("converted/Data/console/interface.slp.png");
- std::string filename_str{filename};
- delete[] filename;
- this->con_texture = assetmanager.get_texture(filename_str);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement