Use wallnum_t in more places
This commit is contained in:
parent
bb5d1bb7e5
commit
0101f98905
|
@ -83,7 +83,7 @@ struct WALL_IS_DOORWAY_result_t
|
|||
struct stuckobj : public prohibit_void_ptr<stuckobj>
|
||||
{
|
||||
objnum_t objnum;
|
||||
short wallnum;
|
||||
wallnum_t wallnum;
|
||||
object_signature_t signature;
|
||||
};
|
||||
|
||||
|
@ -125,7 +125,7 @@ struct wall : public prohibit_void_ptr<wall>
|
|||
int8_t sidenum; // Seg & side for this wall
|
||||
uint8_t type; // What kind of special wall.
|
||||
fix hps; // "Hit points" of the wall.
|
||||
int16_t linked_wall; // number of linked wall
|
||||
wallnum_t linked_wall; // number of linked wall
|
||||
ubyte flags; // Flags for the wall.
|
||||
ubyte state; // Opening, closing, etc.
|
||||
uint8_t trigger; // Which trigger is associated with the wall.
|
||||
|
@ -146,8 +146,8 @@ namespace dcx {
|
|||
struct active_door : public prohibit_void_ptr<active_door>
|
||||
{
|
||||
int n_parts; // for linked walls
|
||||
array<short, 2> front_wallnum; // front wall numbers for this door
|
||||
array<short, 2> back_wallnum; // back wall numbers for this door
|
||||
array<wallnum_t, 2> front_wallnum; // front wall numbers for this door
|
||||
array<wallnum_t, 2> back_wallnum; // back wall numbers for this door
|
||||
fix time; // how long been opening, closing, waiting
|
||||
};
|
||||
|
||||
|
@ -158,8 +158,8 @@ namespace dsx {
|
|||
#if defined(DXX_BUILD_DESCENT_II)
|
||||
struct cloaking_wall : public prohibit_void_ptr<cloaking_wall>
|
||||
{
|
||||
short front_wallnum; // front wall numbers for this door
|
||||
short back_wallnum; // back wall numbers for this door
|
||||
wallnum_t front_wallnum; // front wall numbers for this door
|
||||
wallnum_t back_wallnum; // back wall numbers for this door
|
||||
array<fix, 4> front_ls; // front wall saved light values
|
||||
array<fix, 4> back_ls; // back wall saved light values
|
||||
fix time; // how long been cloaking or decloaking
|
||||
|
|
|
@ -358,7 +358,6 @@ int trigger_dialog_handler(UI_DIALOG *dlg,const d_event &event, trigger_dialog *
|
|||
default:
|
||||
break;
|
||||
}
|
||||
short Markedwall;
|
||||
int keypress = 0;
|
||||
int rval = 0;
|
||||
|
||||
|
@ -380,7 +379,7 @@ int trigger_dialog_handler(UI_DIALOG *dlg,const d_event &event, trigger_dialog *
|
|||
// If we change walls, we need to reset the ui code for all
|
||||
// of the checkboxes that control the wall flags.
|
||||
//------------------------------------------------------------
|
||||
Markedwall = Markedsegp->sides[Markedside].wall_num;
|
||||
const auto Markedwall = Markedsegp->sides[Markedside].wall_num;
|
||||
auto trigger_num = (Markedwall != wall_none) ? Walls[Markedwall].trigger : trigger_none;
|
||||
|
||||
if (t->old_trigger_num != trigger_num)
|
||||
|
|
|
@ -81,7 +81,7 @@ static int Current_door_type=1;
|
|||
|
||||
struct count_wall
|
||||
{
|
||||
short wallnum;
|
||||
wallnum_t wallnum;
|
||||
segnum_t segnum;
|
||||
short sidenum;
|
||||
};
|
||||
|
@ -192,7 +192,7 @@ int wall_add_illusion()
|
|||
}
|
||||
|
||||
static int GotoPrevWall() {
|
||||
int current_wall;
|
||||
wallnum_t current_wall;
|
||||
|
||||
if (Cursegp->sides[Curside].wall_num == wall_none)
|
||||
current_wall = Num_walls;
|
||||
|
@ -200,7 +200,6 @@ static int GotoPrevWall() {
|
|||
current_wall = Cursegp->sides[Curside].wall_num;
|
||||
|
||||
current_wall--;
|
||||
if (current_wall < 0) current_wall = Num_walls-1;
|
||||
if (current_wall >= Num_walls) current_wall = Num_walls-1;
|
||||
|
||||
if (Walls[current_wall].segnum == segment_none) {
|
||||
|
@ -219,14 +218,11 @@ static int GotoPrevWall() {
|
|||
|
||||
|
||||
static int GotoNextWall() {
|
||||
int current_wall;
|
||||
|
||||
current_wall = Cursegp->sides[Curside].wall_num; // It's ok to be -1 because it will immediately become 0
|
||||
auto current_wall = Cursegp->sides[Curside].wall_num; // It's ok to be -1 because it will immediately become 0
|
||||
|
||||
current_wall++;
|
||||
|
||||
if (current_wall >= Num_walls) current_wall = 0;
|
||||
if (current_wall < 0) current_wall = 0;
|
||||
|
||||
if (Walls[current_wall].segnum == segment_none) {
|
||||
return 0;
|
||||
|
@ -635,7 +631,6 @@ int wall_restore_all()
|
|||
// Remove a specific side.
|
||||
int wall_remove_side(const vsegptridx_t seg, short side)
|
||||
{
|
||||
int lower_wallnum;
|
||||
if (IS_CHILD(seg->children[side]) && IS_CHILD(seg->sides[side].wall_num)) {
|
||||
const auto &&csegp = vsegptr(seg->children[side]);
|
||||
auto Connectside = find_connect_side(seg, csegp);
|
||||
|
@ -645,7 +640,7 @@ int wall_remove_side(const vsegptridx_t seg, short side)
|
|||
|
||||
// Remove walls 'wall_num' and connecting side 'wall_num'
|
||||
// from Walls array.
|
||||
lower_wallnum = seg->sides[side].wall_num;
|
||||
auto lower_wallnum = seg->sides[side].wall_num;
|
||||
if (csegp->sides[Connectside].wall_num < lower_wallnum)
|
||||
lower_wallnum = csegp->sides[Connectside].wall_num;
|
||||
|
||||
|
|
|
@ -354,7 +354,8 @@ void wall_open_door(const vsegptridx_t seg, int side)
|
|||
newdemo_record_door_opening(seg, side);
|
||||
}
|
||||
|
||||
if (w->linked_wall != -1) {
|
||||
if (w->linked_wall != wall_none)
|
||||
{
|
||||
wall *w2;
|
||||
|
||||
w2 = &Walls[w->linked_wall];
|
||||
|
@ -493,7 +494,7 @@ void start_wall_cloak(const vsegptridx_t seg, int side)
|
|||
|
||||
d->front_wallnum = seg->sides[side].wall_num;
|
||||
d->back_wallnum = cwall_num;
|
||||
Assert(w->linked_wall == -1);
|
||||
Assert(w->linked_wall == wall_none);
|
||||
|
||||
if ( Newdemo_state != ND_STATE_PLAYBACK ) {
|
||||
const auto cp = compute_center_point_on_side(seg, side );
|
||||
|
@ -574,7 +575,7 @@ void start_wall_decloak(const vsegptridx_t seg, int side)
|
|||
|
||||
d->front_wallnum = seg->sides[side].wall_num;
|
||||
d->back_wallnum = csegp->sides[Connectside].wall_num;
|
||||
Assert(w->linked_wall == -1);
|
||||
Assert(w->linked_wall == wall_none);
|
||||
|
||||
if ( Newdemo_state != ND_STATE_PLAYBACK ) {
|
||||
const auto cp = compute_center_point_on_side(seg, side );
|
||||
|
@ -827,7 +828,8 @@ void wall_close_door(const vsegptridx_t seg, int side)
|
|||
newdemo_record_door_opening(seg, side);
|
||||
}
|
||||
|
||||
if (w->linked_wall != -1) {
|
||||
if (w->linked_wall != wall_none)
|
||||
{
|
||||
Int3(); //don't think we ever used linked walls
|
||||
}
|
||||
else
|
||||
|
@ -1223,7 +1225,7 @@ static void do_cloaking_wall_frame(int cloaking_wall_num)
|
|||
d = &CloakingWalls[cloaking_wall_num];
|
||||
wfront = &Walls[d->front_wallnum];
|
||||
wback = NULL;
|
||||
if (d->back_wallnum > -1)
|
||||
if (d->back_wallnum != wall_none)
|
||||
wback = &Walls[d->back_wallnum];
|
||||
|
||||
old_cloak = wfront->cloak_value;
|
||||
|
@ -1296,7 +1298,7 @@ static void do_decloaking_wall_frame(int cloaking_wall_num)
|
|||
d = &CloakingWalls[cloaking_wall_num];
|
||||
wfront = &Walls[d->front_wallnum];
|
||||
wback = NULL;
|
||||
if (d->back_wallnum > -1)
|
||||
if (d->back_wallnum != wall_none)
|
||||
wback = &Walls[d->back_wallnum];
|
||||
|
||||
old_cloak = wfront->cloak_value;
|
||||
|
@ -1371,7 +1373,7 @@ void wall_frame_process()
|
|||
|
||||
// set flags to fix occasional netgame problem where door is waiting to close but open flag isn't set
|
||||
w->flags |= WALL_DOOR_OPENED;
|
||||
if (d->back_wallnum[0] > -1)
|
||||
if (d->back_wallnum[0] != wall_none)
|
||||
Walls[d->back_wallnum[0]].flags |= WALL_DOOR_OPENED;
|
||||
|
||||
if (d->time > DOOR_WAIT_TIME)
|
||||
|
@ -1431,7 +1433,8 @@ void add_stuck_object(const vobjptridx_t objp, const vsegptr_t segp, int sidenum
|
|||
objp->flags |= OF_SHOULD_BE_DEAD;
|
||||
range_for (auto &i, Stuck_objects)
|
||||
{
|
||||
if (i.wallnum == -1) {
|
||||
if (i.wallnum == wall_none)
|
||||
{
|
||||
i.wallnum = wallnum;
|
||||
i.objnum = objp;
|
||||
i.signature = objp->signature;
|
||||
|
@ -1452,11 +1455,11 @@ void remove_obsolete_stuck_objects(void)
|
|||
|
||||
objnum = d_tick_count % MAX_STUCK_OBJECTS;
|
||||
|
||||
if (Stuck_objects[objnum].wallnum != -1)
|
||||
if (Stuck_objects[objnum].wallnum != wall_none)
|
||||
if ((Stuck_objects[objnum].wallnum == 0) || (vcobjptr(Stuck_objects[objnum].objnum)->signature != Stuck_objects[objnum].signature))
|
||||
{
|
||||
Num_stuck_objects--;
|
||||
Stuck_objects[objnum].wallnum = -1;
|
||||
Stuck_objects[objnum].wallnum = wall_none;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -1475,11 +1478,11 @@ void remove_obsolete_stuck_objects(void)
|
|||
|
||||
objnum = d_tick_count % MAX_STUCK_OBJECTS;
|
||||
|
||||
if (Stuck_objects[objnum].wallnum != -1)
|
||||
if (Stuck_objects[objnum].wallnum != wall_none)
|
||||
if ((Walls[Stuck_objects[objnum].wallnum].state != WALL_DOOR_CLOSED) || (vcobjptr(Stuck_objects[objnum].objnum)->signature != Stuck_objects[objnum].signature)) {
|
||||
Num_stuck_objects--;
|
||||
vobjptr(Stuck_objects[objnum].objnum)->lifeleft = F1_0/8;
|
||||
Stuck_objects[objnum].wallnum = -1;
|
||||
Stuck_objects[objnum].wallnum = wall_none;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1508,8 +1511,10 @@ void kill_stuck_objects(int wallnum)
|
|||
#endif
|
||||
objp->lifeleft = DXX_WEAPON_LIFELEFT;
|
||||
}
|
||||
Stuck_objects[i].wallnum = -1;
|
||||
} else if (Stuck_objects[i].wallnum != -1) {
|
||||
Stuck_objects[i].wallnum = wall_none;
|
||||
}
|
||||
else if (Stuck_objects[i].wallnum != wall_none)
|
||||
{
|
||||
Num_stuck_objects++;
|
||||
}
|
||||
// Ok, this is awful, but we need to do things whenever a door opens/closes/disappears, etc.
|
||||
|
@ -1525,7 +1530,7 @@ void kill_stuck_objects(int wallnum)
|
|||
void init_stuck_objects(void)
|
||||
{
|
||||
range_for (auto &i, Stuck_objects)
|
||||
i.wallnum = -1;
|
||||
i.wallnum = wall_none;
|
||||
Num_stuck_objects = 0;
|
||||
}
|
||||
|
||||
|
@ -1535,12 +1540,13 @@ void clear_stuck_objects(void)
|
|||
{
|
||||
range_for (auto &i, Stuck_objects)
|
||||
{
|
||||
if (i.wallnum != -1) {
|
||||
if (i.wallnum != wall_none)
|
||||
{
|
||||
const auto &&objp = vobjptr(i.objnum);
|
||||
if (objp->type == OBJ_WEAPON && get_weapon_id(objp) == weapon_id_type::FLARE_ID)
|
||||
objp->lifeleft = F1_0/8;
|
||||
|
||||
i.wallnum = -1;
|
||||
i.wallnum = wall_none;
|
||||
Num_stuck_objects--;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue