Pass polymodel &to free_model
This commit is contained in:
parent
1a7659897a
commit
a6cd87613c
|
@ -145,7 +145,7 @@ void draw_model_picture(grs_canvas &, uint_fast32_t mn, const vms_angvec *orient
|
||||||
#define MAX_POLYOBJ_TEXTURES 50
|
#define MAX_POLYOBJ_TEXTURES 50
|
||||||
#elif defined(DXX_BUILD_DESCENT_II)
|
#elif defined(DXX_BUILD_DESCENT_II)
|
||||||
// free up a model, getting rid of all its memory
|
// free up a model, getting rid of all its memory
|
||||||
void free_model(polymodel *po);
|
void free_model(polymodel &po);
|
||||||
|
|
||||||
#define MAX_POLYOBJ_TEXTURES 100
|
#define MAX_POLYOBJ_TEXTURES 100
|
||||||
constexpr unsigned N_D2_POLYGON_MODELS = 166;
|
constexpr unsigned N_D2_POLYGON_MODELS = 166;
|
||||||
|
|
|
@ -400,9 +400,8 @@ static void bm_free_extra_objbitmaps()
|
||||||
static void bm_free_extra_models()
|
static void bm_free_extra_models()
|
||||||
{
|
{
|
||||||
auto base = std::min(N_D2_POLYGON_MODELS, exit_modelnum);
|
auto base = std::min(N_D2_POLYGON_MODELS, exit_modelnum);
|
||||||
range_for (auto &p, partial_range(Polygon_models, base, N_polygon_models))
|
range_for (auto &p, partial_range(Polygon_models, base, exchange(N_polygon_models, base)))
|
||||||
free_model(&p);
|
free_model(p);
|
||||||
N_polygon_models = base;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//type==1 means 1.1, type==2 means 1.2 (with weapons)
|
//type==1 means 1.1, type==2 means 1.2 (with weapons)
|
||||||
|
@ -529,7 +528,7 @@ void load_robot_replacements(const d_fname &level_name)
|
||||||
if (i<0 || i>=N_polygon_models)
|
if (i<0 || i>=N_polygon_models)
|
||||||
Error("Polygon model (%d) out of range in (%s). Range = [0..%d].",i,static_cast<const char *>(level_name),N_polygon_models-1);
|
Error("Polygon model (%d) out of range in (%s). Range = [0..%d].",i,static_cast<const char *>(level_name),N_polygon_models-1);
|
||||||
|
|
||||||
free_model(&Polygon_models[i]);
|
free_model(Polygon_models[i]);
|
||||||
polymodel_read(&Polygon_models[i], fp);
|
polymodel_read(&Polygon_models[i], fp);
|
||||||
polygon_model_data_read(&Polygon_models[i], fp);
|
polygon_model_data_read(&Polygon_models[i], fp);
|
||||||
|
|
||||||
|
|
|
@ -491,9 +491,9 @@ void read_model_guns(const char *filename, reactor &r)
|
||||||
#if defined(DXX_BUILD_DESCENT_I)
|
#if defined(DXX_BUILD_DESCENT_I)
|
||||||
static
|
static
|
||||||
#endif
|
#endif
|
||||||
void free_model(polymodel *po)
|
void free_model(polymodel &po)
|
||||||
{
|
{
|
||||||
po->model_data.reset();
|
po.model_data.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
array<grs_bitmap *, MAX_POLYOBJ_TEXTURES> texture_list;
|
array<grs_bitmap *, MAX_POLYOBJ_TEXTURES> texture_list;
|
||||||
|
@ -574,7 +574,7 @@ void draw_polygon_model(grs_canvas &canvas, const vms_vector &pos,const vms_matr
|
||||||
void free_polygon_models()
|
void free_polygon_models()
|
||||||
{
|
{
|
||||||
range_for (auto &i, partial_range(Polygon_models, N_polygon_models))
|
range_for (auto &i, partial_range(Polygon_models, N_polygon_models))
|
||||||
free_model(&i);
|
free_model(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue