Propagate MAX_OBJ_BITMAPS
This commit is contained in:
parent
b6970e2a98
commit
0b6af7fcbe
|
@ -55,8 +55,9 @@ constexpr unsigned MAX_TEXTURES = 1200;
|
|||
#define TMI_GOAL_HOARD 32 //this is used to remap the goals
|
||||
#endif
|
||||
|
||||
#if defined(DXX_BUILD_DESCENT_I) || defined(DXX_BUILD_DESCENT_II)
|
||||
#ifdef dsx
|
||||
#include "inferno.h"
|
||||
namespace dsx {
|
||||
struct tmap_info : prohibit_void_ptr<tmap_info>
|
||||
{
|
||||
#if defined(DXX_BUILD_DESCENT_I)
|
||||
|
@ -81,6 +82,7 @@ struct tmap_info : prohibit_void_ptr<tmap_info>
|
|||
#define N_COCKPIT_BITMAPS 6
|
||||
#endif
|
||||
};
|
||||
}
|
||||
|
||||
extern int Num_object_types;
|
||||
|
||||
|
@ -127,14 +129,14 @@ extern int8_t ObjType[MAX_OBJTYPE]; // Type of an object, such as Robot, eg if
|
|||
extern int8_t ObjId[MAX_OBJTYPE]; // ID of a robot, within its class, eg if ObjType[11] == 3, then object #11 is the third robot
|
||||
extern fix ObjStrength[MAX_OBJTYPE]; // initial strength of each object
|
||||
|
||||
#define MAX_OBJ_BITMAPS 210
|
||||
constexpr unsigned MAX_OBJ_BITMAPS = 210;
|
||||
|
||||
#elif defined(DXX_BUILD_DESCENT_II)
|
||||
|
||||
//the model number of the marker object
|
||||
extern int Marker_model_num;
|
||||
extern int Robot_replacements_loaded;
|
||||
#define MAX_OBJ_BITMAPS 610
|
||||
constexpr unsigned MAX_OBJ_BITMAPS = 610;
|
||||
extern unsigned N_ObjBitmaps;
|
||||
extern int extra_bitmap_num;
|
||||
#endif
|
||||
|
@ -146,9 +148,7 @@ extern array<ushort, MAX_OBJ_BITMAPS> ObjBitmapPtrs;
|
|||
extern int First_multi_bitmap_num;
|
||||
void compute_average_rgb(grs_bitmap *bm, array<fix, 3> &rgb);
|
||||
void load_robot_replacements(const d_fname &level_name);
|
||||
#endif
|
||||
|
||||
#ifdef dsx
|
||||
namespace dsx {
|
||||
// Initializes all bitmaps from BITMAPS.TBL file.
|
||||
int gamedata_read_tbl(int pc_shareware);
|
||||
|
@ -165,13 +165,15 @@ int ds_load(int skip, const char * filename );
|
|||
int compute_average_pixel(grs_bitmap *n);
|
||||
|
||||
#if defined(DXX_BUILD_DESCENT_II)
|
||||
namespace dsx {
|
||||
//these values are the number of each item in the release of d2
|
||||
//extra items added after the release get written in an additional hamfile
|
||||
static const unsigned N_D2_ROBOT_TYPES = 66;
|
||||
static const unsigned N_D2_ROBOT_JOINTS = 1145;
|
||||
static const unsigned N_D2_OBJBITMAPS = 422;
|
||||
static const unsigned N_D2_OBJBITMAPPTRS = 502;
|
||||
static const unsigned N_D2_WEAPON_TYPES = 62;
|
||||
constexpr unsigned N_D2_ROBOT_TYPES = 66;
|
||||
constexpr unsigned N_D2_ROBOT_JOINTS = 1145;
|
||||
constexpr unsigned N_D2_OBJBITMAPS = 422;
|
||||
constexpr unsigned N_D2_OBJBITMAPPTRS = 502;
|
||||
constexpr unsigned N_D2_WEAPON_TYPES = 62;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -964,7 +964,7 @@ static void bm_read_robot_ai(char *&arg, int skip)
|
|||
//returns a pointer to the bitmap
|
||||
static grs_bitmap *load_polymodel_bitmap(int skip, const char *name)
|
||||
{
|
||||
Assert(N_ObjBitmaps < MAX_OBJ_BITMAPS);
|
||||
assert(N_ObjBitmaps < ObjBitmaps.size());
|
||||
|
||||
// Assert( N_ObjBitmaps == N_ObjBitmapPtrs );
|
||||
|
||||
|
|
|
@ -545,10 +545,7 @@ static void load_hxm(const d_fname &hxmname)
|
|||
{
|
||||
repl_num = PHYSFSX_readInt(f);
|
||||
auto v = PHYSFSX_readShort(f);
|
||||
if (repl_num >= MAX_OBJ_BITMAPS)
|
||||
{
|
||||
}
|
||||
else
|
||||
if (repl_num < ObjBitmaps.size())
|
||||
ObjBitmaps[repl_num].index = v;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1095,7 +1095,7 @@ void bm_read_robot_ai(int skip)
|
|||
//returns a pointer to the bitmap
|
||||
static grs_bitmap *load_polymodel_bitmap(int skip, const char *name)
|
||||
{
|
||||
Assert(N_ObjBitmaps < MAX_OBJ_BITMAPS);
|
||||
assert(N_ObjBitmaps < ObjBitmaps.size());
|
||||
|
||||
// Assert( N_ObjBitmaps == N_ObjBitmapPtrs );
|
||||
|
||||
|
@ -1111,8 +1111,8 @@ static grs_bitmap *load_polymodel_bitmap(int skip, const char *name)
|
|||
} else {
|
||||
ObjBitmapPtrs[N_ObjBitmapPtrs++] = Effects[eclip_num].changing_object_texture;
|
||||
}
|
||||
Assert(N_ObjBitmaps < MAX_OBJ_BITMAPS);
|
||||
Assert(N_ObjBitmapPtrs < MAX_OBJ_BITMAPS);
|
||||
assert(N_ObjBitmaps < ObjBitmaps.size());
|
||||
assert(N_ObjBitmapPtrs < ObjBitmapPtrs.size());
|
||||
return NULL;
|
||||
}
|
||||
else {
|
||||
|
@ -1121,8 +1121,8 @@ static grs_bitmap *load_polymodel_bitmap(int skip, const char *name)
|
|||
Error("Bitmap <%s> is not 64x64",name);
|
||||
ObjBitmapPtrs[N_ObjBitmapPtrs++] = N_ObjBitmaps;
|
||||
N_ObjBitmaps++;
|
||||
Assert(N_ObjBitmaps < MAX_OBJ_BITMAPS);
|
||||
Assert(N_ObjBitmapPtrs < MAX_OBJ_BITMAPS);
|
||||
assert(N_ObjBitmaps < ObjBitmaps.size());
|
||||
assert(N_ObjBitmapPtrs < ObjBitmapPtrs.size());
|
||||
return &GameBitmaps[ObjBitmaps[N_ObjBitmaps-1].index];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -470,13 +470,13 @@ void bm_read_extra_robots(const char *fname, Mission::descent_version_type type)
|
|||
i = PHYSFSX_readInt(fp);
|
||||
|
||||
t = PHYSFSX_readInt(fp);
|
||||
if (N_D2_OBJBITMAPS+t >= MAX_OBJ_BITMAPS)
|
||||
Error("Too many object bitmaps (%d) in <%s>. Max is %d.",t,fname,MAX_OBJ_BITMAPS-N_D2_OBJBITMAPS);
|
||||
if (N_D2_OBJBITMAPS+t >= ObjBitmaps.size())
|
||||
Error("Too many object bitmaps (%d) in <%s>. Max is %lu.", t, fname, ObjBitmaps.size() - N_D2_OBJBITMAPS);
|
||||
bitmap_index_read_n(fp, partial_range(ObjBitmaps, N_D2_OBJBITMAPS, N_D2_OBJBITMAPS + t));
|
||||
|
||||
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);
|
||||
if (N_D2_OBJBITMAPPTRS+t >= ObjBitmapPtrs.size())
|
||||
Error("Too many object bitmap pointers (%d) in <%s>. Max is %lu.", t, fname, ObjBitmapPtrs.size() - N_D2_OBJBITMAPPTRS);
|
||||
range_for (auto &i, partial_range(ObjBitmapPtrs, N_D2_OBJBITMAPPTRS, N_D2_OBJBITMAPPTRS + t))
|
||||
i = PHYSFSX_readShort(fp);
|
||||
}
|
||||
|
@ -536,16 +536,16 @@ void load_robot_replacements(const d_fname &level_name)
|
|||
t = PHYSFSX_readInt(fp); //read number of objbitmaps
|
||||
for (j=0;j<t;j++) {
|
||||
i = PHYSFSX_readInt(fp); //read objbitmap number
|
||||
if (i<0 || i>=MAX_OBJ_BITMAPS)
|
||||
Error("Object bitmap number (%d) out of range in (%s). Range = [0..%d].",i,static_cast<const char *>(level_name),MAX_OBJ_BITMAPS-1);
|
||||
if (i < 0 || i >= ObjBitmaps.size())
|
||||
Error("Object bitmap number (%d) out of range in (%s). Range = [0..%lu].", i, static_cast<const char *>(level_name), ObjBitmaps.size() - 1);
|
||||
bitmap_index_read(fp, ObjBitmaps[i]);
|
||||
}
|
||||
|
||||
t = PHYSFSX_readInt(fp); //read number of objbitmapptrs
|
||||
for (j=0;j<t;j++) {
|
||||
i = PHYSFSX_readInt(fp); //read objbitmapptr number
|
||||
if (i<0 || i>=MAX_OBJ_BITMAPS)
|
||||
Error("Object bitmap pointer (%d) out of range in (%s). Range = [0..%d].",i,static_cast<const char *>(level_name),MAX_OBJ_BITMAPS-1);
|
||||
if (i < 0 || i >= ObjBitmapPtrs.size())
|
||||
Error("Object bitmap pointer (%d) out of range in (%s). Range = [0..%lu].", i, static_cast<const char *>(level_name), ObjBitmapPtrs.size() - 1);
|
||||
ObjBitmapPtrs[i] = PHYSFSX_readShort(fp);
|
||||
}
|
||||
Robot_replacements_loaded = 1;
|
||||
|
@ -595,8 +595,7 @@ static bitmap_index read_extra_bitmap_iff(const char * filename )
|
|||
// formerly load_exit_model_bitmap
|
||||
static grs_bitmap *bm_load_extra_objbitmap(const char *name)
|
||||
{
|
||||
Assert(N_ObjBitmaps < MAX_OBJ_BITMAPS);
|
||||
|
||||
assert(N_ObjBitmaps < ObjBitmaps.size());
|
||||
{
|
||||
ObjBitmaps[N_ObjBitmaps] = read_extra_bitmap_iff(name);
|
||||
|
||||
|
@ -613,7 +612,7 @@ static grs_bitmap *bm_load_extra_objbitmap(const char *name)
|
|||
Error("Bitmap <%s> is not 64x64",name);
|
||||
ObjBitmapPtrs[N_ObjBitmaps] = N_ObjBitmaps;
|
||||
N_ObjBitmaps++;
|
||||
Assert(N_ObjBitmaps < MAX_OBJ_BITMAPS);
|
||||
assert(N_ObjBitmaps < ObjBitmaps.size());
|
||||
return &GameBitmaps[ObjBitmaps[N_ObjBitmaps-1].index];
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue