void BasicAbstractGame::serialize()

in procgen/src/basic-abstract-game.cpp [1169:1223]


void BasicAbstractGame::serialize(WriteBuffer *b) {
    Game::serialize(b);

    b->write_int(grid_size);

    write_entities(b, entities);

    fassert(!options.use_generated_assets);
    // these will be cleared and re-generated instead of being saved
//     std::vector<std::shared_ptr<QImage>> basic_assets;
//     std::vector<std::shared_ptr<QImage>> basic_reflections;
//     std::vector<std::shared_ptr<QImage>> *main_bg_images_ptr;

    // std::vector<float> asset_aspect_ratios;
    // std::vector<int> asset_num_themes;

    b->write_int(use_procgen_background);
    b->write_int(background_index);
    b->write_float(bg_tile_ratio);
    b->write_float(bg_pct_x);

    b->write_float(char_dim);
    b->write_int(last_move_action);
    b->write_int(move_action);
    b->write_int(special_action);
    b->write_float(mixrate);
    b->write_float(maxspeed);
    b->write_float(max_jump);

    b->write_float(action_vx);
    b->write_float(action_vy);
    b->write_float(action_vrot);

    b->write_float(center_x);
    b->write_float(center_y);

    b->write_int(random_agent_start);
    b->write_int(has_useful_vel_info);
    b->write_int(step_rand_int);

    asset_rand_gen.serialize(b);

    b->write_int(main_width);
    b->write_int(main_height);
    b->write_int(out_of_bounds_object);

    b->write_float(unit);
    b->write_float(view_dim);
    b->write_float(x_off);
    b->write_float(y_off);
    b->write_float(visibility);
    b->write_float(min_visibility);

    grid.serialize(b);
}