Split out anarchy object deletion predicate to simplify merge

This commit is contained in:
Kp 2013-08-11 18:24:54 +00:00
parent 743dd2f964
commit 6b4ca09376
2 changed files with 26 additions and 2 deletions

View file

@ -3151,6 +3151,17 @@ int multi_level_sync(void)
}
}
static inline int object_allowed_in_anarchy(const object *objp)
{
if ((objp->type==OBJ_NONE) ||
(objp->type==OBJ_PLAYER) ||
(objp->type==OBJ_POWERUP) ||
(objp->type==OBJ_CNTRLCEN) ||
(objp->type==OBJ_HOSTAGE))
return 1;
return 0;
}
int multi_delete_extra_objects()
{
int i;
@ -3169,7 +3180,7 @@ int multi_delete_extra_objects()
nnp++;
else if ((objp->type==OBJ_ROBOT) && (Game_mode & GM_MULTI_ROBOTS))
;
else if ( (objp->type!=OBJ_NONE) && (objp->type!=OBJ_PLAYER) && (objp->type!=OBJ_POWERUP) && (objp->type!=OBJ_CNTRLCEN) && (objp->type!=OBJ_HOSTAGE) )
else if (!object_allowed_in_anarchy(objp) )
obj_delete(i);
objp++;
}

View file

@ -3536,6 +3536,19 @@ int find_goal_texture (ubyte t)
return (-1);
}
static inline int object_allowed_in_anarchy(const object *objp)
{
if ((objp->type==OBJ_NONE) ||
(objp->type==OBJ_PLAYER) ||
(objp->type==OBJ_POWERUP) ||
(objp->type==OBJ_CNTRLCEN) ||
(objp->type==OBJ_HOSTAGE))
return 1;
if (objp->type==OBJ_WEAPON && objp->id==PMINE_ID)
return 1;
return 0;
}
int multi_delete_extra_objects()
{
int i;
@ -3554,7 +3567,7 @@ int multi_delete_extra_objects()
nnp++;
else if ((objp->type==OBJ_ROBOT) && (Game_mode & GM_MULTI_ROBOTS))
;
else if ( (objp->type!=OBJ_NONE) && (objp->type!=OBJ_PLAYER) && (objp->type!=OBJ_POWERUP) && (objp->type!=OBJ_CNTRLCEN) && (objp->type!=OBJ_HOSTAGE) && !(objp->type==OBJ_WEAPON && objp->id==PMINE_ID) ) {
else if (!object_allowed_in_anarchy(objp) ) {
// Before deleting object, if it's a robot, drop it's special powerup, if any
if (objp->type == OBJ_ROBOT)
if (objp->contains_count && (objp->contains_type == OBJ_POWERUP))