Use range_for in bm.cpp

This commit is contained in:
Kp 2016-02-06 22:12:54 +00:00
parent ec025d4e88
commit 198540d080
3 changed files with 42 additions and 41 deletions

View file

@ -127,7 +127,7 @@ extern fix ObjStrength[MAX_OBJTYPE]; // initial strength of each object
extern int Marker_model_num;
extern int Robot_replacements_loaded;
#define MAX_OBJ_BITMAPS 610
extern int N_ObjBitmaps;
extern unsigned N_ObjBitmaps;
extern int extra_bitmap_num;
#endif

View file

@ -35,13 +35,13 @@ struct bitmap_index;
//from gauges.c
#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_MAC 85
#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 85u
#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.
#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_hires; // hires gauges

View file

@ -87,7 +87,7 @@ fix ObjStrength[MAX_OBJTYPE];
#elif defined(DXX_BUILD_DESCENT_II)
//the polygon model number to use for the marker
int Marker_model_num = -1;
int N_ObjBitmaps;
unsigned N_ObjBitmaps;
static void bm_free_extra_objbitmaps();
#endif
@ -113,14 +113,6 @@ int First_multi_bitmap_num=-1;
array<bitmap_index, MAX_OBJ_BITMAPS> ObjBitmaps;
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()
{
free_polygon_models();
@ -203,27 +195,30 @@ void properties_read_cmp(PHYSFS_File * fp)
powerup_type_info_read(fp, p);
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);
range_for (auto &p, partial_range(Polygon_models, N_polygon_models))
range_for (auto &p, r)
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)
i = PHYSFSX_readInt(fp);
range_for (auto &i, Dead_modelnums)
i = PHYSFSX_readInt(fp);
bitmap_index_read_n(ObjBitmaps, MAX_OBJ_BITMAPS, fp);
bitmap_index_read_n(fp, ObjBitmaps);
range_for (auto &i, ObjBitmapPtrs)
i = PHYSFSX_readShort(fp);
player_ship_read(&only_player_ship, 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, AltSounds, sizeof(ubyte), MAX_SOUNDS );
@ -288,7 +283,7 @@ int gamedata_init()
void bm_read_all(PHYSFS_File * fp)
{
int i,t;
unsigned t;
NumTextures = PHYSFSX_readInt(fp);
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);
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);
range_for (auto &p, partial_range(Polygon_models, N_polygon_models))
range_for (auto &p, r)
polygon_model_data_read(&p, fp);
}
for (i = 0; i < N_polygon_models; i++)
Dying_modelnums[i] = PHYSFSX_readInt(fp);
for (i = 0; i < N_polygon_models; i++)
Dead_modelnums[i] = PHYSFSX_readInt(fp);
range_for (auto &i, partial_range(Dying_modelnums, N_polygon_models))
i = PHYSFSX_readInt(fp);
range_for (auto &i, partial_range(Dead_modelnums, N_polygon_models))
i = PHYSFSX_readInt(fp);
t = PHYSFSX_readInt(fp);
bitmap_index_read_n(Gauges, t, fp);
bitmap_index_read_n(Gauges_hires, t, fp);
bitmap_index_read_n(fp, partial_range(Gauges, t));
bitmap_index_read_n(fp, partial_range(Gauges_hires, t));
N_ObjBitmaps = PHYSFSX_readInt(fp);
bitmap_index_read_n(ObjBitmaps, N_ObjBitmaps, fp);
for (i = 0; i < N_ObjBitmaps; i++)
ObjBitmapPtrs[i] = PHYSFSX_readShort(fp);
bitmap_index_read_n(fp, partial_range(ObjBitmaps, N_ObjBitmaps));
range_for (auto &i, partial_range(ObjBitmapPtrs, N_ObjBitmaps))
i = PHYSFSX_readShort(fp);
player_ship_read(&only_player_ship, 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, 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)
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);
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;
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);
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);
for (i=N_D2_POLYGON_MODELS; i<N_polygon_models; i++ )
polygon_model_data_read(&Polygon_models[i], fp);
range_for (auto &p, r)
polygon_model_data_read(&p, fp);
}
for (i = N_D2_POLYGON_MODELS; i < N_polygon_models; i++)
Dying_modelnums[i] = PHYSFSX_readInt(fp);
for (i = N_D2_POLYGON_MODELS; i < N_polygon_models; i++)
Dead_modelnums[i] = PHYSFSX_readInt(fp);
range_for (auto &i, partial_range(Dying_modelnums, N_D2_POLYGON_MODELS, N_polygon_models))
i = PHYSFSX_readInt(fp);
range_for (auto &i, partial_range(Dead_modelnums, N_D2_POLYGON_MODELS, N_polygon_models))
i = PHYSFSX_readInt(fp);
t = PHYSFSX_readInt(fp);
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);
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);
for (i = N_D2_OBJBITMAPPTRS; i < (N_D2_OBJBITMAPPTRS + t); i++)
ObjBitmapPtrs[i] = PHYSFSX_readShort(fp);
range_for (auto &i, partial_range(ObjBitmapPtrs, N_D2_OBJBITMAPPTRS, N_D2_OBJBITMAPPTRS + t))
i = PHYSFSX_readShort(fp);
}
int Robot_replacements_loaded = 0;