Convert segnum_t to uint16_t

This commit is contained in:
Kp 2015-06-13 22:42:15 +00:00
parent fcaacaebde
commit 148c0f44c8
5 changed files with 12 additions and 15 deletions

View file

@ -1,8 +1,8 @@
#pragma once
#include "strictindex.h"
DEFINE_STRICT_INDEX_NUMBER(int16_t, segnum_t);
DEFINE_STRICT_INDEX_CONSTANT_TYPE(segment_magic_constant_t, segnum_t, int16_t);
DEFINE_STRICT_INDEX_CONSTANT_NUMBER(segment_magic_constant_t, -2, segment_exit);
DEFINE_STRICT_INDEX_CONSTANT_NUMBER(segment_magic_constant_t, -1, segment_none);
DEFINE_STRICT_INDEX_NUMBER(uint16_t, segnum_t);
DEFINE_STRICT_INDEX_CONSTANT_TYPE(segment_magic_constant_t, segnum_t, uint16_t);
DEFINE_STRICT_INDEX_CONSTANT_NUMBER(segment_magic_constant_t, 0xfffe, segment_exit);
DEFINE_STRICT_INDEX_CONSTANT_NUMBER(segment_magic_constant_t, 0xffff, segment_none);
DEFINE_STRICT_INDEX_CONSTANT_NUMBER(segment_magic_constant_t, 0, segment_first);

View file

@ -74,7 +74,7 @@ struct v29_trigger
fix time;
sbyte link_num;
short num_links;
array<short, MAX_WALLS_PER_LINK> seg;
array<segnum_t, MAX_WALLS_PER_LINK> seg;
array<short, MAX_WALLS_PER_LINK> side;
} __pack__;
@ -85,7 +85,7 @@ struct v30_trigger
sbyte pad; //keep alignment
fix value;
fix time;
array<short, MAX_WALLS_PER_LINK> seg;
array<segnum_t, MAX_WALLS_PER_LINK> seg;
array<short, MAX_WALLS_PER_LINK> side;
} __pack__;
#endif

View file

@ -2158,7 +2158,7 @@ static void teleport_boss(const vobjptridx_t objp)
// Pick a random segment from the list of boss-teleportable-to segments.
rand_index = (d_rand() * Boss_teleport_segs.count()) >> 15;
rand_segnum = Boss_teleport_segs[rand_index];
Assert((rand_segnum >= 0) && (rand_segnum <= Highest_segment_index));
Assert(rand_segnum <= Highest_segment_index);
if (Game_mode & GM_MULTI)
multi_send_boss_teleport(objp, rand_segnum);

View file

@ -633,9 +633,6 @@ int find_vector_intersection(const fvi_query &fq, fvi_info &hit_data)
int hit_type;
segnum_t hit_seg2;
vms_vector hit_pnt;
Assert(fq.startseg <= Highest_segment_index && fq.startseg >= 0);
fvi_hit_seg = segment_none;
fvi_hit_side = -1;
@ -645,9 +642,9 @@ int find_vector_intersection(const fvi_query &fq, fvi_info &hit_data)
//Assert(check_point_in_seg(p0,startseg,0).centermask==0); //start point not in seg
// invalid segnum, so say there is no hit.
if(fq.startseg < 0 || fq.startseg > Highest_segment_index)
if(fq.startseg > Highest_segment_index)
{
Assert(fq.startseg <= Highest_segment_index);
hit_data.hit_type = HIT_BAD_P0;
hit_data.hit_pnt = *fq.p0;
hit_data.hit_seg = hit_data.hit_side = hit_data.hit_object = 0;

View file

@ -1647,11 +1647,11 @@ static void change_light(const vsegptridx_t segnum, int sidenum, int dir)
for (int k=0; k<4; k++) {
fix dl,new_l;
dl = dir * j.vert_light[k] * DL_SCALE;
Assert(j.segnum >= 0 && j.segnum <= Highest_segment_index);
Assert(j.sidenum >= 0 && j.sidenum < MAX_SIDES_PER_SEGMENT);
new_l = (Segments[j.segnum].sides[j.sidenum].uvls[k].l += dl);
const auto &&segp = vsegptr(j.segnum);
new_l = (segp->sides[j.sidenum].uvls[k].l += dl);
if (new_l < 0)
Segments[j.segnum].sides[j.sidenum].uvls[k].l = 0;
segp->sides[j.sidenum].uvls[k].l = 0;
}
}
}