func_door: Add support for trigger states on/off/toggle.

This commit is contained in:
Marco Cawthorne 2020-08-07 22:19:29 +02:00
parent 2299a478bb
commit 8ad56c0f2f

View file

@ -226,12 +226,17 @@ func_door::Trigger(int state)
}
}
if ((m_iState == DOORSTATE_UP) || (m_iState == DOORSTATE_RAISED)){
if (state == TRIG_OFF) {
MoveBack();
return;
} else if (state == TRIG_ON) {
MoveAway();
} else {
if ((m_iState == DOORSTATE_UP) || (m_iState == DOORSTATE_RAISED)){
MoveBack();
} else {
MoveAway();
}
}
MoveAway();
}
void
@ -272,12 +277,12 @@ func_door::Blocked(void)
void
func_door::SetMovementDirection(void)
{
if (angles == [0,-1,0]) {
if (m_oldAngle == [0,-1,0]) {
m_vecMoveDir = [0,0,1];
} else if (angles == [0,-2,0]) {
} else if (m_oldAngle == [0,-2,0]) {
m_vecMoveDir = [0,0,-1];
} else {
makevectors(angles);
makevectors(m_oldAngle);
m_vecMoveDir = v_forward;
}
}
@ -337,7 +342,6 @@ func_door::Respawn(void)
m_vecMoveDir = [0,0,0];
/* angles to vecMoveDir */
angles = m_oldAngle;
SetMovementDirection();
if (spawnflags & SF_MOV_PASSABLE)