Pause door props when closed and backgrounded
This commit is contained in:
parent
bd009f7290
commit
e6b02156bb
|
|
@ -1854,7 +1854,7 @@ void propsTickPlayer(bool islastplayer)
|
|||
} else {
|
||||
op = chrTick(prop);
|
||||
}
|
||||
} else if (prop->type & (PROPTYPE_OBJ | PROPTYPE_WEAPON | PROPTYPE_DOOR)) {
|
||||
} else if (prop->type & (PROPTYPE_OBJ | PROPTYPE_WEAPON)) {
|
||||
obj = prop->obj;
|
||||
|
||||
if (!g_PausableObjs[obj->type]) {
|
||||
|
|
@ -1870,6 +1870,15 @@ void propsTickPlayer(bool islastplayer)
|
|||
op = TICKOP_CHANGEDLIST;
|
||||
}
|
||||
}
|
||||
} else if (prop->type == PROPTYPE_DOOR) {
|
||||
struct doorobj *door = prop->door;
|
||||
|
||||
op = objTickPlayer(prop);
|
||||
|
||||
if (op == TICKOP_NONE && door->mode == DOORMODE_IDLE && door->frac <= 0) {
|
||||
propPause(prop);
|
||||
op = TICKOP_CHANGEDLIST;
|
||||
}
|
||||
} else if (prop->type == PROPTYPE_EXPLOSION) {
|
||||
op = explosionTickPlayer(prop);
|
||||
} else if (prop->type == PROPTYPE_SMOKE) {
|
||||
|
|
|
|||
|
|
@ -16942,6 +16942,10 @@ void doorSetMode(struct doorobj *door, s32 newmode)
|
|||
{
|
||||
if (newmode == DOORMODE_OPENING) {
|
||||
if (door->mode == DOORMODE_IDLE || door->mode == DOORMODE_WAITING) {
|
||||
if (!door->base.prop->active) {
|
||||
propUnpause(door->base.prop);
|
||||
}
|
||||
|
||||
doorStartOpen(door);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue