Use uint8_t for sidenum
This commit is contained in:
parent
e07f5072cb
commit
fa1f8488f0
|
@ -64,7 +64,7 @@ struct eclip : public prohibit_void_ptr<eclip>
|
|||
fix dest_size; //3d size of explosion
|
||||
int sound_num; //what sound this makes
|
||||
segnum_t segnum;
|
||||
int sidenum; //what seg & side, for one-shot clips
|
||||
uint8_t sidenum; //what seg & side, for one-shot clips
|
||||
};
|
||||
|
||||
constexpr int eclip_none = -1;
|
||||
|
|
|
@ -266,7 +266,7 @@ objptridx_t find_escort();
|
|||
//Flickering light system
|
||||
struct flickering_light {
|
||||
segnum_t segnum;
|
||||
short sidenum;
|
||||
uint8_t sidenum;
|
||||
uint32_t mask; // determines flicker pattern
|
||||
fix timer; // time until next change
|
||||
fix delay; // time between changes
|
||||
|
|
|
@ -269,14 +269,14 @@ namespace dsx {
|
|||
struct delta_light : prohibit_void_ptr<delta_light>
|
||||
{
|
||||
segnum_t segnum;
|
||||
sbyte sidenum;
|
||||
uint8_t sidenum;
|
||||
array<ubyte, 4> vert_light;
|
||||
};
|
||||
|
||||
// Light at segnum:sidenum casts light on count sides beginning at index (in array Delta_lights)
|
||||
struct dl_index {
|
||||
segnum_t segnum;
|
||||
sbyte sidenum;
|
||||
uint8_t sidenum;
|
||||
uint8_t count;
|
||||
uint16_t index;
|
||||
};
|
||||
|
|
|
@ -122,7 +122,7 @@ namespace dsx {
|
|||
struct wall : public prohibit_void_ptr<wall>
|
||||
{
|
||||
segnum_t segnum;
|
||||
int8_t sidenum; // Seg & side for this wall
|
||||
uint8_t sidenum; // Seg & side for this wall
|
||||
uint8_t type; // What kind of special wall.
|
||||
fix hps; // "Hit points" of the wall.
|
||||
wallnum_t linked_wall; // number of linked wall
|
||||
|
|
|
@ -90,12 +90,13 @@ void do_special_effects()
|
|||
ec.frame_count++;
|
||||
if (ec.frame_count >= ec.vc.num_frames) {
|
||||
if (ec.flags & EF_ONE_SHOT) {
|
||||
Assert(ec.segnum!=segment_none);
|
||||
Assert(ec.sidenum>=0 && ec.sidenum<6);
|
||||
Assert(ec.dest_bm_num!=0 && Segments[ec.segnum].sides[ec.sidenum].tmap_num2!=0);
|
||||
Segments[ec.segnum].sides[ec.sidenum].tmap_num2 = ec.dest_bm_num | (Segments[ec.segnum].sides[ec.sidenum].tmap_num2&0xc000); //replace with destoyed
|
||||
ec.flags &= ~EF_ONE_SHOT;
|
||||
auto &seg = *vsegptr(ec.segnum);
|
||||
ec.segnum = segment_none; //done with this
|
||||
assert(ec.sidenum < 6);
|
||||
auto &side = seg.sides[ec.sidenum];
|
||||
assert(ec.dest_bm_num != 0 && side.tmap_num2 != 0);
|
||||
side.tmap_num2 = ec.dest_bm_num | (side.tmap_num2 & 0xc000); //replace with destoyed
|
||||
}
|
||||
|
||||
ec.frame_count = 0;
|
||||
|
@ -169,7 +170,7 @@ void restart_effect(int effect_num)
|
|||
}
|
||||
|
||||
DEFINE_VCLIP_SERIAL_UDT();
|
||||
DEFINE_SERIAL_UDT_TO_MESSAGE(eclip, ec, (ec.vc, ec.time_left, ec.frame_count, ec.changing_wall_texture, ec.changing_object_texture, ec.flags, ec.crit_clip, ec.dest_bm_num, ec.dest_vclip, ec.dest_eclip, ec.dest_size, ec.sound_num, ec.segnum, serial::pad<2>(), ec.sidenum));
|
||||
DEFINE_SERIAL_UDT_TO_MESSAGE(eclip, ec, (ec.vc, ec.time_left, ec.frame_count, ec.changing_wall_texture, ec.changing_object_texture, ec.flags, ec.crit_clip, ec.dest_bm_num, ec.dest_vclip, ec.dest_eclip, ec.dest_size, ec.sound_num, ec.segnum, serial::pad<2>(), ec.sidenum, serial::pad<3>()));
|
||||
ASSERT_SERIAL_UDT_MESSAGE_SIZE(eclip, 130);
|
||||
|
||||
/*
|
||||
|
|
|
@ -1696,10 +1696,10 @@ static void change_light(const vsegptridx_t segnum, int sidenum, int dir)
|
|||
continue;
|
||||
range_for (auto &j, partial_const_range(Delta_lights, static_cast<uint_fast32_t>(i.index), static_cast<uint_fast32_t>(i.count)))
|
||||
{
|
||||
assert(j.sidenum < MAX_SIDES_PER_SEGMENT);
|
||||
const auto &&segp = vsegptr(j.segnum);
|
||||
auto &uvls = segp->sides[j.sidenum].uvls;
|
||||
for (int k=0; k<4; k++) {
|
||||
Assert(j.sidenum >= 0 && j.sidenum < MAX_SIDES_PER_SEGMENT);
|
||||
auto &l = uvls[k].l;
|
||||
const fix dl = ds * j.vert_light[k];
|
||||
if ((l += dl) < 0)
|
||||
|
|
Loading…
Reference in a new issue