mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-07-08 13:06:13 -04:00
Pause door props when closed and backgrounded
This commit is contained in:
+10
-1
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user