EditableMap::EditableMap(Resources& resources, Subsystem& subsystem) throw (Exception) : Map(subsystem), resources(resources), subsystem(subsystem) { set_background(get_background()); set_tileset(get_tileset()); untouch(); }
void Hero::set_initial_param(int view_height){ pos_x = column * 30; pos_y = view_height/2; scale = 0.8; set_tileset(initial_ts); flower = false; }
void Editor::change_tileset() { tileset = TileManager::current()->get_tileset(level->get_tileset()); tileselect.input_type = EditorInputGui::IP_NONE; for(const auto& sector : level->sectors) { for(const auto& object : sector->gameobjects) { auto tilemap = dynamic_cast<TileMap*>(object.get()); if (tilemap) { tilemap->set_tileset(tileset); } } } }
EditableMap::EditableMap(Resources& resources, Subsystem& subsystem, const std::string& filename) throw (Exception) : Map(subsystem, filename), resources(resources), subsystem(subsystem) { char buffer[256]; set_background(get_background()); set_tileset(get_tileset()); untouch(); /* grab objects */ int num_objects = atoi(get_value("objects").c_str()); for (int i = 0; i < num_objects; i++) { sprintf(buffer, "object_name%d", i); const std::string& object_name = get_value(buffer); sprintf(buffer, "object_x%d", i); int x = atoi(get_value(buffer).c_str()); sprintf(buffer, "object_y%d", i); int y = atoi(get_value(buffer).c_str()); try { Object *obj = resources.get_object(object_name); EditableObject *eobj = new EditableObject(obj, x, y); objects.push_back(eobj); } catch (const Exception& e) { subsystem << "WARNING: " << e.what() << std::endl; } } /* grab light sources */ int num_lights = atoi(get_value("lights").c_str()); for (int i = 0; i < num_lights; i++) { sprintf(buffer, "light_x%d", i); int x = atoi(get_value(buffer).c_str()); sprintf(buffer, "light_y%d", i); int y = atoi(get_value(buffer).c_str()); sprintf(buffer, "light_radius%d", i); int radius = atoi(get_value(buffer).c_str()); lights.push_back(new EditableLight(x, y, radius)); } create_lightmap(); }