|
35 | 35 | #define SF_BUTTON_TOGGLE 32 // button stays pushed until reactivated
|
36 | 36 | #define SF_BUTTON_SPARK_IF_OFF 64 // button sparks in OFF state
|
37 | 37 | #define SF_BUTTON_TOUCH_ONLY 256 // button only fires as a result of USE key.
|
38 |
| -#define SF_BUTTON_PLAYER_CANT_USE 512 // Player can't impulse use this button |
| 38 | +#define SF_BUTTON_PLAYER_CANT_USE_OLD 512 |
39 | 39 | #define SF_BUTTON_CHECK_MASTER_ON_TOGGLE_RETURN 1024 // Check master and play locked and unlocked sounds on toggle return
|
| 40 | +#define SF_BUTTON_PLAYER_CANT_USE 16384 // Player can't impulse use this button |
40 | 41 |
|
41 | 42 | #define SF_GLOBAL_SET 1 // Set global state to initial state on spawn
|
42 | 43 | #define SF_GLOBAL_ACT_AS_MASTER 4
|
@@ -861,7 +862,7 @@ class CBaseButton : public CBaseToggle
|
861 | 862 |
|
862 | 863 | bool IsAllowedToSpeak( void ) override { return true; }
|
863 | 864 | bool IsUsefulToDisplayHint(CBaseEntity *pPlayer) {
|
864 |
| - return !FBitSet(pev->spawnflags, SF_BUTTON_PLAYER_CANT_USE); |
| 865 | + return !FBitSet(pev->spawnflags, SF_BUTTON_PLAYER_CANT_USE|SF_BUTTON_PLAYER_CANT_USE_OLD); |
865 | 866 | }
|
866 | 867 |
|
867 | 868 | bool m_fStayPushed; // button stays pushed in until touched again?
|
@@ -900,7 +901,7 @@ static constexpr const char* sparkSoundScript = "DoSpark";
|
900 | 901 | int CBaseButton::ObjectCaps( void )
|
901 | 902 | {
|
902 | 903 | int objectCaps = (CBaseToggle:: ObjectCaps() & ~FCAP_ACROSS_TRANSITION);
|
903 |
| - if (!pev->takedamage && !FBitSet(pev->spawnflags,SF_BUTTON_PLAYER_CANT_USE)) |
| 904 | + if (!pev->takedamage && !FBitSet(pev->spawnflags, SF_BUTTON_PLAYER_CANT_USE|SF_BUTTON_PLAYER_CANT_USE_OLD)) |
904 | 905 | objectCaps |= FCAP_IMPULSE_USE;
|
905 | 906 | if (FBitSet(pev->spawnflags, SF_BUTTON_ONLYDIRECT) || m_iDirectUse == PLAYER_USE_POLICY_DIRECT)
|
906 | 907 | objectCaps |= FCAP_ONLYDIRECT_USE;
|
@@ -1205,7 +1206,17 @@ where it can be triggered again.
|
1205 | 1206 | LINK_ENTITY_TO_CLASS( func_button, CBaseButton )
|
1206 | 1207 |
|
1207 | 1208 | void CBaseButton::Spawn()
|
1208 |
| -{ |
| 1209 | +{ |
| 1210 | + if (FBitSet(pev->spawnflags, SF_BUTTON_PLAYER_CANT_USE_OLD)) |
| 1211 | + { |
| 1212 | + ALERT(at_warning, "Deprecated button spawnflag (512) is used! Use spawnflag 16384 instead!\n"); |
| 1213 | + if (FStrEq(STRING(gpGlobals->mapname), "ba_teleport2")) |
| 1214 | + { |
| 1215 | + ALERT(at_console, "Blue Shift map detected. Removing the deprecated spawnflag\n"); |
| 1216 | + ClearBits(pev->spawnflags, SF_BUTTON_PLAYER_CANT_USE_OLD); |
| 1217 | + } |
| 1218 | + } |
| 1219 | + |
1209 | 1220 | const char *pszSound;
|
1210 | 1221 |
|
1211 | 1222 | //----------------------------------------------------
|
@@ -1277,7 +1288,7 @@ void CBaseButton::Spawn()
|
1277 | 1288 | else
|
1278 | 1289 | {
|
1279 | 1290 | SetTouch( NULL );
|
1280 |
| - if (FBitSet(pev->spawnflags, SF_BUTTON_PLAYER_CANT_USE)) |
| 1291 | + if (FBitSet(pev->spawnflags, SF_BUTTON_PLAYER_CANT_USE|SF_BUTTON_PLAYER_CANT_USE_OLD)) |
1281 | 1292 | SetUse( &CBaseButton::ButtonUse_IgnorePlayer );
|
1282 | 1293 | else
|
1283 | 1294 | SetUse( &CBaseButton::ButtonUse );
|
@@ -1766,7 +1777,7 @@ void CRotButton::Spawn( void )
|
1766 | 1777 | if( !FBitSet( pev->spawnflags, SF_BUTTON_TOUCH_ONLY ) )
|
1767 | 1778 | {
|
1768 | 1779 | SetTouch( NULL );
|
1769 |
| - if (FBitSet(pev->spawnflags, SF_BUTTON_PLAYER_CANT_USE)) |
| 1780 | + if (FBitSet(pev->spawnflags, SF_BUTTON_PLAYER_CANT_USE|SF_BUTTON_PLAYER_CANT_USE_OLD)) |
1770 | 1781 | SetUse( &CBaseButton::ButtonUse_IgnorePlayer );
|
1771 | 1782 | else
|
1772 | 1783 | SetUse( &CBaseButton::ButtonUse );
|
|
0 commit comments