mirror of
https://github.com/s1lentq/ReGameDLL_CS.git
synced 2024-12-28 15:45:41 +03:00
Fix func_rotating
This commit is contained in:
parent
969a4ab85b
commit
1dc484980f
@ -352,6 +352,58 @@ void CFuncRotating::__MAKE_VHOOK(Spawn)()
|
|||||||
Precache();
|
Precache();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef REGAMEDLL_FIXES
|
||||||
|
void CFuncRotating::Restart()
|
||||||
|
{
|
||||||
|
// fan is spinning, so stop it.
|
||||||
|
SetThink(&CFuncRotating::SpinDown);
|
||||||
|
pev->nextthink = pev->ltime + 0.1;
|
||||||
|
|
||||||
|
// restore angles
|
||||||
|
pev->angles = m_angles;
|
||||||
|
pev->avelocity = g_vecZero;
|
||||||
|
|
||||||
|
// some rotating objects like fake volumetric lights will not be solid.
|
||||||
|
if (pev->spawnflags & SF_ROTATING_NOT_SOLID)
|
||||||
|
{
|
||||||
|
pev->solid = SOLID_NOT;
|
||||||
|
pev->skin = CONTENTS_EMPTY;
|
||||||
|
pev->movetype = MOVETYPE_PUSH;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pev->solid = SOLID_BSP;
|
||||||
|
pev->movetype = MOVETYPE_PUSH;
|
||||||
|
}
|
||||||
|
|
||||||
|
UTIL_SetOrigin(pev, pev->origin);
|
||||||
|
SET_MODEL(ENT(pev), STRING(pev->model));
|
||||||
|
|
||||||
|
SetUse(&CFuncRotating::RotatingUse);
|
||||||
|
|
||||||
|
// did level designer forget to assign speed?
|
||||||
|
if (pev->speed <= 0)
|
||||||
|
{
|
||||||
|
pev->speed = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// instant-use brush?
|
||||||
|
if (pev->spawnflags & SF_BRUSH_ROTATE_INSTANT)
|
||||||
|
{
|
||||||
|
SetThink(&CFuncRotating::SUB_CallUseToggle);
|
||||||
|
|
||||||
|
// leave a magic delay for client to start up
|
||||||
|
pev->nextthink = pev->ltime + 0.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// can this brush inflict pain?
|
||||||
|
if (pev->spawnflags & SF_BRUSH_HURT)
|
||||||
|
{
|
||||||
|
SetTouch(&CFuncRotating::HurtTouch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void CFuncRotating::__MAKE_VHOOK(Precache)()
|
void CFuncRotating::__MAKE_VHOOK(Precache)()
|
||||||
{
|
{
|
||||||
char *szSoundFile = (char *)STRING(pev->message);
|
char *szSoundFile = (char *)STRING(pev->message);
|
||||||
@ -554,19 +606,6 @@ void CFuncRotating::Rotate()
|
|||||||
pev->nextthink = pev->ltime + 10;
|
pev->nextthink = pev->ltime + 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef REGAMEDLL_FIXES
|
|
||||||
void CFuncRotating::Restart()
|
|
||||||
{
|
|
||||||
// fan is spinning, so stop it.
|
|
||||||
SetThink(&CFuncRotating::SpinDown);
|
|
||||||
pev->nextthink = pev->ltime + 0.1;
|
|
||||||
|
|
||||||
// restore angles
|
|
||||||
pev->angles = m_angles;
|
|
||||||
pev->avelocity = g_vecZero;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Rotating Use - when a rotating brush is triggered
|
// Rotating Use - when a rotating brush is triggered
|
||||||
void CFuncRotating::RotatingUse(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
|
void CFuncRotating::RotatingUse(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)
|
||||||
{
|
{
|
||||||
|
@ -32,24 +32,37 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define SF_PENDULUM_SWING 2 // spawnflag that makes a pendulum a rope swing.
|
// func_rotating
|
||||||
|
#define SF_BRUSH_ROTATE_Y_AXIS 0
|
||||||
|
#define SF_BRUSH_ROTATE_INSTANT 1
|
||||||
|
#define SF_BRUSH_ROTATE_BACKWARDS 2
|
||||||
|
#define SF_BRUSH_ROTATE_Z_AXIS 4
|
||||||
|
#define SF_BRUSH_ROTATE_X_AXIS 8
|
||||||
|
|
||||||
#define SF_BRUSH_ACCDCC 16 // brush should accelerate and decelerate when toggled
|
#define SF_BRUSH_ACCDCC 16 // brush should accelerate and decelerate when toggled
|
||||||
#define SF_BRUSH_HURT 32 // rotating brush that inflicts pain based on rotation speed
|
#define SF_BRUSH_HURT 32 // rotating brush that inflicts pain based on rotation speed
|
||||||
|
|
||||||
#define SF_ROTATING_NOT_SOLID 64 // some special rotating objects are not solid.
|
#define SF_ROTATING_NOT_SOLID 64 // some special rotating objects are not solid.
|
||||||
|
|
||||||
#define SF_WALL_START_OFF 0x0001
|
#define SF_BRUSH_ROTATE_SMALLRADIUS 128
|
||||||
|
#define SF_BRUSH_ROTATE_MEDIUMRADIUS 256
|
||||||
#define SF_CONVEYOR_VISUAL 0x0001
|
#define SF_BRUSH_ROTATE_LARGERADIUS 512
|
||||||
#define SF_CONVEYOR_NOTSOLID 0x0002
|
|
||||||
|
|
||||||
#define SF_WORLD_DARK 0x0001 // Fade from black at startup
|
|
||||||
#define SF_WORLD_TITLE 0x0002 // Display game title at startup
|
|
||||||
#define SF_WORLD_FORCETEAM 0x0004 // Force teams
|
|
||||||
|
|
||||||
#define FANPITCHMIN 30
|
#define FANPITCHMIN 30
|
||||||
#define FANPITCHMAX 100
|
#define FANPITCHMAX 100
|
||||||
|
|
||||||
|
// func_pendulum
|
||||||
|
#define SF_PENDULUM_SWING 2 // spawnflag that makes a pendulum a rope swing.
|
||||||
|
#define SF_PENDULUM_AUTO_RETURN 16
|
||||||
|
#define SF_PENDULUM_PASSABLE 32
|
||||||
|
|
||||||
|
// func_wall_toggle
|
||||||
|
#define SF_WALL_START_OFF 0x0001
|
||||||
|
|
||||||
|
// func_conveyor
|
||||||
|
#define SF_CONVEYOR_VISUAL 0x0001
|
||||||
|
#define SF_CONVEYOR_NOTSOLID 0x0002
|
||||||
|
|
||||||
// covering cheesy noise1, noise2, & noise3 fields so they make more sense (for rotating fans)
|
// covering cheesy noise1, noise2, & noise3 fields so they make more sense (for rotating fans)
|
||||||
#define noiseStart noise1
|
#define noiseStart noise1
|
||||||
#define noiseStop noise2
|
#define noiseStop noise2
|
||||||
|
@ -680,6 +680,10 @@ public:
|
|||||||
int m_sounds;
|
int m_sounds;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define SF_WORLD_DARK 0x0001 // Fade from black at startup
|
||||||
|
#define SF_WORLD_TITLE 0x0002 // Display game title at startup
|
||||||
|
#define SF_WORLD_FORCETEAM 0x0004 // Force teams
|
||||||
|
|
||||||
// This spawns first when each level begins.
|
// This spawns first when each level begins.
|
||||||
class CWorld: public CBaseEntity {
|
class CWorld: public CBaseEntity {
|
||||||
public:
|
public:
|
||||||
|
@ -35,6 +35,10 @@
|
|||||||
#define GRENADETYPE_SMOKE 1
|
#define GRENADETYPE_SMOKE 1
|
||||||
#define GRENADETYPE_FLASH 2
|
#define GRENADETYPE_FLASH 2
|
||||||
|
|
||||||
|
#define SPAWNFLAG_NOMESSAGE 1
|
||||||
|
#define SPAWNFLAG_NOTOUCH 1
|
||||||
|
#define SPAWNFLAG_DROIDONLY 4
|
||||||
|
|
||||||
#define MAX_ITEM_COUNTS 32
|
#define MAX_ITEM_COUNTS 32
|
||||||
#define MAX_ENTITY 512 // We can only ever move 512 entities across a transition
|
#define MAX_ENTITY 512 // We can only ever move 512 entities across a transition
|
||||||
|
|
||||||
@ -531,10 +535,6 @@ public:
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef REGAMEDLL_FIXES
|
|
||||||
private:
|
|
||||||
Vector m_vecAngles;
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class CTriggerTeleport: public CBaseTrigger
|
class CTriggerTeleport: public CBaseTrigger
|
||||||
|
@ -115,23 +115,6 @@ extern globalvars_t *gpGlobals;
|
|||||||
#define SVC_ROOMTYPE 37
|
#define SVC_ROOMTYPE 37
|
||||||
#define SVC_DIRECTOR 51
|
#define SVC_DIRECTOR 51
|
||||||
|
|
||||||
// func_rotating
|
|
||||||
#define SF_BRUSH_ROTATE_Y_AXIS 0
|
|
||||||
#define SF_BRUSH_ROTATE_INSTANT 1
|
|
||||||
#define SF_BRUSH_ROTATE_BACKWARDS 2
|
|
||||||
#define SF_BRUSH_ROTATE_Z_AXIS 4
|
|
||||||
#define SF_BRUSH_ROTATE_X_AXIS 8
|
|
||||||
#define SF_PENDULUM_AUTO_RETURN 16
|
|
||||||
#define SF_PENDULUM_PASSABLE 32
|
|
||||||
|
|
||||||
#define SF_BRUSH_ROTATE_SMALLRADIUS 128
|
|
||||||
#define SF_BRUSH_ROTATE_MEDIUMRADIUS 256
|
|
||||||
#define SF_BRUSH_ROTATE_LARGERADIUS 512
|
|
||||||
|
|
||||||
#define SPAWNFLAG_NOMESSAGE 1
|
|
||||||
#define SPAWNFLAG_NOTOUCH 1
|
|
||||||
#define SPAWNFLAG_DROIDONLY 4
|
|
||||||
|
|
||||||
#define VEC_HULL_MIN_Z Vector(0, 0, -36)
|
#define VEC_HULL_MIN_Z Vector(0, 0, -36)
|
||||||
#define VEC_DUCK_HULL_MIN_Z Vector(0, 0, -18)
|
#define VEC_DUCK_HULL_MIN_Z Vector(0, 0, -18)
|
||||||
|
|
||||||
|
@ -27,24 +27,37 @@
|
|||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define SF_PENDULUM_SWING 2 // spawnflag that makes a pendulum a rope swing.
|
// func_rotating
|
||||||
|
#define SF_BRUSH_ROTATE_Y_AXIS 0
|
||||||
|
#define SF_BRUSH_ROTATE_INSTANT 1
|
||||||
|
#define SF_BRUSH_ROTATE_BACKWARDS 2
|
||||||
|
#define SF_BRUSH_ROTATE_Z_AXIS 4
|
||||||
|
#define SF_BRUSH_ROTATE_X_AXIS 8
|
||||||
|
|
||||||
#define SF_BRUSH_ACCDCC 16 // brush should accelerate and decelerate when toggled
|
#define SF_BRUSH_ACCDCC 16 // brush should accelerate and decelerate when toggled
|
||||||
#define SF_BRUSH_HURT 32 // rotating brush that inflicts pain based on rotation speed
|
#define SF_BRUSH_HURT 32 // rotating brush that inflicts pain based on rotation speed
|
||||||
|
|
||||||
#define SF_ROTATING_NOT_SOLID 64 // some special rotating objects are not solid.
|
#define SF_ROTATING_NOT_SOLID 64 // some special rotating objects are not solid.
|
||||||
|
|
||||||
#define SF_WALL_START_OFF 0x0001
|
#define SF_BRUSH_ROTATE_SMALLRADIUS 128
|
||||||
|
#define SF_BRUSH_ROTATE_MEDIUMRADIUS 256
|
||||||
#define SF_CONVEYOR_VISUAL 0x0001
|
#define SF_BRUSH_ROTATE_LARGERADIUS 512
|
||||||
#define SF_CONVEYOR_NOTSOLID 0x0002
|
|
||||||
|
|
||||||
#define SF_WORLD_DARK 0x0001 // Fade from black at startup
|
|
||||||
#define SF_WORLD_TITLE 0x0002 // Display game title at startup
|
|
||||||
#define SF_WORLD_FORCETEAM 0x0004 // Force teams
|
|
||||||
|
|
||||||
#define FANPITCHMIN 30
|
#define FANPITCHMIN 30
|
||||||
#define FANPITCHMAX 100
|
#define FANPITCHMAX 100
|
||||||
|
|
||||||
|
// func_pendulum
|
||||||
|
#define SF_PENDULUM_SWING 2 // spawnflag that makes a pendulum a rope swing.
|
||||||
|
#define SF_PENDULUM_AUTO_RETURN 16
|
||||||
|
#define SF_PENDULUM_PASSABLE 32
|
||||||
|
|
||||||
|
// func_wall_toggle
|
||||||
|
#define SF_WALL_START_OFF 0x0001
|
||||||
|
|
||||||
|
// func_conveyor
|
||||||
|
#define SF_CONVEYOR_VISUAL 0x0001
|
||||||
|
#define SF_CONVEYOR_NOTSOLID 0x0002
|
||||||
|
|
||||||
// This is just a solid wall if not inhibited
|
// This is just a solid wall if not inhibited
|
||||||
class CFuncWall: public CBaseEntity {
|
class CFuncWall: public CBaseEntity {
|
||||||
public:
|
public:
|
||||||
|
@ -315,6 +315,10 @@ public:
|
|||||||
string_t m_globalstate;
|
string_t m_globalstate;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define SF_WORLD_DARK 0x0001 // Fade from black at startup
|
||||||
|
#define SF_WORLD_TITLE 0x0002 // Display game title at startup
|
||||||
|
#define SF_WORLD_FORCETEAM 0x0004 // Force teams
|
||||||
|
|
||||||
// This spawns first when each level begins.
|
// This spawns first when each level begins.
|
||||||
class CWorld: public CBaseEntity {
|
class CWorld: public CBaseEntity {
|
||||||
public:
|
public:
|
||||||
|
@ -30,6 +30,10 @@
|
|||||||
#define GRENADETYPE_SMOKE 1
|
#define GRENADETYPE_SMOKE 1
|
||||||
#define GRENADETYPE_FLASH 2
|
#define GRENADETYPE_FLASH 2
|
||||||
|
|
||||||
|
#define SPAWNFLAG_NOMESSAGE 1
|
||||||
|
#define SPAWNFLAG_NOTOUCH 1
|
||||||
|
#define SPAWNFLAG_DROIDONLY 4
|
||||||
|
|
||||||
#define MAX_ITEM_COUNTS 32
|
#define MAX_ITEM_COUNTS 32
|
||||||
#define MAX_ENTITY 512 // We can only ever move 512 entities across a transition
|
#define MAX_ENTITY 512 // We can only ever move 512 entities across a transition
|
||||||
|
|
||||||
|
@ -79,23 +79,6 @@ extern globalvars_t *gpGlobals;
|
|||||||
#define SVC_ROOMTYPE 37
|
#define SVC_ROOMTYPE 37
|
||||||
#define SVC_DIRECTOR 51
|
#define SVC_DIRECTOR 51
|
||||||
|
|
||||||
// func_rotating
|
|
||||||
#define SF_BRUSH_ROTATE_Y_AXIS 0
|
|
||||||
#define SF_BRUSH_ROTATE_INSTANT 1
|
|
||||||
#define SF_BRUSH_ROTATE_BACKWARDS 2
|
|
||||||
#define SF_BRUSH_ROTATE_Z_AXIS 4
|
|
||||||
#define SF_BRUSH_ROTATE_X_AXIS 8
|
|
||||||
#define SF_PENDULUM_AUTO_RETURN 16
|
|
||||||
#define SF_PENDULUM_PASSABLE 32
|
|
||||||
|
|
||||||
#define SF_BRUSH_ROTATE_SMALLRADIUS 128
|
|
||||||
#define SF_BRUSH_ROTATE_MEDIUMRADIUS 256
|
|
||||||
#define SF_BRUSH_ROTATE_LARGERADIUS 512
|
|
||||||
|
|
||||||
#define SPAWNFLAG_NOMESSAGE 1
|
|
||||||
#define SPAWNFLAG_NOTOUCH 1
|
|
||||||
#define SPAWNFLAG_DROIDONLY 4
|
|
||||||
|
|
||||||
#define VEC_HULL_MIN_Z Vector(0, 0, -36)
|
#define VEC_HULL_MIN_Z Vector(0, 0, -36)
|
||||||
#define VEC_DUCK_HULL_MIN_Z Vector(0, 0, -18)
|
#define VEC_DUCK_HULL_MIN_Z Vector(0, 0, -18)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user