Use range_for in bm.cpp
This commit is contained in:
parent
ec025d4e88
commit
198540d080
|
@ -127,7 +127,7 @@ extern fix ObjStrength[MAX_OBJTYPE]; // initial strength of each object
|
||||||
extern int Marker_model_num;
|
extern int Marker_model_num;
|
||||||
extern int Robot_replacements_loaded;
|
extern int Robot_replacements_loaded;
|
||||||
#define MAX_OBJ_BITMAPS 610
|
#define MAX_OBJ_BITMAPS 610
|
||||||
extern int N_ObjBitmaps;
|
extern unsigned N_ObjBitmaps;
|
||||||
extern int extra_bitmap_num;
|
extern int extra_bitmap_num;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -35,13 +35,13 @@ struct bitmap_index;
|
||||||
//from gauges.c
|
//from gauges.c
|
||||||
|
|
||||||
#if defined(DXX_BUILD_DESCENT_I)
|
#if defined(DXX_BUILD_DESCENT_I)
|
||||||
#define MAX_GAUGE_BMS_PC 80 // increased from 56 to 80 by a very unhappy MK on 10/24/94.
|
#define MAX_GAUGE_BMS_PC 80u // increased from 56 to 80 by a very unhappy MK on 10/24/94.
|
||||||
#define MAX_GAUGE_BMS_MAC 85
|
#define MAX_GAUGE_BMS_MAC 85u
|
||||||
#define MAX_GAUGE_BMS (MacPig ? MAX_GAUGE_BMS_MAC : MAX_GAUGE_BMS_PC)
|
#define MAX_GAUGE_BMS (MacPig ? MAX_GAUGE_BMS_MAC : MAX_GAUGE_BMS_PC)
|
||||||
|
|
||||||
extern array<bitmap_index, MAX_GAUGE_BMS_MAC> Gauges; // Array of all gauge bitmaps.
|
extern array<bitmap_index, MAX_GAUGE_BMS_MAC> Gauges; // Array of all gauge bitmaps.
|
||||||
#elif defined(DXX_BUILD_DESCENT_II)
|
#elif defined(DXX_BUILD_DESCENT_II)
|
||||||
#define MAX_GAUGE_BMS 100 // increased from 56 to 80 by a very unhappy MK on 10/24/94.
|
#define MAX_GAUGE_BMS 100u // increased from 56 to 80 by a very unhappy MK on 10/24/94.
|
||||||
|
|
||||||
extern array<bitmap_index, MAX_GAUGE_BMS> Gauges; // Array of all gauge bitmaps.
|
extern array<bitmap_index, MAX_GAUGE_BMS> Gauges; // Array of all gauge bitmaps.
|
||||||
extern array<bitmap_index, MAX_GAUGE_BMS> Gauges_hires; // hires gauges
|
extern array<bitmap_index, MAX_GAUGE_BMS> Gauges_hires; // hires gauges
|
||||||
|
|
|
@ -87,7 +87,7 @@ fix ObjStrength[MAX_OBJTYPE];
|
||||||
#elif defined(DXX_BUILD_DESCENT_II)
|
#elif defined(DXX_BUILD_DESCENT_II)
|
||||||
//the polygon model number to use for the marker
|
//the polygon model number to use for the marker
|
||||||
int Marker_model_num = -1;
|
int Marker_model_num = -1;
|
||||||
int N_ObjBitmaps;
|
unsigned N_ObjBitmaps;
|
||||||
static void bm_free_extra_objbitmaps();
|
static void bm_free_extra_objbitmaps();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -113,14 +113,6 @@ int First_multi_bitmap_num=-1;
|
||||||
array<bitmap_index, MAX_OBJ_BITMAPS> ObjBitmaps;
|
array<bitmap_index, MAX_OBJ_BITMAPS> ObjBitmaps;
|
||||||
array<ushort, MAX_OBJ_BITMAPS> ObjBitmapPtrs; // These point back into ObjBitmaps, since some are used twice.
|
array<ushort, MAX_OBJ_BITMAPS> ObjBitmapPtrs; // These point back into ObjBitmaps, since some are used twice.
|
||||||
|
|
||||||
/*
|
|
||||||
* reads n bitmap_index structs from a PHYSFS_File
|
|
||||||
*/
|
|
||||||
static inline void bitmap_index_read_n(partial_range_t<bitmap_index *> r, uint_fast32_t n, PHYSFS_File *fp)
|
|
||||||
{
|
|
||||||
bitmap_index_read_n(fp, partial_range(r, n));
|
|
||||||
}
|
|
||||||
|
|
||||||
void gamedata_close()
|
void gamedata_close()
|
||||||
{
|
{
|
||||||
free_polygon_models();
|
free_polygon_models();
|
||||||
|
@ -203,27 +195,30 @@ void properties_read_cmp(PHYSFS_File * fp)
|
||||||
powerup_type_info_read(fp, p);
|
powerup_type_info_read(fp, p);
|
||||||
|
|
||||||
N_polygon_models = PHYSFSX_readInt(fp);
|
N_polygon_models = PHYSFSX_readInt(fp);
|
||||||
range_for (auto &p, partial_range(Polygon_models, N_polygon_models))
|
{
|
||||||
|
const auto &&r = partial_range(Polygon_models, N_polygon_models);
|
||||||
|
range_for (auto &p, r)
|
||||||
polymodel_read(&p, fp);
|
polymodel_read(&p, fp);
|
||||||
|
|
||||||
range_for (auto &p, partial_range(Polygon_models, N_polygon_models))
|
range_for (auto &p, r)
|
||||||
polygon_model_data_read(&p, fp);
|
polygon_model_data_read(&p, fp);
|
||||||
|
}
|
||||||
|
|
||||||
bitmap_index_read_n(Gauges, MAX_GAUGE_BMS, fp);
|
bitmap_index_read_n(fp, partial_range(Gauges, MAX_GAUGE_BMS));
|
||||||
|
|
||||||
range_for (auto &i, Dying_modelnums)
|
range_for (auto &i, Dying_modelnums)
|
||||||
i = PHYSFSX_readInt(fp);
|
i = PHYSFSX_readInt(fp);
|
||||||
range_for (auto &i, Dead_modelnums)
|
range_for (auto &i, Dead_modelnums)
|
||||||
i = PHYSFSX_readInt(fp);
|
i = PHYSFSX_readInt(fp);
|
||||||
|
|
||||||
bitmap_index_read_n(ObjBitmaps, MAX_OBJ_BITMAPS, fp);
|
bitmap_index_read_n(fp, ObjBitmaps);
|
||||||
range_for (auto &i, ObjBitmapPtrs)
|
range_for (auto &i, ObjBitmapPtrs)
|
||||||
i = PHYSFSX_readShort(fp);
|
i = PHYSFSX_readShort(fp);
|
||||||
|
|
||||||
player_ship_read(&only_player_ship, fp);
|
player_ship_read(&only_player_ship, fp);
|
||||||
|
|
||||||
Num_cockpits = PHYSFSX_readInt(fp);
|
Num_cockpits = PHYSFSX_readInt(fp);
|
||||||
bitmap_index_read_n(cockpit_bitmap, N_COCKPIT_BITMAPS, fp);
|
bitmap_index_read_n(fp, cockpit_bitmap);
|
||||||
|
|
||||||
PHYSFS_read( fp, Sounds, sizeof(ubyte), MAX_SOUNDS );
|
PHYSFS_read( fp, Sounds, sizeof(ubyte), MAX_SOUNDS );
|
||||||
PHYSFS_read( fp, AltSounds, sizeof(ubyte), MAX_SOUNDS );
|
PHYSFS_read( fp, AltSounds, sizeof(ubyte), MAX_SOUNDS );
|
||||||
|
@ -288,7 +283,7 @@ int gamedata_init()
|
||||||
|
|
||||||
void bm_read_all(PHYSFS_File * fp)
|
void bm_read_all(PHYSFS_File * fp)
|
||||||
{
|
{
|
||||||
int i,t;
|
unsigned t;
|
||||||
|
|
||||||
NumTextures = PHYSFSX_readInt(fp);
|
NumTextures = PHYSFSX_readInt(fp);
|
||||||
bitmap_index_read_n(fp, partial_range(Textures, NumTextures));
|
bitmap_index_read_n(fp, partial_range(Textures, NumTextures));
|
||||||
|
@ -327,30 +322,33 @@ void bm_read_all(PHYSFS_File * fp)
|
||||||
powerup_type_info_read(fp, p);
|
powerup_type_info_read(fp, p);
|
||||||
|
|
||||||
N_polygon_models = PHYSFSX_readInt(fp);
|
N_polygon_models = PHYSFSX_readInt(fp);
|
||||||
range_for (auto &p, partial_range(Polygon_models, N_polygon_models))
|
{
|
||||||
|
const auto &&r = partial_range(Polygon_models, N_polygon_models);
|
||||||
|
range_for (auto &p, r)
|
||||||
polymodel_read(&p, fp);
|
polymodel_read(&p, fp);
|
||||||
|
|
||||||
range_for (auto &p, partial_range(Polygon_models, N_polygon_models))
|
range_for (auto &p, r)
|
||||||
polygon_model_data_read(&p, fp);
|
polygon_model_data_read(&p, fp);
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < N_polygon_models; i++)
|
range_for (auto &i, partial_range(Dying_modelnums, N_polygon_models))
|
||||||
Dying_modelnums[i] = PHYSFSX_readInt(fp);
|
i = PHYSFSX_readInt(fp);
|
||||||
for (i = 0; i < N_polygon_models; i++)
|
range_for (auto &i, partial_range(Dead_modelnums, N_polygon_models))
|
||||||
Dead_modelnums[i] = PHYSFSX_readInt(fp);
|
i = PHYSFSX_readInt(fp);
|
||||||
|
|
||||||
t = PHYSFSX_readInt(fp);
|
t = PHYSFSX_readInt(fp);
|
||||||
bitmap_index_read_n(Gauges, t, fp);
|
bitmap_index_read_n(fp, partial_range(Gauges, t));
|
||||||
bitmap_index_read_n(Gauges_hires, t, fp);
|
bitmap_index_read_n(fp, partial_range(Gauges_hires, t));
|
||||||
|
|
||||||
N_ObjBitmaps = PHYSFSX_readInt(fp);
|
N_ObjBitmaps = PHYSFSX_readInt(fp);
|
||||||
bitmap_index_read_n(ObjBitmaps, N_ObjBitmaps, fp);
|
bitmap_index_read_n(fp, partial_range(ObjBitmaps, N_ObjBitmaps));
|
||||||
for (i = 0; i < N_ObjBitmaps; i++)
|
range_for (auto &i, partial_range(ObjBitmapPtrs, N_ObjBitmaps))
|
||||||
ObjBitmapPtrs[i] = PHYSFSX_readShort(fp);
|
i = PHYSFSX_readShort(fp);
|
||||||
|
|
||||||
player_ship_read(&only_player_ship, fp);
|
player_ship_read(&only_player_ship, fp);
|
||||||
|
|
||||||
Num_cockpits = PHYSFSX_readInt(fp);
|
Num_cockpits = PHYSFSX_readInt(fp);
|
||||||
bitmap_index_read_n(cockpit_bitmap, Num_cockpits, fp);
|
bitmap_index_read_n(fp, partial_range(cockpit_bitmap, Num_cockpits));
|
||||||
|
|
||||||
//@@ PHYSFS_read( fp, &Num_total_object_types, sizeof(int), 1 );
|
//@@ PHYSFS_read( fp, &Num_total_object_types, sizeof(int), 1 );
|
||||||
//@@ PHYSFS_read( fp, ObjType, sizeof(byte), Num_total_object_types );
|
//@@ PHYSFS_read( fp, ObjType, sizeof(byte), Num_total_object_types );
|
||||||
|
@ -404,7 +402,7 @@ static void bm_free_extra_models()
|
||||||
//type==1 means 1.1, type==2 means 1.2 (with weapons)
|
//type==1 means 1.1, type==2 means 1.2 (with weapons)
|
||||||
void bm_read_extra_robots(const char *fname, Mission::descent_version_type type)
|
void bm_read_extra_robots(const char *fname, Mission::descent_version_type type)
|
||||||
{
|
{
|
||||||
int t,i,version;
|
int t,version;
|
||||||
|
|
||||||
auto fp = PHYSFSX_openReadBuffered(fname);
|
auto fp = PHYSFSX_openReadBuffered(fname);
|
||||||
if (!fp)
|
if (!fp)
|
||||||
|
@ -455,16 +453,19 @@ void bm_read_extra_robots(const char *fname, Mission::descent_version_type type)
|
||||||
N_polygon_models = N_D2_POLYGON_MODELS+u;
|
N_polygon_models = N_D2_POLYGON_MODELS+u;
|
||||||
if (N_polygon_models >= MAX_POLYGON_MODELS)
|
if (N_polygon_models >= MAX_POLYGON_MODELS)
|
||||||
Error("Too many polygon models (%d) in <%s>. Max is %d.",u,fname,MAX_POLYGON_MODELS-N_D2_POLYGON_MODELS);
|
Error("Too many polygon models (%d) in <%s>. Max is %d.",u,fname,MAX_POLYGON_MODELS-N_D2_POLYGON_MODELS);
|
||||||
range_for (auto &p, partial_range(Polygon_models, N_D2_POLYGON_MODELS, N_polygon_models))
|
{
|
||||||
|
const auto &&r = partial_range(Polygon_models, N_D2_POLYGON_MODELS, N_polygon_models);
|
||||||
|
range_for (auto &p, r)
|
||||||
polymodel_read(&p, fp);
|
polymodel_read(&p, fp);
|
||||||
|
|
||||||
for (i=N_D2_POLYGON_MODELS; i<N_polygon_models; i++ )
|
range_for (auto &p, r)
|
||||||
polygon_model_data_read(&Polygon_models[i], fp);
|
polygon_model_data_read(&p, fp);
|
||||||
|
}
|
||||||
|
|
||||||
for (i = N_D2_POLYGON_MODELS; i < N_polygon_models; i++)
|
range_for (auto &i, partial_range(Dying_modelnums, N_D2_POLYGON_MODELS, N_polygon_models))
|
||||||
Dying_modelnums[i] = PHYSFSX_readInt(fp);
|
i = PHYSFSX_readInt(fp);
|
||||||
for (i = N_D2_POLYGON_MODELS; i < N_polygon_models; i++)
|
range_for (auto &i, partial_range(Dead_modelnums, N_D2_POLYGON_MODELS, N_polygon_models))
|
||||||
Dead_modelnums[i] = PHYSFSX_readInt(fp);
|
i = PHYSFSX_readInt(fp);
|
||||||
|
|
||||||
t = PHYSFSX_readInt(fp);
|
t = PHYSFSX_readInt(fp);
|
||||||
if (N_D2_OBJBITMAPS+t >= MAX_OBJ_BITMAPS)
|
if (N_D2_OBJBITMAPS+t >= MAX_OBJ_BITMAPS)
|
||||||
|
@ -474,8 +475,8 @@ void bm_read_extra_robots(const char *fname, Mission::descent_version_type type)
|
||||||
t = PHYSFSX_readInt(fp);
|
t = PHYSFSX_readInt(fp);
|
||||||
if (N_D2_OBJBITMAPPTRS+t >= MAX_OBJ_BITMAPS)
|
if (N_D2_OBJBITMAPPTRS+t >= MAX_OBJ_BITMAPS)
|
||||||
Error("Too many object bitmap pointers (%d) in <%s>. Max is %d.",t,fname,MAX_OBJ_BITMAPS-N_D2_OBJBITMAPPTRS);
|
Error("Too many object bitmap pointers (%d) in <%s>. Max is %d.",t,fname,MAX_OBJ_BITMAPS-N_D2_OBJBITMAPPTRS);
|
||||||
for (i = N_D2_OBJBITMAPPTRS; i < (N_D2_OBJBITMAPPTRS + t); i++)
|
range_for (auto &i, partial_range(ObjBitmapPtrs, N_D2_OBJBITMAPPTRS, N_D2_OBJBITMAPPTRS + t))
|
||||||
ObjBitmapPtrs[i] = PHYSFSX_readShort(fp);
|
i = PHYSFSX_readShort(fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Robot_replacements_loaded = 0;
|
int Robot_replacements_loaded = 0;
|
||||||
|
|
Loading…
Reference in a new issue