func_rot_button: Fix spawnflag 32. Mistakenly thought to be 'toggle'.

This commit is contained in:
Marco Cawthorne 2024-03-26 16:14:07 -07:00
parent 53bab46f7d
commit d5053299dc
Signed by: eukara
GPG Key ID: CE2032F0A2882A22
3 changed files with 18 additions and 10 deletions

View File

@ -127,7 +127,7 @@ func_pushable::SpawnKey(string keyName, string setValue)
m_flPushFriction = ReadFloat(setValue) / 100; m_flPushFriction = ReadFloat(setValue) / 100;
break; break;
default: default:
super::Restore(keyName, setValue); super::SpawnKey(keyName, setValue);
} }
} }

View File

@ -21,7 +21,7 @@ enumflags
FNCROTBUT_UNUSED1, FNCROTBUT_UNUSED1,
FNCROTBUT_UNUSED2, FNCROTBUT_UNUSED2,
FNCROTBUT_UNUSED3, FNCROTBUT_UNUSED3,
FNCROTBUT_TOGGLE, FNCROTBUT_NOAUTORETURN,
FNCROTBUT_XAXIS, FNCROTBUT_XAXIS,
FNCROTBUT_YAXIS, FNCROTBUT_YAXIS,
FNCROTBUT_TOUCHABLE FNCROTBUT_TOUCHABLE
@ -35,7 +35,7 @@ enum
ROTBTNSTATE_CLOSING ROTBTNSTATE_CLOSING
}; };
/*!QUAKED func_rot_button (0 .5 .8) ? FNCROTBUT_NONSOLID FNCROTBUT_REVERSE x x x FNCROTBUT_TOGGLE FNCROTBUT_XAXIS FNCROTBUT_YAXIS FNCROTBUT_TOUCHABLE /*!QUAKED func_rot_button (0 .5 .8) ? NONSOLID REVERSE x x x NOAUTORETURN XAXIS YAXIS TOUCHABLE
# OVERVIEW # OVERVIEW
A button that rotates along a pivot point. Used for valves, spigots and alike. A button that rotates along a pivot point. Used for valves, spigots and alike.
@ -48,11 +48,11 @@ A button that rotates along a pivot point. Used for valves, spigots and alike.
- "distance" : Distance in degrees the button will rotate. - "distance" : Distance in degrees the button will rotate.
# SPAWNFLAGS # SPAWNFLAGS
- FNCROTBUT_NONSOLID (1) : Don't do collision testing against this entity. - NONSOLID (1) : Don't do collision testing against this entity.
- FNCROTBUT_REVERSE (2) : Rotate the counter-clockwise. - REVERSE (2) : Rotate the counter-clockwise.
- FNCROTBUT_TOGGLE (32) : Can only be activated via trigger, not player interaction. - NOAUTORETURN (32) : Will not return by itself.
- FNCROTBUT_XAXIS (64) : Rotate along the X-axis. - XAXIS (64) : Rotate along the X-axis.
- FNCROTBUT_YAXIS (128) : Rotate along the Y-axis. - YAXIS (128) : Rotate along the Y-axis.
# NOTES # NOTES
Please include an origin brush so that a pivot point will be defined. Please include an origin brush so that a pivot point will be defined.
@ -207,6 +207,10 @@ func_rot_button::ArrivedClosed(void)
m_iState = ROTBTNSTATE_CLOSED; m_iState = ROTBTNSTATE_CLOSED;
TriggerTargets(); TriggerTargets();
if (HasSpawnFlags(FNCROTBUT_NOAUTORETURN) == true) {
return;
}
if (m_flReturnTime > 0.0f) { if (m_flReturnTime > 0.0f) {
ScheduleThink(TurnToggle, m_flReturnTime); ScheduleThink(TurnToggle, m_flReturnTime);
} }
@ -255,10 +259,14 @@ func_rot_button::TurnToggle(void)
if (m_iState == ROTBTNSTATE_OPENED) { if (m_iState == ROTBTNSTATE_OPENED) {
Rotate(m_vecMoveAngle, ArrivedClosed); Rotate(m_vecMoveAngle, ArrivedClosed);
} else if (m_iState == ROTBTNSTATE_CLOSED) { } else if (m_iState == ROTBTNSTATE_CLOSED) {
if (m_flReturnTime == -1) {
return;
}
Rotate(GetSpawnAngles(), ArrivedOpened); Rotate(GetSpawnAngles(), ArrivedOpened);
/* in toggle mode, we trigger our targets every turn */ /* in toggle mode, we trigger our targets every turn */
if (HasSpawnFlags(FNCROTBUT_TOGGLE)) if (HasSpawnFlags(FNCROTBUT_NOAUTORETURN))
TriggerTargets(); TriggerTargets();
} }
} }

View File

@ -269,7 +269,7 @@ logic_case::SpawnKey(string keyName, string setValue)
m_strOnDefault = PrepareOutput(m_strOnDefault, setValue); m_strOnDefault = PrepareOutput(m_strOnDefault, setValue);
break; break;
default: default:
super::Restore(keyName, setValue); super::SpawnKey(keyName, setValue);
} }
} }