EditableMap::EditableMap(Resources& resources, Subsystem& subsystem) throw (Exception)
    : Map(subsystem), resources(resources), subsystem(subsystem)
{
    set_background(get_background());
    set_tileset(get_tileset());
    untouch();
}
Exemple #2
0
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;
}
Exemple #3
0
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();
}