Fix early mine detonation in G5 Building

This commit is contained in:
Ryan Dwyer
2023-05-06 15:06:21 +10:00
parent 870f090b8c
commit 863b5d7da6
2 changed files with 21 additions and 1 deletions
+2 -1
View File
@@ -1861,7 +1861,8 @@ void propsTickPlayer(bool islastplayer)
op = objTickPlayer(prop);
if (op == TICKOP_NONE && door->mode == DOORMODE_IDLE && door->frac <= 0) {
if (op == TICKOP_NONE && door->mode == DOORMODE_IDLE && door->frac <= 0
&& (door->base.hidden & OBJHFLAG_REAPABLE) == 0) {
propPause(prop);
op = TICKOP_CHANGEDLIST;
}
+19
View File
@@ -211,6 +211,11 @@ void objUpdateLinkedScenery(struct defaultobj *obj, struct prop *prop)
link->trigger->flags2 |= OBJFLAG2_INVISIBLE;
link->trigger->hidden |= OBJHFLAG_REAPABLE;
link->trigger->prop->forcetick;
if (!link->trigger->prop->active) {
propUnpause(link->trigger->prop);
}
if (link->unexp) {
link->unexp->flags2 |= OBJFLAG2_INVISIBLE;
@@ -15643,6 +15648,20 @@ struct defaultobj *debrisAllocate(void)
void playerActivateRemoteMineDetonator(s32 playernum)
{
struct prop *prop = g_Vars.activeprops;
while (prop) {
if (prop->type == PROPTYPE_WEAPON && prop->weapon->weaponnum == WEAPON_REMOTEMINE) {
if (!prop->active) {
propUnpause(prop);
}
prop->forceonetick = true;
}
prop = prop->next;
}
g_PlayersDetonatingMines |= 1 << playernum;
sndStart(var80095200, SFX_DETONATE, 0, -1, -1, -1, -1, -1);