diff --git a/base/maps/game/mars_city1/textures/objective1.tga b/base/maps/game/mars_city1/textures/objective1.tga index ca8eaf96..59f51ea9 100644 Binary files a/base/maps/game/mars_city1/textures/objective1.tga and b/base/maps/game/mars_city1/textures/objective1.tga differ diff --git a/base/script/doom_events.script b/base/script/doom_events.script index 76786d8e..370d13c5 100644 --- a/base/script/doom_events.script +++ b/base/script/doom_events.script @@ -1,1159 +1,1208 @@ -/*********************************************************************** - -events.script - -Defines game events available to script. - -***********************************************************************/ - -/*********************************************************************** - - all entities - -***********************************************************************/ - -// Removes this entity from the game. -scriptEvent void remove(); - -// Returns the name of this entity. -scriptEvent string getName(); - -// Sets the name of this entity. -scriptEvent void setName( string name ); - -scriptEvent void setAnim( string name ); - -// Activates this entity as if it was activated by a trigger. -// Activator is the entity that caused the action (usually the player). -scriptEvent void activate( entity activator ); - -// Causes this entity to activate all it's targets. Similar to how a trigger activates entities. -// Activator is the entity that caused the action (usually the player). -scriptEvent void activateTargets( entity activator ); - -// Returns the number of entities this entity has targeted. -scriptEvent float numTargets(); - -// Returns the requested target entity. -scriptEvent entity getTarget( float num ); - -// Returns a random targeted entity. Pass in an entity name to skip that entity. -scriptEvent entity randomTarget( string ignoreName ); - -// Fixes this entity's position and orientation relative to another entity, -// such that when the master entity moves, so does thisentity. -scriptEvent void bind( entity master ); - -// Fixes this entity's position (but not orientation) relative to another entity, -// such that when the master entity moves, so does this entity. -scriptEvent void bindPosition( entity master ); - -// Fixes this entity's position and orientation relative to a bone on another entity, -// such that when the master's bone moves, so does this entity. -scriptEvent void bindToJoint( entity master, string boneName, float rotateWithMaster ); - -// Detaches this entity from its master. -scriptEvent void unbind(); - -// Removes all attached entities from the game. -scriptEvent void removeBinds(); - -// Sets the owner of this entity. Entity's will never collide with their owner. -scriptEvent void setOwner( entity owner ); - -// Sets the model this entity uses. -scriptEvent void setModel( string modelName ); - -// Sets the skin this entity uses. Set to "" to turn off the skin. -scriptEvent void setSkin( string skinName ); - -// Returns the current worldspace position of this entity (regardless of any bind parent). -scriptEvent vector getWorldOrigin(); - -// Sets the current position of this entity (regardless of any bind parent). -scriptEvent void setWorldOrigin( vector origin ); - -// Returns the current position of this entity (relative to bind parent if any). -scriptEvent vector getOrigin(); - -// Sets the current position of this entity (relative to it's bind parent if any). -scriptEvent void setOrigin( vector origin ); - -// Returns the current orientation of this entity (relative to bind parent if any). -scriptEvent vector getAngles(); - -// Sets the current orientation of this entity (relative to bind parent if any). -scriptEvent void setAngles( vector angles ); - -// Gets the current linear velocity of this entity. The linear velocity of a physics -// object is a vector that defines the translation of the center of mass in units per second. -scriptEvent vector getLinearVelocity(); - -// Sets the current linear velocity of this entity in units per second. The linear velocity of -// a physics object is a vector that defines the translation of the center of mass in units per second. -scriptEvent void setLinearVelocity( vector velocity ); - -// Gets the current angular velocity of this entity. The angular velocity of -// a physics object is a vector that passes through the center of mass. The -// direction of this vector defines the axis of rotation and the magnitude -// defines the rate of rotation about the axis in radians per second. -scriptEvent vector getAngularVelocity(); - -// Sets the current angular velocity of this entity. The angular velocity of -// a physics object is a vector that passes through the center of mass. The -// direction of this vector defines the axis of rotation and the magnitude -// defines the rate of rotation about the axis in radians per second. -scriptEvent void setAngularVelocity( vector velocity ); - -// Gets the size of this entity's bounding box. -scriptEvent vector getSize(); - -// Sets the size of this entity's bounding box. -scriptEvent void setSize( vector min, vector max ); - -// Gets the minimum corner of this entity's bounding box. -scriptEvent vector getMins(); - -// Gets the maximum corner of this entity's bounding box. -scriptEvent vector getMaxs(); - -// checks if the entity's model is invisible. -scriptEvent float isHidden(); - -// Makes this entity invisible. -scriptEvent void hide(); - -// Makes this entity visible if it has a model. -scriptEvent void show(); - -// Returns true if this entity touches the other entity. -scriptEvent float touches( entity other ); - -// Disables the callback function on the specified signal. -scriptEvent void clearSignal( float signalNum ); - -// Gets the value of the specified shader parm. -scriptEvent float getShaderParm( float parm ); - -// Sets the value of the specified shader parm. -scriptEvent void setShaderParm( float parm, float value ); - -// Sets shader parms Parm0, Parm1, Parm2, and Parm3 (red, green, blue, and alpha respectively). -scriptEvent void setShaderParms( float parm0, float parm1, float parm2, float parm3 ); - -// Sets the RGB color of this entity (shader parms Parm0, Parm1, Parm2). -scriptEvent void setColor( float red, float green, float blue ); - -// Gets the color of this entity (shader parms Parm0, Parm1, Parm2). -scriptEvent vector getColor(); - -// ensure the specified sound shader is loaded by the system. prevents cache hits when playing sound shaders. -scriptEvent void cacheSoundShader( string shaderName ); - -// Plays a specific sound shader on the channel and returns the length of the sound in -// seconds. This is not the prefered method of playing a sound since you must ensure -// that the sound is loaded. -scriptEvent float startSoundShader( string shaderName, float channel ); - -// Stops a specific sound shader on the channel. -scriptEvent void stopSound( float channel, float netSync ); - -// Plays the sound specified by the snd_* key/value pair on the channel and returns -// the length of the sound. This is the preferred method for playing sounds on an -// entity since it ensures that the sound is precached. -scriptEvent float startSound( string sound, float channel, float netSync ); - -// Fades the sound on this entity to a new level over a period of time. Use SND_CHANNEL_ANY for all currently playing sounds. -scriptEvent void fadeSound( float channel, float newLevel, float fadeTime ); - -// Sets a parameter on this entity's GUI. -scriptEvent void setGuiParm( string key, string value ); - -// Sets a parameter on this entity's GUI. -scriptEvent void setGuiFloat( string key, float value ); - -// searches for the name of a spawn arg that matches the prefix. for example, -// passing in "attack_target" matches "attack_target1", "attack_targetx", "attack_target_enemy", -// etc. The returned string is the name of the key which can then be passed into -// functions like getKey() to lookup the value of that spawn arg. This -// is usefull for when you have multiple values to look up, like when you -// target multiple objects. To find the next matching key, pass in the previous -// result and the next key returned will be the first one that matches after -// the previous result. pass in "" to get the first match. returns "" when no -// more keys match. Note to coders: this is the same as MatchPrefix in the game code. -scriptEvent string getNextKey( string prefix, string lastMatch ); - -// Sets a key on this entity's spawn args. Note that most spawn args are evaluated when -// this entity spawns in, so this will not change the entity's behavior in most cases. -// This is chiefly for saving data the script needs in an entity for later retrieval. -scriptEvent void setKey( string key, string value ); - -// Retrieves the value of a specific spawn arg. -scriptEvent string getKey( string key ); - -// Retrieves the integer value of a specific spawn arg. -scriptEvent float getIntKey( string key ); - -// Retrieves the floating point value of a specific spawn arg. -scriptEvent float getFloatKey( string key ); - -// Retrieves the vector value of a specific spawn arg. -scriptEvent vector getVectorKey( string key ); - -// Retrieves the entity specified by the spawn arg. -scriptEvent entity getEntityKey( string key ); - -// Returns this entity to the position stored in the "origin" spawn arg. -// This is the position the entity was spawned in unless the "origin" key is changed. -// Note that there is no guarantee that the entity won't be stuck in another entity -// when moved, so care should be taken to make sure that isn't possible. -scriptEvent void restorePosition(); - -// Returns the distance of this entity to another entity. -scriptEvent float distanceTo( entity other ); - -// Returns the distance of this entity to a point. -scriptEvent float distanceToPoint( vector point ); - -// Starts an FX on this entity. -scriptEvent void startFx( string fx ); - -// Suspends execution of current thread for one game frame. -scriptEvent void waitFrame(); - -// Suspends execution of the current thread for the given number of seconds. -scriptEvent void wait( float time ); - -// checks if an entity's script object has a specific function -scriptEvent float hasFunction( string functionName ); - -// calls a function on an entity's script object -scriptEvent void callFunction( string functionName ); - -// enables or prevents an entity from going dormant -scriptEvent void setNeverDormant( float enable ); - -/*********************************************************************** - - system events (called via 'sys.') - -***********************************************************************/ - -// Terminates a thread. -scriptEvent void terminate( float threadNumber ); - -// Pauses the current thread. -scriptEvent void pause(); - -// Suspends execution of the current thread for the given number of seconds. -scriptEvent void wait( float time ); - -// Suspends execution for one game frame. -scriptEvent void waitFrame(); - -// Waits for the given entity to complete it's move. -scriptEvent void waitFor( entity mover ); - -// Waits for the given thread to terminate. -scriptEvent void waitForThread( float threadNumber ); - -// Prints the given string to the console. -scriptEvent void print( string text ); - -// Prints the given line to the console. -scriptEvent void println( string text ); - -// Multiplayer - Print this line on the network -scriptEvent void say( string text ); - -// Breaks if the condition is zero. (Only works in debug builds.) -scriptEvent void assert( float condition ); - -// Triggers the given entity. -scriptEvent void trigger( entity entityToTrigger ); - -// Sets a cvar. -scriptEvent void setcvar( string name, string value ); - -// Returns the string for a cvar. -scriptEvent string getcvar( string name ); - -// Returns a random value X where 0 <= X < range. -scriptEvent float random( float range ); - -// Returns the current game time in seconds. -scriptEvent float getTime(); - -// Kills all threads with the specified name -scriptEvent void killthread( string threadName ); - -// Sets the name of the current thread. -scriptEvent void threadname( string name ); - -// Returns a reference to the entity with the specified name. -scriptEvent entity getEntity( string name ); - -// Creates an entity of the specified classname and returns a reference to the entity. -scriptEvent entity spawn( string classname ); - -// Respawn -scriptEvent void respawn( ); - -// copies the spawn args from an entity -scriptEvent void copySpawnArgs( entity ent ); - -// Sets a key/value pair to be used when a new entity is spawned. -scriptEvent void setSpawnArg( string key, string value ); - -// Returns the string for the given spawn argument. -scriptEvent string SpawnString( string key, string default ); - -// Returns the floating point value for the given spawn argument. -scriptEvent float SpawnFloat( string key, float default ); - -// Returns the vector for the given spawn argument. -scriptEvent vector SpawnVector( string key, vector default ); - -// clears data that persists between maps -scriptEvent void clearPersistantArgs(); - -// Sets a key/value pair that persists between maps -scriptEvent void setPersistantArg( string key, string value ); - -// Returns the string for the given persistant arg -scriptEvent string getPersistantString( string key ); - -// Returns the floating point value for the given persistant arg -scriptEvent float getPersistantFloat( string key ); - -// Returns the vector for the given persistant arg -scriptEvent vector getPersistantVector( string key ); - -// Returns a forward vector for the given Euler angles. -scriptEvent vector angToForward( vector angles ); - -// Returns a right vector for the given Euler angles. -scriptEvent vector angToRight( vector angles ); - -// Returns an up vector for the given Euler angles. -scriptEvent vector angToUp( vector angles ); - -// Returns the sine of the given angle in degrees. -scriptEvent float sin( float degrees ); - -// Returns the cosine of the given angle in degrees. -scriptEvent float cos( float degrees ); - -// Returns the square root of the given number. -scriptEvent float sqrt( float square ); - -// Returns the normalized version of the given vector. -scriptEvent vector vecNormalize( vector vec ); - -// Returns the length of the given vector. -scriptEvent float vecLength( vector vec ); - -// Returns the dot product of the two vectors. -scriptEvent float DotProduct( vector vec1, vector vec2 ); - -// Returns the cross product of the two vectors. -scriptEvent vector CrossProduct( vector vec1, vector vec2 ); - -// Returns Euler angles for the given direction. -scriptEvent vector VecToAngles( vector vec ); - -// Sets a script callback function for when the given signal is raised on the given entity. -scriptEvent void onSignal( float signalNum, entity ent, string functionName ); - -// Clears the script callback function set for when the given signal is raised on the given entity. -scriptEvent void clearSignalThread( float signalNum, entity ent ); - -// Turns over view control to the given camera entity. -scriptEvent void setCamera( entity cameraEnt ); - -// Returns view control to the player entity. -scriptEvent void firstPerson(); - -// Returns the fraction of movement completed before the box from 'mins' to 'maxs' hits solid geometry -// when moving from 'start' to 'end'. The 'passEntity' is considered non-solid during the move. -scriptEvent float trace( vector start, vector end, vector mins, vector maxs, float contents_mask, entity passEntity ); - -// Returns the fraction of movement completed before the trace hits solid geometry -// when moving from 'start' to 'end'. The 'passEntity' is considered non-solid during the move. -scriptEvent float tracePoint( vector start, vector end, float contents_mask, entity passEntity ); - -// Returns the fraction of movement completed during the last call to trace or tracePoint. -scriptEvent float getTraceFraction(); - -// Returns the position the trace stopped due to a collision with solid geometry during the last call to trace or tracePoint -scriptEvent vector getTraceEndPos(); - -// Returns the normal of the hit plane during the last call to trace or tracePoint -scriptEvent vector getTraceNormal(); - -// Returns a reference to the entity which was hit during the last call to trace or tracePoint -scriptEvent entity getTraceEntity(); - -// Returns the number of the skeletal joint closest to the location on the entity which was hit -// during the last call to trace or tracePoint -scriptEvent string getTraceJoint(); - -// Returns the number of the body part of the entity which was hit during the last call to trace or tracePoint -scriptEvent string getTraceBody(); - -// Fades towards the given color over the given time in seconds. -scriptEvent void fadeIn( vector color, float time ); - -// Fades from the given color over the given time in seconds. -scriptEvent void fadeOut( vector color, float time ); - -// Fades to the given color up to the given alpha over the given time in seconds. -scriptEvent void fadeTo( vector color, float alpha, float time ); - -// Starts playing background music. -scriptEvent void music( string shaderName ); - -// Issues an error. -scriptEvent void error( string text ); - -// Issues a warning. -scriptEvent void warning( string text ); - -// Returns the number of characters in the string -scriptEvent float strLength( string text ); - -// Returns a string composed of the first num characters -scriptEvent string strLeft( string text, float num ); - -// Returns a string composed of the last num characters -scriptEvent string strRight( string text, float num ); - -// Returns the string following the first num characters -scriptEvent string strSkip( string text, float num ); - -// Returns a string composed of the characters from start to start + num -scriptEvent string strMid( string text, float start, float num ); - -// Returns the numeric value of a string -scriptEvent float strToFloat( string text ); - -// damages entities within a radius defined by the damageDef. inflictor is the entity causing the damage and can be the same as the attacker (in the case -// of projectiles, the projectile is the inflictor, while the attacker is the character that fired the projectile). ignore is an entity to not cause damage to. -// dmgPower scales the damage (for cases where damage is dependent on time). -scriptEvent void radiusDamage( vector origin, entity inflictor, entity attacker, entity ignore, string damageDefName, float dmgPower ); - -// networking - checks for client -scriptEvent float isClient(); - -// checks if it's a multiplayer game -scriptEvent float isMultiplayer(); - -// returns the length of time between game frames. this is not related to renderer frame rate. -scriptEvent float getFrameTime(); - -// returns the number of game frames per second. this is not related to renderer frame rate. -scriptEvent float getTicsPerSecond(); - -// ensure the specified sound shader is loaded by the system. prevents cache hits when playing sound shaders. -scriptEvent void cacheSoundShader( string shaderName ); - -// line drawing for debug visualization. lifetime of 0 == 1 frame. -scriptEvent void debugLine( vector color, vector start, vector end, float lifetime ); -scriptEvent void debugArrow( vector color, vector start, vector end, float size, float lifetime ); -scriptEvent void debugCircle( vector color, vector origin, vector dir, float radius, float numSteps, float lifetime ); -scriptEvent void debugBounds( vector color, vector mins, vector maxs, float lifetime ); - -// text drawing for debugging. align can be 0-left, 1-center, 2-right. lifetime of 0 == 1 frame. -scriptEvent void drawText( string text, vector origin, float scale, vector color, float align, float lifetime ); - -// checks if an influence is active -scriptEvent float influenceActive(); - -/*********************************************************************** - - cameras - -***********************************************************************/ - -// Starts a spline or anim camera moving. -scriptEvent void start(); - -// Stops a spline or anim camera moving. -scriptEvent void stop(); - - -/*********************************************************************** - - lights - -***********************************************************************/ - -// Sets the shader to be used for the light. -scriptEvent void setShader( string shader ); - -// Gets a shader parameter. -scriptEvent float getLightParm( float parmNum ); - -// Sets a shader parameter. -scriptEvent void setLightParm( float parmNum, float value ); - -// Sets the red/green/blue/alpha shader parms on the light and the model. -scriptEvent void setLightParms( float parm0, float parm1, float parm2, float parm3 ); - -// Sets the width/length/height of the light bounding box. -scriptEvent void setRadiusXYZ( float x, float y, float z ); - -// Sets the size of the bounding box. -scriptEvent void setRadius( float radius ); - -// Turns the light on. -scriptEvent void On(); - -// Turns the light off. -scriptEvent void Off(); - -// Turns the light out over the given time in seconds. -scriptEvent void fadeOutLight( float time ); - -// Turns the light on over the given time in seconds. -scriptEvent void fadeInLight( float time ); - - -/*********************************************************************** - - func_forcefield - -***********************************************************************/ - -// Turns the forcefield on and off. -scriptEvent void Toggle(); - - -/*********************************************************************** - - func_animate - -***********************************************************************/ - -// Launches a projectile. -scriptEvent void launchMissiles( string projectilename, string sound, string launchbone, string targetbone, float numshots, float framedelay ); - -// Switches to a ragdoll taking over the animation. -scriptEvent void startRagdoll(); - -// Changes to left foot and plays footstep sound. -scriptEvent void leftFoot(); - -// Changes to right foot and plays footstep sound. -scriptEvent void rightFoot(); - - -/*********************************************************************** - - func_movers - -***********************************************************************/ - -// Stops any translational movement. -scriptEvent void stopMoving(); - -// Stops any rotational movement. -scriptEvent void stopRotating(); - -// Sets the movement speed. Set this speed before initiating a new move. -scriptEvent void speed( float speed ); - -// Sets the movement time. Set this time before initiating a new move. -scriptEvent void time( float time ); - -// Sets the deceleration time. Set this deceleration time before initiating a new move. -scriptEvent void decelTime( float time ); - -// Sets the acceleration time. Set this acceleration time before initiating a new move. -scriptEvent void accelTime( float time ); - -// Initiates a translation to the position of an entity. -// Uses the current speed/time and acceleration and deceleration settings. -scriptEvent void moveTo( entity targetEntity ); - -// Initiates a translation to an absolute position. -// Uses the current speed/time and acceleration and deceleration settings. -scriptEvent void moveToPos( vector pos ); - -// Initiates a translation with the given distance in the given yaw direction. -// Uses the current speed/time and acceleration and deceleration settings. -scriptEvent void move( float angle, float distance ); - -// Initiates an acceleration to the given speed over the given time in seconds. -scriptEvent void accelTo( float speed, float time ); - -// Initiates a deceleration to the given speed over the given time in seconds. -scriptEvent void decelTo( float speed, float time ); - -// Initiates a rotation about the given axis by decreasing the current angle towards the given angle. -// Uses the current speed/time and acceleration and deceleration settings. -scriptEvent void rotateDownTo( float axis, float angle ); - -// Initiates a rotation about the given axis by increasing the current angle towards the given angle. -// Uses the current speed/time and acceleration and deceleration settings. -scriptEvent void rotateUpTo( float axis, float angle ); - -// Initiates a rotation towards the given Euler angles. -// Uses the current speed/time and acceleration and deceleration settings. -scriptEvent void rotateTo( vector angles ); - -// Initiates a rotation with the given angular speed. -// Uses the current speed/time and acceleration and deceleration settings. -scriptEvent void rotate( vector angleSpeed ); - -// Initiates a rotation towards the current angles plus the given Euler angles. -// Uses the current speed/time and acceleration and deceleration settings. -scriptEvent void rotateOnce( vector angles ); - -// Initiates a translation back and forth along the given vector with the given speed and sphase. -scriptEvent void bob( float speed, float phase, vector distance ); - -// Initiates a rotation back and forth along the given angles with the given speed and phase. -scriptEvent void sway( float speed, float phase, vector angles ); - -// Opens the renderer portal associated with this mover. -scriptEvent void openPortal(); - -// Closes the renderer portal associated with this mover. -scriptEvent void closePortal(); - -// Sets the sound to be played when the mover accelerates. -scriptEvent void accelSound( string sound ); - -// Sets the sound to be played when the mover decelerates. -scriptEvent void decelSound( string sound ); - -// Sets the sound to be played when the moving. -scriptEvent void moveSound( string sound ); - -// Enables aligning the mover with the spline direction. -scriptEvent void enableSplineAngles(); - -// Disables aligning the mover with the spline direction. -scriptEvent void disableSplineAngles(); - -// Subtracts the initial spline angles to maintain the initial orientation of the mover. -scriptEvent void removeInitialSplineAngles(); - -// Starts moving along a spline stored on the given entity. -scriptEvent void startSpline( entity spline ); - -// Stops moving along a spline. -scriptEvent void stopSpline(); - -// Returns true if a mover is moving -scriptEvent float isMoving(); - -// Returns true if a mover is rotating -scriptEvent float isRotating(); - -/*********************************************************************** - - doors - -***********************************************************************/ - -// Enables the door. -scriptEvent void enable(); - -// Disables the door. -scriptEvent void disable(); - -// Opens the door. -scriptEvent void open(); - -// Closes the door. -scriptEvent void close(); - -// Locks or unlocks the door. -scriptEvent void lock( float locked ); - -// Returns true if the door is open. -scriptEvent float isOpen(); - -// Returns true if the door is locked. -scriptEvent float isLocked(); - - -/*********************************************************************** - - four fingered claw - -***********************************************************************/ - -scriptEvent void setFingerAngle( float angle ); -scriptEvent void stopFingers(); - - -/*********************************************************************** - - func_moveable - -***********************************************************************/ - -// Makes the moveable non-solid for other entities. -scriptEvent void becomeNonSolid(); - -// returns true if object is not moving -scriptEvent float isAtRest(); - -// enable/disable damage -scriptEvent void enableDamage( float enable ); - - -/*********************************************************************** - - skeletal animation (weapons, players, ai, func_animated) - -***********************************************************************/ - -// Looks up the number of the specified joint. Returns INVALID_JOINT if the joint is not found. -scriptEvent float getJointHandle( string jointname ); - -// Removes any custom transforms on all joints. -scriptEvent void clearAllJoints(); - -// Removes any custom transforms on the specified joint. -scriptEvent void clearJoint( float jointnum ); - -// Modifies the position of the joint based on the transform type. -scriptEvent void setJointPos( float jointnum, float transform_type, vector pos ); - -// Modifies the orientation of the joint based on the transform type. -scriptEvent void setJointAngle( float jointnum, float transform_type, vector angles ); - -// returns the position of the joint in world space -scriptEvent vector getJointPos( float jointnum ); - -// returns the angular orientation of the joint in world space -scriptEvent vector getJointAngle( float jointnum ); - - -/*********************************************************************** - - projectiles - -***********************************************************************/ - -// gets the current state of the projectile. states are defined in doom_defs.script -scriptEvent float getProjectileState(); - -/*********************************************************************** - - combat nodes - -***********************************************************************/ - -// Disables the combat node if "use_once" is set on the entity. -scriptEvent void markUsed(); - - -/*********************************************************************** - - actors (players and AI) - -***********************************************************************/ - -// Moves the constraint with the given name that binds this entity to another entity. -scriptEvent void SetConstraintPosition( string constraintName, vector position ); - -// Enables eye focus. -scriptEvent void enableEyeFocus(); - -// Disables eye focus. -scriptEvent void disableEyeFocus(); - -// Changes to left foot and plays footstep sound. -scriptEvent void leftFoot(); - -// Changes to right foot and plays footstep sound. -scriptEvent void rightFoot(); - -// Stops the animation currently playing on the given channel over the given number of frames. -scriptEvent void stopAnim( float channel, float frames ); - -// Plays the given animation on the given channel. Returns false if anim doesn't exist. -scriptEvent float playAnim( float channel, string animName ); - -// Continuously repeats the given animation on the given channel. Returns false if anim doesn't exist. -scriptEvent float playCycle( float channel, string animName ); - -// Plays the given idle animation on the given channel. Returns false if anim doesn't exist. -scriptEvent float idleAnim( float channel, string animName ); - -// sets the blend amount on multi-point anims. -scriptEvent void setSyncedAnimWeight( float channel, float animindex, float weight ); - -// Sets the number of frames to blend between animations on the given channel. -scriptEvent void setBlendFrames( float channel, float blendFrame ); - -// Returns the number of frames to blend between animations on the given channel. -scriptEvent float getBlendFrames( float channel ); - -// Sets a new animation state script function for the given channel. -scriptEvent void animState( float channel, string stateFunction, float blendFrame ); - -// Returns the name of the current animation state script function used for the given channel. -scriptEvent string getAnimState( float channel ); - -// Returns true if the given animation state script function is currently used for the given channel. -scriptEvent float inAnimState( float channel, string stateFunc ); - -// Finishes the given wait action. -scriptEvent void finishAction( string action ); - -// Returns true if the animation playing on the given channel -// is completed considering a number of blend frames. -scriptEvent float animDone( float channel, float blendOutFrames ); - -// Disables the animation currently playing on the given channel and syncs -// the animation with the animation of the nearest animating channel. -scriptEvent void overrideAnim( float channel ); - -// Prevents any pain animation from being played for the given time in seconds. -scriptEvent void preventPain( float duration ); - -// Enables animation on the given channel. -scriptEvent void enableAnim( float channel, float blendFrames ); - -// Disables pain animations. -scriptEvent void disablePain(); - -// Enables pain animations. -scriptEvent void enablePain(); - -// Returns the name of the pain animation. -scriptEvent string getPainAnim(); - -// Sets a string which is placed in front of any animation names. -scriptEvent void setAnimPrefix( string prefix ); - -// Returns true when an entity has a specific animation. -scriptEvent float hasAnim( float channel, string animName ); - -// Ensures that the animation exists and causes an error if it doesn't. -scriptEvent void checkAnim( float channel, string animName ); - -// Chooses a random anim and returns the name. Useful for doing move tests on anims. -scriptEvent string chooseAnim( float channel, string animName ); - -// Returns the length of the anim in seconds. If the entity has multiple anims with animName, -// length may not match the anim that is played. Use chooseAnim to get a non-random anim -// and pass that string into animLength. -scriptEvent float animLength( float channel, string animName ); - -// Returns the distance that the anim travels. If the entity has multiple anims with animName, -// the distance may not match the anim that is played. Use chooseAnim to get a non-random anim -// and pass that string into animDistance. -scriptEvent float animDistance( float channel, string animName ); - -// Returns true if the actor has one or more enemies. -scriptEvent float hasEnemies(); - -// Returns the next enemy the actor has acquired. -scriptEvent entity nextEnemy( entity lastEnemy ); - -// Returns the enemy closest to the given location. -scriptEvent entity closestEnemyToPoint( vector point ); - -// sets the next state and waits until thread exits, or a frame delay before calling it. handy for setting the state in the constructor. -scriptEvent void setNextState( string stateFunc ); - -// sets the next state and goes to it immediately -scriptEvent void setState( string stateFunc ); -scriptEvent string getState(); - -// returns the entity used for the character's head, if it has one. -scriptEvent entity getHead(); - -/*********************************************************************** - - players - -***********************************************************************/ - -// Returns the button state from the current user command. -scriptEvent float getButtons(); - -// Returns the movement relative to the player's view angles from the current user command. -// vector_x = forward, vector_y = right, vector_z = up -scriptEvent vector getMove(); - -// Returns the player view angles. -scriptEvent vector getViewAngles(); - -// Enables the player weapon. -scriptEvent void enableWeapon(); - -// Lowers and disables the player weapon. -scriptEvent void disableWeapon(); - -// Returns "weaponX" where X is the number of the weapon the player is currently holding. -scriptEvent string getCurrentWeapon(); - -// Returns "weaponX" where X is the number of the weapon the player was previously holding. -scriptEvent string getPreviousWeapon(); - -// Selects the weapon the player is holding. -scriptEvent void selectWeapon( string weapon ); - -// Returns the entity for the player's weapon -scriptEvent entity getWeaponEntity(); - -// Opens the player's PDA. -scriptEvent void openPDA(); - -// Returns true if the player has the PDA open. -scriptEvent float inPDA(); - -/*********************************************************************** - - path nodes - -***********************************************************************/ - -// chooses a random path from the entity's targets, ignoring non-path entities. -scriptEvent entity randomPath(); - - -/*********************************************************************** - - AI characters and monsters - -***********************************************************************/ - -// finds enemy player in PVS -scriptEvent entity findEnemy( float onlyInFov ); - -// finds enemy monster in PVS -scriptEvent entity findEnemyAI( float onlyInFov ); - -// finds enemy player in attack cones -scriptEvent entity findEnemyInCombatNodes(); - -// finds another character's closest reachable enemy -scriptEvent entity closestReachableEnemyOfEntity( entity team_mate ); - -scriptEvent entity heardSound( float ignore_team ); -scriptEvent void setEnemy( entity enemy ); -scriptEvent void clearEnemy(); -scriptEvent void muzzleFlash( string jointname ); - -// returns projectile created -scriptEvent entity createMissile( string jointname ); - -// returns projectile fired -scriptEvent entity attackMissile( string jointname ); - -// launches a missile at entity specified by 'attack_target'. returns projectile fired -scriptEvent entity fireMissileAtTarget( string jointname, string targetname ); - -// returns the projectile entity -scriptEvent entity launchMissile( vector origin, vector angles ); - -// returns true if the attack hit -scriptEvent float attackMelee( string damageDef ); -scriptEvent void directDamage( entity damageTarget, string damageDef ); -scriptEvent void radiusDamageFromJoint( string jointname, string damageDef ); -scriptEvent void attackBegin( string damageDef ); -scriptEvent void attackEnd(); -scriptEvent float meleeAttackToJoint( string joint, string damageDef ); -scriptEvent entity randomPath(); -scriptEvent float canBecomeSolid(); -scriptEvent void becomeSolid(); -scriptEvent void becomeNonSolid(); - -// enables the ragdoll if the entity has one -scriptEvent float becomeRagdoll(); - -// turns off the ragdoll -scriptEvent void stopRagdoll(); - -scriptEvent void setHealth( float health ); -scriptEvent float getHealth(); -scriptEvent void allowDamage(); -scriptEvent void ignoreDamage(); -scriptEvent float getCurrentYaw(); -scriptEvent void turnTo( float yaw ); -scriptEvent void turnToPos( vector pos ); -scriptEvent void turnToEntity( entity ent ); -scriptEvent float moveStatus(); -scriptEvent void stopMove(); -scriptEvent void moveToCover(); -scriptEvent void moveToEnemy(); -scriptEvent void moveToEnemyHeight(); -scriptEvent void moveOutOfRange( entity ent, float range ); -scriptEvent void moveToAttackPosition( entity ent, string attack_anim ); -scriptEvent void wander(); -scriptEvent void moveToEntity( entity destination ); -scriptEvent void moveToPosition( vector position ); -scriptEvent void slideTo( vector position, float time ); -scriptEvent float facingIdeal(); -scriptEvent void faceEnemy(); -scriptEvent void faceEntity( entity ent ); -scriptEvent entity getCombatNode(); -scriptEvent float enemyInCombatCone( entity combatNode, float use_current_enemy_location ); -scriptEvent void waitMove(); -scriptEvent vector getJumpVelocity( vector pos, float speed, float max_jump_height ); -scriptEvent float entityInAttackCone( entity ent ); -scriptEvent float canSee( entity ent ); -scriptEvent float enemyRange(); -scriptEvent float enemyRange2D(); - -// sets the entity (player) trying to talk to the character -scriptEvent void setTalkTarget( entity target ); - -// returns the entity (player) trying to talk to the character -scriptEvent entity getTalkTarget(); - -scriptEvent entity getEnemy(); -scriptEvent vector getEnemyPos(); -scriptEvent vector getEnemyEyePos(); - -// Tries to predict the player's movement based on the AAS and his direction of movement. -scriptEvent vector predictEnemyPos( float time ); - -scriptEvent float canHitEnemy(); -scriptEvent float canHitEnemyFromAnim( string anim ); -scriptEvent float canHitEnemyFromJoint( string jointname ); -scriptEvent float enemyPositionValid(); -scriptEvent void chargeAttack( string damageDef ); -scriptEvent float testChargeAttack(); -scriptEvent float testAnimMoveTowardEnemy( string animname ); -scriptEvent float testAnimMove( string animname ); -scriptEvent float testMoveToPosition( vector position ); -scriptEvent float testMeleeAttack(); -scriptEvent float testAnimAttack( string animname ); -scriptEvent void shrivel( float time ); -scriptEvent void preBurn(); -scriptEvent void burn(); -scriptEvent void clearBurn(); - -// enables/disables smoke particles on bones. pass in the particle #, or ALL_PARTICLES for turning on/off all particle systems. -// particles are spawned in the order they appear in the entityDef -scriptEvent void setSmokeVisibility( float particle_num, float on ); - -// returns the # of emitters defined by 'smokeParticleSystem' in the entitydef -scriptEvent float numSmokeEmitters(); - -scriptEvent void waitAction( string name ); -scriptEvent void stopThinking(); -scriptEvent float getTurnDelta(); - -// returns the current movetype -scriptEvent float getMoveType(); - -// set the current movetype. movetypes are defined in ai_base.script -scriptEvent void setMoveType( float movetype ); - -scriptEvent void saveMove(); -scriptEvent void restoreMove(); -scriptEvent void allowMovement( float allow ); -scriptEvent void enableClip(); -scriptEvent void disableClip(); -scriptEvent void enableGravity(); -scriptEvent void disableGravity(); -scriptEvent void enableAFPush(); -scriptEvent void disableAFPush(); - -// set the speed flying creatures move at. also sets speed for moveTypeSlide. -scriptEvent void setFlySpeed( float speed ); - -// sets the prefered height relative to the player's view height to fly at -scriptEvent void setFlyOffset( float offset ); - -// sets the prefered height relative to the player's view height to fly at to the value set in the def file -scriptEvent void clearFlyOffset(); - -// Finds the closest targeted entity of the specified type. -scriptEvent entity getClosestHiddenTarget( string entity_type ); - -// Finds a random targeted entity of the specified type. -scriptEvent entity getRandomTarget( string entity_type ); - -// Approximate travel distance to point. -scriptEvent float travelDistanceToPoint( vector destination ); - -// Approximate travel distance to entity. -scriptEvent float travelDistanceToEntity( entity destination ); - -// Approximate travel distance between two entities. -scriptEvent float travelDistanceBetweenEntities( entity source, entity dest ); - -// Approximate travel distance between two points. -scriptEvent float travelDistanceBetweenPoints( vector source, vector dest ); - -// Aims the character's eyes and head toward an entity for a period of time. -scriptEvent void lookAt( entity focusEntity, float duration ); - -// Aims the character's eyes and head toward the current enemy for a period of time. -scriptEvent void lookAtEnemy( float duration ); - -// Enables or disables head looking (may be obsolete). -scriptEvent void setBoneMod( float allowBoneMod ); - -// Kills the monster. -scriptEvent void kill(); - -// Tells the monster to activate when flashlight shines on them. -scriptEvent void wakeOnFlashlight( float enable ); - -// Sets whether the player can talk to this character or not. -scriptEvent void setTalkState( float state ); - -// Updates the last known position of the enemy independent -// from whether or not the enemy is visible. -scriptEvent void locateEnemy(); - -// kicks any obstacle in the character's path. pass in $null_entity if you don't have a specific entity to kick. -scriptEvent void kickObstacles( entity kickEnt, float force ); - -// gets the obstacle in the character's path -scriptEvent entity getObstacle(); - -// tries to push the point into a valid AAS area -scriptEvent vector pushPointIntoAAS( vector pos ); - -// gets the rate the character turns -scriptEvent float getTurnRate(); - -// set the rate the character turns at -scriptEvent void setTurnRate( float rate ); - -// enable/disable animation controlled turning. pass in the maximum # of degrees the animation turns. use an amount of 0 to disable. -scriptEvent void animTurn( float angle ); - -// normally, when hidden, monsters do not run physics. this enables physics when hidden. -scriptEvent void allowHiddenMovement( float enable ); - -// returns an entity within the bounds specified -scriptEvent entity findActorsInBounds( vector mins, vector maxs ); - -// returns true if character can walk to specified position. for walking monsters, position should be near the floor. -scriptEvent float canReachPosition( vector pos ); - -// returns true if character can walk to entity's position. for walking monsters, entity should be near the floor. -scriptEvent float canReachEntity( entity ent ); - -// returns true if character can walk to enemy's position. for walking monsters, enemy should be near the floor. -scriptEvent float canReachEnemy(); - -// returns the position of the entity within the aas if possible, otherwise just the entity position. -scriptEvent vector getReachableEntityPosition( entity ent ); - -/*********************************************************************** - - AI - Vagary - -***********************************************************************/ - -// finds a moveable object to throw at the enemy -scriptEvent entity vagary_ChooseObjectToThrow( vector mins, vector maxs, float speed, float minDist, float offset ); - -// throws object at enemy -scriptEvent void vagary_ThrowObjectAtEnemy( entity ent, float speed ); +/* +================================================================================================ + + Script Events + +================================================================================================ +*/ + +/* ++- idEntity + |- idActivator + |- idAnimatedEntity + | |- idAFAttachment + | |- idAFEntity_Base + | | |- idAFEntity_ClawFourFingers + | | |- idAFEntity_Gibbable + | | | |- idActor + | | | | |- idAI + | | | | | +- idAI_Vagary + | | | | +- idPlayer + | | | | +- rvmBot + | | | |- idAFEntity_Generic + | | | |- idAFEntity_WithAttachedHead + | | | +- idAnimated + | | |- idAFEntity_SteamPipe + | | +- idAFEntity_Vehicle + | | |- idAFEntity_VehicleFourWheels + | | |- idAFEntity_VehicleSimple + | | +- idAFEntity_VehicleSixWheels + | |- idTestModel + | +- idWeapon + |- idBeam + |- idBrittleFracture + |- idCamera + | |- idCameraAnim + | +- idCameraView + |- idCombatNode + |- idCursor3D + |- idDamagable + |- idDebris + |- idEarthQuake + |- idEntityFx + | +- idTeleporter + |- idExplodable + |- idForceField + |- idFuncAASObstacle + |- idFuncAASPortal + |- idFuncPortal + |- idFuncRadioChatter + |- idFuncSmoke + |- idItem + | |- idItemPowerup + | |- idMoveableItem + | | +- idMoveablePDAItem + | |- idObjective + | |- idPDAItem + | +- idVideoCDItem + |- idItemRemover + | +- idObjectiveComplete + |- idLight + |- idLiquid + |- idLocationEntity + |- idLocationSeparatorEntity + |- idMoveable + | +- idBarrel + | +- idExplodingBarrel + |- idMover + | +- idElevator + |- idMover_Binary + | |- idDoor + | +- idPlat + |- idMover_Periodic + | |- idBobber + | |- idPendulum + | |- idRiser + | +- idRotater + |- idMultiModelAF + | +- idChain + |- idPathCorner + |- idPhantomObjects + |- idPlayerStart + |- idProjectile + | |- idBFGProjectile + | +- idGuidedProjectile + | +- idSoulCubeMissile + |- idSecurityCamera + |- idShaking + |- idSound + |- idSpawnableEntity + |- idSplinePath + |- idSpring + |- idStaticEntity + | +- idFuncEmitter + | +- idFuncSplat + |- idTarget + | |- idTarget_CallObjectFunction + | |- idTarget_Damage + | |- idTarget_EnableLevelWeapons + | |- idTarget_EnableStamina + | |- idTarget_EndLevel + | |- idTarget_FadeEntity + | |- idTarget_FadeSoundClass + | |- idTarget_Give + | |- idTarget_GiveEmail + | |- idTarget_GiveSecurity + | |- idTarget_LevelTrigger + | |- idTarget_LightFadeIn + | |- idTarget_LightFadeOut + | |- idTarget_LockDoor + | |- idTarget_Remove + | |- idTarget_RemoveWeapons + | |- idTarget_SessionCommand + | |- idTarget_SetFov + | |- idTarget_SetGlobalShaderTime + | |- idTarget_SetInfluence + | |- idTarget_SetKeyVal + | |- idTarget_SetModel + | |- idTarget_SetPrimaryObjective + | |- idTarget_SetShaderParm + | |- idTarget_SetShaderTime + | |- idTarget_Show + | |- idTarget_Tip + | +- idTarget_WaitForButton + |- idTextEntity + |- idTrigger + | |- idTrigger_Count + | |- idTrigger_EntityName + | |- idTrigger_Fade + | |- idTrigger_Hurt + | |- idTrigger_Multi + | |- idTrigger_Timer + | +- idTrigger_Touch + |- idVacuumEntity + |- idVacuumSeparatorEntity + +- idWorldspawn +*/ + +/* +================================================ + idEntity +================================================ +*/ + +scriptEvent string getName( ); +scriptEvent void setName( string arg0 ); +scriptEvent void activateTargets( entity arg0 ); +scriptEvent float numTargets( ); +scriptEvent entity getTarget( float index ); +scriptEvent entity randomTarget( string arg0 ); +scriptEvent void bind( entity arg0 ); +scriptEvent void bindPosition( entity arg0 ); +scriptEvent void bindToJoint( entity arg0, string arg1, float orientated ); +scriptEvent void unbind( ); +scriptEvent void removeBinds( ); +scriptEvent void setOwner( entity arg0 ); +scriptEvent void setModel( string arg0 ); +scriptEvent void setSkin( string arg0 ); +scriptEvent float getShaderParm( float parmnum ); +scriptEvent void setShaderParm( float parmnum, float value ); +scriptEvent void setShaderParms( float parm0, float parm1, float parm2, float parm3 ); +scriptEvent void setColor( float red, float green, float blue ); +scriptEvent vector getColor( ); +scriptEvent float isHidden( ); +scriptEvent void hide( ); +scriptEvent void show( ); +scriptEvent void cacheSoundShader( string arg0 ); +scriptEvent float startSoundShader( string arg0, float channel ); +scriptEvent void stopSound( float channel, float netSync ); +scriptEvent float startSound( string arg0, float channel, float netSync ); +scriptEvent void fadeSound( float channel, float to, float over ); +scriptEvent vector getWorldOrigin( ); +scriptEvent void setWorldOrigin( vector arg0 ); +scriptEvent vector getOrigin( ); +scriptEvent void setOrigin( vector arg0 ); +scriptEvent vector getAngles( ); +scriptEvent void setAngles( vector arg0 ); +scriptEvent void setLinearVelocity( vector arg0 ); +scriptEvent vector getLinearVelocity( ); +scriptEvent void setAngularVelocity( vector arg0 ); +scriptEvent vector getAngularVelocity( ); +scriptEvent void setSize( vector arg0, vector arg1 ); +scriptEvent vector getSize( ); +scriptEvent vector getMins( ); +scriptEvent vector getMaxs( ); +scriptEvent float touches( entity arg0 ); +scriptEvent void setGuiParm( string arg0, string arg1 ); +scriptEvent void setGuiFloat( string arg0, float f ); +scriptEvent string getNextKey( string arg0, string arg1 ); +scriptEvent void setKey( string arg0, string arg1 ); +scriptEvent string getKey( string arg0 ); +scriptEvent float getIntKey( string arg0 ); +scriptEvent float getFloatKey( string arg0 ); +scriptEvent vector getVectorKey( string arg0 ); +scriptEvent entity getEntityKey( string arg0 ); +scriptEvent void restorePosition( ); +scriptEvent float distanceTo( entity arg0 ); +scriptEvent float distanceToPoint( vector arg0 ); +scriptEvent void startFx( string arg0 ); +scriptEvent void waitFrame( ); +scriptEvent void wait( float time ); +scriptEvent float hasFunction( string arg0 ); +scriptEvent void callFunction( string arg0 ); +scriptEvent void setNeverDormant( float enable ); +/* +================================================ + idAnimatedEntity +================================================ +*/ + +scriptEvent float getJointHandle( string arg0 ); +scriptEvent void clearAllJoints( ); +scriptEvent void clearJoint( float jointnum ); +scriptEvent void setJointPos( float jointnum, float transform_type, vector arg2 ); +scriptEvent void setJointAngle( float jointnum, float transform_type, vector arg2 ); +scriptEvent vector getJointPos( float jointnum ); +scriptEvent vector getJointAngle( float jointnum ); +/* +================================================ + idAFEntity_Base +================================================ +*/ + +scriptEvent void SetConstraintPosition( string arg0, vector arg1 ); +/* +================================================ + idAFEntity_Gibbable +================================================ +*/ + +scriptEvent void gib( string arg0 ); +/* +================================================ + idAFEntity_Generic +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idAFEntity_WithAttachedHead +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idAFEntity_ClawFourFingers +================================================ +*/ + +scriptEvent void setFingerAngle( float angle ); +scriptEvent void stopFingers( ); +/* +================================================ + idPlayerStart +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idActivator +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idPathCorner +================================================ +*/ + +scriptEvent entity randomPath( ); +/* +================================================ + idDamagable +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idExplodable +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idSpring +================================================ +*/ + +/* +================================================ + idForceField +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +scriptEvent void Toggle( ); +/* +================================================ + idAnimated +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +scriptEvent void startRagdoll( ); +scriptEvent void rightFoot( ); +scriptEvent void launchMissiles( string arg0, string arg1, string arg2, string arg3, float numshots, float framedelay ); +/* +================================================ + idStaticEntity +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idFuncEmitter +================================================ +*/ + +/* +================================================ + idFuncSmoke +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idFuncSplat +================================================ +*/ + +/* +================================================ + idVacuumSeparatorEntity +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idBeam +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idLiquid +================================================ +*/ + +/* +================================================ + idShaking +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idEarthQuake +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idFuncPortal +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idFuncAASPortal +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idFuncAASObstacle +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idFuncRadioChatter +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idPhantomObjects +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idActor +================================================ +*/ + +scriptEvent void enableEyeFocus( ); +scriptEvent void disableEyeFocus( ); +scriptEvent void rightFoot( ); +scriptEvent void EnableWalkIK( ); +scriptEvent void DisableWalkIK( ); +scriptEvent void EnableLegIK( float num ); +scriptEvent void DisableLegIK( float num ); +scriptEvent void setAnimPrefix( string arg0 ); +scriptEvent void preventPain( float duration ); +scriptEvent void disablePain( ); +scriptEvent void enablePain( ); +scriptEvent string getPainAnim( ); +scriptEvent void stopAnim( float channel, float frames ); +scriptEvent float playAnim( float channel, string arg1 ); +scriptEvent float playCycle( float channel, string arg1 ); +scriptEvent float idleAnim( float channel, string arg1 ); +scriptEvent void setSyncedAnimWeight( float channel, float anim, float weight ); +scriptEvent void overrideAnim( float channel ); +scriptEvent void enableAnim( float channel, float blendFrames ); +scriptEvent void setBlendFrames( float channel, float blendFrames ); +scriptEvent float getBlendFrames( float channel ); +scriptEvent void animState( float channel, string arg1, float blendFrames ); +scriptEvent string getAnimState( float channel ); +scriptEvent float inAnimState( float channel, string arg1 ); +scriptEvent void finishAction( string arg0 ); +scriptEvent float animDone( float channel, float blendFrames ); +scriptEvent float hasAnim( float channel, string arg1 ); +scriptEvent void checkAnim( float channel, string arg1 ); +scriptEvent string chooseAnim( float channel, string arg1 ); +scriptEvent float animLength( float channel, string arg1 ); +scriptEvent float animDistance( float channel, string arg1 ); +scriptEvent float hasEnemies( ); +scriptEvent entity nextEnemy( entity arg0 ); +scriptEvent entity closestEnemyToPoint( vector arg0 ); +scriptEvent void setNextState( string arg0 ); +scriptEvent void setState( string arg0 ); +scriptEvent string getState( ); +scriptEvent entity getHead( ); +/* +================================================ + idProjectile +================================================ +*/ + +scriptEvent float getProjectileState( ); +/* +================================================ + idBFGProjectile +================================================ +*/ + +/* +================================================ + idDebris +================================================ +*/ + +/* +================================================ + idWeapon +================================================ +*/ + +scriptEvent void grabberGrabDistance( float dist ); +/* +================================================ + idLight +================================================ +*/ + +scriptEvent void setShader( string arg0 ); +scriptEvent float getLightParm( float parmnum ); +scriptEvent void setLightParm( float parmnum, float value ); +scriptEvent void setLightParms( float parm0, float parm1, float parm2, float parm3 ); +scriptEvent void setRadiusXYZ( float x, float y, float z ); +scriptEvent void setRadius( float radius ); +scriptEvent void On( ); +scriptEvent void Off( ); +scriptEvent void activate( entity arg0 ); +scriptEvent void fadeOutLight( float time ); +scriptEvent void fadeInLight( float time ); +/* +================================================ + idWorldspawn +================================================ +*/ + +scriptEvent void remove( ); +/* +================================================ + idItem +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +scriptEvent void respawn( ); +/* +================================================ + idObjective +================================================ +*/ + +/* +================================================ + idMoveableItem +================================================ +*/ + +scriptEvent void gib( string arg0 ); +/* +================================================ + idItemRemover +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idObjectiveComplete +================================================ +*/ + +/* +================================================ + idPlayer +================================================ +*/ + +scriptEvent void stopAudioLog( ); +scriptEvent float getButtons( ); +scriptEvent vector getMove( ); +scriptEvent vector getViewAngles( ); +scriptEvent void stopFxFov( ); +scriptEvent void enableWeapon( ); +scriptEvent void disableWeapon( ); +scriptEvent string getCurrentWeapon( ); +scriptEvent string getPreviousWeapon( ); +scriptEvent void selectWeapon( string arg0 ); +scriptEvent entity getWeaponEntity( ); +scriptEvent void openPDA( ); +scriptEvent float inPDA( ); +scriptEvent void exitTeleporter( ); +scriptEvent void hideTip( ); +scriptEvent void levelTrigger( ); +scriptEvent string getIdealWeapon( ); +/* +================================================ + idMover +================================================ +*/ + +scriptEvent void openPortal( ); +scriptEvent void closePortal( ); +scriptEvent void stopMoving( ); +scriptEvent void stopRotating( ); +scriptEvent void speed( float speed ); +scriptEvent void time( float time ); +scriptEvent void decelTime( float time ); +scriptEvent void accelTime( float time ); +scriptEvent void moveTo( entity arg0 ); +scriptEvent void moveToPos( vector arg0 ); +scriptEvent void move( float angle, float distance ); +scriptEvent void accelTo( float speed, float time ); +scriptEvent void decelTo( float speed, float time ); +scriptEvent void rotateDownTo( float axis, float angle ); +scriptEvent void rotateUpTo( float axis, float angle ); +scriptEvent void rotateTo( vector arg0 ); +scriptEvent void rotate( vector arg0 ); +scriptEvent void rotateOnce( vector arg0 ); +scriptEvent void bob( float speed, float phase, vector arg2 ); +scriptEvent void sway( float speed, float phase, vector arg2 ); +scriptEvent void accelSound( string arg0 ); +scriptEvent void decelSound( string arg0 ); +scriptEvent void moveSound( string arg0 ); +scriptEvent void enableSplineAngles( ); +scriptEvent void disableSplineAngles( ); +scriptEvent void removeInitialSplineAngles( ); +scriptEvent void startSpline( entity arg0 ); +scriptEvent void stopSpline( ); +scriptEvent void activate( entity arg0 ); +scriptEvent float isMoving( ); +scriptEvent float isRotating( ); +/* +================================================ + idElevator +================================================ +*/ + +scriptEvent void gotoFloor( float floor ); +scriptEvent void postArrival( ); +/* +================================================ + idMover_Binary +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +scriptEvent void enable( ); +scriptEvent void disable( ); +scriptEvent void openPortal( ); +scriptEvent void closePortal( ); +/* +================================================ + idDoor +================================================ +*/ + +scriptEvent void close( ); +scriptEvent void open( ); +scriptEvent void lock( float f ); +scriptEvent float isOpen( ); +scriptEvent float isLocked( ); +/* +================================================ + idPlat +================================================ +*/ + +/* +================================================ + idMover_Periodic +================================================ +*/ + +/* +================================================ + idRotater +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idRiser +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idCameraView +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idCameraAnim +================================================ +*/ + +scriptEvent void start( ); +scriptEvent void stop( ); +scriptEvent void setAnim( string arg0 ); +scriptEvent void activate( entity arg0 ); +/* +================================================ + idMoveable +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +scriptEvent void becomeNonSolid( ); +scriptEvent float isAtRest( ); +scriptEvent void enableDamage( float enable ); +/* +================================================ + idExplodingBarrel +================================================ +*/ + +/* +================================================ + idTarget_Remove +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_Show +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_Damage +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_SessionCommand +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_EndLevel +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_WaitForButton +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_SetGlobalShaderTime +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_SetShaderParm +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_SetShaderTime +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_FadeEntity +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_LightFadeIn +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_LightFadeOut +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_Give +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_GiveEmail +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_SetModel +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_SetInfluence +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_SetKeyVal +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_SetFov +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_SetPrimaryObjective +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_LockDoor +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_CallObjectFunction +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_EnableLevelWeapons +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_Tip +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_GiveSecurity +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_RemoveWeapons +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_LevelTrigger +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_EnableStamina +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTarget_FadeSoundClass +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTrigger +================================================ +*/ + +scriptEvent void enable( ); +scriptEvent void disable( ); +/* +================================================ + idTrigger_Multi +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTrigger_EntityName +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTrigger_Timer +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTrigger_Count +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTrigger_Hurt +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTrigger_Fade +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idTrigger_Touch +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idSound +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +scriptEvent void On( ); +scriptEvent void Off( ); +/* +================================================ + idEntityFx +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +scriptEvent void _killfx( ); +/* +================================================ + idTeleporter +================================================ +*/ + +scriptEvent void _fxAction( entity arg0 ); +/* +================================================ + idSecurityCamera +================================================ +*/ + +/* +================================================ + idBrittleFracture +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +/* +================================================ + idAI +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +scriptEvent entity findEnemy( float useFOV ); +scriptEvent entity findEnemyAI( float useFOV ); +scriptEvent entity findEnemyInCombatNodes( ); +scriptEvent entity closestReachableEnemyOfEntity( entity arg0 ); +scriptEvent entity heardSound( float ignore_team ); +scriptEvent void setEnemy( entity arg0 ); +scriptEvent void clearEnemy( ); +scriptEvent void muzzleFlash( string arg0 ); +scriptEvent entity createMissile( string arg0 ); +scriptEvent entity attackMissile( string arg0 ); +scriptEvent entity fireMissileAtTarget( string arg0, string arg1 ); +scriptEvent entity launchMissile( vector arg0, vector arg1 ); +scriptEvent float attackMelee( string arg0 ); +scriptEvent void directDamage( entity arg0, string arg1 ); +scriptEvent void radiusDamageFromJoint( string arg0, string arg1 ); +scriptEvent void attackBegin( string arg0 ); +scriptEvent void attackEnd( ); +scriptEvent float meleeAttackToJoint( string arg0, string arg1 ); +scriptEvent entity randomPath( ); +scriptEvent float canBecomeSolid( ); +scriptEvent void becomeSolid( ); +scriptEvent void becomeNonSolid( ); +scriptEvent float becomeRagdoll( ); +scriptEvent void stopRagdoll( ); +scriptEvent void setHealth( float newHealth ); +scriptEvent float getHealth( ); +scriptEvent void allowDamage( ); +scriptEvent void ignoreDamage( ); +scriptEvent float getCurrentYaw( ); +scriptEvent void turnTo( float angle ); +scriptEvent void turnToPos( vector arg0 ); +scriptEvent void turnToEntity( entity arg0 ); +scriptEvent float moveStatus( ); +scriptEvent void stopMove( ); +scriptEvent void moveToCover( ); +scriptEvent void moveToEnemy( ); +scriptEvent void moveToEnemyHeight( ); +scriptEvent void moveOutOfRange( entity arg0, float range ); +scriptEvent void moveToAttackPosition( entity arg0, string arg1 ); +scriptEvent void moveToEntity( entity arg0 ); +scriptEvent void moveToPosition( vector arg0 ); +scriptEvent void slideTo( vector arg0, float time ); +scriptEvent void wander( ); +scriptEvent float facingIdeal( ); +scriptEvent void faceEnemy( ); +scriptEvent void faceEntity( entity arg0 ); +scriptEvent void waitAction( string arg0 ); +scriptEvent entity getCombatNode( ); +scriptEvent float enemyInCombatCone( entity arg0, float use_current_enemy_location ); +scriptEvent void waitMove( ); +scriptEvent vector getJumpVelocity( vector arg0, float speed, float max_height ); +scriptEvent float entityInAttackCone( entity arg0 ); +scriptEvent float canSee( entity arg0 ); +scriptEvent void setTalkTarget( entity arg0 ); +scriptEvent entity getTalkTarget( ); +scriptEvent void setTalkState( float state ); +scriptEvent float enemyRange( ); +scriptEvent float enemyRange2D( ); +scriptEvent entity getEnemy( ); +scriptEvent vector getEnemyPos( ); +scriptEvent vector getEnemyEyePos( ); +scriptEvent vector predictEnemyPos( float time ); +scriptEvent float canHitEnemy( ); +scriptEvent float canHitEnemyFromAnim( string arg0 ); +scriptEvent float canHitEnemyFromJoint( string arg0 ); +scriptEvent float enemyPositionValid( ); +scriptEvent void chargeAttack( string arg0 ); +scriptEvent float testChargeAttack( ); +scriptEvent float testAnimMoveTowardEnemy( string arg0 ); +scriptEvent float testAnimMove( string arg0 ); +scriptEvent float testMoveToPosition( vector arg0 ); +scriptEvent float testMeleeAttack( ); +scriptEvent float testAnimAttack( string arg0 ); +scriptEvent void shrivel( float shirvel_time ); +scriptEvent void burn( ); +scriptEvent void preBurn( ); +scriptEvent void clearBurn( ); +scriptEvent void setSmokeVisibility( float num, float on ); +scriptEvent float numSmokeEmitters( ); +scriptEvent void stopThinking( ); +scriptEvent float getTurnDelta( ); +scriptEvent float getMoveType( ); +scriptEvent void setMoveType( float moveType ); +scriptEvent void saveMove( ); +scriptEvent void restoreMove( ); +scriptEvent void allowMovement( float flag ); +scriptEvent void enableClip( ); +scriptEvent void disableClip( ); +scriptEvent void enableGravity( ); +scriptEvent void disableGravity( ); +scriptEvent void enableAFPush( ); +scriptEvent void disableAFPush( ); +scriptEvent void setFlySpeed( float speed ); +scriptEvent void setFlyOffset( float offset ); +scriptEvent void clearFlyOffset( ); +scriptEvent entity getClosestHiddenTarget( string arg0 ); +scriptEvent entity getRandomTarget( string arg0 ); +scriptEvent float travelDistanceToPoint( vector arg0 ); +scriptEvent float travelDistanceToEntity( entity arg0 ); +scriptEvent float travelDistanceBetweenPoints( vector arg0, vector arg1 ); +scriptEvent float travelDistanceBetweenEntities( entity arg0, entity arg1 ); +scriptEvent void lookAt( entity arg0, float duration ); +scriptEvent void lookAtEnemy( float duration ); +scriptEvent void setBoneMod( float allowJointMod ); +scriptEvent void throwMoveable( ); +scriptEvent void throwAF( ); +scriptEvent void kill( ); +scriptEvent void wakeOnFlashlight( float enable ); +scriptEvent void locateEnemy( ); +scriptEvent void kickObstacles( entity arg0, float force ); +scriptEvent entity getObstacle( ); +scriptEvent vector pushPointIntoAAS( vector arg0 ); +scriptEvent float getTurnRate( ); +scriptEvent void setTurnRate( float rate ); +scriptEvent void animTurn( float angles ); +scriptEvent void allowHiddenMovement( float enable ); +scriptEvent void triggerParticles( string arg0 ); +scriptEvent entity findActorsInBounds( vector arg0, vector arg1 ); +scriptEvent float canReachPosition( vector arg0 ); +scriptEvent float canReachEntity( entity arg0 ); +scriptEvent float canReachEnemy( ); +scriptEvent vector getReachableEntityPosition( entity arg0 ); +/* +================================================ + idCombatNode +================================================ +*/ + +scriptEvent void activate( entity arg0 ); +scriptEvent void markUsed( ); +/* +================================================ + idAI_Vagary +================================================ +*/ + +scriptEvent entity vagary_ChooseObjectToThrow( vector arg0, vector arg1, float speed, float minDist, float offset ); +scriptEvent void vagary_ThrowObjectAtEnemy( entity arg0, float speed ); +/* +================================================ + idTestModel +================================================ +*/ + +scriptEvent void rightFoot( ); +/* +================================================ + idThread +================================================ +*/ + +scriptEvent void threadname( string arg0 ); +scriptEvent void terminate( float num ); +scriptEvent void pause( ); +scriptEvent void wait( float time ); +scriptEvent void waitFrame( ); +scriptEvent void waitFor( entity arg0 ); +scriptEvent void waitForThread( float num ); +scriptEvent void print( string arg0 ); +scriptEvent void println( string arg0 ); +scriptEvent void say( string arg0 ); +scriptEvent void assert( float value ); +scriptEvent void trigger( entity arg0 ); +scriptEvent void setcvar( string arg0, string arg1 ); +scriptEvent string getcvar( string arg0 ); +scriptEvent float random( float range ); +scriptEvent float getTime( ); +scriptEvent void killthread( string arg0 ); +scriptEvent entity getEntity( string arg0 ); +scriptEvent entity spawn( string arg0 ); +scriptEvent void copySpawnArgs( entity arg0 ); +scriptEvent void setSpawnArg( string arg0, string arg1 ); +scriptEvent string SpawnString( string arg0, string arg1 ); +scriptEvent float SpawnFloat( string arg0, float defaultvalue ); +scriptEvent vector SpawnVector( string arg0, vector arg1 ); +scriptEvent void clearPersistantArgs( ); +scriptEvent void setPersistantArg( string arg0, string arg1 ); +scriptEvent string getPersistantString( string arg0 ); +scriptEvent float getPersistantFloat( string arg0 ); +scriptEvent vector getPersistantVector( string arg0 ); +scriptEvent vector angToForward( vector arg0 ); +scriptEvent vector angToRight( vector arg0 ); +scriptEvent vector angToUp( vector arg0 ); +scriptEvent float sin( float angle ); +scriptEvent float cos( float angle ); +scriptEvent float sqrt( float theSquare ); +scriptEvent vector vecNormalize( vector arg0 ); +scriptEvent float vecLength( vector arg0 ); +scriptEvent float DotProduct( vector arg0, vector arg1 ); +scriptEvent vector CrossProduct( vector arg0, vector arg1 ); +scriptEvent vector VecToAngles( vector arg0 ); +scriptEvent void onSignal( float signal, entity arg1, string arg2 ); +scriptEvent void clearSignalThread( float signal, entity arg1 ); +scriptEvent void setCamera( entity arg0 ); +scriptEvent void firstPerson( ); +scriptEvent float trace( vector arg0, vector arg1, vector arg2, vector arg3, float contents_mask, entity arg5 ); +scriptEvent float tracePoint( vector arg0, vector arg1, float contents_mask, entity arg3 ); +scriptEvent float getTraceFraction( ); +scriptEvent vector getTraceEndPos( ); +scriptEvent vector getTraceNormal( ); +scriptEvent entity getTraceEntity( ); +scriptEvent string getTraceJoint( ); +scriptEvent string getTraceBody( ); +scriptEvent void fadeIn( vector arg0, float time ); +scriptEvent void fadeOut( vector arg0, float time ); +scriptEvent void fadeTo( vector arg0, float alpha, float time ); +scriptEvent void setShaderParm( float parmnum, float value ); +scriptEvent void music( string arg0 ); +scriptEvent void warning( string arg0 ); +scriptEvent void error( string arg0 ); +scriptEvent float strLength( string arg0 ); +scriptEvent string strLeft( string arg0, float num ); +scriptEvent string strRight( string arg0, float num ); +scriptEvent string strSkip( string arg0, float num ); +scriptEvent string strMid( string arg0, float start, float num ); +scriptEvent float strToFloat( string arg0 ); +scriptEvent void radiusDamage( vector arg0, entity arg1, entity arg2, entity arg3, string arg4, float dmgPower ); +scriptEvent float isClient( ); +scriptEvent float isMultiplayer( ); +scriptEvent float getFrameTime( ); +scriptEvent float getTicsPerSecond( ); +scriptEvent void cacheSoundShader( string arg0 ); +scriptEvent void debugLine( vector arg0, vector arg1, vector arg2, float lifetime ); +scriptEvent void debugArrow( vector arg0, vector arg1, vector arg2, float size, float lifetime ); +scriptEvent void debugCircle( vector arg0, vector arg1, vector arg2, float radius, float numSteps, float lifetime ); +scriptEvent void debugBounds( vector arg0, vector arg1, vector arg2, float lifetime ); +scriptEvent void drawText( string arg0, vector arg1, float scale, vector arg3, float align, float lifetime ); +scriptEvent float influenceActive( ); diff --git a/neo/doom3/game.vcxproj b/neo/doom3/game.vcxproj index 4cef6a14..8f0f7502 100644 --- a/neo/doom3/game.vcxproj +++ b/neo/doom3/game.vcxproj @@ -408,11 +408,11 @@ typeinfo.exe - + @@ -544,12 +544,13 @@ typeinfo.exe - - + + + diff --git a/neo/doom3/game.vcxproj.filters b/neo/doom3/game.vcxproj.filters index acaaf209..9d125d04 100644 --- a/neo/doom3/game.vcxproj.filters +++ b/neo/doom3/game.vcxproj.filters @@ -174,9 +174,6 @@ - - GameSys - Weapons @@ -385,6 +382,9 @@ AI + + GameSys + @@ -414,9 +414,6 @@ GameSys - - GameSys - GameSys @@ -519,9 +516,6 @@ - - GameSys - Weapons @@ -699,6 +693,15 @@ AI + + GameSys + + + GameSys + + + GameSys + diff --git a/neo/doom3/game/AFEntity.cpp b/neo/doom3/game/AFEntity.cpp index 9ea25eb4..a95fe236 100644 --- a/neo/doom3/game/AFEntity.cpp +++ b/neo/doom3/game/AFEntity.cpp @@ -40,8 +40,6 @@ If you have questions concerning this license or the applicable additional terms =============================================================================== */ -CLASS_DECLARATION( idEntity, idMultiModelAF ) -END_CLASS /* ================ @@ -132,8 +130,6 @@ void idMultiModelAF::Think( void ) { =============================================================================== */ -CLASS_DECLARATION( idMultiModelAF, idChain ) -END_CLASS /* ================ @@ -241,8 +237,6 @@ void idChain::Spawn( void ) { =============================================================================== */ -CLASS_DECLARATION( idAnimatedEntity, idAFAttachment ) -END_CLASS /* ===================== @@ -513,11 +507,7 @@ void idAFAttachment::UnlinkCombat( void ) { =============================================================================== */ -const idEventDef EV_SetConstraintPosition( "SetConstraintPosition", "sv" ); -CLASS_DECLARATION( idAnimatedEntity, idAFEntity_Base ) - EVENT( EV_SetConstraintPosition, idAFEntity_Base::Event_SetConstraintPosition ) -END_CLASS static const float BOUNCE_SOUND_MIN_VELOCITY = 80.0f; static const float BOUNCE_SOUND_MAX_VELOCITY = 200.0f; @@ -942,13 +932,7 @@ idAFEntity_Gibbable =============================================================================== */ -const idEventDef EV_Gib( "gib", "s" ); -const idEventDef EV_Gibbed( "" ); -CLASS_DECLARATION( idAFEntity_Base, idAFEntity_Gibbable ) - EVENT( EV_Gib, idAFEntity_Gibbable::Event_Gib ) - EVENT( EV_Gibbed, idAFEntity_Base::Event_Remove ) -END_CLASS /* @@ -1201,9 +1185,6 @@ void idAFEntity_Gibbable::Event_Gib( const char *damageDefName ) { =============================================================================== */ -CLASS_DECLARATION( idAFEntity_Gibbable, idAFEntity_Generic ) - EVENT( EV_Activate, idAFEntity_Generic::Event_Activate ) -END_CLASS /* ================ @@ -1316,10 +1297,6 @@ void idAFEntity_Generic::Event_Activate( idEntity *activator ) { =============================================================================== */ -CLASS_DECLARATION( idAFEntity_Gibbable, idAFEntity_WithAttachedHead ) - EVENT( EV_Gib, idAFEntity_WithAttachedHead::Event_Gib ) - EVENT( EV_Activate, idAFEntity_WithAttachedHead::Event_Activate ) -END_CLASS /* ================ @@ -1578,8 +1555,6 @@ void idAFEntity_WithAttachedHead::Event_Activate( idEntity *activator ) { =============================================================================== */ -CLASS_DECLARATION( idAFEntity_Base, idAFEntity_Vehicle ) -END_CLASS /* ================ @@ -1694,8 +1669,6 @@ float idAFEntity_Vehicle::GetSteerAngle( void ) { =============================================================================== */ -CLASS_DECLARATION( idAFEntity_Vehicle, idAFEntity_VehicleSimple ) -END_CLASS /* ================ @@ -1887,8 +1860,6 @@ void idAFEntity_VehicleSimple::Think( void ) { =============================================================================== */ -CLASS_DECLARATION( idAFEntity_Vehicle, idAFEntity_VehicleFourWheels ) -END_CLASS /* @@ -2064,8 +2035,6 @@ void idAFEntity_VehicleFourWheels::Think( void ) { =============================================================================== */ -CLASS_DECLARATION( idAFEntity_Vehicle, idAFEntity_VehicleSixWheels ) -END_CLASS /* ================ @@ -2254,8 +2223,6 @@ void idAFEntity_VehicleSixWheels::Think( void ) { =============================================================================== */ -CLASS_DECLARATION( idAFEntity_Base, idAFEntity_SteamPipe ) -END_CLASS /* @@ -2402,13 +2369,7 @@ void idAFEntity_SteamPipe::Think( void ) { =============================================================================== */ -const idEventDef EV_SetFingerAngle( "setFingerAngle", "f" ); -const idEventDef EV_StopFingers( "stopFingers" ); -CLASS_DECLARATION( idAFEntity_Base, idAFEntity_ClawFourFingers ) - EVENT( EV_SetFingerAngle, idAFEntity_ClawFourFingers::Event_SetFingerAngle ) - EVENT( EV_StopFingers, idAFEntity_ClawFourFingers::Event_StopFingers ) -END_CLASS static const char *clawConstraintNames[] = { "claw1", "claw2", "claw3", "claw4" diff --git a/neo/doom3/game/AFEntity.h b/neo/doom3/game/AFEntity.h index e882588b..0a3e7f70 100644 --- a/neo/doom3/game/AFEntity.h +++ b/neo/doom3/game/AFEntity.h @@ -196,6 +196,7 @@ protected: idMat3 spawnAxis; // rotation axis used when spawned int nextSoundTime; // next time this can make a sound + ID_SCRIPT_EVENT( "SetConstraintPosition", 0 ) void Event_SetConstraintPosition( const char *name, const idVec3 &pos ); }; @@ -207,8 +208,6 @@ idAFEntity_Gibbable =============================================================================== */ -extern const idEventDef EV_Gib; -extern const idEventDef EV_Gibbed; class idAFEntity_Gibbable : public idAFEntity_Base { public: @@ -232,6 +231,7 @@ protected: virtual void Gib( const idVec3 &dir, const char *damageDefName ); void InitSkeletonModel( void ); + ID_SCRIPT_EVENT( "gib", 0 ) void Event_Gib( const char *damageDefName ); }; @@ -259,6 +259,7 @@ public: void KeepRunningPhysics( void ) { keepRunningPhysics = true; } private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); bool keepRunningPhysics; @@ -302,7 +303,9 @@ protected: private: idEntityPtr head; + ID_SCRIPT_EVENT( "gib", 0 ) void Event_Gib( const char *damageDefName ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -467,7 +470,9 @@ public: private: idAFConstraint_Hinge * fingers[4]; + ID_SCRIPT_EVENT( "setFingerAngle", 0 ) void Event_SetFingerAngle( float angle ); + ID_SCRIPT_EVENT( "stopFingers", 0 ) void Event_StopFingers( void ); }; diff --git a/neo/doom3/game/Actor.cpp b/neo/doom3/game/Actor.cpp index c7cd2f70..4ab39f14 100644 --- a/neo/doom3/game/Actor.cpp +++ b/neo/doom3/game/Actor.cpp @@ -312,90 +312,7 @@ bool idAnimState::UpdateState(void) { ***********************************************************************/ -const idEventDef AI_EnableEyeFocus( "enableEyeFocus" ); -const idEventDef AI_DisableEyeFocus( "disableEyeFocus" ); -const idEventDef EV_Footstep( "footstep" ); -const idEventDef EV_FootstepLeft( "leftFoot" ); -const idEventDef EV_FootstepRight( "rightFoot" ); -const idEventDef EV_EnableWalkIK( "EnableWalkIK" ); -const idEventDef EV_DisableWalkIK( "DisableWalkIK" ); -const idEventDef EV_EnableLegIK( "EnableLegIK", "d" ); -const idEventDef EV_DisableLegIK( "DisableLegIK", "d" ); -const idEventDef AI_StopAnim( "stopAnim", "dd" ); -const idEventDef AI_PlayAnim( "playAnim", "ds", 'd' ); -const idEventDef AI_PlayCycle( "playCycle", "ds", 'd' ); -const idEventDef AI_IdleAnim( "idleAnim", "ds", 'd' ); -const idEventDef AI_SetSyncedAnimWeight( "setSyncedAnimWeight", "ddf" ); -const idEventDef AI_SetBlendFrames( "setBlendFrames", "dd" ); -const idEventDef AI_GetBlendFrames( "getBlendFrames", "d", 'd' ); -const idEventDef AI_AnimState( "animState", "dsd" ); -const idEventDef AI_GetAnimState( "getAnimState", "d", 's' ); -const idEventDef AI_InAnimState( "inAnimState", "ds", 'd' ); -const idEventDef AI_FinishAction( "finishAction", "s" ); -const idEventDef AI_AnimDone( "animDone", "dd", 'd' ); -const idEventDef AI_OverrideAnim( "overrideAnim", "d" ); -const idEventDef AI_EnableAnim( "enableAnim", "dd" ); -const idEventDef AI_PreventPain( "preventPain", "f" ); -const idEventDef AI_DisablePain( "disablePain" ); -const idEventDef AI_EnablePain( "enablePain" ); -const idEventDef AI_GetPainAnim( "getPainAnim", NULL, 's' ); -const idEventDef AI_SetAnimPrefix( "setAnimPrefix", "s" ); -const idEventDef AI_HasAnim( "hasAnim", "ds", 'f' ); -const idEventDef AI_CheckAnim( "checkAnim", "ds" ); -const idEventDef AI_ChooseAnim( "chooseAnim", "ds", 's' ); -const idEventDef AI_AnimLength( "animLength", "ds", 'f' ); -const idEventDef AI_AnimDistance( "animDistance", "ds", 'f' ); -const idEventDef AI_HasEnemies( "hasEnemies", NULL, 'd' ); -const idEventDef AI_NextEnemy( "nextEnemy", "E", 'e' ); -const idEventDef AI_ClosestEnemyToPoint( "closestEnemyToPoint", "v", 'e' ); -const idEventDef AI_SetNextState( "setNextState", "s" ); -const idEventDef AI_SetState( "setState", "s" ); -const idEventDef AI_GetState( "getState", NULL, 's' ); -const idEventDef AI_GetHead( "getHead", NULL, 'e' ); -CLASS_DECLARATION( idAFEntity_Gibbable, idActor ) - EVENT( AI_EnableEyeFocus, idActor::Event_EnableEyeFocus ) - EVENT( AI_DisableEyeFocus, idActor::Event_DisableEyeFocus ) - EVENT( EV_Footstep, idActor::Event_Footstep ) - EVENT( EV_FootstepLeft, idActor::Event_Footstep ) - EVENT( EV_FootstepRight, idActor::Event_Footstep ) - EVENT( EV_EnableWalkIK, idActor::Event_EnableWalkIK ) - EVENT( EV_DisableWalkIK, idActor::Event_DisableWalkIK ) - EVENT( EV_EnableLegIK, idActor::Event_EnableLegIK ) - EVENT( EV_DisableLegIK, idActor::Event_DisableLegIK ) - EVENT( AI_PreventPain, idActor::Event_PreventPain ) - EVENT( AI_DisablePain, idActor::Event_DisablePain ) - EVENT( AI_EnablePain, idActor::Event_EnablePain ) - EVENT( AI_GetPainAnim, idActor::Event_GetPainAnim ) - EVENT( AI_SetAnimPrefix, idActor::Event_SetAnimPrefix ) - EVENT( AI_StopAnim, idActor::Event_StopAnim ) - EVENT( AI_PlayAnim, idActor::Event_PlayAnimScript ) - EVENT( AI_PlayCycle, idActor::Event_PlayCycleScript) - EVENT( AI_IdleAnim, idActor::Event_IdleAnim ) - EVENT( AI_SetSyncedAnimWeight, idActor::Event_SetSyncedAnimWeight ) - EVENT( AI_SetBlendFrames, idActor::Event_SetBlendFrames ) - EVENT( AI_GetBlendFrames, idActor::Event_GetBlendFrames ) - EVENT( AI_AnimState, idActor::Event_AnimState ) - EVENT( AI_GetAnimState, idActor::Event_GetAnimState ) - EVENT( AI_InAnimState, idActor::Event_InAnimState ) - EVENT( AI_FinishAction, idActor::Event_FinishAction ) - EVENT( AI_AnimDone, idActor::Event_AnimDone ) - EVENT( AI_OverrideAnim, idActor::Event_OverrideAnim ) - EVENT( AI_EnableAnim, idActor::Event_EnableAnim ) - EVENT( AI_HasAnim, idActor::Event_HasAnim ) - EVENT( AI_CheckAnim, idActor::Event_CheckAnim ) - EVENT( AI_ChooseAnim, idActor::Event_ChooseAnim ) - EVENT( AI_AnimLength, idActor::Event_AnimLength ) - EVENT( AI_AnimDistance, idActor::Event_AnimDistance ) - EVENT( AI_HasEnemies, idActor::Event_HasEnemies ) - EVENT( AI_NextEnemy, idActor::Event_NextEnemy ) - EVENT( AI_ClosestEnemyToPoint, idActor::Event_ClosestEnemyToPoint ) - EVENT( EV_StopSound, idActor::Event_StopSound ) - EVENT( AI_SetNextState, idActor::Event_SetNextState ) - EVENT( AI_SetState, idActor::Event_SetState ) - EVENT( AI_GetState, idActor::Event_GetState ) - EVENT( AI_GetHead, idActor::Event_GetHead ) -END_CLASS /* ===================== diff --git a/neo/doom3/game/Actor.h b/neo/doom3/game/Actor.h index 7c824d21..bce9163c 100644 --- a/neo/doom3/game/Actor.h +++ b/neo/doom3/game/Actor.h @@ -37,21 +37,6 @@ If you have questions concerning this license or the applicable additional terms =============================================================================== */ -extern const idEventDef AI_EnableEyeFocus; -extern const idEventDef AI_DisableEyeFocus; -extern const idEventDef EV_Footstep; -extern const idEventDef EV_FootstepLeft; -extern const idEventDef EV_FootstepRight; -extern const idEventDef EV_EnableWalkIK; -extern const idEventDef EV_DisableWalkIK; -extern const idEventDef EV_EnableLegIK; -extern const idEventDef EV_DisableLegIK; -extern const idEventDef AI_SetAnimPrefix; -extern const idEventDef AI_PlayAnim; -extern const idEventDef AI_PlayCycle; -extern const idEventDef AI_AnimDone; -extern const idEventDef AI_SetBlendFrames; -extern const idEventDef AI_GetBlendFrames; class idDeclParticle; @@ -293,45 +278,86 @@ protected: void SetupHead( void ); void PlayFootStepSound( void ); + ID_SCRIPT_EVENT( "enableEyeFocus", 0 ) void Event_EnableEyeFocus( void ); + ID_SCRIPT_EVENT( "disableEyeFocus", 0 ) void Event_DisableEyeFocus( void ); + ID_SCRIPT_EVENT( "footstep", 0 ) + ID_SCRIPT_EVENT( "leftFoot", 0 ) + ID_SCRIPT_EVENT( "rightFoot", 0 ) void Event_Footstep( void ); + ID_SCRIPT_EVENT( "EnableWalkIK", 0 ) void Event_EnableWalkIK( void ); + ID_SCRIPT_EVENT( "DisableWalkIK", 0 ) void Event_DisableWalkIK( void ); + ID_SCRIPT_EVENT( "EnableLegIK", 0 ) void Event_EnableLegIK( int num ); + ID_SCRIPT_EVENT( "DisableLegIK", 0 ) void Event_DisableLegIK( int num ); + ID_SCRIPT_EVENT( "setAnimPrefix", 0 ) void Event_SetAnimPrefix( const char *name ); void Event_LookAtEntity( idEntity *ent, float duration ); + ID_SCRIPT_EVENT( "preventPain", 0 ) void Event_PreventPain( float duration ); + ID_SCRIPT_EVENT( "disablePain", 0 ) void Event_DisablePain( void ); + ID_SCRIPT_EVENT( "enablePain", 0 ) void Event_EnablePain( void ); + ID_SCRIPT_EVENT( "getPainAnim", 's' ) void Event_GetPainAnim( void ); + ID_SCRIPT_EVENT( "stopAnim", 0 ) void Event_StopAnim( int channel, int frames ); + ID_SCRIPT_EVENT( "playAnim", 'd' ) void Event_PlayAnimScript( int channel, const char *name ); + ID_SCRIPT_EVENT( "playCycle", 'd' ) void Event_PlayCycleScript( int channel, const char *name ); + ID_SCRIPT_EVENT( "idleAnim", 'd' ) void Event_IdleAnim( int channel, const char *name ); + ID_SCRIPT_EVENT( "setSyncedAnimWeight", 0 ) void Event_SetSyncedAnimWeight( int channel, int anim, float weight ); + ID_SCRIPT_EVENT( "overrideAnim", 0 ) void Event_OverrideAnim( int channel ); + ID_SCRIPT_EVENT( "enableAnim", 0 ) void Event_EnableAnim( int channel, int blendFrames ); + ID_SCRIPT_EVENT( "setBlendFrames", 0 ) void Event_SetBlendFrames( int channel, int blendFrames ); + ID_SCRIPT_EVENT( "getBlendFrames", 'd' ) void Event_GetBlendFrames( int channel ); + ID_SCRIPT_EVENT( "animState", 0 ) void Event_AnimState( int channel, const char *name, int blendFrames ); + ID_SCRIPT_EVENT( "getAnimState", 's' ) void Event_GetAnimState( int channel ); + ID_SCRIPT_EVENT( "inAnimState", 'd' ) void Event_InAnimState( int channel, const char *name ); + ID_SCRIPT_EVENT( "finishAction", 0 ) void Event_FinishAction( const char *name ); + ID_SCRIPT_EVENT( "animDone", 'd' ) void Event_AnimDone( int channel, int blendFrames ); + ID_SCRIPT_EVENT( "hasAnim", 'f' ) void Event_HasAnim( int channel, const char *name ); + ID_SCRIPT_EVENT( "checkAnim", 0 ) void Event_CheckAnim( int channel, const char *animname ); + ID_SCRIPT_EVENT( "chooseAnim", 's' ) void Event_ChooseAnim( int channel, const char *animname ); + ID_SCRIPT_EVENT( "animLength", 'f' ) void Event_AnimLength( int channel, const char *animname ); + ID_SCRIPT_EVENT( "animDistance", 'f' ) void Event_AnimDistance( int channel, const char *animname ); + ID_SCRIPT_EVENT( "hasEnemies", 'd' ) void Event_HasEnemies( void ); + ID_SCRIPT_EVENT( "nextEnemy", 'e' ) void Event_NextEnemy( idEntity *ent ); + ID_SCRIPT_EVENT( "closestEnemyToPoint", 'e' ) void Event_ClosestEnemyToPoint( const idVec3 &pos ); + ID_SCRIPT_EVENT( "stopSound", 0 ) void Event_StopSound( int channel, int netsync ); + ID_SCRIPT_EVENT( "setNextState", 0 ) void Event_SetNextState( const char *name ); + ID_SCRIPT_EVENT( "setState", 0 ) void Event_SetState( const char *name ); + ID_SCRIPT_EVENT( "getState", 's' ) void Event_GetState( void ); + ID_SCRIPT_EVENT( "getHead", 'e' ) void Event_GetHead( void ); idAnimState& GetAnimStateVar(int channel); diff --git a/neo/doom3/game/BrittleFracture.cpp b/neo/doom3/game/BrittleFracture.cpp index 608b8c1e..3c794aa2 100644 --- a/neo/doom3/game/BrittleFracture.cpp +++ b/neo/doom3/game/BrittleFracture.cpp @@ -32,10 +32,6 @@ If you have questions concerning this license or the applicable additional terms #include "Game_local.h" -CLASS_DECLARATION( idEntity, idBrittleFracture ) - EVENT( EV_Activate, idBrittleFracture::Event_Activate ) - EVENT( EV_Touch, idBrittleFracture::Event_Touch ) -END_CLASS const int SHARD_ALIVE_TIME = 5000; const int SHARD_FADE_START = 2000; diff --git a/neo/doom3/game/BrittleFracture.h b/neo/doom3/game/BrittleFracture.h index 11da8618..1424d749 100644 --- a/neo/doom3/game/BrittleFracture.h +++ b/neo/doom3/game/BrittleFracture.h @@ -123,7 +123,9 @@ private: void CreateFractures( const idRenderModel *renderModel ); void FindNeighbours( void ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Touch( idEntity *other, trace_t *trace ); }; diff --git a/neo/doom3/game/Camera.cpp b/neo/doom3/game/Camera.cpp index 52c4901f..e4d50851 100644 --- a/neo/doom3/game/Camera.cpp +++ b/neo/doom3/game/Camera.cpp @@ -41,8 +41,6 @@ If you have questions concerning this license or the applicable additional terms =============================================================================== */ -ABSTRACT_DECLARATION( idEntity, idCamera ) -END_CLASS /* ===================== @@ -68,12 +66,7 @@ renderView_t *idCamera::GetRenderView() { idCameraView ***********************************************************************/ -const idEventDef EV_Camera_SetAttachments( "", NULL ); -CLASS_DECLARATION( idCamera, idCameraView ) - EVENT( EV_Activate, idCameraView::Event_Activate ) - EVENT( EV_Camera_SetAttachments, idCameraView::Event_SetAttachments ) -END_CLASS /* @@ -181,7 +174,7 @@ void idCameraView::Spawn( void ) { } fov = spawnArgs.GetFloat("fov", "90"); - PostEventMS( &EV_Camera_SetAttachments, 0 ); + PostEventMS( &EV_idCameraView_Getattachments, 0 ); UpdateChangeableSpawnArgs(NULL); } @@ -227,17 +220,7 @@ void idCameraView::GetViewParms( renderView_t *view ) { =============================================================================== */ -const idEventDef EV_Camera_Start( "start", NULL ); -const idEventDef EV_Camera_Stop( "stop", NULL ); -const idEventDef EV_Camera_SetAnim( "setAnim", "s" ); -CLASS_DECLARATION( idCamera, idCameraAnim ) - EVENT( EV_Thread_SetCallback, idCameraAnim::Event_SetCallback ) - EVENT( EV_Camera_Stop, idCameraAnim::Event_Stop ) - EVENT( EV_Camera_Start, idCameraAnim::Event_Start ) - EVENT( EV_Camera_SetAnim, idCameraAnim::Event_SetAnim ) - EVENT( EV_Activate, idCameraAnim::Event_Activate ) -END_CLASS /* diff --git a/neo/doom3/game/Camera.h b/neo/doom3/game/Camera.h index 929d8d7a..a7239ff9 100644 --- a/neo/doom3/game/Camera.h +++ b/neo/doom3/game/Camera.h @@ -70,7 +70,9 @@ public: virtual void Stop( void ); protected: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_SetAttachments(); void SetAttachment( idEntity **e, const char *p ); float fov; @@ -123,10 +125,15 @@ private: void Think( void ); void LoadAnim( void ); + ID_SCRIPT_EVENT( "start", 0 ) void Event_Start( void ); + ID_SCRIPT_EVENT( "stop", 0 ) void Event_Stop( void ); + ID_SCRIPT_EVENT( "setAnim", 0 ) void Event_SetAnim( const char *animName ); + ID_SCRIPT_EVENT( "", 'd' ) void Event_SetCallback( void ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; diff --git a/neo/doom3/game/EndLevel.cpp b/neo/doom3/game/EndLevel.cpp index 461a83e6..45b2d45a 100644 --- a/neo/doom3/game/EndLevel.cpp +++ b/neo/doom3/game/EndLevel.cpp @@ -41,9 +41,6 @@ If you have questions concerning this license or the applicable additional terms */ -CLASS_DECLARATION( idEntity, idTarget_EndLevel ) - EVENT( EV_Activate, idTarget_EndLevel::Event_Trigger ) -END_CLASS /* ================ diff --git a/neo/doom3/game/EndLevel.h b/neo/doom3/game/EndLevel.h index 3f72f4c3..ea814eef 100644 --- a/neo/doom3/game/EndLevel.h +++ b/neo/doom3/game/EndLevel.h @@ -61,6 +61,7 @@ private: bool readyToExit; bool noGui; + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Trigger( idEntity *activator ); }; diff --git a/neo/doom3/game/Entity.cpp b/neo/doom3/game/Entity.cpp index 20148fdf..99f180d2 100644 --- a/neo/doom3/game/Entity.cpp +++ b/neo/doom3/game/Entity.cpp @@ -40,137 +40,7 @@ If you have questions concerning this license or the applicable additional terms */ // overridable events -const idEventDef EV_PostSpawn( "", NULL ); -const idEventDef EV_FindTargets( "", NULL ); -const idEventDef EV_Touch( "", "et" ); -const idEventDef EV_GetName( "getName", NULL, 's' ); -const idEventDef EV_SetName( "setName", "s" ); -const idEventDef EV_Activate( "activate", "e" ); -const idEventDef EV_ActivateTargets( "activateTargets", "e" ); -const idEventDef EV_NumTargets( "numTargets", NULL, 'f' ); -const idEventDef EV_GetTarget( "getTarget", "f", 'e' ); -const idEventDef EV_RandomTarget( "randomTarget", "s", 'e' ); -const idEventDef EV_Bind( "bind", "e" ); -const idEventDef EV_BindPosition( "bindPosition", "e" ); -const idEventDef EV_BindToJoint( "bindToJoint", "esf" ); -const idEventDef EV_Unbind( "unbind", NULL ); -const idEventDef EV_RemoveBinds( "removeBinds" ); -const idEventDef EV_SpawnBind( "", NULL ); -const idEventDef EV_SetOwner( "setOwner", "e" ); -const idEventDef EV_SetModel( "setModel", "s" ); -const idEventDef EV_SetSkin( "setSkin", "s" ); -const idEventDef EV_GetWorldOrigin( "getWorldOrigin", NULL, 'v' ); -const idEventDef EV_SetWorldOrigin( "setWorldOrigin", "v" ); -const idEventDef EV_GetOrigin( "getOrigin", NULL, 'v' ); -const idEventDef EV_SetOrigin( "setOrigin", "v" ); -const idEventDef EV_GetAngles( "getAngles", NULL, 'v' ); -const idEventDef EV_SetAngles( "setAngles", "v" ); -const idEventDef EV_GetLinearVelocity( "getLinearVelocity", NULL, 'v' ); -const idEventDef EV_SetLinearVelocity( "setLinearVelocity", "v" ); -const idEventDef EV_GetAngularVelocity( "getAngularVelocity", NULL, 'v' ); -const idEventDef EV_SetAngularVelocity( "setAngularVelocity", "v" ); -const idEventDef EV_GetSize( "getSize", NULL, 'v' ); -const idEventDef EV_SetSize( "setSize", "vv" ); -const idEventDef EV_GetMins( "getMins", NULL, 'v' ); -const idEventDef EV_GetMaxs( "getMaxs", NULL, 'v' ); -const idEventDef EV_IsHidden( "isHidden", NULL, 'd' ); -const idEventDef EV_Hide( "hide", NULL ); -const idEventDef EV_Show( "show", NULL ); -const idEventDef EV_Touches( "touches", "E", 'd' ); -const idEventDef EV_ClearSignal( "clearSignal", "d" ); -const idEventDef EV_GetShaderParm( "getShaderParm", "d", 'f' ); -const idEventDef EV_SetShaderParm( "setShaderParm", "df" ); -const idEventDef EV_SetShaderParms( "setShaderParms", "ffff" ); -const idEventDef EV_SetColor( "setColor", "fff" ); -const idEventDef EV_GetColor( "getColor", NULL, 'v' ); -const idEventDef EV_CacheSoundShader( "cacheSoundShader", "s" ); -const idEventDef EV_StartSoundShader( "startSoundShader", "sd", 'f' ); -const idEventDef EV_StartSound( "startSound", "sdd", 'f' ); -const idEventDef EV_StopSound( "stopSound", "dd" ); -const idEventDef EV_FadeSound( "fadeSound", "dff" ); -const idEventDef EV_SetGuiParm( "setGuiParm", "ss" ); -const idEventDef EV_SetGuiFloat( "setGuiFloat", "sf" ); -const idEventDef EV_GetNextKey( "getNextKey", "ss", 's' ); -const idEventDef EV_SetKey( "setKey", "ss" ); -const idEventDef EV_GetKey( "getKey", "s", 's' ); -const idEventDef EV_GetIntKey( "getIntKey", "s", 'f' ); -const idEventDef EV_GetFloatKey( "getFloatKey", "s", 'f' ); -const idEventDef EV_GetVectorKey( "getVectorKey", "s", 'v' ); -const idEventDef EV_GetEntityKey( "getEntityKey", "s", 'e' ); -const idEventDef EV_RestorePosition( "restorePosition" ); -const idEventDef EV_UpdateCameraTarget( "", NULL ); -const idEventDef EV_DistanceTo( "distanceTo", "E", 'f' ); -const idEventDef EV_DistanceToPoint( "distanceToPoint", "v", 'f' ); -const idEventDef EV_StartFx( "startFx", "s" ); -const idEventDef EV_HasFunction( "hasFunction", "s", 'd' ); -const idEventDef EV_CallFunction( "callFunction", "s" ); -const idEventDef EV_SetNeverDormant( "setNeverDormant", "d" ); -ABSTRACT_DECLARATION( idClass, idEntity ) - EVENT( EV_GetName, idEntity::Event_GetName ) - EVENT( EV_SetName, idEntity::Event_SetName ) - EVENT( EV_FindTargets, idEntity::Event_FindTargets ) - EVENT( EV_ActivateTargets, idEntity::Event_ActivateTargets ) - EVENT( EV_NumTargets, idEntity::Event_NumTargets ) - EVENT( EV_GetTarget, idEntity::Event_GetTarget ) - EVENT( EV_RandomTarget, idEntity::Event_RandomTarget ) - EVENT( EV_BindToJoint, idEntity::Event_BindToJoint ) - EVENT( EV_RemoveBinds, idEntity::Event_RemoveBinds ) - EVENT( EV_Bind, idEntity::Event_Bind ) - EVENT( EV_BindPosition, idEntity::Event_BindPosition ) - EVENT( EV_Unbind, idEntity::Event_Unbind ) - EVENT( EV_SpawnBind, idEntity::Event_SpawnBind ) - EVENT( EV_SetOwner, idEntity::Event_SetOwner ) - EVENT( EV_SetModel, idEntity::Event_SetModel ) - EVENT( EV_SetSkin, idEntity::Event_SetSkin ) - EVENT( EV_GetShaderParm, idEntity::Event_GetShaderParm ) - EVENT( EV_SetShaderParm, idEntity::Event_SetShaderParm ) - EVENT( EV_SetShaderParms, idEntity::Event_SetShaderParms ) - EVENT( EV_SetColor, idEntity::Event_SetColor ) - EVENT( EV_GetColor, idEntity::Event_GetColor ) - EVENT( EV_IsHidden, idEntity::Event_IsHidden ) - EVENT( EV_Hide, idEntity::Event_Hide ) - EVENT( EV_Show, idEntity::Event_Show ) - EVENT( EV_CacheSoundShader, idEntity::Event_CacheSoundShader ) - EVENT( EV_StartSoundShader, idEntity::Event_StartSoundShader ) - EVENT( EV_StartSound, idEntity::Event_StartSound ) - EVENT( EV_StopSound, idEntity::Event_StopSound ) - EVENT( EV_FadeSound, idEntity::Event_FadeSound ) - EVENT( EV_GetWorldOrigin, idEntity::Event_GetWorldOrigin ) - EVENT( EV_SetWorldOrigin, idEntity::Event_SetWorldOrigin ) - EVENT( EV_GetOrigin, idEntity::Event_GetOrigin ) - EVENT( EV_SetOrigin, idEntity::Event_SetOrigin ) - EVENT( EV_GetAngles, idEntity::Event_GetAngles ) - EVENT( EV_SetAngles, idEntity::Event_SetAngles ) - EVENT( EV_GetLinearVelocity, idEntity::Event_GetLinearVelocity ) - EVENT( EV_SetLinearVelocity, idEntity::Event_SetLinearVelocity ) - EVENT( EV_GetAngularVelocity, idEntity::Event_GetAngularVelocity ) - EVENT( EV_SetAngularVelocity, idEntity::Event_SetAngularVelocity ) - EVENT( EV_GetSize, idEntity::Event_GetSize ) - EVENT( EV_SetSize, idEntity::Event_SetSize ) - EVENT( EV_GetMins, idEntity::Event_GetMins) - EVENT( EV_GetMaxs, idEntity::Event_GetMaxs ) - EVENT( EV_Touches, idEntity::Event_Touches ) - EVENT( EV_SetGuiParm, idEntity::Event_SetGuiParm ) - EVENT( EV_SetGuiFloat, idEntity::Event_SetGuiFloat ) - EVENT( EV_GetNextKey, idEntity::Event_GetNextKey ) - EVENT( EV_SetKey, idEntity::Event_SetKey ) - EVENT( EV_GetKey, idEntity::Event_GetKey ) - EVENT( EV_GetIntKey, idEntity::Event_GetIntKey ) - EVENT( EV_GetFloatKey, idEntity::Event_GetFloatKey ) - EVENT( EV_GetVectorKey, idEntity::Event_GetVectorKey ) - EVENT( EV_GetEntityKey, idEntity::Event_GetEntityKey ) - EVENT( EV_RestorePosition, idEntity::Event_RestorePosition ) - EVENT( EV_UpdateCameraTarget, idEntity::Event_UpdateCameraTarget ) - EVENT( EV_DistanceTo, idEntity::Event_DistanceTo ) - EVENT( EV_DistanceToPoint, idEntity::Event_DistanceToPoint ) - EVENT( EV_StartFx, idEntity::Event_StartFx ) - EVENT( EV_Thread_WaitFrame, idEntity::Event_WaitFrame ) - EVENT( EV_Thread_Wait, idEntity::Event_Wait ) - EVENT( EV_HasFunction, idEntity::Event_HasFunction ) - EVENT( EV_CallFunction, idEntity::Event_CallFunction ) - EVENT( EV_SetNeverDormant, idEntity::Event_SetNeverDormant ) -END_CLASS /* ================ @@ -539,7 +409,7 @@ void idEntity::Spawn( void ) { } if ( spawnArgs.GetString( "bind", "", &temp ) ) { - PostEventMS( &EV_SpawnBind, 0 ); + PostEventMS( &EV_Spawnbind, 0 ); } // auto-start a sound on the entity @@ -2625,9 +2495,9 @@ bool idEntity::RunPhysics( void ) { // if the master pusher has a "blocked" function, call it Signal( SIG_BLOCKED ); - ProcessEvent( &EV_TeamBlocked, blockedPart, blockingEntity ); + ProcessEvent( &EV_Teamblocked, blockedPart, blockingEntity ); // call the blocked function on the blocked part - blockedPart->ProcessEvent( &EV_PartBlocked, blockingEntity ); + blockedPart->ProcessEvent( &EV_Partblocked, blockingEntity ); return false; } @@ -2652,7 +2522,7 @@ bool idEntity::RunPhysics( void ) { } reachedTime = part->physics->GetAngularEndTime(); if ( startTime < reachedTime && endTime >= reachedTime ) { - part->ProcessEvent( &EV_ReachedAng ); + part->ProcessEvent( &EV_Reachedang ); } } } @@ -3362,8 +3232,11 @@ bool idEntity::HandleGuiCommands( idEntity *entityGui, const char *cmds ) { } else { idEntity *ent = gameLocal.FindEntity( token2 ); if ( ent ) { + const idEventDef *activateEvent = ent->FindEventDef( "activate", "e" ); ent->Signal( SIG_TRIGGER ); - ent->PostEventMS( &EV_Activate, 0, this ); + if ( activateEvent ) { + ent->PostEventMS( activateEvent, 0, this ); + } } } @@ -3552,9 +3425,12 @@ void idEntity::ActivateTargets( idEntity *activator ) const { if ( !ent ) { continue; } - if ( ent->RespondsTo( EV_Activate ) || ent->HasSignal( SIG_TRIGGER ) ) { + const idEventDef *activateEvent = ent->FindEventDef( "activate", "e" ); + if ( activateEvent || ent->HasSignal( SIG_TRIGGER ) ) { ent->Signal( SIG_TRIGGER ); - ent->ProcessEvent( &EV_Activate, activator ); + if ( activateEvent ) { + ent->ProcessEvent( activateEvent, activator ); + } } for ( j = 0; j < MAX_RENDERENTITY_GUI; j++ ) { if ( ent->renderEntity.gui[ j ] ) { @@ -3613,7 +3489,8 @@ bool idEntity::TouchTriggers( void ) const { ent = cm->GetEntity(); - if ( !ent->RespondsTo( EV_Touch ) && !ent->HasSignal( SIG_TOUCH ) ) { + const idEventDef *touchEvent = ent->FindEventDef( "", "et" ); + if ( !touchEvent && !ent->HasSignal( SIG_TOUCH ) ) { continue; } @@ -3628,7 +3505,9 @@ bool idEntity::TouchTriggers( void ) const { trace.c.id = cm->GetId(); ent->Signal( SIG_TOUCH ); - ent->ProcessEvent( &EV_Touch, this, &trace ); + if ( touchEvent ) { + ent->ProcessEvent( touchEvent, this, &trace ); + } if ( !gameLocal.entities[ entityNumber ] ) { gameLocal.Printf( "entity was removed while touching triggers\n" ); @@ -4856,23 +4735,7 @@ bool idEntity::ClientReceiveEvent( int event, int time, const idBitMsg &msg ) { =============================================================================== */ -const idEventDef EV_GetJointHandle( "getJointHandle", "s", 'd' ); -const idEventDef EV_ClearAllJoints( "clearAllJoints" ); -const idEventDef EV_ClearJoint( "clearJoint", "d" ); -const idEventDef EV_SetJointPos( "setJointPos", "ddv" ); -const idEventDef EV_SetJointAngle( "setJointAngle", "ddv" ); -const idEventDef EV_GetJointPos( "getJointPos", "d", 'v' ); -const idEventDef EV_GetJointAngle( "getJointAngle", "d", 'v' ); -CLASS_DECLARATION( idEntity, idAnimatedEntity ) - EVENT( EV_GetJointHandle, idAnimatedEntity::Event_GetJointHandle ) - EVENT( EV_ClearAllJoints, idAnimatedEntity::Event_ClearAllJoints ) - EVENT( EV_ClearJoint, idAnimatedEntity::Event_ClearJoint ) - EVENT( EV_SetJointPos, idAnimatedEntity::Event_SetJointPos ) - EVENT( EV_SetJointAngle, idAnimatedEntity::Event_SetJointAngle ) - EVENT( EV_GetJointPos, idAnimatedEntity::Event_GetJointPos ) - EVENT( EV_GetJointAngle, idAnimatedEntity::Event_GetJointAngle ) -END_CLASS /* ================ diff --git a/neo/doom3/game/Entity.h b/neo/doom3/game/Entity.h index 76175cef..e161a599 100644 --- a/neo/doom3/game/Entity.h +++ b/neo/doom3/game/Entity.h @@ -39,25 +39,6 @@ If you have questions concerning this license or the applicable additional terms static const int DELAY_DORMANT_TIME = 3000; -extern const idEventDef EV_PostSpawn; -extern const idEventDef EV_FindTargets; -extern const idEventDef EV_Touch; -extern const idEventDef EV_Use; -extern const idEventDef EV_Activate; -extern const idEventDef EV_ActivateTargets; -extern const idEventDef EV_Hide; -extern const idEventDef EV_Show; -extern const idEventDef EV_GetShaderParm; -extern const idEventDef EV_SetShaderParm; -extern const idEventDef EV_SetOwner; -extern const idEventDef EV_GetAngles; -extern const idEventDef EV_SetAngles; -extern const idEventDef EV_SetLinearVelocity; -extern const idEventDef EV_SetAngularVelocity; -extern const idEventDef EV_SetSkin; -extern const idEventDef EV_StartSoundShader; -extern const idEventDef EV_StopSound; -extern const idEventDef EV_CacheSoundShader; // Think flags enum { @@ -159,6 +140,8 @@ public: void Save( idSaveGame *savefile ) const; void Restore( idRestoreGame *savefile ); + virtual bool InvokeNativeScript(const char* name) { return false; } + const char * GetEntityDefName( void ) const; void SetName( const char *name ); const char * GetName( void ) const; @@ -438,68 +421,131 @@ private: void UpdatePVSAreas( void ); public: // events + ID_SCRIPT_EVENT( "getName", 's' ) void Event_GetName( void ); + ID_SCRIPT_EVENT( "setName", 0 ) void Event_SetName( const char *name ); + ID_SCRIPT_EVENT( "", 0 ) void Event_FindTargets( void ); + ID_SCRIPT_EVENT( "activateTargets", 0 ) void Event_ActivateTargets( idEntity *activator ); + ID_SCRIPT_EVENT( "numTargets", 'f' ) void Event_NumTargets( void ); + ID_SCRIPT_EVENT( "getTarget", 'e' ) void Event_GetTarget( float index ); + ID_SCRIPT_EVENT( "randomTarget", 'e' ) void Event_RandomTarget( const char *ignore ); + ID_SCRIPT_EVENT( "bind", 0 ) void Event_Bind( idEntity *master ); + ID_SCRIPT_EVENT( "bindPosition", 0 ) void Event_BindPosition( idEntity *master ); + ID_SCRIPT_EVENT( "bindToJoint", 0 ) void Event_BindToJoint( idEntity *master, const char *jointname, float orientated ); + ID_SCRIPT_EVENT( "unbind", 0 ) void Event_Unbind( void ); + ID_SCRIPT_EVENT( "removeBinds", 0 ) void Event_RemoveBinds( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_SpawnBind( void ); + ID_SCRIPT_EVENT( "setOwner", 0 ) void Event_SetOwner( idEntity *owner ); + ID_SCRIPT_EVENT( "setModel", 0 ) void Event_SetModel( const char *modelname ); + ID_SCRIPT_EVENT( "setSkin", 0 ) void Event_SetSkin( const char *skinname ); + ID_SCRIPT_EVENT( "getShaderParm", 'f' ) void Event_GetShaderParm( int parmnum ); + ID_SCRIPT_EVENT( "setShaderParm", 0 ) void Event_SetShaderParm( int parmnum, float value ); + ID_SCRIPT_EVENT( "setShaderParms", 0 ) void Event_SetShaderParms( float parm0, float parm1, float parm2, float parm3 ); + ID_SCRIPT_EVENT( "setColor", 0 ) void Event_SetColor( float red, float green, float blue ); + ID_SCRIPT_EVENT( "getColor", 'v' ) void Event_GetColor( void ); + ID_SCRIPT_EVENT( "isHidden", 'd' ) void Event_IsHidden( void ); + ID_SCRIPT_EVENT( "hide", 0 ) void Event_Hide( void ); + ID_SCRIPT_EVENT( "show", 0 ) void Event_Show( void ); + ID_SCRIPT_EVENT( "cacheSoundShader", 0 ) void Event_CacheSoundShader( const char *soundName ); + ID_SCRIPT_EVENT( "startSoundShader", 'f' ) void Event_StartSoundShader( const char *soundName, int channel ); + ID_SCRIPT_EVENT( "stopSound", 0 ) void Event_StopSound( int channel, int netSync ); + ID_SCRIPT_EVENT( "startSound", 'f' ) void Event_StartSound( const char *soundName, int channel, int netSync ); + ID_SCRIPT_EVENT( "fadeSound", 0 ) void Event_FadeSound( int channel, float to, float over ); + ID_SCRIPT_EVENT( "getWorldOrigin", 'v' ) void Event_GetWorldOrigin( void ); + ID_SCRIPT_EVENT( "setWorldOrigin", 0 ) void Event_SetWorldOrigin( idVec3 const &org ); + ID_SCRIPT_EVENT( "getOrigin", 'v' ) void Event_GetOrigin( void ); + ID_SCRIPT_EVENT( "setOrigin", 0 ) void Event_SetOrigin( const idVec3 &org ); + ID_SCRIPT_EVENT( "getAngles", 'v' ) void Event_GetAngles( void ); + ID_SCRIPT_EVENT( "setAngles", 0 ) void Event_SetAngles( const idAngles &ang ); + ID_SCRIPT_EVENT( "setLinearVelocity", 0 ) void Event_SetLinearVelocity( const idVec3 &velocity ); + ID_SCRIPT_EVENT( "getLinearVelocity", 'v' ) void Event_GetLinearVelocity( void ); + ID_SCRIPT_EVENT( "setAngularVelocity", 0 ) void Event_SetAngularVelocity( const idVec3 &velocity ); + ID_SCRIPT_EVENT( "getAngularVelocity", 'v' ) void Event_GetAngularVelocity( void ); + ID_SCRIPT_EVENT( "setSize", 0 ) void Event_SetSize( const idVec3 &mins, const idVec3 &maxs ); + ID_SCRIPT_EVENT( "getSize", 'v' ) void Event_GetSize( void ); + ID_SCRIPT_EVENT( "getMins", 'v' ) void Event_GetMins( void ); + ID_SCRIPT_EVENT( "getMaxs", 'v' ) void Event_GetMaxs( void ); + ID_SCRIPT_EVENT( "touches", 'd' ) void Event_Touches( idEntity *ent ); + ID_SCRIPT_EVENT( "setGuiParm", 0 ) void Event_SetGuiParm( const char *key, const char *val ); + ID_SCRIPT_EVENT( "setGuiFloat", 0 ) void Event_SetGuiFloat( const char *key, float f ); + ID_SCRIPT_EVENT( "getNextKey", 's' ) void Event_GetNextKey( const char *prefix, const char *lastMatch ); + ID_SCRIPT_EVENT( "setKey", 0 ) void Event_SetKey( const char *key, const char *value ); + ID_SCRIPT_EVENT( "getKey", 's' ) void Event_GetKey( const char *key ); + ID_SCRIPT_EVENT( "getIntKey", 'f' ) void Event_GetIntKey( const char *key ); + ID_SCRIPT_EVENT( "getFloatKey", 'f' ) void Event_GetFloatKey( const char *key ); + ID_SCRIPT_EVENT( "getVectorKey", 'v' ) void Event_GetVectorKey( const char *key ); + ID_SCRIPT_EVENT( "getEntityKey", 'e' ) void Event_GetEntityKey( const char *key ); + ID_SCRIPT_EVENT( "restorePosition", 0 ) void Event_RestorePosition( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_UpdateCameraTarget( void ); + ID_SCRIPT_EVENT( "distanceTo", 'f' ) void Event_DistanceTo( idEntity *ent ); + ID_SCRIPT_EVENT( "distanceToPoint", 'f' ) void Event_DistanceToPoint( const idVec3 &point ); + ID_SCRIPT_EVENT( "startFx", 0 ) void Event_StartFx( const char *fx ); + ID_SCRIPT_EVENT( "waitFrame", 0 ) void Event_WaitFrame( void ); + ID_SCRIPT_EVENT( "wait", 0 ) void Event_Wait( float time ); + ID_SCRIPT_EVENT( "hasFunction", 'd' ) void Event_HasFunction( const char *name ); + ID_SCRIPT_EVENT( "callFunction", 0 ) void Event_CallFunction( const char *name ); + ID_SCRIPT_EVENT( "setNeverDormant", 0 ) void Event_SetNeverDormant( int enable ); }; @@ -558,12 +604,19 @@ protected: damageEffect_t * damageEffects; public: + ID_SCRIPT_EVENT( "getJointHandle", 'd' ) void Event_GetJointHandle( const char *jointname ); + ID_SCRIPT_EVENT( "clearAllJoints", 0 ) void Event_ClearAllJoints( void ); + ID_SCRIPT_EVENT( "clearJoint", 0 ) void Event_ClearJoint( jointHandle_t jointnum ); + ID_SCRIPT_EVENT( "setJointPos", 0 ) void Event_SetJointPos( jointHandle_t jointnum, jointModTransform_t transform_type, const idVec3 &pos ); + ID_SCRIPT_EVENT( "setJointAngle", 0 ) void Event_SetJointAngle( jointHandle_t jointnum, jointModTransform_t transform_type, const idAngles &angles ); + ID_SCRIPT_EVENT( "getJointPos", 'v' ) void Event_GetJointPos( jointHandle_t jointnum ); + ID_SCRIPT_EVENT( "getJointAngle", 'v' ) void Event_GetJointAngle( jointHandle_t jointnum ); }; diff --git a/neo/doom3/game/Fx.cpp b/neo/doom3/game/Fx.cpp index ed259fd2..500b2c06 100644 --- a/neo/doom3/game/Fx.cpp +++ b/neo/doom3/game/Fx.cpp @@ -39,13 +39,7 @@ If you have questions concerning this license or the applicable additional terms =============================================================================== */ -const idEventDef EV_Fx_KillFx( "_killfx" ); -const idEventDef EV_Fx_Action( "_fxAction", "e" ); // implemented by subclasses -CLASS_DECLARATION( idEntity, idEntityFx ) -EVENT( EV_Activate, idEntityFx::Event_Trigger ) -EVENT( EV_Fx_KillFx, idEntityFx::Event_ClearFx ) -END_CLASS /* @@ -585,7 +579,7 @@ void idEntityFx::Spawn( void ) { if ( !spawnArgs.GetBool( "triggered" ) ) { Setup( fx ); if ( spawnArgs.GetBool( "test" ) || spawnArgs.GetBool( "start" ) || spawnArgs.GetFloat ( "restart" ) ) { - PostEventMS( &EV_Activate, 0, this ); + PostEventMS( &EV_idEntityFx_Activate, 0, this ); } } } @@ -628,7 +622,7 @@ void idEntityFx::Event_ClearFx( void ) { BecomeInactive( TH_THINK ); if ( spawnArgs.GetBool("test") ) { - PostEventMS( &EV_Activate, 0, this ); + PostEventMS( &EV_idEntityFx_Activate, 0, this ); } else { if ( spawnArgs.GetFloat( "restart" ) || !spawnArgs.GetBool( "triggered")) { float rest = spawnArgs.GetFloat( "restart", "0" ); @@ -636,7 +630,7 @@ void idEntityFx::Event_ClearFx( void ) { PostEventSec( &EV_Remove, 0.1f ); } else { rest *= gameLocal.random.RandomFloat(); - PostEventSec( &EV_Activate, rest, this ); + PostEventSec( &EV_idEntityFx_Activate, rest, this ); } } } @@ -663,7 +657,7 @@ void idEntityFx::Event_Trigger( idEntity *activator ) { if ( spawnArgs.GetString( "fx", "", &fx) ) { Setup( fx ); Start( gameLocal.time ); - PostEventMS( &EV_Fx_KillFx, Duration() ); + PostEventMS( &EV_idEntityFx_Killfx, Duration() ); BecomeActive( TH_THINK ); } @@ -674,7 +668,7 @@ void idEntityFx::Event_Trigger( idEntity *activator ) { // prevent multiple triggers on same frame nextTriggerTime = gameLocal.time + 1; } - PostEventSec( &EV_Fx_Action, fxActionDelay, activator ); + PostEventSec( &EV_idTeleporter_FxAction, fxActionDelay, activator ); } @@ -774,9 +768,6 @@ void idEntityFx::ClientPredictionThink( void ) { =============================================================================== */ -CLASS_DECLARATION( idEntityFx, idTeleporter ) - EVENT( EV_Fx_Action, idTeleporter::Event_DoAction ) -END_CLASS /* ================ diff --git a/neo/doom3/game/Fx.h b/neo/doom3/game/Fx.h index f6764e66..007c211f 100644 --- a/neo/doom3/game/Fx.h +++ b/neo/doom3/game/Fx.h @@ -80,7 +80,9 @@ public: static idEntityFx * StartFx( const char *fx, const idVec3 *useOrigin, const idMat3 *useAxis, idEntity *ent, bool bind ); protected: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Trigger( idEntity *activator ); + ID_SCRIPT_EVENT( "_killfx", 0 ) void Event_ClearFx( void ); void CleanUp( void ); @@ -100,6 +102,7 @@ public: private: // teleporters to this location + ID_SCRIPT_EVENT( "_fxAction", 0 ) void Event_DoAction( idEntity *activator ); }; diff --git a/neo/doom3/game/GameEdit.cpp b/neo/doom3/game/GameEdit.cpp index d818a78c..58c94ad7 100644 --- a/neo/doom3/game/GameEdit.cpp +++ b/neo/doom3/game/GameEdit.cpp @@ -40,8 +40,6 @@ If you have questions concerning this license or the applicable additional terms =============================================================================== */ -CLASS_DECLARATION( idEntity, idCursor3D ) -END_CLASS /* =============== @@ -697,7 +695,10 @@ void idGameEdit::TriggerSelected() { idEntity *ent; for( ent = gameLocal.spawnedEntities.Next(); ent != NULL; ent = ent->spawnNode.Next() ) { if ( ent->fl.selected ) { - ent->ProcessEvent( &EV_Activate, gameLocal.GetLocalPlayer() ); + const idEventDef *activateEvent = ent->FindEventDef( "activate", "e" ); + if ( activateEvent ) { + ent->ProcessEvent( activateEvent, gameLocal.GetLocalPlayer() ); + } } } } diff --git a/neo/doom3/game/Game_local.h b/neo/doom3/game/Game_local.h index f5ec11bc..b73fc6fe 100644 --- a/neo/doom3/game/Game_local.h +++ b/neo/doom3/game/Game_local.h @@ -37,6 +37,11 @@ If you have questions concerning this license or the applicable additional terms =============================================================================== */ +#ifndef ID_TYPEINFO +#define ID_SCRIPT_EVENT( name, returnType ) /* typeinfogen_tag */ +#define ID_STATE_FUNCTION(name) +#endif + #define LAGO_IMG_WIDTH 64 #define LAGO_IMG_HEIGHT 64 #define LAGO_WIDTH 64 @@ -779,6 +784,7 @@ const int CINEMATIC_SKIP_DELAY = SEC2MS( 2.0f ); #include "ai/AI.h" #include "anim/Anim_Testmodel.h" +#include "gamesys/TypeInfoGen_Events.h" #include "script/Script_Compiler.h" #include "script/Script_Interpreter.h" #include "script/Script_Thread.h" diff --git a/neo/doom3/game/Item.cpp b/neo/doom3/game/Item.cpp index baff28d4..20b28135 100644 --- a/neo/doom3/game/Item.cpp +++ b/neo/doom3/game/Item.cpp @@ -40,20 +40,7 @@ If you have questions concerning this license or the applicable additional terms =============================================================================== */ -const idEventDef EV_DropToFloor( "" ); -const idEventDef EV_RespawnItem( "respawn" ); -const idEventDef EV_RespawnFx( "" ); -const idEventDef EV_GetPlayerPos( "" ); -const idEventDef EV_HideObjective( "", "e" ); -const idEventDef EV_CamShot( "" ); -CLASS_DECLARATION( idEntity, idItem ) - EVENT( EV_DropToFloor, idItem::Event_DropToFloor ) - EVENT( EV_Touch, idItem::Event_Touch ) - EVENT( EV_Activate, idItem::Event_Trigger ) - EVENT( EV_RespawnItem, idItem::Event_Respawn ) - EVENT( EV_RespawnFx, idItem::Event_RespawnFx ) -END_CLASS /* @@ -273,7 +260,7 @@ void idItem::Spawn( void ) { float tsize; if ( spawnArgs.GetBool( "dropToFloor" ) ) { - PostEventMS( &EV_DropToFloor, 0 ); + PostEventMS( &EV_idItem_DropToFloor, 0 ); } if ( spawnArgs.GetFloat( "triggersize", "0", tsize ) ) { @@ -296,7 +283,7 @@ void idItem::Spawn( void ) { if ( !ent ) { gameLocal.Error( "Item couldn't find owner '%s'", giveTo.c_str() ); } - PostEventMS( &EV_Touch, 0, ent, NULL ); + PostEventMS( &EV_idItem_Touch, 0, ent, NULL ); } if ( spawnArgs.GetBool( "spin" ) || gameLocal.isMultiplayer ) { @@ -395,9 +382,9 @@ bool idItem::Pickup( idPlayer *player ) { if ( respawn && !dropped && !no_respawn ) { const char *sfx = spawnArgs.GetString( "fxRespawn" ); if ( sfx && *sfx ) { - PostEventSec( &EV_RespawnFx, respawn - 0.5f ); + PostEventSec( &EV_idItem_RespawnFx, respawn - 0.5f ); } - PostEventSec( &EV_RespawnItem, respawn ); + PostEventSec( &EV_idItem_Respawn, respawn ); } else if ( !spawnArgs.GetBool( "inv_objective" ) && !no_respawn ) { // give some time for the pickup sound to play // FIXME: Play on the owner @@ -550,7 +537,7 @@ void idItem::Event_Respawn( void ) { GetPhysics()->SetContents( CONTENTS_TRIGGER ); SetOrigin( orgOrigin ); StartSound( "snd_respawn", SND_CHANNEL_ITEM, 0, false, NULL ); - CancelEvents( &EV_RespawnItem ); // don't double respawn + CancelEvents( &EV_idItem_Respawn ); // don't double respawn } /* @@ -582,8 +569,6 @@ idItemPowerup =============== */ -CLASS_DECLARATION( idItem, idItemPowerup ) -END_CLASS /* ================ @@ -646,12 +631,6 @@ bool idItemPowerup::GiveToPlayer( idPlayer *player ) { =============================================================================== */ -CLASS_DECLARATION( idItem, idObjective ) - EVENT( EV_Activate, idObjective::Event_Trigger ) - EVENT( EV_HideObjective, idObjective::Event_HideObjective ) - EVENT( EV_GetPlayerPos, idObjective::Event_GetPlayerPos ) - EVENT( EV_CamShot, idObjective::Event_CamShot ) -END_CLASS /* ================ @@ -678,7 +657,7 @@ idObjective::Restore */ void idObjective::Restore( idRestoreGame *savefile ) { savefile->ReadVec3( playerPos ); - PostEventMS( &EV_CamShot, 250 ); + PostEventMS( &EV_idObjective_Camshot, 250 ); } /* @@ -688,7 +667,7 @@ idObjective::Spawn */ void idObjective::Spawn( void ) { Hide(); - PostEventMS( &EV_CamShot, 250 ); + PostEventMS( &EV_idObjective_Camshot, 250 ); } /* @@ -753,7 +732,7 @@ void idObjective::Event_Trigger( idEntity *activator ) { } } - PostEventMS( &EV_GetPlayerPos, 2000 ); + PostEventMS( &EV_idObjective_Getplayerpos, 2000 ); } } } @@ -768,7 +747,7 @@ void idObjective::Event_GetPlayerPos() { idPlayer *player = gameLocal.GetLocalPlayer(); if ( player ) { playerPos = player->GetPhysics()->GetOrigin(); - PostEventMS( &EV_HideObjective, 100, player ); + PostEventMS( &EV_idObjective_Hideobjective, 100, player ); } } @@ -785,7 +764,7 @@ void idObjective::Event_HideObjective(idEntity *e) { player->HideObjective(); PostEventMS( &EV_Remove, 0 ); } else { - PostEventMS( &EV_HideObjective, 100, player ); + PostEventMS( &EV_idObjective_Hideobjective, 100, player ); } } } @@ -798,8 +777,6 @@ void idObjective::Event_HideObjective(idEntity *e) { =============================================================================== */ -CLASS_DECLARATION( idItem, idVideoCDItem ) -END_CLASS /* ================ @@ -830,8 +807,6 @@ bool idVideoCDItem::GiveToPlayer( idPlayer *player ) { =============================================================================== */ -CLASS_DECLARATION( idItem, idPDAItem ) -END_CLASS /* ================ @@ -854,10 +829,6 @@ bool idPDAItem::GiveToPlayer(idPlayer *player) { =============================================================================== */ -CLASS_DECLARATION( idItem, idMoveableItem ) - EVENT( EV_DropToFloor, idMoveableItem::Event_DropToFloor ) - EVENT( EV_Gib, idMoveableItem::Event_Gib ) -END_CLASS /* ================ @@ -1038,7 +1009,7 @@ idEntity *idMoveableItem::DropItem( const char *classname, const idVec3 &origin, item->GetPhysics()->SetLinearVelocity( velocity ); item->UpdateVisuals(); if ( activateDelay ) { - item->PostEventMS( &EV_Activate, activateDelay, item ); + item->PostEventMS( &EV_idItem_Activate, activateDelay, item ); } if ( !removeDelay ) { removeDelay = 5 * 60 * 1000; @@ -1188,8 +1159,6 @@ void idMoveableItem::Event_Gib( const char *damageDefName ) { =============================================================================== */ -CLASS_DECLARATION( idMoveableItem, idMoveablePDAItem ) -END_CLASS /* ================ @@ -1212,9 +1181,6 @@ bool idMoveablePDAItem::GiveToPlayer(idPlayer *player) { =============================================================================== */ -CLASS_DECLARATION( idEntity, idItemRemover ) - EVENT( EV_Activate, idItemRemover::Event_Trigger ) -END_CLASS /* ================ @@ -1255,11 +1221,6 @@ void idItemRemover::Event_Trigger( idEntity *activator ) { =============================================================================== */ -CLASS_DECLARATION( idItemRemover, idObjectiveComplete ) - EVENT( EV_Activate, idObjectiveComplete::Event_Trigger ) - EVENT( EV_HideObjective, idObjectiveComplete::Event_HideObjective ) - EVENT( EV_GetPlayerPos, idObjectiveComplete::Event_GetPlayerPos ) -END_CLASS /* ================ @@ -1317,7 +1278,7 @@ void idObjectiveComplete::Event_Trigger( idEntity *activator ) { player->hud->SetStateString( "objectivetext", spawnArgs.GetString( "objectivetext" ) ); player->hud->SetStateString( "objectivetitle", spawnArgs.GetString( "objectivetitle" ) ); player->CompleteObjective( spawnArgs.GetString( "objectivetitle" ) ); - PostEventMS( &EV_GetPlayerPos, 2000 ); + PostEventMS( &EV_idObjectiveComplete_Getplayerpos, 2000 ); } } } @@ -1332,7 +1293,7 @@ void idObjectiveComplete::Event_GetPlayerPos() { idPlayer *player = gameLocal.GetLocalPlayer(); if ( player ) { playerPos = player->GetPhysics()->GetOrigin(); - PostEventMS( &EV_HideObjective, 100, player ); + PostEventMS( &EV_idObjectiveComplete_Hideobjective, 100, player ); } } @@ -1350,7 +1311,7 @@ void idObjectiveComplete::Event_HideObjective( idEntity *e ) { player->hud->HandleNamedEvent( "closeObjective" ); PostEventMS( &EV_Remove, 0 ); } else { - PostEventMS( &EV_HideObjective, 100, player ); + PostEventMS( &EV_idObjectiveComplete_Hideobjective, 100, player ); } } } diff --git a/neo/doom3/game/Item.h b/neo/doom3/game/Item.h index fe1ccbac..7bdd0f05 100644 --- a/neo/doom3/game/Item.h +++ b/neo/doom3/game/Item.h @@ -96,10 +96,15 @@ private: bool UpdateRenderEntity( renderEntity_s *renderEntity, const renderView_t *renderView ) const; static bool ModelCallback( renderEntity_s *renderEntity, const renderView_t *renderView ); + ID_SCRIPT_EVENT( "", 0 ) void Event_DropToFloor( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Touch( idEntity *other, trace_t *trace ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Trigger( idEntity *activator ); + ID_SCRIPT_EVENT( "respawn", 0 ) void Event_Respawn( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_RespawnFx( void ); }; @@ -134,9 +139,13 @@ public: private: idVec3 playerPos; + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Trigger( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_HideObjective( idEntity *e ); + ID_SCRIPT_EVENT( "", 0 ) void Event_GetPlayerPos(); + ID_SCRIPT_EVENT( "", 0 ) void Event_CamShot(); }; @@ -183,7 +192,9 @@ private: void Gib( const idVec3 &dir, const char *damageDefName ); + ID_SCRIPT_EVENT( "", 0 ) void Event_DropToFloor( void ); + ID_SCRIPT_EVENT( "gib", 0 ) void Event_Gib( const char *damageDefName ); }; @@ -210,6 +221,7 @@ public: void RemoveItem( idPlayer *player ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Trigger( idEntity *activator ); }; @@ -227,8 +239,11 @@ public: private: idVec3 playerPos; + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Trigger( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_HideObjective( idEntity *e ); + ID_SCRIPT_EVENT( "", 0 ) void Event_GetPlayerPos(); }; diff --git a/neo/doom3/game/Light.cpp b/neo/doom3/game/Light.cpp index 9dc2c76f..abf1b15f 100644 --- a/neo/doom3/game/Light.cpp +++ b/neo/doom3/game/Light.cpp @@ -39,33 +39,7 @@ If you have questions concerning this license or the applicable additional terms =============================================================================== */ -const idEventDef EV_Light_SetShader( "setShader", "s" ); -const idEventDef EV_Light_GetLightParm( "getLightParm", "d", 'f' ); -const idEventDef EV_Light_SetLightParm( "setLightParm", "df" ); -const idEventDef EV_Light_SetLightParms( "setLightParms", "ffff" ); -const idEventDef EV_Light_SetRadiusXYZ( "setRadiusXYZ", "fff" ); -const idEventDef EV_Light_SetRadius( "setRadius", "f" ); -const idEventDef EV_Light_On( "On", NULL ); -const idEventDef EV_Light_Off( "Off", NULL ); -const idEventDef EV_Light_FadeOut( "fadeOutLight", "f" ); -const idEventDef EV_Light_FadeIn( "fadeInLight", "f" ); -CLASS_DECLARATION( idEntity, idLight ) - EVENT( EV_Light_SetShader, idLight::Event_SetShader ) - EVENT( EV_Light_GetLightParm, idLight::Event_GetLightParm ) - EVENT( EV_Light_SetLightParm, idLight::Event_SetLightParm ) - EVENT( EV_Light_SetLightParms, idLight::Event_SetLightParms ) - EVENT( EV_Light_SetRadiusXYZ, idLight::Event_SetRadiusXYZ ) - EVENT( EV_Light_SetRadius, idLight::Event_SetRadius ) - EVENT( EV_Hide, idLight::Event_Hide ) - EVENT( EV_Show, idLight::Event_Show ) - EVENT( EV_Light_On, idLight::Event_On ) - EVENT( EV_Light_Off, idLight::Event_Off ) - EVENT( EV_Activate, idLight::Event_ToggleOnOff ) - EVENT( EV_PostSpawn, idLight::Event_SetSoundHandles ) - EVENT( EV_Light_FadeOut, idLight::Event_FadeOut ) - EVENT( EV_Light_FadeIn, idLight::Event_FadeIn ) -END_CLASS /* diff --git a/neo/doom3/game/Light.h b/neo/doom3/game/Light.h index 1d0ff60e..4689636d 100644 --- a/neo/doom3/game/Light.h +++ b/neo/doom3/game/Light.h @@ -37,9 +37,6 @@ If you have questions concerning this license or the applicable additional terms =============================================================================== */ -extern const idEventDef EV_Light_GetLightParm; -extern const idEventDef EV_Light_SetLightParm; -extern const idEventDef EV_Light_SetLightParms; class idLight : public idEntity { public: @@ -116,19 +113,33 @@ private: void PresentLightDefChange( void ); void PresentModelDefChange( void ); + ID_SCRIPT_EVENT( "setShader", 0 ) void Event_SetShader( const char *shadername ); + ID_SCRIPT_EVENT( "getLightParm", 'f' ) void Event_GetLightParm( int parmnum ); + ID_SCRIPT_EVENT( "setLightParm", 0 ) void Event_SetLightParm( int parmnum, float value ); + ID_SCRIPT_EVENT( "setLightParms", 0 ) void Event_SetLightParms( float parm0, float parm1, float parm2, float parm3 ); + ID_SCRIPT_EVENT( "setRadiusXYZ", 0 ) void Event_SetRadiusXYZ( float x, float y, float z ); + ID_SCRIPT_EVENT( "setRadius", 0 ) void Event_SetRadius( float radius ); + ID_SCRIPT_EVENT( "hide", 0 ) void Event_Hide( void ); + ID_SCRIPT_EVENT( "show", 0 ) void Event_Show( void ); + ID_SCRIPT_EVENT( "On", 0 ) void Event_On( void ); + ID_SCRIPT_EVENT( "Off", 0 ) void Event_Off( void ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_ToggleOnOff( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_SetSoundHandles( void ); + ID_SCRIPT_EVENT( "fadeOutLight", 0 ) void Event_FadeOut( float time ); + ID_SCRIPT_EVENT( "fadeInLight", 0 ) void Event_FadeIn( float time ); }; diff --git a/neo/doom3/game/Misc.cpp b/neo/doom3/game/Misc.cpp index 89c8d460..c6c7329f 100644 --- a/neo/doom3/game/Misc.cpp +++ b/neo/doom3/game/Misc.cpp @@ -48,8 +48,6 @@ that can be bound to other entities. Should not be subclassed. =============================================================================== */ -CLASS_DECLARATION( idEntity, idSpawnableEntity ) -END_CLASS /* ====================== @@ -68,12 +66,7 @@ void idSpawnableEntity::Spawn() { =============================================================================== */ -const idEventDef EV_TeleportStage( "", "e" ); -CLASS_DECLARATION( idEntity, idPlayerStart ) - EVENT( EV_Activate, idPlayerStart::Event_TeleportPlayer ) - EVENT( EV_TeleportStage, idPlayerStart::Event_TeleportStage ) -END_CLASS /* =============== @@ -158,12 +151,12 @@ void idPlayerStart::Event_TeleportStage( idEntity *_player ) { gameSoundWorld->FadeSoundClasses( 0, -20.0f, teleportDelay ); player->StartSound( "snd_teleport_start", SND_CHANNEL_BODY2, 0, false, NULL ); teleportStage++; - PostEventSec( &EV_TeleportStage, teleportDelay, player ); + PostEventSec( &EV_idPlayerStart_TeleportStage, teleportDelay, player ); break; case 1: gameSoundWorld->FadeSoundClasses( 0, 0.0f, 0.25f ); teleportStage++; - PostEventSec( &EV_TeleportStage, 0.25f, player ); + PostEventSec( &EV_idPlayerStart_TeleportStage, 0.25f, player ); break; case 2: player->SetInfluenceView( NULL, NULL, 0.0f, NULL ); @@ -196,7 +189,7 @@ void idPlayerStart::TeleportPlayer( idPlayer *player ) { player->SetPrivateCameraView( static_cast(ent) ); // the player entity knows where to spawn from the previous Teleport call if ( !gameLocal.isClient ) { - player->PostEventSec( &EV_Player_ExitTeleporter, f ); + player->PostEventSec( &EV_idPlayer_ExitTeleporter, f ); } } else { // direct to exit, Teleport will take care of the killbox @@ -253,9 +246,6 @@ void idPlayerStart::Event_TeleportPlayer( idEntity *activator ) { =============================================================================== */ -CLASS_DECLARATION( idEntity, idActivator ) - EVENT( EV_Activate, idActivator::Event_Activate ) -END_CLASS /* =============== @@ -337,9 +327,6 @@ idPathCorner =============================================================================== */ -CLASS_DECLARATION( idEntity, idPathCorner ) - EVENT( AI_RandomPath, idPathCorner::Event_RandomPath ) -END_CLASS /* ===================== @@ -419,12 +406,7 @@ void idPathCorner::Event_RandomPath( void ) { =============================================================================== */ -const idEventDef EV_RestoreDamagable( "" ); -CLASS_DECLARATION( idEntity, idDamagable ) - EVENT( EV_Activate, idDamagable::Event_BecomeBroken ) - EVENT( EV_RestoreDamagable, idDamagable::Event_RestoreDamagable ) -END_CLASS /* ================ @@ -536,7 +518,7 @@ void idDamagable::BecomeBroken( idEntity *activator ) { if ( spawnArgs.GetBool( "hideWhenBroken" ) ) { Hide(); - PostEventMS( &EV_RestoreDamagable, nextTriggerTime - gameLocal.time ); + PostEventMS( &EV_idDamagable_RestoreDamagable, nextTriggerTime - gameLocal.time ); BecomeActive( TH_THINK ); } } @@ -583,9 +565,6 @@ void idDamagable::Event_RestoreDamagable( void ) { =============================================================================== */ -CLASS_DECLARATION( idEntity, idExplodable ) - EVENT( EV_Activate, idExplodable::Event_Explode ) -END_CLASS /* ================ @@ -633,9 +612,6 @@ void idExplodable::Event_Explode( idEntity *activator ) { =============================================================================== */ -CLASS_DECLARATION( idEntity, idSpring ) - EVENT( EV_PostSpawn, idSpring::Event_LinkSpring ) -END_CLASS /* ================ @@ -738,13 +714,7 @@ void idSpring::Spawn( void ) { =============================================================================== */ -const idEventDef EV_Toggle( "Toggle", NULL ); -CLASS_DECLARATION( idEntity, idForceField ) - EVENT( EV_Activate, idForceField::Event_Activate ) - EVENT( EV_Toggle, idForceField::Event_Toggle ) - EVENT( EV_FindTargets, idForceField::Event_FindTargets ) -END_CLASS /* =============== @@ -852,7 +822,7 @@ void idForceField::Event_Activate( idEntity *activator ) { Toggle(); if ( spawnArgs.GetFloat( "wait", "0.01", wait ) ) { - PostEventSec( &EV_Toggle, wait ); + PostEventSec( &EV_idForceField_Toggle, wait ); } } @@ -878,23 +848,7 @@ void idForceField::Event_FindTargets( void ) { =============================================================================== */ -const idEventDef EV_Animated_Start( "" ); -const idEventDef EV_LaunchMissiles( "launchMissiles", "ssssdf" ); -const idEventDef EV_LaunchMissilesUpdate( "", "dddd" ); -const idEventDef EV_AnimDone( "", "d" ); -const idEventDef EV_StartRagdoll( "startRagdoll" ); -CLASS_DECLARATION( idAFEntity_Gibbable, idAnimated ) - EVENT( EV_Activate, idAnimated::Event_Activate ) - EVENT( EV_Animated_Start, idAnimated::Event_Start ) - EVENT( EV_StartRagdoll, idAnimated::Event_StartRagdoll ) - EVENT( EV_AnimDone, idAnimated::Event_AnimDone ) - EVENT( EV_Footstep, idAnimated::Event_Footstep ) - EVENT( EV_FootstepLeft, idAnimated::Event_Footstep ) - EVENT( EV_FootstepRight, idAnimated::Event_Footstep ) - EVENT( EV_LaunchMissiles, idAnimated::Event_LaunchMissiles ) - EVENT( EV_LaunchMissilesUpdate, idAnimated::Event_LaunchMissilesUpdate ) -END_CLASS /* =============== @@ -1023,7 +977,7 @@ void idAnimated::Spawn( void ) { spawnArgs.GetFloat( "wait", "-1", wait ); if ( wait >= 0 ) { - PostEventSec( &EV_Activate, wait, this ); + PostEventSec( &EV_idAnimated_Activate, wait, this ); } } @@ -1128,7 +1082,7 @@ void idAnimated::PlayNextAnim( void ) { len = animator.CurrentAnim( ANIMCHANNEL_ALL )->PlayLength(); if ( len >= 0 ) { - PostEventMS( &EV_AnimDone, len, current_anim_index ); + PostEventMS( &EV_idAnimated_AnimDone, len, current_anim_index ); } // offset the start time of the shader to sync it to the game time @@ -1191,7 +1145,7 @@ void idAnimated::Event_Activate( idEntity *_activator ) { activated = true; activator = _activator; - ProcessEvent( &EV_Animated_Start ); + ProcessEvent( &EV_idAnimated_Start ); } /* @@ -1221,7 +1175,7 @@ void idAnimated::Event_Start( void ) { len = animator.CurrentAnim( ANIMCHANNEL_ALL )->PlayLength(); if ( len >= 0 ) { - PostEventMS( &EV_AnimDone, len, 1 ); + PostEventMS( &EV_idAnimated_AnimDone, len, 1 ); } } @@ -1285,7 +1239,7 @@ void idAnimated::Event_LaunchMissilesUpdate( int launchjoint, int targetjoint, i projectile->Launch( launchPos, dir, vec3_origin ); if ( numshots > 0 ) { - PostEventMS( &EV_LaunchMissilesUpdate, FRAME2MS( framedelay ), launchjoint, targetjoint, numshots - 1, framedelay ); + PostEventMS( &EV_idAnimated_LaunchMissilesUpdate, FRAME2MS( framedelay ), launchjoint, targetjoint, numshots - 1, framedelay ); } } @@ -1319,8 +1273,8 @@ void idAnimated::Event_LaunchMissiles( const char *projectilename, const char *s spawnArgs.Set( "projectilename", projectilename ); spawnArgs.Set( "missilesound", sound ); - CancelEvents( &EV_LaunchMissilesUpdate ); - ProcessEvent( &EV_LaunchMissilesUpdate, launch, target, numshots - 1, framedelay ); + CancelEvents( &EV_idAnimated_LaunchMissilesUpdate ); + ProcessEvent( &EV_idAnimated_LaunchMissilesUpdate, launch, target, numshots - 1, framedelay ); } @@ -1334,9 +1288,6 @@ void idAnimated::Event_LaunchMissiles( const char *projectilename, const char *s =============================================================================== */ -CLASS_DECLARATION( idEntity, idStaticEntity ) - EVENT( EV_Activate, idStaticEntity::Event_Activate ) -END_CLASS /* =============== @@ -1584,9 +1535,6 @@ idFuncEmitter */ -CLASS_DECLARATION( idStaticEntity, idFuncEmitter ) -EVENT( EV_Activate, idFuncEmitter::Event_Activate ) -END_CLASS /* =============== @@ -1682,11 +1630,6 @@ idFuncSplat */ -const idEventDef EV_Splat( "" ); -CLASS_DECLARATION( idFuncEmitter, idFuncSplat ) -EVENT( EV_Activate, idFuncSplat::Event_Activate ) -EVENT( EV_Splat, idFuncSplat::Event_Splat ) -END_CLASS /* =============== @@ -1731,7 +1674,7 @@ idFuncSplat::Event_Activate */ void idFuncSplat::Event_Activate( idEntity *activator ) { idFuncEmitter::Event_Activate( activator ); - PostEventSec( &EV_Splat, spawnArgs.GetFloat( "splatDelay", "0.25" ) ); + PostEventSec( &EV_idFuncSplat_Splat, spawnArgs.GetFloat( "splatDelay", "0.25" ) ); StartSound( "snd_spurt", SND_CHANNEL_ANY, 0, false, NULL ); } @@ -1743,9 +1686,6 @@ idFuncSmoke =============================================================================== */ -CLASS_DECLARATION( idEntity, idFuncSmoke ) -EVENT( EV_Activate, idFuncSmoke::Event_Activate ) -END_CLASS /* =============== @@ -1853,8 +1793,6 @@ void idFuncSmoke::Think( void ) { =============================================================================== */ -CLASS_DECLARATION( idEntity, idTextEntity ) -END_CLASS /* ================ @@ -1920,9 +1858,6 @@ void idTextEntity::Think( void ) { =============================================================================== */ -CLASS_DECLARATION( idEntity, idVacuumSeparatorEntity ) - EVENT( EV_Activate, idVacuumSeparatorEntity::Event_Activate ) -END_CLASS /* @@ -1996,8 +1931,6 @@ idLocationSeparatorEntity =============================================================================== */ -CLASS_DECLARATION( idEntity, idLocationSeparatorEntity ) -END_CLASS /* ================ @@ -2026,8 +1959,6 @@ void idLocationSeparatorEntity::Spawn() { =============================================================================== */ -CLASS_DECLARATION( idEntity, idVacuumEntity ) -END_CLASS /* ================ @@ -2054,8 +1985,6 @@ idLocationEntity =============================================================================== */ -CLASS_DECLARATION( idEntity, idLocationEntity ) -END_CLASS /* ====================== @@ -2090,10 +2019,6 @@ const char *idLocationEntity::GetLocation( void ) const { =============================================================================== */ -CLASS_DECLARATION( idEntity, idBeam ) - EVENT( EV_PostSpawn, idBeam::Event_MatchTarget ) - EVENT( EV_Activate, idBeam::Event_Activate ) -END_CLASS /* =============== @@ -2292,9 +2217,6 @@ void idBeam::ReadFromSnapshot( const idBitMsgDelta &msg ) { =============================================================================== */ -CLASS_DECLARATION( idEntity, idLiquid ) - EVENT( EV_Touch, idLiquid::Event_Touch ) -END_CLASS /* ================ @@ -2355,9 +2277,6 @@ void idLiquid::Event_Touch( idEntity *other, trace_t *trace ) { =============================================================================== */ -CLASS_DECLARATION( idEntity, idShaking ) - EVENT( EV_Activate, idShaking::Event_Activate ) -END_CLASS /* =============== @@ -2447,9 +2366,6 @@ void idShaking::Event_Activate( idEntity *activator ) { =============================================================================== */ -CLASS_DECLARATION( idEntity, idEarthQuake ) - EVENT( EV_Activate, idEarthQuake::Event_Activate ) -END_CLASS /* =============== @@ -2519,7 +2435,7 @@ void idEarthQuake::Spawn( void ) { shakeTime = spawnArgs.GetFloat( "shakeTime", "0" ); if ( !triggered ){ - PostEventSec( &EV_Activate, spawnArgs.GetFloat( "wait" ), this ); + PostEventSec( &EV_idEarthQuake_Activate, spawnArgs.GetFloat( "wait" ), this ); } BecomeInactive( TH_THINK ); } @@ -2552,7 +2468,7 @@ void idEarthQuake::Event_Activate( idEntity *activator ) { if (disabled) { return; } else { - PostEventSec( &EV_Activate, wait + random * gameLocal.random.CRandomFloat(), this ); + PostEventSec( &EV_idEarthQuake_Activate, wait + random * gameLocal.random.CRandomFloat(), this ); } } @@ -2572,7 +2488,7 @@ void idEarthQuake::Event_Activate( idEntity *activator ) { if ( wait > 0.0f ) { if ( !triggered ) { - PostEventSec( &EV_Activate, wait + random * gameLocal.random.CRandomFloat(), this ); + PostEventSec( &EV_idEarthQuake_Activate, wait + random * gameLocal.random.CRandomFloat(), this ); } else { nextTriggerTime = gameLocal.time + SEC2MS( wait + random * gameLocal.random.CRandomFloat() ); } @@ -2610,9 +2526,6 @@ void idEarthQuake::Think( void ) { =============================================================================== */ -CLASS_DECLARATION( idEntity, idFuncPortal ) - EVENT( EV_Activate, idFuncPortal::Event_Activate ) -END_CLASS /* =============== @@ -2678,9 +2591,6 @@ void idFuncPortal::Event_Activate( idEntity *activator ) { =============================================================================== */ -CLASS_DECLARATION( idEntity, idFuncAASPortal ) - EVENT( EV_Activate, idFuncAASPortal::Event_Activate ) -END_CLASS /* =============== @@ -2738,9 +2648,6 @@ void idFuncAASPortal::Event_Activate( idEntity *activator ) { =============================================================================== */ -CLASS_DECLARATION( idEntity, idFuncAASObstacle ) - EVENT( EV_Activate, idFuncAASObstacle::Event_Activate ) -END_CLASS /* =============== @@ -2800,13 +2707,8 @@ idFuncRadioChatter =============================================================================== */ -const idEventDef EV_ResetRadioHud( "", "e" ); -CLASS_DECLARATION( idEntity, idFuncRadioChatter ) -EVENT( EV_Activate, idFuncRadioChatter::Event_Activate ) -EVENT( EV_ResetRadioHud, idFuncRadioChatter::Event_ResetRadioHud ) -END_CLASS /* =============== @@ -2871,7 +2773,7 @@ void idFuncRadioChatter::Event_Activate( idEntity *activator ) { } // we still put the hud up because this is used with no sound on // certain frame commands when the chatter is triggered - PostEventSec( &EV_ResetRadioHud, time, player ); + PostEventSec( &EV_idFuncRadioChatter_Resetradiohud, time, player ); } @@ -2895,9 +2797,6 @@ void idFuncRadioChatter::Event_ResetRadioHud( idEntity *activator ) { =============================================================================== */ -CLASS_DECLARATION( idEntity, idPhantomObjects ) - EVENT( EV_Activate, idPhantomObjects::Event_Activate ) -END_CLASS /* =============== diff --git a/neo/doom3/game/Misc.h b/neo/doom3/game/Misc.h index 2f4824aa..de740bd6 100644 --- a/neo/doom3/game/Misc.h +++ b/neo/doom3/game/Misc.h @@ -84,7 +84,9 @@ public: private: int teleportStage; + ID_SCRIPT_EVENT( "activate", 0 ) void Event_TeleportPlayer( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_TeleportStage( idEntity *player ); void TeleportPlayer( idPlayer *player ); }; @@ -115,6 +117,7 @@ public: private: bool stay_on; + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -137,6 +140,7 @@ public: static idPathCorner *RandomPath( const idEntity *source, const idEntity *ignore ); private: + ID_SCRIPT_EVENT( "randomPath", 'e' ) void Event_RandomPath( void ); }; @@ -166,7 +170,9 @@ private: int nextTriggerTime; void BecomeBroken( idEntity *activator ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_BecomeBroken( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_RestoreDamagable( void ); }; @@ -186,6 +192,7 @@ public: void Spawn( void ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Explode( idEntity *activator ); }; @@ -215,6 +222,7 @@ private: idVec3 p2; idForce_Spring spring; + ID_SCRIPT_EVENT( "", 0 ) void Event_LinkSpring( void ); }; @@ -243,8 +251,11 @@ private: void Toggle( void ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); + ID_SCRIPT_EVENT( "Toggle", 0 ) void Event_Toggle( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_FindTargets( void ); }; @@ -283,12 +294,21 @@ private: void PlayNextAnim( void ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Start( void ); + ID_SCRIPT_EVENT( "startRagdoll", 0 ) void Event_StartRagdoll( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_AnimDone( int animIndex ); + ID_SCRIPT_EVENT( "footstep", 0 ) + ID_SCRIPT_EVENT( "leftFoot", 0 ) + ID_SCRIPT_EVENT( "rightFoot", 0 ) void Event_Footstep( void ); + ID_SCRIPT_EVENT( "launchMissiles", 0 ) void Event_LaunchMissiles( const char *projectilename, const char *sound, const char *launchjoint, const char *targetjoint, int numshots, int framedelay ); + ID_SCRIPT_EVENT( "", 0 ) void Event_LaunchMissilesUpdate( int launchjoint, int targetjoint, int numshots, int framedelay ); }; @@ -321,6 +341,7 @@ public: virtual void ReadFromSnapshot( const idBitMsgDelta &msg ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); int spawnTime; @@ -351,6 +372,7 @@ public: void Restore( idRestoreGame *savefile ); void Spawn( void ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); virtual void WriteToSnapshot( idBitMsgDelta &msg ) const; @@ -382,6 +404,7 @@ public: void Restore( idRestoreGame *savefile ); virtual void Think( void ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); private: @@ -408,7 +431,9 @@ public: void Spawn( void ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Splat(); }; @@ -477,6 +502,7 @@ public: void Save( idSaveGame *savefile ) const; void Restore( idRestoreGame *savefile ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); private: @@ -523,7 +549,9 @@ public: virtual void ReadFromSnapshot( const idBitMsgDelta &msg ); private: + ID_SCRIPT_EVENT( "", 0 ) void Event_MatchTarget( void ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); idEntityPtr target; @@ -551,6 +579,7 @@ public: void Restore( idRestoreGame *savefile ); private: + ID_SCRIPT_EVENT( "", 0 ) void Event_Touch( idEntity *other, trace_t *trace ); @@ -582,6 +611,7 @@ private: bool active; void BeginShaking( void ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -617,6 +647,7 @@ private: bool disabled; float shakeTime; + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -644,6 +675,7 @@ private: qhandle_t portal; bool state; + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -669,6 +701,7 @@ public: private: bool state; + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -694,6 +727,7 @@ public: private: bool state; + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -719,7 +753,9 @@ public: private: float time; + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_ResetRadioHud( idEntity *activator ); }; @@ -746,6 +782,7 @@ public: virtual void Think( void ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); int end_time; diff --git a/neo/doom3/game/Moveable.cpp b/neo/doom3/game/Moveable.cpp index 4c311ae6..7da39575 100644 --- a/neo/doom3/game/Moveable.cpp +++ b/neo/doom3/game/Moveable.cpp @@ -39,18 +39,7 @@ If you have questions concerning this license or the applicable additional terms =============================================================================== */ -const idEventDef EV_BecomeNonSolid( "becomeNonSolid" ); -const idEventDef EV_SetOwnerFromSpawnArgs( "" ); -const idEventDef EV_IsAtRest( "isAtRest", NULL, 'd' ); -const idEventDef EV_EnableDamage( "enableDamage", "f" ); -CLASS_DECLARATION( idEntity, idMoveable ) - EVENT( EV_Activate, idMoveable::Event_Activate ) - EVENT( EV_BecomeNonSolid, idMoveable::Event_BecomeNonSolid ) - EVENT( EV_SetOwnerFromSpawnArgs, idMoveable::Event_SetOwnerFromSpawnArgs ) - EVENT( EV_IsAtRest, idMoveable::Event_IsAtRest ) - EVENT( EV_EnableDamage, idMoveable::Event_EnableDamage ) -END_CLASS static const float BOUNCE_SOUND_MIN_VELOCITY = 80.0f; @@ -176,7 +165,7 @@ void idMoveable::Spawn( void ) { allowStep = spawnArgs.GetBool( "allowStep", "1" ); - PostEventMS( &EV_SetOwnerFromSpawnArgs, 0 ); + PostEventMS( &EV_idMoveable_SetOwnerFromSpawnArgs, 0 ); } /* @@ -356,7 +345,7 @@ idMoveable::EnableDamage void idMoveable::EnableDamage( bool enable, float duration ) { canDamage = enable; if ( duration ) { - PostEventSec( &EV_EnableDamage, duration, ( !enable ) ? 0.0f : 1.0f ); + PostEventSec( &EV_idMoveable_EnableDamage, duration, ( !enable ) ? 0.0f : 1.0f ); } } @@ -544,8 +533,6 @@ void idMoveable::Event_EnableDamage( float enable ) { =============================================================================== */ -CLASS_DECLARATION( idMoveable, idBarrel ) -END_CLASS /* ================ @@ -726,15 +713,7 @@ idExplodingBarrel =============================================================================== */ -const idEventDef EV_Respawn( "" ); -const idEventDef EV_TriggerTargets( "" ); -CLASS_DECLARATION( idBarrel, idExplodingBarrel ) - EVENT( EV_Activate, idExplodingBarrel::Event_Activate ) - EVENT( EV_Respawn, idExplodingBarrel::Event_Respawn ) - EVENT( EV_Explode, idExplodingBarrel::Event_Explode ) - EVENT( EV_TriggerTargets, idExplodingBarrel::Event_TriggerTargets ) -END_CLASS /* ================ @@ -1043,11 +1022,11 @@ void idExplodingBarrel::Killed( idEntity *inflictor, idEntity *attacker, int dam physicsObj.PutToRest(); CancelEvents( &EV_Explode ); - CancelEvents( &EV_Activate ); + CancelEvents( &EV_idMoveable_Activate ); f = spawnArgs.GetFloat( "respawn" ); if ( f > 0.0f ) { - PostEventSec( &EV_Respawn, f ); + PostEventSec( &EV_idExplodingBarrel_Respawn, f ); } else { PostEventMS( &EV_Remove, 5000 ); } @@ -1118,7 +1097,7 @@ void idExplodingBarrel::Event_Respawn() { } } if ( minDist < minRespawnDist ) { - PostEventSec( &EV_Respawn, spawnArgs.GetInt( "respawn_again", "10" ) ); + PostEventSec( &EV_idExplodingBarrel_Respawn, spawnArgs.GetInt( "respawn_again", "10" ) ); return; } } diff --git a/neo/doom3/game/Moveable.h b/neo/doom3/game/Moveable.h index fe343dce..da1e713f 100644 --- a/neo/doom3/game/Moveable.h +++ b/neo/doom3/game/Moveable.h @@ -37,8 +37,6 @@ If you have questions concerning this license or the applicable additional terms =============================================================================== */ -extern const idEventDef EV_BecomeNonSolid; -extern const idEventDef EV_IsAtRest; class idMoveable : public idEntity { public: @@ -86,10 +84,15 @@ protected: void InitInitialSpline( int startTime ); bool FollowInitialSplinePath( void ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); + ID_SCRIPT_EVENT( "becomeNonSolid", 0 ) void Event_BecomeNonSolid( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_SetOwnerFromSpawnArgs( void ); + ID_SCRIPT_EVENT( "isAtRest", 'd' ) void Event_IsAtRest( void ); + ID_SCRIPT_EVENT( "enableDamage", 0 ) void Event_EnableDamage( float enable ); }; @@ -188,9 +191,13 @@ private: void AddLight( const char *name , bool burn ); void ExplodingEffects( void ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Respawn(); + ID_SCRIPT_EVENT( "", 0 ) void Event_Explode(); + ID_SCRIPT_EVENT( "", 0 ) void Event_TriggerTargets(); }; diff --git a/neo/doom3/game/Mover.cpp b/neo/doom3/game/Mover.cpp index 872c0fc6..8f387f75 100644 --- a/neo/doom3/game/Mover.cpp +++ b/neo/doom3/game/Mover.cpp @@ -51,85 +51,7 @@ idMover =============================================================================== */ -const idEventDef EV_FindGuiTargets( "", NULL ); -const idEventDef EV_TeamBlocked( "", "ee" ); -const idEventDef EV_PartBlocked( "", "e" ); -const idEventDef EV_ReachedPos( "", NULL ); -const idEventDef EV_ReachedAng( "", NULL ); -const idEventDef EV_PostRestore( "", "ddddd" ); -const idEventDef EV_StopMoving( "stopMoving", NULL ); -const idEventDef EV_StopRotating( "stopRotating", NULL ); -const idEventDef EV_Speed( "speed", "f" ); -const idEventDef EV_Time( "time", "f" ); -const idEventDef EV_AccelTime( "accelTime", "f" ); -const idEventDef EV_DecelTime( "decelTime", "f" ); -const idEventDef EV_MoveTo( "moveTo", "e" ); -const idEventDef EV_MoveToPos( "moveToPos", "v" ); -const idEventDef EV_Move( "move", "ff" ); -const idEventDef EV_MoveAccelerateTo( "accelTo", "ff" ); -const idEventDef EV_MoveDecelerateTo( "decelTo", "ff" ); -const idEventDef EV_RotateDownTo( "rotateDownTo", "df" ); -const idEventDef EV_RotateUpTo( "rotateUpTo", "df" ); -const idEventDef EV_RotateTo( "rotateTo", "v" ); -const idEventDef EV_Rotate( "rotate", "v" ); -const idEventDef EV_RotateOnce( "rotateOnce", "v" ); -const idEventDef EV_Bob( "bob", "ffv" ); -const idEventDef EV_Sway( "sway", "ffv" ); -const idEventDef EV_Mover_OpenPortal( "openPortal" ); -const idEventDef EV_Mover_ClosePortal( "closePortal" ); -const idEventDef EV_AccelSound( "accelSound", "s" ); -const idEventDef EV_DecelSound( "decelSound", "s" ); -const idEventDef EV_MoveSound( "moveSound", "s" ); -const idEventDef EV_Mover_InitGuiTargets( "", NULL ); -const idEventDef EV_EnableSplineAngles( "enableSplineAngles", NULL ); -const idEventDef EV_DisableSplineAngles( "disableSplineAngles", NULL ); -const idEventDef EV_RemoveInitialSplineAngles( "removeInitialSplineAngles", NULL ); -const idEventDef EV_StartSpline( "startSpline", "e" ); -const idEventDef EV_StopSpline( "stopSpline", NULL ); -const idEventDef EV_IsMoving( "isMoving", NULL, 'd' ); -const idEventDef EV_IsRotating( "isRotating", NULL, 'd' ); -CLASS_DECLARATION( idEntity, idMover ) - EVENT( EV_FindGuiTargets, idMover::Event_FindGuiTargets ) - EVENT( EV_Thread_SetCallback, idMover::Event_SetCallback ) - EVENT( EV_TeamBlocked, idMover::Event_TeamBlocked ) - EVENT( EV_PartBlocked, idMover::Event_PartBlocked ) - EVENT( EV_ReachedPos, idMover::Event_UpdateMove ) - EVENT( EV_ReachedAng, idMover::Event_UpdateRotation ) - EVENT( EV_PostRestore, idMover::Event_PostRestore ) - EVENT( EV_StopMoving, idMover::Event_StopMoving ) - EVENT( EV_StopRotating, idMover::Event_StopRotating ) - EVENT( EV_Speed, idMover::Event_SetMoveSpeed ) - EVENT( EV_Time, idMover::Event_SetMoveTime ) - EVENT( EV_AccelTime, idMover::Event_SetAccellerationTime ) - EVENT( EV_DecelTime, idMover::Event_SetDecelerationTime ) - EVENT( EV_MoveTo, idMover::Event_MoveTo ) - EVENT( EV_MoveToPos, idMover::Event_MoveToPos ) - EVENT( EV_Move, idMover::Event_MoveDir ) - EVENT( EV_MoveAccelerateTo, idMover::Event_MoveAccelerateTo ) - EVENT( EV_MoveDecelerateTo, idMover::Event_MoveDecelerateTo ) - EVENT( EV_RotateDownTo, idMover::Event_RotateDownTo ) - EVENT( EV_RotateUpTo, idMover::Event_RotateUpTo ) - EVENT( EV_RotateTo, idMover::Event_RotateTo ) - EVENT( EV_Rotate, idMover::Event_Rotate ) - EVENT( EV_RotateOnce, idMover::Event_RotateOnce ) - EVENT( EV_Bob, idMover::Event_Bob ) - EVENT( EV_Sway, idMover::Event_Sway ) - EVENT( EV_Mover_OpenPortal, idMover::Event_OpenPortal ) - EVENT( EV_Mover_ClosePortal, idMover::Event_ClosePortal ) - EVENT( EV_AccelSound, idMover::Event_SetAccelSound ) - EVENT( EV_DecelSound, idMover::Event_SetDecelSound ) - EVENT( EV_MoveSound, idMover::Event_SetMoveSound ) - EVENT( EV_Mover_InitGuiTargets, idMover::Event_InitGuiTargets ) - EVENT( EV_EnableSplineAngles, idMover::Event_EnableSplineAngles ) - EVENT( EV_DisableSplineAngles, idMover::Event_DisableSplineAngles ) - EVENT( EV_RemoveInitialSplineAngles, idMover::Event_RemoveInitialSplineAngles ) - EVENT( EV_StartSpline, idMover::Event_StartSpline ) - EVENT( EV_StopSpline, idMover::Event_StopSpline ) - EVENT( EV_Activate, idMover::Event_Activate ) - EVENT( EV_IsMoving, idMover::Event_IsMoving ) - EVENT( EV_IsRotating, idMover::Event_IsRotating ) -END_CLASS /* ================ @@ -296,7 +218,7 @@ void idMover::Restore( idRestoreGame *savefile ) { savefile->ReadInt( decel ); savefile->ReadInt( useAngles ); - PostEventMS( &EV_PostRestore, 0, starttime, totaltime, accel, decel, useAngles ); + PostEventMS( &EV_idMover_Postrestore, 0, starttime, totaltime, accel, decel, useAngles ); } } @@ -365,7 +287,7 @@ void idMover::Spawn( void ) { if ( spawnArgs.MatchPrefix( "guiTarget" ) ) { if ( gameLocal.GameState() == GAMESTATE_STARTUP ) { - PostEventMS( &EV_FindGuiTargets, 0 ); + PostEventMS( &EV_idMover_FindGuiTargets, 0 ); } else { // not during spawn, so it's ok to get the targets FindGuiTargets(); @@ -969,7 +891,7 @@ void idMover::BeginRotation( idThread *thread, bool stopwhendone ) { rot.deceleration = dt; rot.rot = angle_delta; - ProcessEvent( &EV_ReachedAng ); + ProcessEvent( &EV_Reachedang ); } @@ -1541,8 +1463,6 @@ void idMover::SetPortalState( bool open ) { =============================================================================== */ -CLASS_DECLARATION( idEntity, idSplinePath ) -END_CLASS /* ================ @@ -1568,17 +1488,7 @@ idElevator =============================================================================== */ -const idEventDef EV_PostArrival( "postArrival", NULL ); -const idEventDef EV_GotoFloor( "gotoFloor", "d" ); -CLASS_DECLARATION( idMover, idElevator ) - EVENT( EV_Activate, idElevator::Event_Activate ) - EVENT( EV_TeamBlocked, idElevator::Event_TeamBlocked ) - EVENT( EV_PartBlocked, idElevator::Event_PartBlocked ) - EVENT( EV_PostArrival, idElevator::Event_PostFloorArrival ) - EVENT( EV_GotoFloor, idElevator::Event_GotoFloor ) - EVENT( EV_Touch, idElevator::Event_Touch ) -END_CLASS /* ================ @@ -1684,7 +1594,7 @@ void idElevator::Spawn( void ) { lastTouchTime = 0; state = INIT; BecomeActive( TH_THINK | TH_PHYSICS ); - PostEventMS( &EV_Mover_InitGuiTargets, 0 ); + PostEventMS( &EV_idMover_Initguitargets, 0 ); controlsDisabled = false; } @@ -1711,7 +1621,7 @@ void idElevator::Event_Touch( idEntity *other, trace_t *trace ) { int triggerFloor = spawnArgs.GetInt( "triggerFloor" ); if ( spawnArgs.GetBool( "trigger" ) && triggerFloor != currentFloor ) { - PostEventSec( &EV_GotoFloor, 0.25f, triggerFloor ); + PostEventSec( &EV_idElevator_GotoFloor, 0.25f, triggerFloor ); } } @@ -1824,9 +1734,9 @@ bool idElevator::HandleSingleGuiCommand( idEntity *entityGui, idLexer *src ) { } else { idDoor *door = GetDoor( spawnArgs.GetString( "innerdoor" ) ); if ( door && door->IsOpen() ) { - PostEventSec( &EV_GotoFloor, 0.5f, newFloor ); + PostEventSec( &EV_idElevator_GotoFloor, 0.5f, newFloor ); } else { - ProcessEvent( &EV_GotoFloor, newFloor ); + ProcessEvent( &EV_idElevator_GotoFloor, newFloor ); } } return true; @@ -1889,7 +1799,7 @@ void idElevator::Event_GotoFloor( int floor ) { idDoor *door = GetDoor( spawnArgs.GetString( "innerdoor" ) ); if ( door ) { if ( door->IsBlocked() || door->IsOpen() ) { - PostEventSec( &EV_GotoFloor, 0.5f, floor ); + PostEventSec( &EV_idElevator_GotoFloor, 0.5f, floor ); return; } } @@ -1967,7 +1877,7 @@ void idElevator::Event_PostFloorArrival() { SetGuiStates( ( currentFloor == 1 ) ? guiBinaryMoverStates[0] : guiBinaryMoverStates[1] ); controlsDisabled = false; if ( returnTime > 0.0f && returnFloor != currentFloor ) { - PostEventSec( &EV_GotoFloor, returnTime, returnFloor ); + PostEventSec( &EV_idElevator_GotoFloor, returnTime, returnFloor ); } } @@ -1994,7 +1904,7 @@ void idElevator::DoneMoving( void ) { kv = spawnArgs.MatchPrefix( "statusGui", kv ); } if ( spawnArgs.GetInt( "pauseOnFloor", "-1" ) == currentFloor ) { - PostEventSec( &EV_PostArrival, spawnArgs.GetFloat( "pauseTime" ) ); + PostEventSec( &EV_idElevator_PostArrival, spawnArgs.GetFloat( "pauseTime" ) ); } else { Event_PostFloorArrival(); } @@ -2069,24 +1979,7 @@ Pos1 is "at rest", pos2 is "activated" =============================================================================== */ -const idEventDef EV_Mover_ReturnToPos1( "", NULL ); -const idEventDef EV_Mover_MatchTeam( "", "dd" ); -const idEventDef EV_Mover_Enable( "enable", NULL ); -const idEventDef EV_Mover_Disable( "disable", NULL ); -CLASS_DECLARATION( idEntity, idMover_Binary ) - EVENT( EV_FindGuiTargets, idMover_Binary::Event_FindGuiTargets ) - EVENT( EV_Thread_SetCallback, idMover_Binary::Event_SetCallback ) - EVENT( EV_Mover_ReturnToPos1, idMover_Binary::Event_ReturnToPos1 ) - EVENT( EV_Activate, idMover_Binary::Event_Use_BinaryMover ) - EVENT( EV_ReachedPos, idMover_Binary::Event_Reached_BinaryMover ) - EVENT( EV_Mover_MatchTeam, idMover_Binary::Event_MatchActivateTeam ) - EVENT( EV_Mover_Enable, idMover_Binary::Event_Enable ) - EVENT( EV_Mover_Disable, idMover_Binary::Event_Disable ) - EVENT( EV_Mover_OpenPortal, idMover_Binary::Event_OpenPortal ) - EVENT( EV_Mover_ClosePortal, idMover_Binary::Event_ClosePortal ) - EVENT( EV_Mover_InitGuiTargets, idMover_Binary::Event_InitGuiTargets ) -END_CLASS /* ================ @@ -2348,7 +2241,7 @@ void idMover_Binary::Spawn( void ) { if ( spawnArgs.MatchPrefix( "guiTarget" ) ) { if ( gameLocal.GameState() == GAMESTATE_STARTUP ) { - PostEventMS( &EV_FindGuiTargets, 0 ); + PostEventMS( &EV_idMover_FindGuiTargets, 0 ); } else { // not during spawn, so it's ok to get the targets FindGuiTargets(); @@ -2620,7 +2513,7 @@ void idMover_Binary::Event_Reached_BinaryMover( void ) { if ( enabled && wait >= 0 && !spawnArgs.GetBool( "toggle" ) ) { // return to pos1 after a delay - PostEventSec( &EV_Mover_ReturnToPos1, wait ); + PostEventSec( &EV_idMover_Binary_Returntopos1, wait ); } // fire targets @@ -2640,11 +2533,11 @@ void idMover_Binary::Event_Reached_BinaryMover( void ) { // close areaportals if ( moveMaster == this ) { - ProcessEvent( &EV_Mover_ClosePortal ); + ProcessEvent( &EV_idMover_ClosePortal ); } if ( enabled && wait >= 0 && spawnArgs.GetBool( "continuous" ) ) { - PostEventSec( &EV_Activate, wait, this ); + PostEventSec( &EV_idMover_Binary_Activate, wait, this ); } SetBlocked(false); @@ -2677,10 +2570,10 @@ void idMover_Binary::GotoPosition1( void ) { if ( moverState == MOVER_POS2 ) { for ( slave = this; slave != NULL; slave = slave->activateChain ) { - slave->CancelEvents( &EV_Mover_ReturnToPos1 ); + slave->CancelEvents( &EV_idMover_Binary_Returntopos1 ); } if ( !spawnArgs.GetBool( "toggle" ) ) { - ProcessEvent( &EV_Mover_ReturnToPos1 ); + ProcessEvent( &EV_idMover_Binary_Returntopos1 ); } return; } @@ -2726,7 +2619,7 @@ void idMover_Binary::GotoPosition2( void ) { MatchActivateTeam( MOVER_1TO2, gameLocal.time ); // open areaportal - ProcessEvent( &EV_Mover_OpenPortal ); + ProcessEvent( &EV_idMover_OpenPortal ); return; } @@ -2811,7 +2704,7 @@ void idMover_Binary::Use_BinaryMover( idEntity *activator ) { SetGuiStates( guiBinaryMoverStates[MOVER_1TO2] ); // open areaportal - ProcessEvent( &EV_Mover_OpenPortal ); + ProcessEvent( &EV_idMover_OpenPortal ); return; } @@ -2826,8 +2719,8 @@ void idMover_Binary::Use_BinaryMover( idEntity *activator ) { SetGuiStates( guiBinaryMoverStates[MOVER_2TO1] ); for ( slave = this; slave != NULL; slave = slave->activateChain ) { - slave->CancelEvents( &EV_Mover_ReturnToPos1 ); - slave->PostEventSec( &EV_Mover_ReturnToPos1, spawnArgs.GetBool( "toggle" ) ? 0 : wait ); + slave->CancelEvents( &EV_idMover_Binary_Returntopos1 ); + slave->PostEventSec( &EV_idMover_Binary_Returntopos1, spawnArgs.GetBool( "toggle" ) ? 0 : wait ); } return; } @@ -2961,7 +2854,7 @@ void idMover_Binary::InitSpeed( idVec3 &mpos1, idVec3 &mpos2, float mspeed, floa physicsObj.SetLinearInterpolation( 0, 0, 0, 0, vec3_origin, vec3_origin ); SetOrigin( pos1 ); - PostEventMS( &EV_Mover_InitGuiTargets, 0 ); + PostEventMS( &EV_idMover_Initguitargets, 0 ); } /* @@ -2990,7 +2883,7 @@ void idMover_Binary::InitTime( idVec3 &mpos1, idVec3 &mpos2, float mtime, float physicsObj.SetLinearInterpolation( 0, 0, 0, 0, vec3_origin, vec3_origin ); SetOrigin( pos1 ); - PostEventMS( &EV_Mover_InitGuiTargets, 0 ); + PostEventMS( &EV_idMover_Initguitargets, 0 ); } /* @@ -3006,7 +2899,10 @@ void idMover_Binary::SetBlocked( bool b ) { while( kv ) { idEntity *ent = gameLocal.FindEntity( kv->GetValue() ); if ( ent ) { - ent->PostEventMS( &EV_Activate, 0, moveMaster->GetActivator() ); + const idEventDef *activateEvent = ent->FindEventDef( "activate", "e" ); + if ( activateEvent ) { + ent->PostEventMS( activateEvent, 0, moveMaster->GetActivator() ); + } } kv = slave->spawnArgs.MatchPrefix( "triggerBlocked", kv ); } @@ -3084,33 +2980,7 @@ targeted by another entity. =============================================================================== */ -const idEventDef EV_Door_StartOpen( "", NULL ); -const idEventDef EV_Door_SpawnDoorTrigger( "", NULL ); -const idEventDef EV_Door_SpawnSoundTrigger( "", NULL ); -const idEventDef EV_Door_Open( "open", NULL ); -const idEventDef EV_Door_Close( "close", NULL ); -const idEventDef EV_Door_Lock( "lock", "d" ); -const idEventDef EV_Door_IsOpen( "isOpen", NULL, 'f' ); -const idEventDef EV_Door_IsLocked( "isLocked", NULL, 'f' ); -CLASS_DECLARATION( idMover_Binary, idDoor ) - EVENT( EV_TeamBlocked, idDoor::Event_TeamBlocked ) - EVENT( EV_PartBlocked, idDoor::Event_PartBlocked ) - EVENT( EV_Touch, idDoor::Event_Touch ) - EVENT( EV_Activate, idDoor::Event_Activate ) - EVENT( EV_Door_StartOpen, idDoor::Event_StartOpen ) - EVENT( EV_Door_SpawnDoorTrigger, idDoor::Event_SpawnDoorTrigger ) - EVENT( EV_Door_SpawnSoundTrigger, idDoor::Event_SpawnSoundTrigger ) - EVENT( EV_Door_Open, idDoor::Event_Open ) - EVENT( EV_Door_Close, idDoor::Event_Close ) - EVENT( EV_Door_Lock, idDoor::Event_Lock ) - EVENT( EV_Door_IsOpen, idDoor::Event_IsOpen ) - EVENT( EV_Door_IsLocked, idDoor::Event_Locked ) - EVENT( EV_ReachedPos, idDoor::Event_Reached_BinaryMover ) - EVENT( EV_SpectatorTouch, idDoor::Event_SpectatorTouch ) - EVENT( EV_Mover_OpenPortal, idDoor::Event_OpenPortal ) - EVENT( EV_Mover_ClosePortal, idDoor::Event_ClosePortal ) -END_CLASS /* ================ @@ -3275,7 +3145,7 @@ void idDoor::Spawn( void ) { // if "start_open", reverse position 1 and 2 if ( start_open ) { // post it after EV_SpawnBind - PostEventMS( &EV_Door_StartOpen, 1 ); + PostEventMS( &EV_idDoor_StartOpen, 1 ); } if ( spawnArgs.GetFloat( "time", "1", time ) ) { @@ -3290,15 +3160,15 @@ void idDoor::Spawn( void ) { } if ( noTouch || health ) { // non touch/shoot doors - PostEventMS( &EV_Mover_MatchTeam, 0, moverState, gameLocal.time ); + PostEventMS( &EV_idMover_Binary_Matchteam, 0, moverState, gameLocal.time ); const char *sndtemp = spawnArgs.GetString( "snd_locked" ); if ( spawnArgs.GetInt( "locked" ) && sndtemp && *sndtemp ) { - PostEventMS( &EV_Door_SpawnSoundTrigger, 0 ); + PostEventMS( &EV_idDoor_SpawnSoundTrigger, 0 ); } } else { // spawn trigger - PostEventMS( &EV_Door_SpawnDoorTrigger, 0 ); + PostEventMS( &EV_idDoor_SpawnDoorTrigger, 0 ); } } @@ -3306,17 +3176,17 @@ void idDoor::Spawn( void ) { areaPortal = gameRenderWorld->FindPortal( GetPhysics()->GetAbsBounds() ); if ( !start_open ) { // start closed - ProcessEvent( &EV_Mover_ClosePortal ); + ProcessEvent( &EV_idMover_ClosePortal ); } int locked = spawnArgs.GetInt( "locked" ); if ( locked ) { // make sure all members of the team get locked - PostEventMS( &EV_Door_Lock, 0, locked ); + PostEventMS( &EV_idDoor_Lock, 0, locked ); } if ( spawnArgs.GetBool( "continuous" ) ) { - PostEventSec( &EV_Activate, spawnArgs.GetFloat( "delay" ), this ); + PostEventSec( &EV_idMover_Binary_Activate, spawnArgs.GetFloat( "delay" ), this ); } // sounds have a habit of stuttering when portals close, so make them unoccluded @@ -3532,7 +3402,7 @@ void idDoor::Lock( int f ) { // in this case the sound trigger never got spawned const char *sndtemp = door->spawnArgs.GetString( "snd_locked" ); if ( sndtemp && *sndtemp ) { - door->PostEventMS( &EV_Door_SpawnSoundTrigger, 0 ); + door->PostEventMS( &EV_idDoor_SpawnSoundTrigger, 0 ); } } if ( !f && ( door->spawnArgs.GetInt( "locked" ) != 0 ) ) { @@ -3682,7 +3552,7 @@ void idDoor::Event_SpawnDoorTrigger( void ) { const char *sndtemp = spawnArgs.GetString( "snd_locked" ); if ( spawnArgs.GetInt( "locked" ) && sndtemp && *sndtemp ) { - PostEventMS( &EV_Door_SpawnSoundTrigger, 0 ); + PostEventMS( &EV_idDoor_SpawnSoundTrigger, 0 ); } CalcTriggerBounds( triggersize, bounds ); @@ -3729,23 +3599,29 @@ idDoor::Event_Reached_BinaryMover void idDoor::Event_Reached_BinaryMover( void ) { if ( moverState == MOVER_2TO1 ) { SetBlocked( false ); - const idKeyValue *kv = spawnArgs.MatchPrefix( "triggerClosed" ); - while( kv ) { - idEntity *ent = gameLocal.FindEntity( kv->GetValue() ); - if ( ent ) { - ent->PostEventMS( &EV_Activate, 0, moveMaster->GetActivator() ); + const idKeyValue *kv = spawnArgs.MatchPrefix( "triggerClosed" ); + while( kv ) { + idEntity *ent = gameLocal.FindEntity( kv->GetValue() ); + if ( ent ) { + const idEventDef *activateEvent = ent->FindEventDef( "activate", "e" ); + if ( activateEvent ) { + ent->PostEventMS( activateEvent, 0, moveMaster->GetActivator() ); + } + } + kv = spawnArgs.MatchPrefix( "triggerClosed", kv ); } - kv = spawnArgs.MatchPrefix( "triggerClosed", kv ); - } } else if ( moverState == MOVER_1TO2 ) { - const idKeyValue *kv = spawnArgs.MatchPrefix( "triggerOpened" ); - while( kv ) { - idEntity *ent = gameLocal.FindEntity( kv->GetValue() ); - if ( ent ) { - ent->PostEventMS( &EV_Activate, 0, moveMaster->GetActivator() ); + const idKeyValue *kv = spawnArgs.MatchPrefix( "triggerOpened" ); + while( kv ) { + idEntity *ent = gameLocal.FindEntity( kv->GetValue() ); + if ( ent ) { + const idEventDef *activateEvent = ent->FindEventDef( "activate", "e" ); + if ( activateEvent ) { + ent->PostEventMS( activateEvent, 0, moveMaster->GetActivator() ); + } + } + kv = spawnArgs.MatchPrefix( "triggerOpened", kv ); } - kv = spawnArgs.MatchPrefix( "triggerOpened", kv ); - } } idMover_Binary::Event_Reached_BinaryMover(); } @@ -3766,7 +3642,7 @@ void idDoor::Event_TeamBlocked( idEntity *blockedEntity, idEntity *blockingEntit Use_BinaryMover( moveMaster->GetActivator() ); if ( companionDoor ) { - companionDoor->ProcessEvent( &EV_TeamBlocked, blockedEntity, blockingEntity ); + companionDoor->ProcessEvent( &EV_Teamblocked, blockedEntity, blockingEntity ); } } @@ -3860,7 +3736,7 @@ void idDoor::Event_Activate( idEntity *activator ) { if ( spawnArgs.GetInt( "locked" ) ) { if ( !trigger ) { - PostEventMS( &EV_Door_SpawnDoorTrigger, 0 ); + PostEventMS( &EV_idDoor_SpawnDoorTrigger, 0 ); } if ( buddyStr.Length() ) { idEntity *buddy = gameLocal.FindEntity( buddyStr ); @@ -3997,11 +3873,6 @@ idPlat =============================================================================== */ -CLASS_DECLARATION( idMover_Binary, idPlat ) - EVENT( EV_Touch, idPlat::Event_Touch ) - EVENT( EV_TeamBlocked, idPlat::Event_TeamBlocked ) - EVENT( EV_PartBlocked, idPlat::Event_PartBlocked ) -END_CLASS /* =============== @@ -4236,10 +4107,6 @@ idMover_Periodic =============================================================================== */ -CLASS_DECLARATION( idEntity, idMover_Periodic ) - EVENT( EV_TeamBlocked, idMover_Periodic::Event_TeamBlocked ) - EVENT( EV_PartBlocked, idMover_Periodic::Event_PartBlocked ) -END_CLASS /* =============== @@ -4351,9 +4218,6 @@ idRotater =============================================================================== */ -CLASS_DECLARATION( idMover_Periodic, idRotater ) - EVENT( EV_Activate, idRotater::Event_Activate ) -END_CLASS /* =============== @@ -4383,7 +4247,7 @@ void idRotater::Spawn( void ) { SetPhysics( &physicsObj ); if ( spawnArgs.GetBool( "start_on" ) ) { - ProcessEvent( &EV_Activate, this ); + ProcessEvent( &EV_idRotater_Activate, this ); } } @@ -4450,8 +4314,6 @@ idBobber =============================================================================== */ -CLASS_DECLARATION( idMover_Periodic, idBobber ) -END_CLASS /* =============== @@ -4511,8 +4373,6 @@ idPendulum =============================================================================== */ -CLASS_DECLARATION( idMover_Periodic, idPendulum ) -END_CLASS /* =============== @@ -4572,9 +4432,6 @@ idBobber =============================================================================== */ -CLASS_DECLARATION( idMover_Periodic, idRiser ) -EVENT( EV_Activate, idRiser::Event_Activate ) -END_CLASS /* =============== diff --git a/neo/doom3/game/Mover.h b/neo/doom3/game/Mover.h index 14d78dc3..587efc91 100644 --- a/neo/doom3/game/Mover.h +++ b/neo/doom3/game/Mover.h @@ -29,10 +29,6 @@ If you have questions concerning this license or the applicable additional terms #ifndef __GAME_MOVER_H__ #define __GAME_MOVER_H__ -extern const idEventDef EV_TeamBlocked; -extern const idEventDef EV_PartBlocked; -extern const idEventDef EV_ReachedPos; -extern const idEventDef EV_ReachedAng; /* =============================================================================== @@ -114,8 +110,11 @@ protected: idPhysics_Parametric physicsObj; + ID_SCRIPT_EVENT( "openPortal", 0 ) void Event_OpenPortal( void ); + ID_SCRIPT_EVENT( "closePortal", 0 ) void Event_ClosePortal( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_PartBlocked( idEntity *blockingEntity ); void MoveToPos( const idVec3 &pos); @@ -157,41 +156,77 @@ private: void VectorForDir( float dir, idVec3 &vec ); idCurve_Spline *GetSpline( idEntity *splineEntity ) const; + ID_SCRIPT_EVENT( "", 'd' ) void Event_SetCallback( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_TeamBlocked( idEntity *blockedPart, idEntity *blockingEntity ); + ID_SCRIPT_EVENT( "stopMoving", 0 ) void Event_StopMoving( void ); + ID_SCRIPT_EVENT( "stopRotating", 0 ) void Event_StopRotating( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_UpdateMove( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_UpdateRotation( void ); + ID_SCRIPT_EVENT( "speed", 0 ) void Event_SetMoveSpeed( float speed ); + ID_SCRIPT_EVENT( "time", 0 ) void Event_SetMoveTime( float time ); + ID_SCRIPT_EVENT( "decelTime", 0 ) void Event_SetDecelerationTime( float time ); + ID_SCRIPT_EVENT( "accelTime", 0 ) void Event_SetAccellerationTime( float time ); + ID_SCRIPT_EVENT( "moveTo", 0 ) void Event_MoveTo( idEntity *ent ); + ID_SCRIPT_EVENT( "moveToPos", 0 ) void Event_MoveToPos( idVec3 &pos ); + ID_SCRIPT_EVENT( "move", 0 ) void Event_MoveDir( float angle, float distance ); + ID_SCRIPT_EVENT( "accelTo", 0 ) void Event_MoveAccelerateTo( float speed, float time ); + ID_SCRIPT_EVENT( "decelTo", 0 ) void Event_MoveDecelerateTo( float speed, float time ); + ID_SCRIPT_EVENT( "rotateDownTo", 0 ) void Event_RotateDownTo( int axis, float angle ); + ID_SCRIPT_EVENT( "rotateUpTo", 0 ) void Event_RotateUpTo( int axis, float angle ); + ID_SCRIPT_EVENT( "rotateTo", 0 ) void Event_RotateTo( idAngles &angles ); + ID_SCRIPT_EVENT( "rotate", 0 ) void Event_Rotate( idAngles &angles ); + ID_SCRIPT_EVENT( "rotateOnce", 0 ) void Event_RotateOnce( idAngles &angles ); + ID_SCRIPT_EVENT( "bob", 0 ) void Event_Bob( float speed, float phase, idVec3 &depth ); + ID_SCRIPT_EVENT( "sway", 0 ) void Event_Sway( float speed, float phase, idAngles &depth ); + ID_SCRIPT_EVENT( "accelSound", 0 ) void Event_SetAccelSound( const char *sound ); + ID_SCRIPT_EVENT( "decelSound", 0 ) void Event_SetDecelSound( const char *sound ); + ID_SCRIPT_EVENT( "moveSound", 0 ) void Event_SetMoveSound( const char *sound ); + ID_SCRIPT_EVENT( "", 0 ) void Event_FindGuiTargets( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_InitGuiTargets( void ); + ID_SCRIPT_EVENT( "enableSplineAngles", 0 ) void Event_EnableSplineAngles( void ); + ID_SCRIPT_EVENT( "disableSplineAngles", 0 ) void Event_DisableSplineAngles( void ); + ID_SCRIPT_EVENT( "removeInitialSplineAngles", 0 ) void Event_RemoveInitialSplineAngles( void ); + ID_SCRIPT_EVENT( "startSpline", 0 ) void Event_StartSpline( idEntity *splineEntity ); + ID_SCRIPT_EVENT( "stopSpline", 0 ) void Event_StopSpline( void ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_PostRestore( int start, int total, int accel, int decel, int useSplineAng ); + ID_SCRIPT_EVENT( "isMoving", 'd' ) void Event_IsMoving( void ); + ID_SCRIPT_EVENT( "isRotating", 'd' ) void Event_IsRotating( void ); }; @@ -223,12 +258,14 @@ public: void Restore( idRestoreGame *savefile ); virtual bool HandleSingleGuiCommand( idEntity *entityGui, idLexer *src ); + ID_SCRIPT_EVENT( "gotoFloor", 0 ) void Event_GotoFloor( int floor ); floorInfo_s * GetFloorInfo( int floor ); protected: virtual void DoneMoving( void ); virtual void BeginMove( idThread *thread = NULL ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Touch( idEntity *other, trace_t *trace ); private: @@ -256,8 +293,11 @@ private: void DisableAllDoors( void ); void EnableProperDoors( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_TeamBlocked( idEntity *blockedEntity, idEntity *blockingEntity ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); + ID_SCRIPT_EVENT( "postArrival", 0 ) void Event_PostFloorArrival(); }; @@ -350,16 +390,27 @@ protected: void FindGuiTargets( void ); void SetGuiState( const char *key, const char *val ) const; + ID_SCRIPT_EVENT( "", 'd' ) void Event_SetCallback( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_ReturnToPos1( void ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Use_BinaryMover( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Reached_BinaryMover( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_MatchActivateTeam( moverState_t newstate, int time ); + ID_SCRIPT_EVENT( "enable", 0 ) void Event_Enable( void ); + ID_SCRIPT_EVENT( "disable", 0 ) void Event_Disable( void ); + ID_SCRIPT_EVENT( "openPortal", 0 ) void Event_OpenPortal( void ); + ID_SCRIPT_EVENT( "closePortal", 0 ) void Event_ClosePortal( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_FindGuiTargets( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_InitGuiTargets( void ); static void GetMovedir( float dir, idVec3 &movedir ); @@ -414,21 +465,37 @@ private: void GetLocalTriggerPosition( const idClipModel *trigger ); void CalcTriggerBounds( float size, idBounds &bounds ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Reached_BinaryMover( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_TeamBlocked( idEntity *blockedEntity, idEntity *blockingEntity ); + ID_SCRIPT_EVENT( "", 0 ) void Event_PartBlocked( idEntity *blockingEntity ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Touch( idEntity *other, trace_t *trace ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_StartOpen( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_SpawnDoorTrigger( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_SpawnSoundTrigger( void ); + ID_SCRIPT_EVENT( "close", 0 ) void Event_Close( void ); + ID_SCRIPT_EVENT( "open", 0 ) void Event_Open( void ); + ID_SCRIPT_EVENT( "lock", 0 ) void Event_Lock( int f ); + ID_SCRIPT_EVENT( "isOpen", 'f' ) void Event_IsOpen( void ); + ID_SCRIPT_EVENT( "isLocked", 'f' ) void Event_Locked( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_SpectatorTouch( idEntity *other, trace_t *trace ); + ID_SCRIPT_EVENT( "openPortal", 0 ) void Event_OpenPortal( void ); + ID_SCRIPT_EVENT( "closePortal", 0 ) void Event_ClosePortal( void ); }; @@ -456,8 +523,11 @@ private: void GetLocalTriggerPosition( const idClipModel *trigger ); void SpawnPlatTrigger( idVec3 &pos ); + ID_SCRIPT_EVENT( "", 0 ) void Event_TeamBlocked( idEntity *blockedEntity, idEntity *blockingEntity ); + ID_SCRIPT_EVENT( "", 0 ) void Event_PartBlocked( idEntity *blockingEntity ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Touch( idEntity *other, trace_t *trace ); }; @@ -490,7 +560,9 @@ protected: idPhysics_Parametric physicsObj; float damage; + ID_SCRIPT_EVENT( "", 0 ) void Event_TeamBlocked( idEntity *blockedEntity, idEntity *blockingEntity ); + ID_SCRIPT_EVENT( "", 0 ) void Event_PartBlocked( idEntity *blockingEntity ); }; @@ -508,6 +580,7 @@ public: private: idEntityPtr activatedBy; + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -542,6 +615,7 @@ public: void Spawn( void ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; diff --git a/neo/doom3/game/Player.cpp b/neo/doom3/game/Player.cpp index 8bc32c25..c2a20f05 100644 --- a/neo/doom3/game/Player.cpp +++ b/neo/doom3/game/Player.cpp @@ -60,45 +60,7 @@ const int HEALTHPULSE_TIME = 333; // minimum speed to bob and play run/walk animations at const float MIN_BOB_SPEED = 5.0f; -const idEventDef EV_Player_GetButtons( "getButtons", NULL, 'd' ); -const idEventDef EV_Player_GetMove( "getMove", NULL, 'v' ); -const idEventDef EV_Player_GetViewAngles( "getViewAngles", NULL, 'v' ); -const idEventDef EV_Player_StopFxFov( "stopFxFov" ); -const idEventDef EV_Player_EnableWeapon( "enableWeapon" ); -const idEventDef EV_Player_DisableWeapon( "disableWeapon" ); -const idEventDef EV_Player_GetCurrentWeapon( "getCurrentWeapon", NULL, 's' ); -const idEventDef EV_Player_GetPreviousWeapon( "getPreviousWeapon", NULL, 's' ); -const idEventDef EV_Player_SelectWeapon( "selectWeapon", "s" ); -const idEventDef EV_Player_GetWeaponEntity( "getWeaponEntity", NULL, 'e' ); -const idEventDef EV_Player_OpenPDA( "openPDA" ); -const idEventDef EV_Player_InPDA( "inPDA", NULL, 'd' ); -const idEventDef EV_Player_ExitTeleporter( "exitTeleporter" ); -const idEventDef EV_Player_StopAudioLog( "stopAudioLog" ); -const idEventDef EV_Player_HideTip( "hideTip" ); -const idEventDef EV_Player_LevelTrigger( "levelTrigger" ); -const idEventDef EV_SpectatorTouch( "spectatorTouch", "et" ); -const idEventDef EV_Player_GetIdealWeapon( "getIdealWeapon", NULL, 's' ); -CLASS_DECLARATION( idActor, idPlayer ) - EVENT( EV_Player_GetButtons, idPlayer::Event_GetButtons ) - EVENT( EV_Player_GetMove, idPlayer::Event_GetMove ) - EVENT( EV_Player_GetViewAngles, idPlayer::Event_GetViewAngles ) - EVENT( EV_Player_StopFxFov, idPlayer::Event_StopFxFov ) - EVENT( EV_Player_EnableWeapon, idPlayer::Event_EnableWeapon ) - EVENT( EV_Player_DisableWeapon, idPlayer::Event_DisableWeapon ) - EVENT( EV_Player_GetCurrentWeapon, idPlayer::Event_GetCurrentWeapon ) - EVENT( EV_Player_GetPreviousWeapon, idPlayer::Event_GetPreviousWeapon ) - EVENT( EV_Player_SelectWeapon, idPlayer::Event_SelectWeapon ) - EVENT( EV_Player_GetWeaponEntity, idPlayer::Event_GetWeaponEntity ) - EVENT( EV_Player_OpenPDA, idPlayer::Event_OpenPDA ) - EVENT( EV_Player_InPDA, idPlayer::Event_InPDA ) - EVENT( EV_Player_ExitTeleporter, idPlayer::Event_ExitTeleporter ) - EVENT( EV_Player_StopAudioLog, idPlayer::Event_StopAudioLog ) - EVENT( EV_Player_HideTip, idPlayer::Event_HideTip ) - EVENT( EV_Player_LevelTrigger, idPlayer::Event_LevelTrigger ) - EVENT( EV_Gibbed, idPlayer::Event_Gibbed ) - EVENT( EV_Player_GetIdealWeapon, idPlayer::Event_GetIdealWeapon ) -END_CLASS const int MAX_RESPAWN_TIME = 10000; const int RAGDOLL_DEATH_TIME = 3000; @@ -1559,7 +1521,7 @@ void idPlayer::Spawn( void ) { objectiveUp = false; if ( inventory.levelTriggers.Num() ) { - PostEventMS( &EV_Player_LevelTrigger, 0 ); + PostEventMS( &EV_idPlayer_LevelTrigger, 0 ); } inventory.pdaOpened = false; @@ -4238,8 +4200,8 @@ bool idPlayer::HandleSingleGuiCommand( idEntity *entityGui, idLexer *src ) { int ms; StartSoundShader( shader, SND_CHANNEL_PDA, 0, false, &ms ); StartAudioLog(); - CancelEvents( &EV_Player_StopAudioLog ); - PostEventMS( &EV_Player_StopAudioLog, ms + 150 ); + CancelEvents( &EV_idPlayer_StopAudioLog ); + PostEventMS( &EV_idPlayer_StopAudioLog, ms + 150 ); } return true; } @@ -4273,12 +4235,13 @@ bool idPlayer::Collide( const trace_t &collision, const idVec3 &velocity ) { if ( other ) { other->Signal( SIG_TOUCH ); if ( !spectating ) { - if ( other->RespondsTo( EV_Touch ) ) { - other->ProcessEvent( &EV_Touch, this, &collision ); + const idEventDef *touchEvent = other->FindEventDef( "", "et" ); + if ( touchEvent ) { + other->ProcessEvent( touchEvent, this, &collision ); } } else { - if ( other->RespondsTo( EV_SpectatorTouch ) ) { - other->ProcessEvent( &EV_SpectatorTouch, this, &collision ); + if ( other->RespondsTo( EV_idDoor_SpectatorTouch ) ) { + other->ProcessEvent( &EV_idDoor_SpectatorTouch, this, &collision ); } } } @@ -7597,7 +7560,7 @@ idPlayer::StartFxFov */ void idPlayer::StartFxFov( float duration ) { fxFov = true; - PostEventSec( &EV_Player_StopFxFov, duration ); + PostEventSec( &EV_idPlayer_StopFxFov, duration ); } /* @@ -8340,7 +8303,7 @@ void idPlayer::ShowTip( const char *title, const char *tip, bool autoHide ) { hud->SetStateString( "tiptitle", title ); hud->HandleNamedEvent( "tipWindowUp" ); if ( autoHide ) { - PostEventSec( &EV_Player_HideTip, 5.0f ); + PostEventSec( &EV_idPlayer_HideTip, 5.0f ); } tipUp = true; } @@ -8454,7 +8417,10 @@ void idPlayer::Event_LevelTrigger( void ) { if ( idStr::Icmp( mapName, inventory.levelTriggers[i].levelName) == 0 ){ idEntity *ent = gameLocal.FindEntity( inventory.levelTriggers[i].triggerName ); if ( ent ) { - ent->PostEventMS( &EV_Activate, 1, this ); + const idEventDef *activateEvent = ent->FindEventDef( "activate", "e" ); + if ( activateEvent ) { + ent->PostEventMS( activateEvent, 1, this ); + } } } } diff --git a/neo/doom3/game/Player.h b/neo/doom3/game/Player.h index fbbf8ebd..71ad19d0 100644 --- a/neo/doom3/game/Player.h +++ b/neo/doom3/game/Player.h @@ -37,14 +37,6 @@ If you have questions concerning this license or the applicable additional terms =============================================================================== */ -extern const idEventDef EV_Player_GetButtons; -extern const idEventDef EV_Player_GetMove; -extern const idEventDef EV_Player_GetViewAngles; -extern const idEventDef EV_Player_EnableWeapon; -extern const idEventDef EV_Player_DisableWeapon; -extern const idEventDef EV_Player_ExitTeleporter; -extern const idEventDef EV_Player_SelectWeapon; -extern const idEventDef EV_SpectatorTouch; const float THIRD_PERSON_FOCUS_DISTANCE = 512.0f; const int LAND_DEFLECT_TIME = 150; @@ -463,6 +455,7 @@ public: void UpdateHudWeapon( bool flashWeapon = true ); void UpdateHudStats( idUserInterface *hud ); void UpdateHudAmmo( idUserInterface *hud ); + ID_SCRIPT_EVENT( "stopAudioLog", 0 ) void Event_StopAudioLog( void ); void StartAudioLog( void ); void StopAudioLog( void ); @@ -677,23 +670,40 @@ private: void UseVehicle( void ); + ID_SCRIPT_EVENT( "getButtons", 'd' ) void Event_GetButtons( void ); + ID_SCRIPT_EVENT( "getMove", 'v' ) void Event_GetMove( void ); + ID_SCRIPT_EVENT( "getViewAngles", 'v' ) void Event_GetViewAngles( void ); + ID_SCRIPT_EVENT( "stopFxFov", 0 ) void Event_StopFxFov( void ); + ID_SCRIPT_EVENT( "enableWeapon", 0 ) void Event_EnableWeapon( void ); + ID_SCRIPT_EVENT( "disableWeapon", 0 ) void Event_DisableWeapon( void ); + ID_SCRIPT_EVENT( "getCurrentWeapon", 's' ) void Event_GetCurrentWeapon( void ); + ID_SCRIPT_EVENT( "getPreviousWeapon", 's' ) void Event_GetPreviousWeapon( void ); + ID_SCRIPT_EVENT( "selectWeapon", 0 ) void Event_SelectWeapon( const char *weaponName ); + ID_SCRIPT_EVENT( "getWeaponEntity", 'e' ) void Event_GetWeaponEntity( void ); public: + ID_SCRIPT_EVENT( "openPDA", 0 ) void Event_OpenPDA( void ); + ID_SCRIPT_EVENT( "inPDA", 'd' ) void Event_InPDA( void ); + ID_SCRIPT_EVENT( "exitTeleporter", 0 ) void Event_ExitTeleporter( void ); + ID_SCRIPT_EVENT( "hideTip", 0 ) void Event_HideTip( void ); + ID_SCRIPT_EVENT( "levelTrigger", 0 ) void Event_LevelTrigger( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Gibbed( void ); + ID_SCRIPT_EVENT( "getIdealWeapon", 's' ) void Event_GetIdealWeapon( void ); stateResult_t Wait_Alive(stateParms_t* parms); diff --git a/neo/doom3/game/Projectile.cpp b/neo/doom3/game/Projectile.cpp index 9cf28ce7..5b8a843d 100644 --- a/neo/doom3/game/Projectile.cpp +++ b/neo/doom3/game/Projectile.cpp @@ -44,18 +44,7 @@ static const int BFG_DAMAGE_FREQUENCY = 333; static const float BOUNCE_SOUND_MIN_VELOCITY = 200.0f; static const float BOUNCE_SOUND_MAX_VELOCITY = 400.0f; -const idEventDef EV_Explode( "", NULL ); -const idEventDef EV_Fizzle( "", NULL ); -const idEventDef EV_RadiusDamage( "", "e" ); -const idEventDef EV_GetProjectileState( "getProjectileState", NULL, 'd' ); -CLASS_DECLARATION( idEntity, idProjectile ) - EVENT( EV_Explode, idProjectile::Event_Explode ) - EVENT( EV_Fizzle, idProjectile::Event_Fizzle ) - EVENT( EV_Touch, idProjectile::Event_Touch ) - EVENT( EV_RadiusDamage, idProjectile::Event_RadiusDamage ) - EVENT( EV_GetProjectileState, idProjectile::Event_GetProjectileState ) -END_CLASS /* ================ @@ -397,7 +386,7 @@ void idProjectile::Launch( const idVec3 &start, const idVec3 &dir, const idVec3 if ( fuse < 0.0f ) { fuse = 0.0f; } - PostEventSec( &EV_Fizzle, fuse ); + PostEventSec( &EV_idProjectile_Fizzle, fuse ); } } @@ -534,7 +523,10 @@ bool idProjectile::Collide( const trace_t &collision, const idVec3 &velocity ) { // MP: projectiles open doors if ( gameLocal.isMultiplayer && ent->IsType( idDoor::Type ) && !static_cast< idDoor * >(ent)->IsOpen() && !ent->spawnArgs.GetBool( "no_touch" ) ) { - ent->ProcessEvent( &EV_Activate , this ); + const idEventDef *activateEvent = ent->FindEventDef( "activate", "e" ); + if ( activateEvent ) { + ent->ProcessEvent( activateEvent, this ); + } } if ( ent->IsType( idActor::Type ) || ( ent->IsType( idAFAttachment::Type ) && static_cast(ent)->GetBody()->IsType( idActor::Type ) ) ) { @@ -739,7 +731,7 @@ void idProjectile::Fizzle( void ) { return; } - CancelEvents( &EV_Fizzle ); + CancelEvents( &EV_idProjectile_Fizzle ); PostEventMS( &EV_Remove, spawnArgs.GetInt( "remove_time", "1500" ) ); } @@ -884,7 +876,7 @@ void idProjectile::Explode( const trace_t &collision, idEntity *ignore ) { if ( removeTime < delay * 1000 ) { removeTime = ( delay + 0.10 ) * 1000; } - PostEventSec( &EV_RadiusDamage, delay, ignore ); + PostEventSec( &EV_idProjectile_Radiusdmg, delay, ignore ); } else { Event_RadiusDamage( ignore ); } @@ -1222,8 +1214,6 @@ bool idProjectile::ClientReceiveEvent( int event, int time, const idBitMsg &msg =============================================================================== */ -CLASS_DECLARATION( idProjectile, idGuidedProjectile ) -END_CLASS /* ================ @@ -1445,8 +1435,6 @@ idSoulCubeMissile =============================================================================== */ -CLASS_DECLARATION( idGuidedProjectile, idSoulCubeMissile ) -END_CLASS /* ================ @@ -1664,11 +1652,7 @@ idBFGProjectile =============================================================================== */ -const idEventDef EV_RemoveBeams( "", NULL ); -CLASS_DECLARATION( idProjectile, idBFGProjectile ) - EVENT( EV_RemoveBeams, idBFGProjectile::Event_RemoveBeams ) -END_CLASS /* @@ -2032,9 +2016,9 @@ void idBFGProjectile::Explode( const trace_t &collision, idEntity *ignore ) { if ( !gameLocal.isClient ) { if ( ignore != NULL ) { - PostEventMS( &EV_RemoveBeams, 750 ); + PostEventMS( &EV_idBFGProjectile_RemoveBeams, 750 ); } else { - PostEventMS( &EV_RemoveBeams, 0 ); + PostEventMS( &EV_idBFGProjectile_RemoveBeams, 0 ); } } @@ -2050,10 +2034,6 @@ void idBFGProjectile::Explode( const trace_t &collision, idEntity *ignore ) { =============================================================================== */ -CLASS_DECLARATION( idEntity, idDebris ) -EVENT( EV_Explode, idDebris::Event_Explode ) -EVENT( EV_Fizzle, idDebris::Event_Fizzle ) -END_CLASS /* ================ @@ -2236,7 +2216,7 @@ void idDebris::Launch( void ) { if ( fuse < 0.0f ) { fuse = 0.0f; } - PostEventSec( &EV_Fizzle, fuse ); + PostEventSec( &EV_idProjectile_Fizzle, fuse ); } } @@ -2336,7 +2316,7 @@ void idDebris::Fizzle( void ) { return; } - CancelEvents( &EV_Fizzle ); + CancelEvents( &EV_idProjectile_Fizzle ); PostEventMS( &EV_Remove, 0 ); } diff --git a/neo/doom3/game/Projectile.h b/neo/doom3/game/Projectile.h index c1b4487a..53097939 100644 --- a/neo/doom3/game/Projectile.h +++ b/neo/doom3/game/Projectile.h @@ -37,7 +37,6 @@ If you have questions concerning this license or the applicable additional terms =============================================================================== */ -extern const idEventDef EV_Explode; class idProjectile : public idEntity { public : @@ -122,10 +121,15 @@ private: void AddDefaultDamageEffect( const trace_t &collision, const idVec3 &velocity ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Explode( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Fizzle( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_RadiusDamage( idEntity *ignore ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Touch( idEntity *other, trace_t *trace ); + ID_SCRIPT_EVENT( "getProjectileState", 'd' ) void Event_GetProjectileState( void ); }; @@ -220,6 +224,7 @@ private: idStr damageFreq; void FreeBeams(); + ID_SCRIPT_EVENT( "", 0 ) void Event_RemoveBeams(); }; @@ -261,7 +266,9 @@ private: const idSoundShader * sndBounce; + ID_SCRIPT_EVENT( "", 0 ) void Event_Explode( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Fizzle( void ); }; diff --git a/neo/doom3/game/SecurityCamera.cpp b/neo/doom3/game/SecurityCamera.cpp index 3c4d9b6a..03e68611 100644 --- a/neo/doom3/game/SecurityCamera.cpp +++ b/neo/doom3/game/SecurityCamera.cpp @@ -45,19 +45,7 @@ If you have questions concerning this license or the applicable additional terms ***********************************************************************/ -const idEventDef EV_SecurityCam_ReverseSweep( "" ); -const idEventDef EV_SecurityCam_ContinueSweep( "" ); -const idEventDef EV_SecurityCam_Pause( "" ); -const idEventDef EV_SecurityCam_Alert( "" ); -const idEventDef EV_SecurityCam_AddLight( "" ); -CLASS_DECLARATION( idEntity, idSecurityCamera ) - EVENT( EV_SecurityCam_ReverseSweep, idSecurityCamera::Event_ReverseSweep ) - EVENT( EV_SecurityCam_ContinueSweep, idSecurityCamera::Event_ContinueSweep ) - EVENT( EV_SecurityCam_Pause, idSecurityCamera::Event_Pause ) - EVENT( EV_SecurityCam_Alert, idSecurityCamera::Event_Alert ) - EVENT( EV_SecurityCam_AddLight, idSecurityCamera::Event_AddLight ) -END_CLASS /* ================ @@ -137,7 +125,7 @@ void idSecurityCamera::Spawn( void ) { spawnArgs.GetVector( "viewOffset", "0 0 0", viewOffset ); if ( spawnArgs.GetBool( "spotLight" ) ) { - PostEventMS( &EV_SecurityCam_AddLight, 0 ); + PostEventMS( &EV_idSecurityCamera_AddLight, 0 ); } negativeSweep = ( sweepAngle < 0 ) ? true : false; @@ -376,26 +364,26 @@ void idSecurityCamera::Think( void ) { SetAlertMode(ALERT); stopSweeping = gameLocal.time; if (sweeping) { - CancelEvents( &EV_SecurityCam_Pause ); + CancelEvents( &EV_idSecurityCamera_Pause ); } else { - CancelEvents( &EV_SecurityCam_ReverseSweep ); + CancelEvents( &EV_idSecurityCamera_ReverseSweep ); } sweeping = false; StopSound( SND_CHANNEL_ANY, false ); StartSound( "snd_sight", SND_CHANNEL_BODY, 0, false, NULL ); sightTime = spawnArgs.GetFloat( "sightTime", "5" ); - PostEventSec(&EV_SecurityCam_Alert, sightTime); + PostEventSec(&EV_idSecurityCamera_Alert, sightTime); } } else { if (alertMode == ALERT) { float sightResume; SetAlertMode(LOSINGINTEREST); - CancelEvents( &EV_SecurityCam_Alert ); + CancelEvents( &EV_idSecurityCamera_Alert ); sightResume = spawnArgs.GetFloat( "sightResume", "1.5" ); - PostEventSec( &EV_SecurityCam_ContinueSweep, sightResume ); + PostEventSec( &EV_idSecurityCamera_ContinueSweep, sightResume ); } if ( sweeping ) { @@ -446,7 +434,7 @@ void idSecurityCamera::StartSweep( void ) { sweepStart = gameLocal.time; speed = SEC2MS( SweepSpeed() ); sweepEnd = sweepStart + speed; - PostEventMS( &EV_SecurityCam_Pause, speed ); + PostEventMS( &EV_idSecurityCamera_Pause, speed ); StartSound( "snd_moving", SND_CHANNEL_BODY, 0, false, NULL ); } @@ -463,7 +451,7 @@ void idSecurityCamera::Event_ContinueSweep( void ) { sweepStart = f; speed = MS2SEC( SweepSpeed() ); sweepEnd = sweepStart + speed; - PostEventMS( &EV_SecurityCam_Pause, speed * (1.0 - pct)); + PostEventMS( &EV_idSecurityCamera_Pause, speed * (1.0 - pct)); StartSound( "snd_moving", SND_CHANNEL_BODY, 0, false, NULL ); SetAlertMode(SCANNING); sweeping = true; @@ -481,10 +469,10 @@ void idSecurityCamera::Event_Alert( void ) { StopSound( SND_CHANNEL_ANY, false ); StartSound( "snd_activate", SND_CHANNEL_BODY, 0, false, NULL ); ActivateTargets(this); - CancelEvents( &EV_SecurityCam_ContinueSweep ); + CancelEvents( &EV_idSecurityCamera_ContinueSweep ); wait = spawnArgs.GetFloat( "wait", "20" ); - PostEventSec( &EV_SecurityCam_ContinueSweep, wait ); + PostEventSec( &EV_idSecurityCamera_ContinueSweep, wait ); } /* @@ -510,7 +498,7 @@ void idSecurityCamera::Event_Pause( void ) { sweeping = false; StopSound( SND_CHANNEL_ANY, false ); StartSound( "snd_stop", SND_CHANNEL_BODY, 0, false, NULL ); - PostEventSec( &EV_SecurityCam_ReverseSweep, sweepWait ); + PostEventSec( &EV_idSecurityCamera_ReverseSweep, sweepWait ); } /* diff --git a/neo/doom3/game/SecurityCamera.h b/neo/doom3/game/SecurityCamera.h index 1353c1ae..9eb14c97 100644 --- a/neo/doom3/game/SecurityCamera.h +++ b/neo/doom3/game/SecurityCamera.h @@ -87,10 +87,15 @@ private: const idVec3 GetAxis( void ) const; float SweepSpeed( void ) const; + ID_SCRIPT_EVENT( "", 0 ) void Event_ReverseSweep( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_ContinueSweep( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Pause( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Alert( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_AddLight( void ); }; diff --git a/neo/doom3/game/Sound.cpp b/neo/doom3/game/Sound.cpp index f6449af0..5ae8a683 100644 --- a/neo/doom3/game/Sound.cpp +++ b/neo/doom3/game/Sound.cpp @@ -39,16 +39,7 @@ If you have questions concerning this license or the applicable additional terms =============================================================================== */ -const idEventDef EV_Speaker_On( "On", NULL ); -const idEventDef EV_Speaker_Off( "Off", NULL ); -const idEventDef EV_Speaker_Timer( "", NULL ); -CLASS_DECLARATION( idEntity, idSound ) - EVENT( EV_Activate, idSound::Event_Trigger ) - EVENT( EV_Speaker_On, idSound::Event_On ) - EVENT( EV_Speaker_Off, idSound::Event_Off ) - EVENT( EV_Speaker_Timer, idSound::Event_Timer ) -END_CLASS /* @@ -124,7 +115,7 @@ void idSound::Spawn( void ) { if ( !refSound.waitfortrigger && ( wait > 0.0f ) ) { timerOn = true; - PostEventSec( &EV_Speaker_Timer, wait + gameLocal.random.CRandomFloat() * random ); + PostEventSec( &EV_Timer, wait + gameLocal.random.CRandomFloat() * random ); } else { timerOn = false; } @@ -141,11 +132,11 @@ void idSound::Event_Trigger( idEntity *activator ) { if ( wait > 0.0f ) { if ( timerOn ) { timerOn = false; - CancelEvents( &EV_Speaker_Timer ); + CancelEvents( &EV_Timer ); } else { timerOn = true; DoSound( true ); - PostEventSec( &EV_Speaker_Timer, wait + gameLocal.random.CRandomFloat() * random ); + PostEventSec( &EV_Timer, wait + gameLocal.random.CRandomFloat() * random ); } } else { if ( gameLocal.isMultiplayer ) { @@ -171,7 +162,7 @@ idSound::Event_Timer */ void idSound::Event_Timer( void ) { DoSound( true ); - PostEventSec( &EV_Speaker_Timer, wait + gameLocal.random.CRandomFloat() * random ); + PostEventSec( &EV_Timer, wait + gameLocal.random.CRandomFloat() * random ); } /* @@ -225,8 +216,8 @@ void idSound::UpdateChangeableSpawnArgs( const idDict *source ) { if ( !refSound.waitfortrigger && ( wait > 0.0f ) ) { timerOn = true; DoSound( false ); - CancelEvents( &EV_Speaker_Timer ); - PostEventSec( &EV_Speaker_Timer, wait + gameLocal.random.CRandomFloat() * random ); + CancelEvents( &EV_Timer ); + PostEventSec( &EV_Timer, wait + gameLocal.random.CRandomFloat() * random ); } else if ( !refSound.waitfortrigger && !(refSound.referenceSound && refSound.referenceSound->CurrentlyPlaying() ) ) { // start it if it isn't already playing, and we aren't waitForTrigger DoSound( true ); @@ -276,7 +267,7 @@ idSound::Event_On void idSound::Event_On( void ) { if ( wait > 0.0f ) { timerOn = true; - PostEventSec( &EV_Speaker_Timer, wait + gameLocal.random.CRandomFloat() * random ); + PostEventSec( &EV_Timer, wait + gameLocal.random.CRandomFloat() * random ); } DoSound( true ); } @@ -289,7 +280,7 @@ idSound::Event_Off void idSound::Event_Off( void ) { if ( timerOn ) { timerOn = false; - CancelEvents( &EV_Speaker_Timer ); + CancelEvents( &EV_Timer ); } DoSound( false ); } diff --git a/neo/doom3/game/Sound.h b/neo/doom3/game/Sound.h index 0bc12186..2fa40de2 100644 --- a/neo/doom3/game/Sound.h +++ b/neo/doom3/game/Sound.h @@ -66,9 +66,13 @@ private: idAngles shakeRotate; int playingUntilTime; + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Trigger( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Timer( void ); + ID_SCRIPT_EVENT( "On", 0 ) void Event_On( void ); + ID_SCRIPT_EVENT( "Off", 0 ) void Event_Off( void ); void DoSound( bool play ); }; diff --git a/neo/doom3/game/Target.cpp b/neo/doom3/game/Target.cpp index 5a8d8f3a..83eeeee3 100644 --- a/neo/doom3/game/Target.cpp +++ b/neo/doom3/game/Target.cpp @@ -44,8 +44,6 @@ idTarget =============================================================================== */ -CLASS_DECLARATION( idEntity, idTarget ) -END_CLASS /* @@ -56,9 +54,6 @@ idTarget_Remove =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_Remove ) - EVENT( EV_Activate, idTarget_Remove::Event_Activate ) -END_CLASS /* ================ @@ -89,9 +84,6 @@ idTarget_Show =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_Show ) - EVENT( EV_Activate, idTarget_Show::Event_Activate ) -END_CLASS /* ================ @@ -122,9 +114,6 @@ idTarget_Damage =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_Damage ) - EVENT( EV_Activate, idTarget_Damage::Event_Activate ) -END_CLASS /* ================ @@ -154,9 +143,6 @@ idTarget_SessionCommand =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_SessionCommand ) - EVENT( EV_Activate, idTarget_SessionCommand::Event_Activate ) -END_CLASS /* ================ @@ -177,9 +163,6 @@ Just a modified form of idTarget_SessionCommand =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_EndLevel ) - EVENT( EV_Activate, idTarget_EndLevel::Event_Activate ) -END_CLASS /* ================ @@ -225,9 +208,6 @@ idTarget_WaitForButton =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_WaitForButton ) - EVENT( EV_Activate, idTarget_WaitForButton::Event_Activate ) -END_CLASS /* ================ @@ -273,9 +253,6 @@ idTarget_SetGlobalShaderParm =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_SetGlobalShaderTime ) -EVENT( EV_Activate, idTarget_SetGlobalShaderTime::Event_Activate ) -END_CLASS /* ================ @@ -298,9 +275,6 @@ idTarget_SetShaderParm =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_SetShaderParm ) - EVENT( EV_Activate, idTarget_SetShaderParm::Event_Activate ) -END_CLASS /* ================ @@ -352,9 +326,6 @@ idTarget_SetShaderTime =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_SetShaderTime ) - EVENT( EV_Activate, idTarget_SetShaderTime::Event_Activate ) -END_CLASS /* ================ @@ -386,9 +357,6 @@ idTarget_FadeEntity =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_FadeEntity ) - EVENT( EV_Activate, idTarget_FadeEntity::Event_Activate ) -END_CLASS /* ================ @@ -495,9 +463,6 @@ idTarget_LightFadeIn =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_LightFadeIn ) - EVENT( EV_Activate, idTarget_LightFadeIn::Event_Activate ) -END_CLASS /* ================ @@ -538,9 +503,6 @@ idTarget_LightFadeOut =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_LightFadeOut ) - EVENT( EV_Activate, idTarget_LightFadeOut::Event_Activate ) -END_CLASS /* ================ @@ -581,9 +543,6 @@ idTarget_Give =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_Give ) - EVENT( EV_Activate, idTarget_Give::Event_Activate ) -END_CLASS /* ================ @@ -592,7 +551,7 @@ idTarget_Give::Spawn */ void idTarget_Give::Spawn( void ) { if ( spawnArgs.GetBool( "onSpawn" ) ) { - PostEventMS( &EV_Activate, 50 ); + PostEventMS( &EV_idTarget_Give_Activate, 50 ); } } @@ -636,9 +595,6 @@ idTarget_GiveEmail =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_GiveEmail ) -EVENT( EV_Activate, idTarget_GiveEmail::Event_Activate ) -END_CLASS /* ================ @@ -672,9 +628,6 @@ idTarget_SetModel =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_SetModel ) - EVENT( EV_Activate, idTarget_SetModel::Event_Activate ) -END_CLASS /* ================ @@ -716,18 +669,7 @@ idTarget_SetInfluence =============================================================================== */ -const idEventDef EV_RestoreInfluence( "" ); -const idEventDef EV_GatherEntities( "" ); -const idEventDef EV_Flash( "", "fd" ); -const idEventDef EV_ClearFlash( "", "f" ); -CLASS_DECLARATION( idTarget, idTarget_SetInfluence ) - EVENT( EV_Activate, idTarget_SetInfluence::Event_Activate ) - EVENT( EV_RestoreInfluence, idTarget_SetInfluence::Event_RestoreInfluence ) - EVENT( EV_GatherEntities, idTarget_SetInfluence::Event_GatherEntities ) - EVENT( EV_Flash, idTarget_SetInfluence::Event_Flash ) - EVENT( EV_ClearFlash, idTarget_SetInfluence::Event_ClearFlash ) -END_CLASS /* ================ @@ -853,7 +795,7 @@ idTarget_SetInfluence::Spawn ================ */ void idTarget_SetInfluence::Spawn() { - PostEventMS( &EV_GatherEntities, 0 ); + PostEventMS( &EV_idTarget_SetInfluence_GatherEntities, 0 ); flashIn = spawnArgs.GetFloat( "flashIn", "0" ); flashOut = spawnArgs.GetFloat( "flashOut", "0" ); flashInSound = spawnArgs.GetString( "snd_flashin" ); @@ -882,7 +824,7 @@ void idTarget_SetInfluence::Event_Flash( float flash, int out ) { shader = declManager->FindSound( flashOutSound.Length() ? flashOutSound : flashInSound ); player->StartSoundShader( shader, SND_CHANNEL_VOICE, 0, false, NULL ); } - PostEventSec( &EV_ClearFlash, flash, flash ); + PostEventSec( &EV_idTarget_SetInfluence_ClearFlash, flash, flash ); } @@ -979,7 +921,7 @@ void idTarget_SetInfluence::Event_Activate( idEntity *activator ) { if ( spawnArgs.GetBool( "triggerActivate" ) ) { if ( restoreOnTrigger ) { - ProcessEvent( &EV_RestoreInfluence ); + ProcessEvent( &EV_idTarget_SetInfluence_RestoreInfluece ); restoreOnTrigger = false; return; } @@ -989,7 +931,7 @@ void idTarget_SetInfluence::Event_Activate( idEntity *activator ) { float fadeTime = spawnArgs.GetFloat( "fadeWorldSounds" ); if ( delay > 0.0f ) { - PostEventSec( &EV_Activate, delay, activator ); + PostEventSec( &EV_idTarget_SetInfluence_Activate, delay, activator ); delay = 0.0f; // start any sound fading now if ( fadeTime ) { @@ -1007,7 +949,7 @@ void idTarget_SetInfluence::Event_Activate( idEntity *activator ) { } if ( flashIn ) { - PostEventSec( &EV_Flash, 0.0f, flashIn, 0 ); + PostEventSec( &EV_idTarget_SetInfluence_Flash, 0.0f, flashIn, 0 ); } parm = spawnArgs.GetString( "snd_influence" ); @@ -1016,7 +958,7 @@ void idTarget_SetInfluence::Event_Activate( idEntity *activator ) { } if ( switchToCamera ) { - switchToCamera->PostEventSec( &EV_Activate, flashIn + 0.05f, this ); + switchToCamera->PostEventSec( &EV_idCameraView_Activate, flashIn + 0.05f, this ); } int fov = spawnArgs.GetInt( "fov" ); @@ -1110,7 +1052,7 @@ void idTarget_SetInfluence::Event_Activate( idEntity *activator ) { } if ( !restoreOnTrigger ) { - PostEventMS( &EV_RestoreInfluence, SEC2MS( spawnArgs.GetFloat( "time" ) ) ); + PostEventMS( &EV_idTarget_SetInfluence_RestoreInfluece, SEC2MS( spawnArgs.GetFloat( "time" ) ) ); } } @@ -1151,11 +1093,11 @@ void idTarget_SetInfluence::Event_RestoreInfluence() { idVec4 colorTo; if ( flashOut ) { - PostEventSec( &EV_Flash, 0.0f, flashOut, 1 ); + PostEventSec( &EV_idTarget_SetInfluence_Flash, 0.0f, flashOut, 1 ); } if ( switchToCamera ) { - switchToCamera->PostEventMS( &EV_Activate, 0.0f, this ); + switchToCamera->PostEventMS( &EV_idCameraView_Activate, 0.0f, this ); } for ( i = 0; i < genericList.Num(); i++ ) { @@ -1231,9 +1173,6 @@ idTarget_SetKeyVal =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_SetKeyVal ) - EVENT( EV_Activate, idTarget_SetKeyVal::Event_Activate ) -END_CLASS /* ================ @@ -1283,9 +1222,6 @@ idTarget_SetFov =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_SetFov ) - EVENT( EV_Activate, idTarget_SetFov::Event_Activate ) -END_CLASS /* @@ -1362,9 +1298,6 @@ idTarget_SetPrimaryObjective =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_SetPrimaryObjective ) - EVENT( EV_Activate, idTarget_SetPrimaryObjective::Event_Activate ) -END_CLASS /* ================ @@ -1386,9 +1319,6 @@ idTarget_LockDoor =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_LockDoor ) - EVENT( EV_Activate, idTarget_LockDoor::Event_Activate ) -END_CLASS /* ================ @@ -1421,9 +1351,6 @@ idTarget_CallObjectFunction =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_CallObjectFunction ) - EVENT( EV_Activate, idTarget_CallObjectFunction::Event_Activate ) -END_CLASS /* ================ @@ -1440,7 +1367,10 @@ void idTarget_CallObjectFunction::Event_Activate( idEntity *activator ) { funcName = spawnArgs.GetString( "call" ); for( i = 0; i < targets.Num(); i++ ) { ent = targets[ i ].GetEntity(); - if ( ent && ent->scriptObject.HasObject() ) { + if (ent && ent->InvokeNativeScript(funcName)) { + // Already invoked. + } + else if ( ent && ent->scriptObject.HasObject() ) { func = ent->scriptObject.GetFunction( funcName ); if ( !func ) { gameLocal.Error( "Function '%s' not found on entity '%s' for function call from '%s'", funcName, ent->name.c_str(), name.c_str() ); @@ -1468,9 +1398,6 @@ idTarget_EnableLevelWeapons =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_EnableLevelWeapons ) - EVENT( EV_Activate, idTarget_EnableLevelWeapons::Event_Activate ) -END_CLASS /* ================ @@ -1486,16 +1413,16 @@ void idTarget_EnableLevelWeapons::Event_Activate( idEntity *activator ) { if ( spawnArgs.GetBool( "disable" ) ) { for( i = 0; i < gameLocal.numClients; i++ ) { if ( gameLocal.entities[ i ] ) { - gameLocal.entities[ i ]->ProcessEvent( &EV_Player_DisableWeapon ); + gameLocal.entities[ i ]->ProcessEvent( &EV_idPlayer_DisableWeapon ); } } } else { weap = spawnArgs.GetString( "weapon" ); for( i = 0; i < gameLocal.numClients; i++ ) { if ( gameLocal.entities[ i ] ) { - gameLocal.entities[ i ]->ProcessEvent( &EV_Player_EnableWeapon ); + gameLocal.entities[ i ]->ProcessEvent( &EV_idPlayer_EnableWeapon ); if ( weap && weap[ 0 ] ) { - gameLocal.entities[ i ]->PostEventSec( &EV_Player_SelectWeapon, 0.5f, weap ); + gameLocal.entities[ i ]->PostEventSec( &EV_idPlayer_SelectWeapon, 0.5f, weap ); } } } @@ -1510,14 +1437,7 @@ idTarget_Tip =============================================================================== */ -const idEventDef EV_TipOff( "" ); -extern const idEventDef EV_GetPlayerPos( "" ); -CLASS_DECLARATION( idTarget, idTarget_Tip ) - EVENT( EV_Activate, idTarget_Tip::Event_Activate ) - EVENT( EV_TipOff, idTarget_Tip::Event_TipOff ) - EVENT( EV_GetPlayerPos, idTarget_Tip::Event_GetPlayerPos ) -END_CLASS /* @@ -1564,7 +1484,7 @@ void idTarget_Tip::Event_GetPlayerPos( void ) { idPlayer *player = gameLocal.GetLocalPlayer(); if ( player ) { playerPos = player->GetPhysics()->GetOrigin(); - PostEventMS( &EV_TipOff, 100 ); + PostEventMS( &EV_idTarget_Tip_TipOff, 100 ); } } @@ -1577,11 +1497,11 @@ void idTarget_Tip::Event_Activate( idEntity *activator ) { idPlayer *player = gameLocal.GetLocalPlayer(); if ( player ) { if ( player->IsTipVisible() ) { - PostEventSec( &EV_Activate, 5.1f, activator ); + PostEventSec( &EV_idTarget_Tip_Activate, 5.1f, activator ); return; } player->ShowTip( spawnArgs.GetString( "text_title" ), spawnArgs.GetString( "text_tip" ), false ); - PostEventMS( &EV_GetPlayerPos, 2000 ); + PostEventMS( &EV_idTarget_Tip_Getplayerpos, 2000 ); } } @@ -1597,7 +1517,7 @@ void idTarget_Tip::Event_TipOff( void ) { if ( v.Length() > 96.0f ) { player->HideTip(); } else { - PostEventMS( &EV_TipOff, 100 ); + PostEventMS( &EV_idTarget_Tip_TipOff, 100 ); } } } @@ -1611,9 +1531,6 @@ idTarget_GiveSecurity =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_GiveSecurity ) -EVENT( EV_Activate, idTarget_GiveSecurity::Event_Activate ) -END_CLASS /* ================ @@ -1636,9 +1553,6 @@ idTarget_RemoveWeapons =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_RemoveWeapons ) -EVENT( EV_Activate, idTarget_RemoveWeapons::Event_Activate ) -END_CLASS /* ================ @@ -1668,9 +1582,6 @@ idTarget_LevelTrigger =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_LevelTrigger ) -EVENT( EV_Activate, idTarget_LevelTrigger::Event_Activate ) -END_CLASS /* ================ @@ -1695,9 +1606,6 @@ idTarget_EnableStamina =============================================================================== */ -CLASS_DECLARATION( idTarget, idTarget_EnableStamina ) -EVENT( EV_Activate, idTarget_EnableStamina::Event_Activate ) -END_CLASS /* ================ @@ -1725,11 +1633,6 @@ idTarget_FadeSoundClass =============================================================================== */ -const idEventDef EV_RestoreVolume( "" ); -CLASS_DECLARATION( idTarget, idTarget_FadeSoundClass ) -EVENT( EV_Activate, idTarget_FadeSoundClass::Event_Activate ) -EVENT( EV_RestoreVolume, idTarget_FadeSoundClass::Event_RestoreVolume ) -END_CLASS /* ================ @@ -1745,7 +1648,7 @@ void idTarget_FadeSoundClass::Event_Activate( idEntity *activator ) { if ( fadeTime ) { gameSoundWorld->FadeSoundClasses( fadeClass, spawnArgs.GetBool( "fadeIn" ) ? fadeDB : 0.0f - fadeDB, fadeTime ); if ( fadeDuration ) { - PostEventSec( &EV_RestoreVolume, fadeDuration ); + PostEventSec( &EV_idTarget_FadeSoundClass_RestoreVolume, fadeDuration ); } } } diff --git a/neo/doom3/game/Target.h b/neo/doom3/game/Target.h index f4f59a73..543c7f8b 100644 --- a/neo/doom3/game/Target.h +++ b/neo/doom3/game/Target.h @@ -57,6 +57,7 @@ public: CLASS_PROTOTYPE( idTarget_Remove ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -74,6 +75,7 @@ public: CLASS_PROTOTYPE( idTarget_Show ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -91,6 +93,7 @@ public: CLASS_PROTOTYPE( idTarget_Damage ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -108,6 +111,7 @@ public: CLASS_PROTOTYPE( idTarget_SessionCommand ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -125,6 +129,7 @@ public: CLASS_PROTOTYPE( idTarget_EndLevel ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -145,6 +150,7 @@ public: void Think( void ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -161,6 +167,7 @@ public: CLASS_PROTOTYPE( idTarget_SetGlobalShaderTime ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -178,6 +185,7 @@ public: CLASS_PROTOTYPE( idTarget_SetShaderParm ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -195,6 +203,7 @@ public: CLASS_PROTOTYPE( idTarget_SetShaderTime ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -222,6 +231,7 @@ private: int fadeStart; int fadeEnd; + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -238,6 +248,7 @@ public: CLASS_PROTOTYPE( idTarget_LightFadeIn ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -254,6 +265,7 @@ public: CLASS_PROTOTYPE( idTarget_LightFadeOut ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -272,6 +284,7 @@ public: void Spawn( void ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -291,6 +304,7 @@ public: void Spawn( void ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -309,6 +323,7 @@ public: void Spawn( void ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -333,10 +348,15 @@ public: void Spawn( void ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_RestoreInfluence(); + ID_SCRIPT_EVENT( "", 0 ) void Event_GatherEntities(); + ID_SCRIPT_EVENT( "", 0 ) void Event_Flash( float flash, int out ); + ID_SCRIPT_EVENT( "", 0 ) void Event_ClearFlash( float flash ); void Think( void ); @@ -369,6 +389,7 @@ public: CLASS_PROTOTYPE( idTarget_SetKeyVal ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -393,6 +414,7 @@ public: private: idInterpolate fovSetting; + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -410,6 +432,7 @@ public: CLASS_PROTOTYPE( idTarget_SetPrimaryObjective ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -426,6 +449,7 @@ public: CLASS_PROTOTYPE( idTarget_LockDoor ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -442,6 +466,7 @@ public: CLASS_PROTOTYPE( idTarget_CallObjectFunction ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -459,6 +484,7 @@ public: CLASS_PROTOTYPE( idTarget_EnableLevelWeapons ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -485,8 +511,11 @@ public: private: idVec3 playerPos; + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_TipOff( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_GetPlayerPos( void ); }; @@ -501,6 +530,7 @@ class idTarget_GiveSecurity : public idTarget { public: CLASS_PROTOTYPE( idTarget_GiveSecurity ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -516,6 +546,7 @@ class idTarget_RemoveWeapons : public idTarget { public: CLASS_PROTOTYPE( idTarget_RemoveWeapons ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -531,6 +562,7 @@ class idTarget_LevelTrigger : public idTarget { public: CLASS_PROTOTYPE( idTarget_LevelTrigger ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -545,6 +577,7 @@ class idTarget_EnableStamina : public idTarget { public: CLASS_PROTOTYPE( idTarget_EnableStamina ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); }; @@ -559,7 +592,9 @@ class idTarget_FadeSoundClass : public idTarget { public: CLASS_PROTOTYPE( idTarget_FadeSoundClass ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_RestoreVolume(); }; diff --git a/neo/doom3/game/Trigger.cpp b/neo/doom3/game/Trigger.cpp index e7387b15..ce792f06 100644 --- a/neo/doom3/game/Trigger.cpp +++ b/neo/doom3/game/Trigger.cpp @@ -40,13 +40,7 @@ If you have questions concerning this license or the applicable additional terms =============================================================================== */ -const idEventDef EV_Enable( "enable", NULL ); -const idEventDef EV_Disable( "disable", NULL ); -CLASS_DECLARATION( idEntity, idTrigger ) - EVENT( EV_Enable, idTrigger::Event_Enable ) - EVENT( EV_Disable, idTrigger::Event_Disable ) -END_CLASS /* ================ @@ -243,13 +237,7 @@ void idTrigger::Spawn( void ) { =============================================================================== */ -const idEventDef EV_TriggerAction( "", "e" ); -CLASS_DECLARATION( idTrigger, idTrigger_Multi ) - EVENT( EV_Touch, idTrigger_Multi::Event_Touch ) - EVENT( EV_Activate, idTrigger_Multi::Event_Trigger ) - EVENT( EV_TriggerAction, idTrigger_Multi::Event_TriggerAction ) -END_CLASS /* @@ -513,11 +501,6 @@ void idTrigger_Multi::Event_Touch( idEntity *other, trace_t *trace ) { =============================================================================== */ -CLASS_DECLARATION( idTrigger, idTrigger_EntityName ) - EVENT( EV_Touch, idTrigger_EntityName::Event_Touch ) - EVENT( EV_Activate, idTrigger_EntityName::Event_Trigger ) - EVENT( EV_TriggerAction, idTrigger_EntityName::Event_TriggerAction ) -END_CLASS /* ================ @@ -700,12 +683,7 @@ void idTrigger_EntityName::Event_Touch( idEntity *other, trace_t *trace ) { =============================================================================== */ -const idEventDef EV_Timer( "", NULL ); -CLASS_DECLARATION( idTrigger, idTrigger_Timer ) - EVENT( EV_Timer, idTrigger_Timer::Event_Timer ) - EVENT( EV_Activate, idTrigger_Timer::Event_Use ) -END_CLASS /* ================ @@ -844,10 +822,6 @@ void idTrigger_Timer::Event_Use( idEntity *activator ) { =============================================================================== */ -CLASS_DECLARATION( idTrigger, idTrigger_Count ) - EVENT( EV_Activate, idTrigger_Count::Event_Trigger ) - EVENT( EV_TriggerAction, idTrigger_Count::Event_TriggerAction ) -END_CLASS /* ================ @@ -934,10 +908,6 @@ void idTrigger_Count::Event_TriggerAction( idEntity *activator ) { =============================================================================== */ -CLASS_DECLARATION( idTrigger, idTrigger_Hurt ) - EVENT( EV_Touch, idTrigger_Hurt::Event_Touch ) - EVENT( EV_Activate, idTrigger_Hurt::Event_Toggle ) -END_CLASS /* @@ -1025,9 +995,6 @@ void idTrigger_Hurt::Event_Toggle( idEntity *activator ) { =============================================================================== */ -CLASS_DECLARATION( idTrigger, idTrigger_Fade ) - EVENT( EV_Activate, idTrigger_Fade::Event_Trigger ) -END_CLASS /* ================ @@ -1056,9 +1023,6 @@ void idTrigger_Fade::Event_Trigger( idEntity *activator ) { =============================================================================== */ -CLASS_DECLARATION( idTrigger, idTrigger_Touch ) - EVENT( EV_Activate, idTrigger_Touch::Event_Trigger ) -END_CLASS /* @@ -1115,10 +1079,12 @@ void idTrigger_Touch::TouchEntities( void ) { idBounds bounds; idClipModel *cm, *clipModelList[ MAX_GENTITIES ]; - if ( clipModel == NULL || scriptFunction == NULL ) { + if ( clipModel == NULL ) { return; } + idStr funcname = spawnArgs.GetString("call", ""); + bounds.FromTransformedBounds( clipModel->GetBounds(), clipModel->GetOrigin(), clipModel->GetAxis() ); numClipModels = gameLocal.clip.ClipModelsTouchingBounds( bounds, -1, clipModelList, MAX_GENTITIES ); @@ -1142,9 +1108,15 @@ void idTrigger_Touch::TouchEntities( void ) { ActivateTargets( entity ); - idThread *thread = new idThread(); - thread->CallFunction( entity, scriptFunction, false ); - thread->DelayedStart( 0 ); + if (entity->HasNativeFunction(funcname)) { + entity->Invoke(funcname, NULL); + } + else if (scriptFunction != NULL) + { + idThread* thread = new idThread(); + thread->CallFunction(entity, scriptFunction, false); + thread->DelayedStart(0); + } } } diff --git a/neo/doom3/game/Trigger.h b/neo/doom3/game/Trigger.h index 3257d175..d36dece5 100644 --- a/neo/doom3/game/Trigger.h +++ b/neo/doom3/game/Trigger.h @@ -29,8 +29,6 @@ If you have questions concerning this license or the applicable additional terms #ifndef __GAME_TRIGGER_H__ #define __GAME_TRIGGER_H__ -extern const idEventDef EV_Enable; -extern const idEventDef EV_Disable; /* =============================================================================== @@ -60,7 +58,9 @@ public: protected: void CallScript( void ) const; + ID_SCRIPT_EVENT( "enable", 0 ) void Event_Enable( void ); + ID_SCRIPT_EVENT( "disable", 0 ) void Event_Disable( void ); const function_t * scriptFunction; @@ -101,8 +101,11 @@ private: bool CheckFacing( idEntity *activator ); void TriggerAction( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_TriggerAction( idEntity *activator ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Trigger( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Touch( idEntity *other, trace_t *trace ); }; @@ -136,8 +139,11 @@ private: idStr entityName; void TriggerAction( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_TriggerAction( idEntity *activator ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Trigger( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Touch( idEntity *other, trace_t *trace ); }; @@ -171,7 +177,9 @@ private: idStr onName; idStr offName; + ID_SCRIPT_EVENT( "", 0 ) void Event_Timer( void ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Use( idEntity *activator ); }; @@ -200,7 +208,9 @@ private: int count; float delay; + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Trigger( idEntity *activator ); + ID_SCRIPT_EVENT( "", 0 ) void Event_TriggerAction( idEntity *activator ); }; @@ -229,7 +239,9 @@ private: float delay; int nextTime; + ID_SCRIPT_EVENT( "", 0 ) void Event_Touch( idEntity *other, trace_t *trace ); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Toggle( idEntity *activator ); }; @@ -248,6 +260,7 @@ public: CLASS_PROTOTYPE( idTrigger_Fade ); private: + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Trigger( idEntity *activator ); }; @@ -281,6 +294,7 @@ public: private: idClipModel * clipModel; + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Trigger( idEntity *activator ); }; diff --git a/neo/doom3/game/Weapon.cpp b/neo/doom3/game/Weapon.cpp index e076ee4f..fb7b5876 100644 --- a/neo/doom3/game/Weapon.cpp +++ b/neo/doom3/game/Weapon.cpp @@ -38,11 +38,7 @@ If you have questions concerning this license or the applicable additional terms ***********************************************************************/ -const idEventDef EV_Weapon_Grabber_SetGrabDistance("grabberGrabDistance", "f"); -CLASS_DECLARATION(idClass, rvmWeaponObject) -EVENT(EV_Weapon_Grabber_SetGrabDistance, idWeapon::Event_GrabberSetGrabDistance) -END_CLASS /* ================== @@ -119,8 +115,6 @@ const idSoundShader* rvmWeaponObject::FindSound(const char* name) // // class def // -CLASS_DECLARATION(idAnimatedEntity, idWeapon) -END_CLASS idCVar cg_projectile_clientAuthoritative_maxCatchup("cg_projectile_clientAuthoritative_maxCatchup", "500", CVAR_INTEGER, ""); @@ -2257,8 +2251,12 @@ void idWeapon::AlertMonsters() } else if (ent->IsType(idTrigger::Type)) { + const idEventDef* touchEvent = ent->FindEventDef("", "et"); ent->Signal(SIG_TOUCH); - ent->ProcessEvent(&EV_Touch, owner, &tr); + if (touchEvent) + { + ent->ProcessEvent(touchEvent, owner, &tr); + } } } @@ -2281,8 +2279,12 @@ void idWeapon::AlertMonsters() } else if (ent->IsType(idTrigger::Type)) { + const idEventDef* touchEvent = ent->FindEventDef("", "et"); ent->Signal(SIG_TOUCH); - ent->ProcessEvent(&EV_Touch, owner, &tr); + if (touchEvent) + { + ent->ProcessEvent(touchEvent, owner, &tr); + } } } } @@ -4126,8 +4128,12 @@ void idWeapon::Event_StartWeaponParticle(const char* name) //Toggle the emitter if (!part->smoke && part->emitter != NULL) { + const idEventDef* activateEvent = part->emitter->FindEventDef("activate", "e"); part->emitter->Show(); - part->emitter->PostEventMS(&EV_Activate, 0, this); + if (activateEvent) + { + part->emitter->PostEventMS(activateEvent, 0, this); + } } } } @@ -4146,8 +4152,12 @@ void idWeapon::Event_StopWeaponParticle(const char* name) { if (part->emitter != NULL) { + const idEventDef* activateEvent = part->emitter->FindEventDef("activate", "e"); part->emitter->Hide(); - part->emitter->PostEventMS(&EV_Activate, 0, this); + if (activateEvent) + { + part->emitter->PostEventMS(activateEvent, 0, this); + } } } } @@ -4467,4 +4477,4 @@ void idWeapon::ClientPredictionThink() void idWeapon::ForceAmmoInClip() { ammoClip = clipSize; -} \ No newline at end of file +} diff --git a/neo/doom3/game/Weapon.h b/neo/doom3/game/Weapon.h index 2c9b87ef..69fb9155 100644 --- a/neo/doom3/game/Weapon.h +++ b/neo/doom3/game/Weapon.h @@ -40,7 +40,6 @@ class idWeapon; =============================================================================== */ -extern const idEventDef EV_Weapon_State; typedef int ammo_t; static const int AMMO_NUMTYPES = 16; @@ -475,6 +474,7 @@ private: public: void Event_Grabber(int enable); int Event_GrabberHasTarget(); + ID_SCRIPT_EVENT( "grabberGrabDistance", 0 ) void Event_GrabberSetGrabDistance(float dist); void Event_LaunchProjectilesEllipse(int num_projectiles, float spreada, float spreadb, float fuseOffset, float power); void Event_LaunchPowerup(const char* powerup, float duration, int useAmmo); diff --git a/neo/doom3/game/WorldSpawn.cpp b/neo/doom3/game/WorldSpawn.cpp index 7b0afeb3..5e871f00 100644 --- a/neo/doom3/game/WorldSpawn.cpp +++ b/neo/doom3/game/WorldSpawn.cpp @@ -44,10 +44,6 @@ idWorldspawn Every map should have exactly one worldspawn. ================ */ -CLASS_DECLARATION( idEntity, idWorldspawn ) - EVENT( EV_Remove, idWorldspawn::Event_Remove ) - EVENT( EV_SafeRemove, idWorldspawn::Event_Remove ) -END_CLASS static renderGlobalFogMode_t ParseGlobalFogMode( const char *mode ) { if ( !idStr::Icmp( mode, "linear" ) ) { diff --git a/neo/doom3/game/WorldSpawn.h b/neo/doom3/game/WorldSpawn.h index b658e208..754ddabe 100644 --- a/neo/doom3/game/WorldSpawn.h +++ b/neo/doom3/game/WorldSpawn.h @@ -49,6 +49,8 @@ public: void Restore( idRestoreGame *savefile ); private: + ID_SCRIPT_EVENT( "", 0 ) + ID_SCRIPT_EVENT( "remove", 0 ) void Event_Remove( void ); }; diff --git a/neo/doom3/game/ai/AI.cpp b/neo/doom3/game/ai/AI.cpp index 8c2c6eb5..e580036b 100644 --- a/neo/doom3/game/ai/AI.cpp +++ b/neo/doom3/game/ai/AI.cpp @@ -3578,7 +3578,7 @@ void idAI::PlayCinematic(void) { torsoAnim.animBlendFrames = 0; torsoAnim.lastAnimBlendFrames = 0; - ProcessEvent(&AI_PlayAnim, ANIMCHANNEL_TORSO, animname); + ProcessEvent(&EV_idActor_PlayAnim, ANIMCHANNEL_TORSO, animname); // make sure our model gets updated animator.ForceUpdate(); @@ -5132,12 +5132,7 @@ idCombatNode ***********************************************************************/ -const idEventDef EV_CombatNode_MarkUsed("markUsed"); -CLASS_DECLARATION(idEntity, idCombatNode) -EVENT(EV_CombatNode_MarkUsed, idCombatNode::Event_MarkUsed) -EVENT(EV_Activate, idCombatNode::Event_Activate) -END_CLASS /* ===================== @@ -5343,3 +5338,12 @@ void idCombatNode::Event_MarkUsed(void) { disabled = true; } } + +bool idAI::InvokeNativeScript(const char* name) { + if (nativeAIObject != NULL && nativeAIObject->HasNativeFunction(name)) { + nativeAIObject->Invoke(name, NULL); + return true; + } + + return false; +} \ No newline at end of file diff --git a/neo/doom3/game/ai/AI.h b/neo/doom3/game/ai/AI.h index f8f1e7bd..9fcb3411 100644 --- a/neo/doom3/game/ai/AI.h +++ b/neo/doom3/game/ai/AI.h @@ -138,21 +138,6 @@ typedef struct predictedPath_s { // // events // -extern const idEventDef AI_BeginAttack; -extern const idEventDef AI_EndAttack; -extern const idEventDef AI_MuzzleFlash; -extern const idEventDef AI_CreateMissile; -extern const idEventDef AI_AttackMissile; -extern const idEventDef AI_FireMissileAtTarget; -extern const idEventDef AI_AttackMelee; -extern const idEventDef AI_DirectDamage; -extern const idEventDef AI_JumpFrame; -extern const idEventDef AI_EnableClip; -extern const idEventDef AI_DisableClip; -extern const idEventDef AI_EnableGravity; -extern const idEventDef AI_DisableGravity; -extern const idEventDef AI_TriggerParticles; -extern const idEventDef AI_RandomPath; class idPathCorner; class rvmAIObject; @@ -210,6 +195,8 @@ public: void Save(idSaveGame* savefile) const; void Restore(idRestoreGame* savefile); + virtual bool InvokeNativeScript(const char* name); + void Spawn(void); void HeardSound(idEntity* ent, const char* action); idActor* GetEnemy(void) const; @@ -614,133 +601,261 @@ public: bool WaitMoveDone(void) const; bool Shrivel(float shrivel_time, bool firstFrame); + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate(idEntity* activator); + ID_SCRIPT_EVENT( "", 0 ) void Event_Touch(idEntity* other, trace_t* trace); + ID_SCRIPT_EVENT( "findEnemy", 'e' ) void Event_FindEnemy(int useFOV); + ID_SCRIPT_EVENT( "findEnemyAI", 'e' ) void Event_FindEnemyAI(int useFOV); + ID_SCRIPT_EVENT( "findEnemyInCombatNodes", 'e' ) void Event_FindEnemyInCombatNodes(void); + ID_SCRIPT_EVENT( "closestReachableEnemyOfEntity", 'e' ) void Event_ClosestReachableEnemyOfEntity(idEntity* team_mate); + ID_SCRIPT_EVENT( "heardSound", 'e' ) void Event_HeardSound(int ignore_team); + ID_SCRIPT_EVENT( "setEnemy", 0 ) void Event_SetEnemy(idEntity* ent); + ID_SCRIPT_EVENT( "clearEnemy", 0 ) void Event_ClearEnemy(void); + ID_SCRIPT_EVENT( "muzzleFlash", 0 ) void Event_MuzzleFlash(const char* jointname); + ID_SCRIPT_EVENT( "createMissile", 'e' ) void Event_CreateMissile(const char* jointname); + ID_SCRIPT_EVENT( "attackMissile", 'e' ) void Event_AttackMissile(const char* jointname); + ID_SCRIPT_EVENT( "fireMissileAtTarget", 'e' ) void Event_FireMissileAtTarget(const char* jointname, const char* targetname); + ID_SCRIPT_EVENT( "launchMissile", 'e' ) void Event_LaunchMissile(const idVec3& muzzle, const idAngles& ang); + ID_SCRIPT_EVENT( "attackMelee", 'd' ) void Event_AttackMelee(const char* meleeDefName); + ID_SCRIPT_EVENT( "directDamage", 0 ) void Event_DirectDamage(idEntity* damageTarget, const char* damageDefName); + ID_SCRIPT_EVENT( "radiusDamageFromJoint", 0 ) void Event_RadiusDamageFromJoint(const char* jointname, const char* damageDefName); + ID_SCRIPT_EVENT( "attackBegin", 0 ) void Event_BeginAttack(const char* name); + ID_SCRIPT_EVENT( "attackEnd", 0 ) void Event_EndAttack(void); + ID_SCRIPT_EVENT( "meleeAttackToJoint", 'd' ) void Event_MeleeAttackToJoint(const char* jointname, const char* meleeDefName); + ID_SCRIPT_EVENT( "randomPath", 'e' ) void Event_RandomPath(void); + ID_SCRIPT_EVENT( "canBecomeSolid", 'f' ) void Event_CanBecomeSolid(void); + ID_SCRIPT_EVENT( "becomeSolid", 0 ) void Event_BecomeSolid(void); + ID_SCRIPT_EVENT( "becomeNonSolid", 0 ) void Event_BecomeNonSolid(void); + ID_SCRIPT_EVENT( "becomeRagdoll", 'd' ) void Event_BecomeRagdoll(void); + ID_SCRIPT_EVENT( "stopRagdoll", 0 ) void Event_StopRagdoll(void); + ID_SCRIPT_EVENT( "setHealth", 0 ) void Event_SetHealth(float newHealth); + ID_SCRIPT_EVENT( "getHealth", 'f' ) void Event_GetHealth(void); + ID_SCRIPT_EVENT( "allowDamage", 0 ) void Event_AllowDamage(void); + ID_SCRIPT_EVENT( "ignoreDamage", 0 ) void Event_IgnoreDamage(void); + ID_SCRIPT_EVENT( "getCurrentYaw", 'f' ) void Event_GetCurrentYaw(void); + ID_SCRIPT_EVENT( "turnTo", 0 ) void Event_TurnTo(float angle); + ID_SCRIPT_EVENT( "turnToPos", 0 ) void Event_TurnToPos(const idVec3& pos); + ID_SCRIPT_EVENT( "turnToEntity", 0 ) void Event_TurnToEntity(idEntity* ent); + ID_SCRIPT_EVENT( "moveStatus", 'd' ) void Event_MoveStatus(void); + ID_SCRIPT_EVENT( "stopMove", 0 ) void Event_StopMove(void); + ID_SCRIPT_EVENT( "moveToCover", 0 ) void Event_MoveToCover(void); + ID_SCRIPT_EVENT( "moveToEnemy", 0 ) void Event_MoveToEnemy(void); + ID_SCRIPT_EVENT( "moveToEnemyHeight", 0 ) void Event_MoveToEnemyHeight(void); + ID_SCRIPT_EVENT( "moveOutOfRange", 0 ) void Event_MoveOutOfRange(idEntity* entity, float range); + ID_SCRIPT_EVENT( "moveToAttackPosition", 0 ) void Event_MoveToAttackPosition(idEntity* entity, const char* attack_anim); + ID_SCRIPT_EVENT( "moveToEntity", 0 ) void Event_MoveToEntity(idEntity* ent); + ID_SCRIPT_EVENT( "moveToPosition", 0 ) void Event_MoveToPosition(const idVec3& pos); + ID_SCRIPT_EVENT( "slideTo", 0 ) void Event_SlideTo(const idVec3& pos, float time); + ID_SCRIPT_EVENT( "wander", 0 ) void Event_Wander(void); + ID_SCRIPT_EVENT( "facingIdeal", 'd' ) void Event_FacingIdeal(void); + ID_SCRIPT_EVENT( "faceEnemy", 0 ) void Event_FaceEnemy(void); + ID_SCRIPT_EVENT( "faceEntity", 0 ) void Event_FaceEntity(idEntity* ent); + ID_SCRIPT_EVENT( "waitAction", 0 ) void Event_WaitAction(const char* waitForState); + ID_SCRIPT_EVENT( "getCombatNode", 'e' ) void Event_GetCombatNode(void); + ID_SCRIPT_EVENT( "enemyInCombatCone", 'd' ) void Event_EnemyInCombatCone(idEntity* ent, int use_current_enemy_location); + ID_SCRIPT_EVENT( "waitMove", 0 ) void Event_WaitMove(void); + ID_SCRIPT_EVENT( "getJumpVelocity", 'v' ) void Event_GetJumpVelocity(const idVec3& pos, float speed, float max_height); + ID_SCRIPT_EVENT( "entityInAttackCone", 'd' ) void Event_EntityInAttackCone(idEntity* ent); + ID_SCRIPT_EVENT( "canSee", 'd' ) void Event_CanSeeEntity(idEntity* ent); + ID_SCRIPT_EVENT( "setTalkTarget", 0 ) void Event_SetTalkTarget(idEntity* target); + ID_SCRIPT_EVENT( "getTalkTarget", 'e' ) void Event_GetTalkTarget(void); + ID_SCRIPT_EVENT( "setTalkState", 0 ) void Event_SetTalkState(int state); + ID_SCRIPT_EVENT( "enemyRange", 'f' ) void Event_EnemyRange(void); + ID_SCRIPT_EVENT( "enemyRange2D", 'f' ) void Event_EnemyRange2D(void); + ID_SCRIPT_EVENT( "getEnemy", 'e' ) void Event_GetEnemy(void); + ID_SCRIPT_EVENT( "getEnemyPos", 'v' ) void Event_GetEnemyPos(void); + ID_SCRIPT_EVENT( "getEnemyEyePos", 'v' ) void Event_GetEnemyEyePos(void); + ID_SCRIPT_EVENT( "predictEnemyPos", 'v' ) void Event_PredictEnemyPos(float time); + ID_SCRIPT_EVENT( "canHitEnemy", 'd' ) void Event_CanHitEnemy(void); + ID_SCRIPT_EVENT( "canHitEnemyFromAnim", 'd' ) void Event_CanHitEnemyFromAnim(const char* animname); + ID_SCRIPT_EVENT( "canHitEnemyFromJoint", 'd' ) void Event_CanHitEnemyFromJoint(const char* jointname); + ID_SCRIPT_EVENT( "enemyPositionValid", 'd' ) void Event_EnemyPositionValid(void); + ID_SCRIPT_EVENT( "chargeAttack", 0 ) void Event_ChargeAttack(const char* damageDef); + ID_SCRIPT_EVENT( "testChargeAttack", 'f' ) void Event_TestChargeAttack(void); + ID_SCRIPT_EVENT( "testAnimMoveTowardEnemy", 'd' ) void Event_TestAnimMoveTowardEnemy(const char* animname); + ID_SCRIPT_EVENT( "testAnimMove", 'd' ) void Event_TestAnimMove(const char* animname); + ID_SCRIPT_EVENT( "testMoveToPosition", 'd' ) void Event_TestMoveToPosition(const idVec3& position); + ID_SCRIPT_EVENT( "testMeleeAttack", 'd' ) void Event_TestMeleeAttack(void); + ID_SCRIPT_EVENT( "testAnimAttack", 'd' ) void Event_TestAnimAttack(const char* animname); + ID_SCRIPT_EVENT( "shrivel", 0 ) void Event_Shrivel(float shirvel_time); + ID_SCRIPT_EVENT( "burn", 0 ) void Event_Burn(void); + ID_SCRIPT_EVENT( "preBurn", 0 ) void Event_PreBurn(void); + ID_SCRIPT_EVENT( "clearBurn", 0 ) void Event_ClearBurn(void); + ID_SCRIPT_EVENT( "setSmokeVisibility", 0 ) void Event_SetSmokeVisibility(int num, int on); + ID_SCRIPT_EVENT( "numSmokeEmitters", 'd' ) void Event_NumSmokeEmitters(void); + ID_SCRIPT_EVENT( "stopThinking", 0 ) void Event_StopThinking(void); + ID_SCRIPT_EVENT( "getTurnDelta", 'f' ) void Event_GetTurnDelta(void); + ID_SCRIPT_EVENT( "getMoveType", 'd' ) void Event_GetMoveType(void); + ID_SCRIPT_EVENT( "setMoveType", 0 ) void Event_SetMoveType(int moveType); + ID_SCRIPT_EVENT( "saveMove", 0 ) void Event_SaveMove(void); + ID_SCRIPT_EVENT( "restoreMove", 0 ) void Event_RestoreMove(void); + ID_SCRIPT_EVENT( "allowMovement", 0 ) void Event_AllowMovement(float flag); + ID_SCRIPT_EVENT( "", 0 ) void Event_JumpFrame(void); + ID_SCRIPT_EVENT( "enableClip", 0 ) void Event_EnableClip(void); + ID_SCRIPT_EVENT( "disableClip", 0 ) void Event_DisableClip(void); + ID_SCRIPT_EVENT( "enableGravity", 0 ) void Event_EnableGravity(void); + ID_SCRIPT_EVENT( "disableGravity", 0 ) void Event_DisableGravity(void); + ID_SCRIPT_EVENT( "enableAFPush", 0 ) void Event_EnableAFPush(void); + ID_SCRIPT_EVENT( "disableAFPush", 0 ) void Event_DisableAFPush(void); + ID_SCRIPT_EVENT( "setFlySpeed", 0 ) void Event_SetFlySpeed(float speed); + ID_SCRIPT_EVENT( "setFlyOffset", 0 ) void Event_SetFlyOffset(int offset); + ID_SCRIPT_EVENT( "clearFlyOffset", 0 ) void Event_ClearFlyOffset(void); + ID_SCRIPT_EVENT( "getClosestHiddenTarget", 'e' ) void Event_GetClosestHiddenTarget(const char* type); + ID_SCRIPT_EVENT( "getRandomTarget", 'e' ) void Event_GetRandomTarget(const char* type); + ID_SCRIPT_EVENT( "travelDistanceToPoint", 'f' ) void Event_TravelDistanceToPoint(const idVec3& pos); + ID_SCRIPT_EVENT( "travelDistanceToEntity", 'f' ) void Event_TravelDistanceToEntity(idEntity* ent); + ID_SCRIPT_EVENT( "travelDistanceBetweenPoints", 'f' ) void Event_TravelDistanceBetweenPoints(const idVec3& source, const idVec3& dest); + ID_SCRIPT_EVENT( "travelDistanceBetweenEntities", 'f' ) void Event_TravelDistanceBetweenEntities(idEntity* source, idEntity* dest); + ID_SCRIPT_EVENT( "lookAt", 0 ) void Event_LookAtEntity(idEntity* ent, float duration); + ID_SCRIPT_EVENT( "lookAtEnemy", 0 ) void Event_LookAtEnemy(float duration); + ID_SCRIPT_EVENT( "setBoneMod", 0 ) void Event_SetJointMod(int allowJointMod); + ID_SCRIPT_EVENT( "throwMoveable", 0 ) void Event_ThrowMoveable(void); + ID_SCRIPT_EVENT( "throwAF", 0 ) void Event_ThrowAF(void); + ID_SCRIPT_EVENT( "setAngles", 0 ) void Event_SetAngles(idAngles const& ang); + ID_SCRIPT_EVENT( "getAngles", 'v' ) void Event_GetAngles(void); + ID_SCRIPT_EVENT( "", 0 ) void Event_RealKill(void); + ID_SCRIPT_EVENT( "kill", 0 ) void Event_Kill(void); + ID_SCRIPT_EVENT( "wakeOnFlashlight", 0 ) void Event_WakeOnFlashlight(int enable); + ID_SCRIPT_EVENT( "locateEnemy", 0 ) void Event_LocateEnemy(void); + ID_SCRIPT_EVENT( "kickObstacles", 0 ) void Event_KickObstacles(idEntity* kickEnt, float force); + ID_SCRIPT_EVENT( "getObstacle", 'e' ) void Event_GetObstacle(void); + ID_SCRIPT_EVENT( "pushPointIntoAAS", 'v' ) void Event_PushPointIntoNAV(const idVec3& pos); + ID_SCRIPT_EVENT( "getTurnRate", 'f' ) void Event_GetTurnRate(void); + ID_SCRIPT_EVENT( "setTurnRate", 0 ) void Event_SetTurnRate(float rate); + ID_SCRIPT_EVENT( "animTurn", 0 ) void Event_AnimTurn(float angles); + ID_SCRIPT_EVENT( "allowHiddenMovement", 0 ) void Event_AllowHiddenMovement(int enable); + ID_SCRIPT_EVENT( "triggerParticles", 0 ) void Event_TriggerParticles(const char* jointName); + ID_SCRIPT_EVENT( "findActorsInBounds", 'e' ) void Event_FindActorsInBounds(const idVec3& mins, const idVec3& maxs); + ID_SCRIPT_EVENT( "canReachPosition", 'd' ) void Event_CanReachPosition(const idVec3& pos); + ID_SCRIPT_EVENT( "canReachEntity", 'd' ) void Event_CanReachEntity(idEntity* ent); + ID_SCRIPT_EVENT( "canReachEnemy", 'd' ) void Event_CanReachEnemy(void); + ID_SCRIPT_EVENT( "getReachableEntityPosition", 'v' ) void Event_GetReachableEntityPosition(idEntity* ent); }; @@ -769,7 +884,9 @@ private: idVec3 offset; bool disabled; + ID_SCRIPT_EVENT( "activate", 0 ) void Event_Activate(idEntity* activator); + ID_SCRIPT_EVENT( "markUsed", 0 ) void Event_MarkUsed(void); }; @@ -778,7 +895,9 @@ public: CLASS_PROTOTYPE(idAI_Vagary); private: + ID_SCRIPT_EVENT( "vagary_ChooseObjectToThrow", 'e' ) void Event_ChooseObjectToThrow(const idVec3& mins, const idVec3& maxs, float speed, float minDist, float offset); + ID_SCRIPT_EVENT( "vagary_ThrowObjectAtEnemy", 0 ) void Event_ThrowObjectAtEnemy(idEntity* ent, float speed); }; diff --git a/neo/doom3/game/ai/AI_Vagary.cpp b/neo/doom3/game/ai/AI_Vagary.cpp index 4a00e8f7..55b1e9f7 100644 --- a/neo/doom3/game/ai/AI_Vagary.cpp +++ b/neo/doom3/game/ai/AI_Vagary.cpp @@ -38,13 +38,7 @@ Vagary specific AI code #include "../Game_local.h" -const idEventDef AI_Vagary_ChooseObjectToThrow( "vagary_ChooseObjectToThrow", "vvfff", 'e' ); -const idEventDef AI_Vagary_ThrowObjectAtEnemy( "vagary_ThrowObjectAtEnemy", "ef" ); -CLASS_DECLARATION( idAI, idAI_Vagary ) - EVENT( AI_Vagary_ChooseObjectToThrow, idAI_Vagary::Event_ChooseObjectToThrow ) - EVENT( AI_Vagary_ThrowObjectAtEnemy, idAI_Vagary::Event_ThrowObjectAtEnemy ) -END_CLASS /* ================ diff --git a/neo/doom3/game/ai/AI_alphalabs2_scientist1.cpp b/neo/doom3/game/ai/AI_alphalabs2_scientist1.cpp index 44778a71..da6cf9fa 100644 --- a/neo/doom3/game/ai/AI_alphalabs2_scientist1.cpp +++ b/neo/doom3/game/ai/AI_alphalabs2_scientist1.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" -CLASS_DECLARATION( rvmAIObject, rvmAIAlphaLabs2Scientist1 ) -END_CLASS void rvmAIAlphaLabs2Scientist1::Init( idAI* aiOwner ) { rvmAIObject::Init( aiOwner ); diff --git a/neo/doom3/game/ai/AI_base.cpp b/neo/doom3/game/ai/AI_base.cpp index 9cc57a1f..2da4f8ad 100644 --- a/neo/doom3/game/ai/AI_base.cpp +++ b/neo/doom3/game/ai/AI_base.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" -CLASS_DECLARATION( idClass, rvmAIObject ) -END_CLASS rvmAIObject::rvmAIObject() { owner = NULL; diff --git a/neo/doom3/game/ai/AI_character.cpp b/neo/doom3/game/ai/AI_character.cpp index bbe13f12..8d34cfba 100644 --- a/neo/doom3/game/ai/AI_character.cpp +++ b/neo/doom3/game/ai/AI_character.cpp @@ -14,8 +14,6 @@ namespace { const float CHAR_BLEND_TURN_TO_IDLE = 0.0f; } -CLASS_DECLARATION( rvmAIObject, rvmCharacter ) -END_CLASS rvmCharacter::rvmCharacter() { talkMode = CHAR_TALK_PRIMARY; diff --git a/neo/doom3/game/ai/AI_character_prone.cpp b/neo/doom3/game/ai/AI_character_prone.cpp index ab4ae77a..286e37c6 100644 --- a/neo/doom3/game/ai/AI_character_prone.cpp +++ b/neo/doom3/game/ai/AI_character_prone.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" -CLASS_DECLARATION( rvmAIObject, rvmAICharacterProne ) -END_CLASS void rvmAICharacterProne::Init( idAI* aiOwner ) { rvmAIObject::Init( aiOwner ); diff --git a/neo/doom3/game/ai/AI_character_sentry.cpp b/neo/doom3/game/ai/AI_character_sentry.cpp index a5caffab..4808c1a9 100644 --- a/neo/doom3/game/ai/AI_character_sentry.cpp +++ b/neo/doom3/game/ai/AI_character_sentry.cpp @@ -25,8 +25,6 @@ namespace { const float SENTRY_MIN_TURN = 10.0f; } -CLASS_DECLARATION( rvmCharacter, rvmCharSentry ) -END_CLASS rvmCharSentry::rvmCharSentry() { lead_player = false; diff --git a/neo/doom3/game/ai/AI_events.cpp b/neo/doom3/game/ai/AI_events.cpp index 1d14e054..f890e14c 100644 --- a/neo/doom3/game/ai/AI_events.cpp +++ b/neo/doom3/game/ai/AI_events.cpp @@ -37,260 +37,7 @@ If you have questions concerning this license or the applicable additional terms ***********************************************************************/ -const idEventDef AI_FindEnemy("findEnemy", "d", 'e'); -const idEventDef AI_FindEnemyAI("findEnemyAI", "d", 'e'); -const idEventDef AI_FindEnemyInCombatNodes("findEnemyInCombatNodes", NULL, 'e'); -const idEventDef AI_ClosestReachableEnemyOfEntity("closestReachableEnemyOfEntity", "E", 'e'); -const idEventDef AI_HeardSound("heardSound", "d", 'e'); -const idEventDef AI_SetEnemy("setEnemy", "E"); -const idEventDef AI_ClearEnemy("clearEnemy"); -const idEventDef AI_MuzzleFlash("muzzleFlash", "s"); -const idEventDef AI_CreateMissile("createMissile", "s", 'e'); -const idEventDef AI_AttackMissile("attackMissile", "s", 'e'); -const idEventDef AI_FireMissileAtTarget("fireMissileAtTarget", "ss", 'e'); -const idEventDef AI_LaunchMissile("launchMissile", "vv", 'e'); -const idEventDef AI_AttackMelee("attackMelee", "s", 'd'); -const idEventDef AI_DirectDamage("directDamage", "es"); -const idEventDef AI_RadiusDamageFromJoint("radiusDamageFromJoint", "ss"); -const idEventDef AI_BeginAttack("attackBegin", "s"); -const idEventDef AI_EndAttack("attackEnd"); -const idEventDef AI_MeleeAttackToJoint("meleeAttackToJoint", "ss", 'd'); -const idEventDef AI_RandomPath("randomPath", NULL, 'e'); -const idEventDef AI_CanBecomeSolid("canBecomeSolid", NULL, 'f'); -const idEventDef AI_BecomeSolid("becomeSolid"); -const idEventDef AI_BecomeRagdoll("becomeRagdoll", NULL, 'd'); -const idEventDef AI_StopRagdoll("stopRagdoll"); -const idEventDef AI_SetHealth("setHealth", "f"); -const idEventDef AI_GetHealth("getHealth", NULL, 'f'); -const idEventDef AI_AllowDamage("allowDamage"); -const idEventDef AI_IgnoreDamage("ignoreDamage"); -const idEventDef AI_GetCurrentYaw("getCurrentYaw", NULL, 'f'); -const idEventDef AI_TurnTo("turnTo", "f"); -const idEventDef AI_TurnToPos("turnToPos", "v"); -const idEventDef AI_TurnToEntity("turnToEntity", "E"); -const idEventDef AI_MoveStatus("moveStatus", NULL, 'd'); -const idEventDef AI_StopMove("stopMove"); -const idEventDef AI_MoveToCover("moveToCover"); -const idEventDef AI_MoveToEnemy("moveToEnemy"); -const idEventDef AI_MoveToEnemyHeight("moveToEnemyHeight"); -const idEventDef AI_MoveOutOfRange("moveOutOfRange", "ef"); -const idEventDef AI_MoveToAttackPosition("moveToAttackPosition", "es"); -const idEventDef AI_Wander("wander"); -const idEventDef AI_MoveToEntity("moveToEntity", "e"); -const idEventDef AI_MoveToPosition("moveToPosition", "v"); -const idEventDef AI_SlideTo("slideTo", "vf"); -const idEventDef AI_FacingIdeal("facingIdeal", NULL, 'd'); -const idEventDef AI_FaceEnemy("faceEnemy"); -const idEventDef AI_FaceEntity("faceEntity", "E"); -const idEventDef AI_GetCombatNode("getCombatNode", NULL, 'e'); -const idEventDef AI_EnemyInCombatCone("enemyInCombatCone", "Ed", 'd'); -const idEventDef AI_WaitMove("waitMove"); -const idEventDef AI_GetJumpVelocity("getJumpVelocity", "vff", 'v'); -const idEventDef AI_EntityInAttackCone("entityInAttackCone", "E", 'd'); -const idEventDef AI_CanSeeEntity("canSee", "E", 'd'); -const idEventDef AI_SetTalkTarget("setTalkTarget", "E"); -const idEventDef AI_GetTalkTarget("getTalkTarget", NULL, 'e'); -const idEventDef AI_SetTalkState("setTalkState", "d"); -const idEventDef AI_EnemyRange("enemyRange", NULL, 'f'); -const idEventDef AI_EnemyRange2D("enemyRange2D", NULL, 'f'); -const idEventDef AI_GetEnemy("getEnemy", NULL, 'e'); -const idEventDef AI_GetEnemyPos("getEnemyPos", NULL, 'v'); -const idEventDef AI_GetEnemyEyePos("getEnemyEyePos", NULL, 'v'); -const idEventDef AI_PredictEnemyPos("predictEnemyPos", "f", 'v'); -const idEventDef AI_CanHitEnemy("canHitEnemy", NULL, 'd'); -const idEventDef AI_CanHitEnemyFromAnim("canHitEnemyFromAnim", "s", 'd'); -const idEventDef AI_CanHitEnemyFromJoint("canHitEnemyFromJoint", "s", 'd'); -const idEventDef AI_EnemyPositionValid("enemyPositionValid", NULL, 'd'); -const idEventDef AI_ChargeAttack("chargeAttack", "s"); -const idEventDef AI_TestChargeAttack("testChargeAttack", NULL, 'f'); -const idEventDef AI_TestMoveToPosition("testMoveToPosition", "v", 'd'); -const idEventDef AI_TestAnimMoveTowardEnemy("testAnimMoveTowardEnemy", "s", 'd'); -const idEventDef AI_TestAnimMove("testAnimMove", "s", 'd'); -const idEventDef AI_TestMeleeAttack("testMeleeAttack", NULL, 'd'); -const idEventDef AI_TestAnimAttack("testAnimAttack", "s", 'd'); -const idEventDef AI_Shrivel("shrivel", "f"); -const idEventDef AI_Burn("burn"); -const idEventDef AI_ClearBurn("clearBurn"); -const idEventDef AI_PreBurn("preBurn"); -const idEventDef AI_SetSmokeVisibility("setSmokeVisibility", "dd"); -const idEventDef AI_NumSmokeEmitters("numSmokeEmitters", NULL, 'd'); -const idEventDef AI_WaitAction("waitAction", "s"); -const idEventDef AI_StopThinking("stopThinking"); -const idEventDef AI_GetTurnDelta("getTurnDelta", NULL, 'f'); -const idEventDef AI_GetMoveType("getMoveType", NULL, 'd'); -const idEventDef AI_SetMoveType("setMoveType", "d"); -const idEventDef AI_SaveMove("saveMove"); -const idEventDef AI_RestoreMove("restoreMove"); -const idEventDef AI_AllowMovement("allowMovement", "f"); -const idEventDef AI_JumpFrame(""); -const idEventDef AI_EnableClip("enableClip"); -const idEventDef AI_DisableClip("disableClip"); -const idEventDef AI_EnableGravity("enableGravity"); -const idEventDef AI_DisableGravity("disableGravity"); -const idEventDef AI_EnableAFPush("enableAFPush"); -const idEventDef AI_DisableAFPush("disableAFPush"); -const idEventDef AI_SetFlySpeed("setFlySpeed", "f"); -const idEventDef AI_SetFlyOffset("setFlyOffset", "d"); -const idEventDef AI_ClearFlyOffset("clearFlyOffset"); -const idEventDef AI_GetClosestHiddenTarget("getClosestHiddenTarget", "s", 'e'); -const idEventDef AI_GetRandomTarget("getRandomTarget", "s", 'e'); -const idEventDef AI_TravelDistanceToPoint("travelDistanceToPoint", "v", 'f'); -const idEventDef AI_TravelDistanceToEntity("travelDistanceToEntity", "e", 'f'); -const idEventDef AI_TravelDistanceBetweenPoints("travelDistanceBetweenPoints", "vv", 'f'); -const idEventDef AI_TravelDistanceBetweenEntities("travelDistanceBetweenEntities", "ee", 'f'); -const idEventDef AI_LookAtEntity("lookAt", "Ef"); -const idEventDef AI_LookAtEnemy("lookAtEnemy", "f"); -const idEventDef AI_SetJointMod("setBoneMod", "d"); -const idEventDef AI_ThrowMoveable("throwMoveable"); -const idEventDef AI_ThrowAF("throwAF"); -const idEventDef AI_RealKill(""); -const idEventDef AI_Kill("kill"); -const idEventDef AI_WakeOnFlashlight("wakeOnFlashlight", "d"); -const idEventDef AI_LocateEnemy("locateEnemy"); -const idEventDef AI_KickObstacles("kickObstacles", "Ef"); -const idEventDef AI_GetObstacle("getObstacle", NULL, 'e'); -const idEventDef AI_PushPointIntoNAV("pushPointIntoAAS", "v", 'v'); -const idEventDef AI_GetTurnRate("getTurnRate", NULL, 'f'); -const idEventDef AI_SetTurnRate("setTurnRate", "f"); -const idEventDef AI_AnimTurn("animTurn", "f"); -const idEventDef AI_AllowHiddenMovement("allowHiddenMovement", "d"); -const idEventDef AI_TriggerParticles("triggerParticles", "s"); -const idEventDef AI_FindActorsInBounds("findActorsInBounds", "vv", 'e'); -const idEventDef AI_CanReachPosition("canReachPosition", "v", 'd'); -const idEventDef AI_CanReachEntity("canReachEntity", "E", 'd'); -const idEventDef AI_CanReachEnemy("canReachEnemy", NULL, 'd'); -const idEventDef AI_GetReachableEntityPosition("getReachableEntityPosition", "e", 'v'); -CLASS_DECLARATION(idActor, idAI) -EVENT(EV_Activate, idAI::Event_Activate) -EVENT(EV_Touch, idAI::Event_Touch) -EVENT(AI_FindEnemy, idAI::Event_FindEnemy) -EVENT(AI_FindEnemyAI, idAI::Event_FindEnemyAI) -EVENT(AI_FindEnemyInCombatNodes, idAI::Event_FindEnemyInCombatNodes) -EVENT(AI_ClosestReachableEnemyOfEntity, idAI::Event_ClosestReachableEnemyOfEntity) -EVENT(AI_HeardSound, idAI::Event_HeardSound) -EVENT(AI_SetEnemy, idAI::Event_SetEnemy) -EVENT(AI_ClearEnemy, idAI::Event_ClearEnemy) -EVENT(AI_MuzzleFlash, idAI::Event_MuzzleFlash) -EVENT(AI_CreateMissile, idAI::Event_CreateMissile) -EVENT(AI_AttackMissile, idAI::Event_AttackMissile) -EVENT(AI_FireMissileAtTarget, idAI::Event_FireMissileAtTarget) -EVENT(AI_LaunchMissile, idAI::Event_LaunchMissile) -EVENT(AI_AttackMelee, idAI::Event_AttackMelee) -EVENT(AI_DirectDamage, idAI::Event_DirectDamage) -EVENT(AI_RadiusDamageFromJoint, idAI::Event_RadiusDamageFromJoint) -EVENT(AI_BeginAttack, idAI::Event_BeginAttack) -EVENT(AI_EndAttack, idAI::Event_EndAttack) -EVENT(AI_MeleeAttackToJoint, idAI::Event_MeleeAttackToJoint) -EVENT(AI_RandomPath, idAI::Event_RandomPath) -EVENT(AI_CanBecomeSolid, idAI::Event_CanBecomeSolid) -EVENT(AI_BecomeSolid, idAI::Event_BecomeSolid) -EVENT(EV_BecomeNonSolid, idAI::Event_BecomeNonSolid) -EVENT(AI_BecomeRagdoll, idAI::Event_BecomeRagdoll) -EVENT(AI_StopRagdoll, idAI::Event_StopRagdoll) -EVENT(AI_SetHealth, idAI::Event_SetHealth) -EVENT(AI_GetHealth, idAI::Event_GetHealth) -EVENT(AI_AllowDamage, idAI::Event_AllowDamage) -EVENT(AI_IgnoreDamage, idAI::Event_IgnoreDamage) -EVENT(AI_GetCurrentYaw, idAI::Event_GetCurrentYaw) -EVENT(AI_TurnTo, idAI::Event_TurnTo) -EVENT(AI_TurnToPos, idAI::Event_TurnToPos) -EVENT(AI_TurnToEntity, idAI::Event_TurnToEntity) -EVENT(AI_MoveStatus, idAI::Event_MoveStatus) -EVENT(AI_StopMove, idAI::Event_StopMove) -EVENT(AI_MoveToCover, idAI::Event_MoveToCover) -EVENT(AI_MoveToEnemy, idAI::Event_MoveToEnemy) -EVENT(AI_MoveToEnemyHeight, idAI::Event_MoveToEnemyHeight) -EVENT(AI_MoveOutOfRange, idAI::Event_MoveOutOfRange) -EVENT(AI_MoveToAttackPosition, idAI::Event_MoveToAttackPosition) -EVENT(AI_Wander, idAI::Event_Wander) -EVENT(AI_MoveToEntity, idAI::Event_MoveToEntity) -EVENT(AI_MoveToPosition, idAI::Event_MoveToPosition) -EVENT(AI_SlideTo, idAI::Event_SlideTo) -EVENT(AI_FacingIdeal, idAI::Event_FacingIdeal) -EVENT(AI_FaceEnemy, idAI::Event_FaceEnemy) -EVENT(AI_FaceEntity, idAI::Event_FaceEntity) -EVENT(AI_WaitAction, idAI::Event_WaitAction) -EVENT(AI_GetCombatNode, idAI::Event_GetCombatNode) -EVENT(AI_EnemyInCombatCone, idAI::Event_EnemyInCombatCone) -EVENT(AI_WaitMove, idAI::Event_WaitMove) -EVENT(AI_GetJumpVelocity, idAI::Event_GetJumpVelocity) -EVENT(AI_EntityInAttackCone, idAI::Event_EntityInAttackCone) -EVENT(AI_CanSeeEntity, idAI::Event_CanSeeEntity) -EVENT(AI_SetTalkTarget, idAI::Event_SetTalkTarget) -EVENT(AI_GetTalkTarget, idAI::Event_GetTalkTarget) -EVENT(AI_SetTalkState, idAI::Event_SetTalkState) -EVENT(AI_EnemyRange, idAI::Event_EnemyRange) -EVENT(AI_EnemyRange2D, idAI::Event_EnemyRange2D) -EVENT(AI_GetEnemy, idAI::Event_GetEnemy) -EVENT(AI_GetEnemyPos, idAI::Event_GetEnemyPos) -EVENT(AI_GetEnemyEyePos, idAI::Event_GetEnemyEyePos) -EVENT(AI_PredictEnemyPos, idAI::Event_PredictEnemyPos) -EVENT(AI_CanHitEnemy, idAI::Event_CanHitEnemy) -EVENT(AI_CanHitEnemyFromAnim, idAI::Event_CanHitEnemyFromAnim) -EVENT(AI_CanHitEnemyFromJoint, idAI::Event_CanHitEnemyFromJoint) -EVENT(AI_EnemyPositionValid, idAI::Event_EnemyPositionValid) -EVENT(AI_ChargeAttack, idAI::Event_ChargeAttack) -EVENT(AI_TestChargeAttack, idAI::Event_TestChargeAttack) -EVENT(AI_TestAnimMoveTowardEnemy, idAI::Event_TestAnimMoveTowardEnemy) -EVENT(AI_TestAnimMove, idAI::Event_TestAnimMove) -EVENT(AI_TestMoveToPosition, idAI::Event_TestMoveToPosition) -EVENT(AI_TestMeleeAttack, idAI::Event_TestMeleeAttack) -EVENT(AI_TestAnimAttack, idAI::Event_TestAnimAttack) -EVENT(AI_Shrivel, idAI::Event_Shrivel) -EVENT(AI_Burn, idAI::Event_Burn) -EVENT(AI_PreBurn, idAI::Event_PreBurn) -EVENT(AI_SetSmokeVisibility, idAI::Event_SetSmokeVisibility) -EVENT(AI_NumSmokeEmitters, idAI::Event_NumSmokeEmitters) -EVENT(AI_ClearBurn, idAI::Event_ClearBurn) -EVENT(AI_StopThinking, idAI::Event_StopThinking) -EVENT(AI_GetTurnDelta, idAI::Event_GetTurnDelta) -EVENT(AI_GetMoveType, idAI::Event_GetMoveType) -EVENT(AI_SetMoveType, idAI::Event_SetMoveType) -EVENT(AI_SaveMove, idAI::Event_SaveMove) -EVENT(AI_RestoreMove, idAI::Event_RestoreMove) -EVENT(AI_AllowMovement, idAI::Event_AllowMovement) -EVENT(AI_JumpFrame, idAI::Event_JumpFrame) -EVENT(AI_EnableClip, idAI::Event_EnableClip) -EVENT(AI_DisableClip, idAI::Event_DisableClip) -EVENT(AI_EnableGravity, idAI::Event_EnableGravity) -EVENT(AI_DisableGravity, idAI::Event_DisableGravity) -EVENT(AI_EnableAFPush, idAI::Event_EnableAFPush) -EVENT(AI_DisableAFPush, idAI::Event_DisableAFPush) -EVENT(AI_SetFlySpeed, idAI::Event_SetFlySpeed) -EVENT(AI_SetFlyOffset, idAI::Event_SetFlyOffset) -EVENT(AI_ClearFlyOffset, idAI::Event_ClearFlyOffset) -EVENT(AI_GetClosestHiddenTarget, idAI::Event_GetClosestHiddenTarget) -EVENT(AI_GetRandomTarget, idAI::Event_GetRandomTarget) -EVENT(AI_TravelDistanceToPoint, idAI::Event_TravelDistanceToPoint) -EVENT(AI_TravelDistanceToEntity, idAI::Event_TravelDistanceToEntity) -EVENT(AI_TravelDistanceBetweenPoints, idAI::Event_TravelDistanceBetweenPoints) -EVENT(AI_TravelDistanceBetweenEntities, idAI::Event_TravelDistanceBetweenEntities) -EVENT(AI_LookAtEntity, idAI::Event_LookAtEntity) -EVENT(AI_LookAtEnemy, idAI::Event_LookAtEnemy) -EVENT(AI_SetJointMod, idAI::Event_SetJointMod) -EVENT(AI_ThrowMoveable, idAI::Event_ThrowMoveable) -EVENT(AI_ThrowAF, idAI::Event_ThrowAF) -EVENT(EV_GetAngles, idAI::Event_GetAngles) -EVENT(EV_SetAngles, idAI::Event_SetAngles) -EVENT(AI_RealKill, idAI::Event_RealKill) -EVENT(AI_Kill, idAI::Event_Kill) -EVENT(AI_WakeOnFlashlight, idAI::Event_WakeOnFlashlight) -EVENT(AI_LocateEnemy, idAI::Event_LocateEnemy) -EVENT(AI_KickObstacles, idAI::Event_KickObstacles) -EVENT(AI_GetObstacle, idAI::Event_GetObstacle) -EVENT(AI_PushPointIntoNAV, idAI::Event_PushPointIntoNAV) -EVENT(AI_GetTurnRate, idAI::Event_GetTurnRate) -EVENT(AI_SetTurnRate, idAI::Event_SetTurnRate) -EVENT(AI_AnimTurn, idAI::Event_AnimTurn) -EVENT(AI_AllowHiddenMovement, idAI::Event_AllowHiddenMovement) -EVENT(AI_TriggerParticles, idAI::Event_TriggerParticles) -EVENT(AI_FindActorsInBounds, idAI::Event_FindActorsInBounds) -EVENT(AI_CanReachPosition, idAI::Event_CanReachPosition) -EVENT(AI_CanReachEntity, idAI::Event_CanReachEntity) -EVENT(AI_CanReachEnemy, idAI::Event_CanReachEnemy) -EVENT(AI_GetReachableEntityPosition, idAI::Event_GetReachableEntityPosition) -END_CLASS @@ -2183,7 +1930,7 @@ idAI::Kill ===================== */ void idAI::Kill(void) { - PostEventMS(&AI_RealKill, 0); + PostEventMS(&EV_idAI_Kill_real, 0); } /* @@ -2980,12 +2727,12 @@ idAI::Event_WaitAction ===================== */ void idAI::Event_WaitAction(const char* waitForState) { - if (idThread::BeginMultiFrameEvent(this, &AI_WaitAction)) { + if (idThread::BeginMultiFrameEvent(this, &EV_idAI_WaitAction)) { WaitAction(waitForState); } if (WaitActionDone()) { - idThread::EndMultiFrameEvent(this, &AI_WaitAction); + idThread::EndMultiFrameEvent(this, &EV_idAI_WaitAction); } } @@ -3013,10 +2760,10 @@ idAI::Event_WaitMove ===================== */ void idAI::Event_WaitMove(void) { - idThread::BeginMultiFrameEvent(this, &AI_WaitMove); + idThread::BeginMultiFrameEvent(this, &EV_idAI_WaitMove); if (WaitMoveDone()) { - idThread::EndMultiFrameEvent(this, &AI_WaitMove); + idThread::EndMultiFrameEvent(this, &EV_idAI_WaitMove); } } @@ -3233,9 +2980,9 @@ idAI::Event_Shrivel ===================== */ void idAI::Event_Shrivel(float shrivel_time) { - const bool firstFrame = idThread::BeginMultiFrameEvent(this, &AI_Shrivel); + const bool firstFrame = idThread::BeginMultiFrameEvent(this, &EV_idAI_Shrivel); if (Shrivel(shrivel_time, firstFrame)) { - idThread::EndMultiFrameEvent(this, &AI_Shrivel); + idThread::EndMultiFrameEvent(this, &EV_idAI_Shrivel); } } diff --git a/neo/doom3/game/ai/AI_follower.cpp b/neo/doom3/game/ai/AI_follower.cpp index 441d7fdc..f94998bd 100644 --- a/neo/doom3/game/ai/AI_follower.cpp +++ b/neo/doom3/game/ai/AI_follower.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" -CLASS_DECLARATION( rvmAIObject, rvmFollower ) -END_CLASS void rvmFollower::Init( idAI* aiOwner ) { rvmAIObject::Init( aiOwner ); diff --git a/neo/doom3/game/ai/AI_monster_base.cpp b/neo/doom3/game/ai/AI_monster_base.cpp index d2cdb627..643e4198 100644 --- a/neo/doom3/game/ai/AI_monster_base.cpp +++ b/neo/doom3/game/ai/AI_monster_base.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" -CLASS_DECLARATION( rvmAIObject, rvmMonsterBase ) -END_CLASS rvmMonsterBase::rvmMonsterBase() { run_distance = 0.0f; @@ -1078,7 +1076,10 @@ void rvmMonsterBase::trigger_wakeup_targets() { while ( kv ) { idEntity* ent = gameLocal.FindEntity( kv->GetValue() ); if ( ent ) { - ent->ProcessEvent( &EV_Activate, owner ); + const idEventDef* activateEvent = ent->FindEventDef( "activate", "e" ); + if ( activateEvent ) { + ent->ProcessEvent( activateEvent, owner ); + } } else { gameLocal.Warning( "Unknown wakeup_target '%s' on entity '%s'", kv->GetValue().c_str(), owner->GetName() ); } diff --git a/neo/doom3/game/ai/AI_monster_boss_cyberdemon.cpp b/neo/doom3/game/ai/AI_monster_boss_cyberdemon.cpp index da61720a..53e3309f 100644 --- a/neo/doom3/game/ai/AI_monster_boss_cyberdemon.cpp +++ b/neo/doom3/game/ai/AI_monster_boss_cyberdemon.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" - CLASS_DECLARATION( rvmMonsterBase, rvmMonsterBossCyberdemon ) - END_CLASS rvmMonsterBossCyberdemon::rvmMonsterBossCyberdemon() { nextAttack = 0.0f; diff --git a/neo/doom3/game/ai/AI_monster_boss_guardian.cpp b/neo/doom3/game/ai/AI_monster_boss_guardian.cpp index 418071f9..e5b29246 100644 --- a/neo/doom3/game/ai/AI_monster_boss_guardian.cpp +++ b/neo/doom3/game/ai/AI_monster_boss_guardian.cpp @@ -4,12 +4,6 @@ #pragma hdrstop #include "../Game_local.h" -CLASS_DECLARATION( rvmMonsterBase, rvmSeekerBase ) -END_CLASS -CLASS_DECLARATION( rvmMonsterBase, rvmMonsterBossGuardianSpawner ) -END_CLASS -CLASS_DECLARATION( rvmMonsterBase, rvmMonsterBossGuardian ) -END_CLASS rvmSeekerBase::rvmSeekerBase() {} void rvmSeekerBase::Init( idAI* aiOwner ) { rvmMonsterBase::Init( aiOwner ); } diff --git a/neo/doom3/game/ai/AI_monster_boss_guardian_seeker.cpp b/neo/doom3/game/ai/AI_monster_boss_guardian_seeker.cpp index 127574c4..26663bc7 100644 --- a/neo/doom3/game/ai/AI_monster_boss_guardian_seeker.cpp +++ b/neo/doom3/game/ai/AI_monster_boss_guardian_seeker.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" - CLASS_DECLARATION( rvmSeekerBase, rvmMonsterBossGuardianSeeker ) - END_CLASS rvmMonsterBossGuardianSeeker::rvmMonsterBossGuardianSeeker() { painNextTime = 0.0f; diff --git a/neo/doom3/game/ai/AI_monster_boss_sabaoth.cpp b/neo/doom3/game/ai/AI_monster_boss_sabaoth.cpp index 828a6121..aac455c7 100644 --- a/neo/doom3/game/ai/AI_monster_boss_sabaoth.cpp +++ b/neo/doom3/game/ai/AI_monster_boss_sabaoth.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" - CLASS_DECLARATION( rvmMonsterBase, rvmMonsterBossSabaoth ) - END_CLASS rvmMonsterBossSabaoth::rvmMonsterBossSabaoth() { nextAttack = 0.0f; diff --git a/neo/doom3/game/ai/AI_monster_boss_vagary.cpp b/neo/doom3/game/ai/AI_monster_boss_vagary.cpp index e61fe128..cb11aded 100644 --- a/neo/doom3/game/ai/AI_monster_boss_vagary.cpp +++ b/neo/doom3/game/ai/AI_monster_boss_vagary.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" - CLASS_DECLARATION( rvmMonsterBase, rvmMonsterBossVagary ) - END_CLASS rvmMonsterBossVagary::rvmMonsterBossVagary() { nextDodge = 0.0f; diff --git a/neo/doom3/game/ai/AI_monster_demon_archvile.cpp b/neo/doom3/game/ai/AI_monster_demon_archvile.cpp index e10ab54d..76975c8f 100644 --- a/neo/doom3/game/ai/AI_monster_demon_archvile.cpp +++ b/neo/doom3/game/ai/AI_monster_demon_archvile.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" - CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonArchvile ) - END_CLASS rvmMonsterDemonArchvile::rvmMonsterDemonArchvile() { nextDodge = 0.0f; diff --git a/neo/doom3/game/ai/AI_monster_demon_cherub.cpp b/neo/doom3/game/ai/AI_monster_demon_cherub.cpp index e69c6f50..09483230 100644 --- a/neo/doom3/game/ai/AI_monster_demon_cherub.cpp +++ b/neo/doom3/game/ai/AI_monster_demon_cherub.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" - CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonCherub ) - END_CLASS rvmMonsterDemonCherub::rvmMonsterDemonCherub() { explode = false; diff --git a/neo/doom3/game/ai/AI_monster_demon_hellknight.cpp b/neo/doom3/game/ai/AI_monster_demon_hellknight.cpp index 9cd273c2..033e585f 100644 --- a/neo/doom3/game/ai/AI_monster_demon_hellknight.cpp +++ b/neo/doom3/game/ai/AI_monster_demon_hellknight.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" - CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonHellknight ) - END_CLASS rvmMonsterDemonHellknight::rvmMonsterDemonHellknight() { nextDodge = 0.0f; diff --git a/neo/doom3/game/ai/AI_monster_demon_imp.cpp b/neo/doom3/game/ai/AI_monster_demon_imp.cpp index 0bec920f..e2a3d915 100644 --- a/neo/doom3/game/ai/AI_monster_demon_imp.cpp +++ b/neo/doom3/game/ai/AI_monster_demon_imp.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" - CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonImp ) - END_CLASS rvmMonsterDemonImp::rvmMonsterDemonImp() { nextDodge = 0.0f; diff --git a/neo/doom3/game/ai/AI_monster_demon_maggot.cpp b/neo/doom3/game/ai/AI_monster_demon_maggot.cpp index bdfe5fcc..55f6f1aa 100644 --- a/neo/doom3/game/ai/AI_monster_demon_maggot.cpp +++ b/neo/doom3/game/ai/AI_monster_demon_maggot.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" - CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonMaggot ) - END_CLASS rvmMonsterDemonMaggot::rvmMonsterDemonMaggot() { explode = false; diff --git a/neo/doom3/game/ai/AI_monster_demon_mancubus.cpp b/neo/doom3/game/ai/AI_monster_demon_mancubus.cpp index d13c1439..19ff87a5 100644 --- a/neo/doom3/game/ai/AI_monster_demon_mancubus.cpp +++ b/neo/doom3/game/ai/AI_monster_demon_mancubus.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" - CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonMancubus ) - END_CLASS rvmMonsterDemonMancubus::rvmMonsterDemonMancubus() { nextAttack = 0.0f; diff --git a/neo/doom3/game/ai/AI_monster_demon_pinky.cpp b/neo/doom3/game/ai/AI_monster_demon_pinky.cpp index 350be364..7862eac0 100644 --- a/neo/doom3/game/ai/AI_monster_demon_pinky.cpp +++ b/neo/doom3/game/ai/AI_monster_demon_pinky.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" - CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonPinky ) - END_CLASS rvmMonsterDemonPinky::rvmMonsterDemonPinky() { nextDodge = 0.0f; diff --git a/neo/doom3/game/ai/AI_monster_demon_revenant.cpp b/neo/doom3/game/ai/AI_monster_demon_revenant.cpp index 553fa9ee..eea33842 100644 --- a/neo/doom3/game/ai/AI_monster_demon_revenant.cpp +++ b/neo/doom3/game/ai/AI_monster_demon_revenant.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" - CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonRevenant ) - END_CLASS rvmMonsterDemonRevenant::rvmMonsterDemonRevenant() { nextDodge = 0.0f; diff --git a/neo/doom3/game/ai/AI_monster_demon_trite.cpp b/neo/doom3/game/ai/AI_monster_demon_trite.cpp index 98273672..445f8851 100644 --- a/neo/doom3/game/ai/AI_monster_demon_trite.cpp +++ b/neo/doom3/game/ai/AI_monster_demon_trite.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" - CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonTrite ) - END_CLASS rvmMonsterDemonTrite::rvmMonsterDemonTrite() { explode = false; diff --git a/neo/doom3/game/ai/AI_monster_demon_vulgar.cpp b/neo/doom3/game/ai/AI_monster_demon_vulgar.cpp index 8e46f8d8..44b6dafe 100644 --- a/neo/doom3/game/ai/AI_monster_demon_vulgar.cpp +++ b/neo/doom3/game/ai/AI_monster_demon_vulgar.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" - CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonVulgar ) - END_CLASS rvmMonsterDemonVulgar::rvmMonsterDemonVulgar() { nextDodge = 0.0f; diff --git a/neo/doom3/game/ai/AI_monster_demon_wraith.cpp b/neo/doom3/game/ai/AI_monster_demon_wraith.cpp index 4b035ea2..86aff845 100644 --- a/neo/doom3/game/ai/AI_monster_demon_wraith.cpp +++ b/neo/doom3/game/ai/AI_monster_demon_wraith.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" - CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonWraith ) - END_CLASS rvmMonsterDemonWraith::rvmMonsterDemonWraith() { invisible = false; diff --git a/neo/doom3/game/ai/AI_monster_flying_cacodemon.cpp b/neo/doom3/game/ai/AI_monster_flying_cacodemon.cpp index 06426eb3..f89ca446 100644 --- a/neo/doom3/game/ai/AI_monster_flying_cacodemon.cpp +++ b/neo/doom3/game/ai/AI_monster_flying_cacodemon.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" - CLASS_DECLARATION( rvmMonsterBase, rvmMonsterFlyingCacodemon ) - END_CLASS rvmMonsterFlyingCacodemon::rvmMonsterFlyingCacodemon() { nextAttack = 0.0f; diff --git a/neo/doom3/game/ai/AI_monster_flying_lostsoul.cpp b/neo/doom3/game/ai/AI_monster_flying_lostsoul.cpp index 6de14193..e1b601f9 100644 --- a/neo/doom3/game/ai/AI_monster_flying_lostsoul.cpp +++ b/neo/doom3/game/ai/AI_monster_flying_lostsoul.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" - CLASS_DECLARATION( rvmMonsterBase, rvmMonsterFlyingLostsoul ) - END_CLASS rvmMonsterFlyingLostsoul::rvmMonsterFlyingLostsoul() { nextAttack = 0.0f; diff --git a/neo/doom3/game/ai/AI_monster_turret.cpp b/neo/doom3/game/ai/AI_monster_turret.cpp index 0bcafe4e..c2b1d078 100644 --- a/neo/doom3/game/ai/AI_monster_turret.cpp +++ b/neo/doom3/game/ai/AI_monster_turret.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" - CLASS_DECLARATION( rvmMonsterBase, rvmMonsterTurret ) - END_CLASS rvmMonsterTurret::rvmMonsterTurret() { fire = false; diff --git a/neo/doom3/game/ai/AI_monster_zombie.cpp b/neo/doom3/game/ai/AI_monster_zombie.cpp index 9120a958..552bf7d1 100644 --- a/neo/doom3/game/ai/AI_monster_zombie.cpp +++ b/neo/doom3/game/ai/AI_monster_zombie.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" -CLASS_DECLARATION( rvmMonsterZombieBase, rvmMonsterZombie ) -END_CLASS rvmMonsterZombie::rvmMonsterZombie() { painNextTime = 0.0f; diff --git a/neo/doom3/game/ai/AI_monster_zombie_base.cpp b/neo/doom3/game/ai/AI_monster_zombie_base.cpp index 5b671e63..5af53f4e 100644 --- a/neo/doom3/game/ai/AI_monster_zombie_base.cpp +++ b/neo/doom3/game/ai/AI_monster_zombie_base.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" -CLASS_DECLARATION( rvmMonsterBase, rvmMonsterZombieBase ) -END_CLASS stateResult_t rvmMonsterZombieBase::RunStateByName( const char* stateName, stateParms_t* parms ) { AI_DISPATCH_STATE( "state_Killed", state_Killed ); diff --git a/neo/doom3/game/ai/AI_monster_zombie_bernie.cpp b/neo/doom3/game/ai/AI_monster_zombie_bernie.cpp index fd70470e..47308a98 100644 --- a/neo/doom3/game/ai/AI_monster_zombie_bernie.cpp +++ b/neo/doom3/game/ai/AI_monster_zombie_bernie.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" -CLASS_DECLARATION( rvmMonsterZombieBase, rvmMonsterZombieBernie ) -END_CLASS rvmMonsterZombieBernie::rvmMonsterZombieBernie() { painNextTime = 0.0f; diff --git a/neo/doom3/game/ai/AI_monster_zombie_commando_cgun.cpp b/neo/doom3/game/ai/AI_monster_zombie_commando_cgun.cpp index 59ad4c11..81d25ab1 100644 --- a/neo/doom3/game/ai/AI_monster_zombie_commando_cgun.cpp +++ b/neo/doom3/game/ai/AI_monster_zombie_commando_cgun.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" -CLASS_DECLARATION( rvmMonsterBase, rvmMonsterZombieCommandoCGun ) -END_CLASS rvmMonsterZombieCommandoCGun::rvmMonsterZombieCommandoCGun() { fire = false; diff --git a/neo/doom3/game/ai/AI_monster_zombie_commando_tentacle.cpp b/neo/doom3/game/ai/AI_monster_zombie_commando_tentacle.cpp index 090dff28..c8e890a5 100644 --- a/neo/doom3/game/ai/AI_monster_zombie_commando_tentacle.cpp +++ b/neo/doom3/game/ai/AI_monster_zombie_commando_tentacle.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" -CLASS_DECLARATION( rvmMonsterBase, rvmMonsterZombieCommandoTentacle ) -END_CLASS rvmMonsterZombieCommandoTentacle::rvmMonsterZombieCommandoTentacle() { nextAttack = 0.0f; diff --git a/neo/doom3/game/ai/AI_monster_zombie_morgue.cpp b/neo/doom3/game/ai/AI_monster_zombie_morgue.cpp index ba9a0598..580b1802 100644 --- a/neo/doom3/game/ai/AI_monster_zombie_morgue.cpp +++ b/neo/doom3/game/ai/AI_monster_zombie_morgue.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" -CLASS_DECLARATION( rvmMonsterZombieBase, rvmMonsterZombieMorgue ) -END_CLASS rvmMonsterZombieMorgue::rvmMonsterZombieMorgue() { painNextTime = 0.0f; diff --git a/neo/doom3/game/ai/AI_monster_zombie_sawyer.cpp b/neo/doom3/game/ai/AI_monster_zombie_sawyer.cpp index ef822afc..bb314a06 100644 --- a/neo/doom3/game/ai/AI_monster_zombie_sawyer.cpp +++ b/neo/doom3/game/ai/AI_monster_zombie_sawyer.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" -CLASS_DECLARATION( rvmMonsterZombieBase, rvmMonsterZombieSawyer ) -END_CLASS rvmMonsterZombieSawyer::rvmMonsterZombieSawyer() { attack = false; diff --git a/neo/doom3/game/ai/AI_monster_zombie_security_pistol.cpp b/neo/doom3/game/ai/AI_monster_zombie_security_pistol.cpp index d5e87d27..91382c1d 100644 --- a/neo/doom3/game/ai/AI_monster_zombie_security_pistol.cpp +++ b/neo/doom3/game/ai/AI_monster_zombie_security_pistol.cpp @@ -6,8 +6,6 @@ #include "../Game_local.h" -CLASS_DECLARATION( rvmMonsterZombieBase, rvmMonsterZombieSecurityPistol ) -END_CLASS static float zsecp_num_stand_attacks = 1.0f; static float zsecp_num_crouch_attacks = 1.0f; diff --git a/neo/doom3/game/anim/Anim_Blend.cpp b/neo/doom3/game/anim/Anim_Blend.cpp index 4d6a59bf..e630e83e 100644 --- a/neo/doom3/game/anim/Anim_Blend.cpp +++ b/neo/doom3/game/anim/Anim_Blend.cpp @@ -816,8 +816,11 @@ void idAnim::CallFrameCommands( idEntity *ent, int from, int to ) const { target = gameLocal.FindEntity( command.string->c_str() ); if ( target ) { + const idEventDef *activateEvent = target->FindEventDef( "activate", "e" ); target->Signal( SIG_TRIGGER ); - target->ProcessEvent( &EV_Activate, ent ); + if ( activateEvent ) { + target->ProcessEvent( activateEvent, ent ); + } target->TriggerGuis(); } else { gameLocal.Warning( "Framecommand 'trigger' on entity '%s', anim '%s', frame %d: Could not find entity '%s'", @@ -826,95 +829,95 @@ void idAnim::CallFrameCommands( idEntity *ent, int from, int to ) const { break; } case FC_TRIGGER_SMOKE_PARTICLE: { - ent->ProcessEvent( &AI_TriggerParticles, command.string->c_str() ); + ent->ProcessEvent( &EV_idAI_TriggerParticles, command.string->c_str() ); break; } case FC_MELEE: { - ent->ProcessEvent( &AI_AttackMelee, command.string->c_str() ); + ent->ProcessEvent( &EV_idAI_AttackMelee, command.string->c_str() ); break; } case FC_DIRECTDAMAGE: { - ent->ProcessEvent( &AI_DirectDamage, command.string->c_str() ); + ent->ProcessEvent( &EV_idAI_DirectDamage, command.string->c_str() ); break; } case FC_BEGINATTACK: { - ent->ProcessEvent( &AI_BeginAttack, command.string->c_str() ); + ent->ProcessEvent( &EV_idAI_AttackBegin, command.string->c_str() ); break; } case FC_ENDATTACK: { - ent->ProcessEvent( &AI_EndAttack ); + ent->ProcessEvent( &EV_idAI_AttackEnd ); break; } case FC_MUZZLEFLASH: { - ent->ProcessEvent( &AI_MuzzleFlash, command.string->c_str() ); + ent->ProcessEvent( &EV_idAI_MuzzleFlash, command.string->c_str() ); break; } case FC_CREATEMISSILE: { - ent->ProcessEvent( &AI_CreateMissile, command.string->c_str() ); + ent->ProcessEvent( &EV_idAI_CreateMissile, command.string->c_str() ); break; } case FC_LAUNCHMISSILE: { - ent->ProcessEvent( &AI_AttackMissile, command.string->c_str() ); + ent->ProcessEvent( &EV_idAI_AttackMissile, command.string->c_str() ); break; } case FC_FIREMISSILEATTARGET: { - ent->ProcessEvent( &AI_FireMissileAtTarget, modelDef->GetJointName( command.index ), command.string->c_str() ); + ent->ProcessEvent( &EV_idAI_FireMissileAtTarget, modelDef->GetJointName( command.index ), command.string->c_str() ); break; } case FC_FOOTSTEP : { - ent->ProcessEvent( &EV_Footstep ); + ent->ProcessEvent( &EV_idActor_RightFoot ); break; } case FC_LEFTFOOT: { - ent->ProcessEvent( &EV_FootstepLeft ); + ent->ProcessEvent( &EV_idActor_RightFoot ); break; } case FC_RIGHTFOOT: { - ent->ProcessEvent( &EV_FootstepRight ); + ent->ProcessEvent( &EV_idActor_RightFoot ); break; } case FC_ENABLE_EYE_FOCUS: { - ent->ProcessEvent( &AI_EnableEyeFocus ); + ent->ProcessEvent( &EV_idActor_EnableEyeFocus ); break; } case FC_DISABLE_EYE_FOCUS: { - ent->ProcessEvent( &AI_DisableEyeFocus ); + ent->ProcessEvent( &EV_idActor_DisableEyeFocus ); break; } case FC_DISABLE_GRAVITY: { - ent->ProcessEvent( &AI_DisableGravity ); + ent->ProcessEvent( &EV_idAI_DisableGravity ); break; } case FC_ENABLE_GRAVITY: { - ent->ProcessEvent( &AI_EnableGravity ); + ent->ProcessEvent( &EV_idAI_EnableGravity ); break; } case FC_JUMP: { - ent->ProcessEvent( &AI_JumpFrame ); + ent->ProcessEvent( &EV_idAI_Jumpframe ); break; } case FC_ENABLE_CLIP: { - ent->ProcessEvent( &AI_EnableClip ); + ent->ProcessEvent( &EV_idAI_EnableClip ); break; } case FC_DISABLE_CLIP: { - ent->ProcessEvent( &AI_DisableClip ); + ent->ProcessEvent( &EV_idAI_DisableClip ); break; } case FC_ENABLE_WALK_IK: { - ent->ProcessEvent( &EV_EnableWalkIK ); + ent->ProcessEvent( &EV_idActor_EnableWalkIK ); break; } case FC_DISABLE_WALK_IK: { - ent->ProcessEvent( &EV_DisableWalkIK ); + ent->ProcessEvent( &EV_idActor_DisableWalkIK ); break; } case FC_ENABLE_LEG_IK: { - ent->ProcessEvent( &EV_EnableLegIK, command.index ); + ent->ProcessEvent( &EV_idActor_EnableLegIK, command.index ); break; } case FC_DISABLE_LEG_IK: { - ent->ProcessEvent( &EV_DisableLegIK, command.index ); + ent->ProcessEvent( &EV_idActor_DisableLegIK, command.index ); break; } case FC_RECORDDEMO: { diff --git a/neo/doom3/game/anim/Anim_Testmodel.cpp b/neo/doom3/game/anim/Anim_Testmodel.cpp index e20759a9..3f32f356 100644 --- a/neo/doom3/game/anim/Anim_Testmodel.cpp +++ b/neo/doom3/game/anim/Anim_Testmodel.cpp @@ -53,10 +53,6 @@ move around it to view it from different angles. #include "../Game_local.h" -CLASS_DECLARATION( idAnimatedEntity, idTestModel ) - EVENT( EV_FootstepLeft, idTestModel::Event_Footstep ) - EVENT( EV_FootstepRight, idTestModel::Event_Footstep ) -END_CLASS /* ================ diff --git a/neo/doom3/game/anim/Anim_Testmodel.h b/neo/doom3/game/anim/Anim_Testmodel.h index 541eb8ed..a161ece1 100644 --- a/neo/doom3/game/anim/Anim_Testmodel.h +++ b/neo/doom3/game/anim/Anim_Testmodel.h @@ -89,6 +89,8 @@ private: virtual void Think( void ); + ID_SCRIPT_EVENT( "leftFoot", 0 ) + ID_SCRIPT_EVENT( "rightFoot", 0 ) void Event_Footstep( void ); }; diff --git a/neo/doom3/game/bots/Bot.cpp b/neo/doom3/game/bots/Bot.cpp index e4788bfc..639dc8ea 100644 --- a/neo/doom3/game/bots/Bot.cpp +++ b/neo/doom3/game/bots/Bot.cpp @@ -47,8 +47,6 @@ static idVec3 bot_stuckOrigin[MAX_CLIENTS]; static float bot_stuckTime[MAX_CLIENTS]; static bool bot_stuckInit[MAX_CLIENTS]; -CLASS_DECLARATION( idPlayer, rvmBot ) -END_CLASS /* =================== diff --git a/neo/doom3/game/gamesys/Class.cpp b/neo/doom3/game/gamesys/Class.cpp index 49759320..c2c59465 100644 --- a/neo/doom3/game/gamesys/Class.cpp +++ b/neo/doom3/game/gamesys/Class.cpp @@ -227,13 +227,37 @@ void idTypeInfo::Shutdown() { ***********************************************************************/ -const idEventDef EV_Remove("", NULL); -const idEventDef EV_SafeRemove("remove", NULL); +const idEventDef EV_Remove( "", NULL ); +const idEventDef EV_SafeRemove( "remove", NULL ); -ABSTRACT_DECLARATION(NULL, idClass) -EVENT(EV_Remove, idClass::Event_Remove) -EVENT(EV_SafeRemove, idClass::Event_SafeRemove) -END_CLASS +idTypeInfo idClass::Type( + "idClass", + "NULL", + ( idEventFunc* )idClass::eventCallbacks, + idClass::CreateInstance, + ( void ( idClass::* )( void ) )&idClass::Spawn, + ( void ( idClass::* )( idSaveGame* ) const )&idClass::Save, + ( void ( idClass::* )( idRestoreGame* ) )&idClass::Restore +); + +idClass* idClass::CreateInstance( void ) { + gameLocal.Error( "Cannot instanciate abstract class %s.", "idClass" ); + return NULL; +} + +idTypeInfo& idClass::GetClassType( void ) { + return idClass::Type; +} + +idTypeInfo* idClass::GetType( void ) const { + return &( idClass::Type ); +} + +idEventFunc idClass::eventCallbacks[] = { + EVENT( EV_Remove, idClass::Event_Remove ) + EVENT( EV_SafeRemove, idClass::Event_SafeRemove ) + { NULL, NULL } +}; // alphabetical order idList idClass::types; @@ -936,6 +960,34 @@ bool idClass::ProcessEvent(const idEventDef* ev, idEventArg arg1, idEventArg arg return ProcessEventArgs(ev, 8, &arg1, &arg2, &arg3, &arg4, &arg5, &arg6, &arg7, &arg8); } +/* +================ +idClass::FindEventDef +================ +*/ +const idEventDef* idClass::FindEventDef(const char* name, const char* formatspec) const { + const idTypeInfo* type; + + for (type = GetType(); type != NULL; type = type->super) { + if (type->eventCallbacks == NULL) { + continue; + } + + for (int i = 0; type->eventCallbacks[i].event != NULL; i++) { + const idEventDef* event = type->eventCallbacks[i].event; + if (strcmp(event->GetName(), name) != 0) { + continue; + } + if (formatspec != NULL && strcmp(event->GetArgFormat(), formatspec) != 0) { + continue; + } + return event; + } + } + + return NULL; +} + /* ================ idClass::ProcessEventArgPtr @@ -949,7 +1001,7 @@ bool idClass::ProcessEventArgPtr(const idEventDef* ev, intptr_t* data) { assert(ev); assert(idEvent::initialized); - if (g_debugTriggers.GetBool() && (ev == &EV_Activate) && IsType(idEntity::Type)) { + if (g_debugTriggers.GetBool() && (strcmp(ev->GetName(), "activate") == 0) && IsType(idEntity::Type)) { const idEntity* ent = *reinterpret_cast(data); gameLocal.Printf("%d: '%s' activated by '%s'\n", gameLocal.framenum, static_cast(this)->GetName(), ent ? ent->GetName() : "NULL"); } @@ -1069,4 +1121,4 @@ idClass::Event_SafeRemove void idClass::Event_SafeRemove(void) { // Forces the remove to be done at a safe time PostEventMS(&EV_Remove, 0); -} \ No newline at end of file +} diff --git a/neo/doom3/game/gamesys/Class.h b/neo/doom3/game/gamesys/Class.h index 26410c61..0b93bf5b 100644 --- a/neo/doom3/game/gamesys/Class.h +++ b/neo/doom3/game/gamesys/Class.h @@ -54,7 +54,6 @@ struct idEventFunc { #define END_CLASS { NULL, NULL } }; - class idEventArg { public: int type; @@ -97,6 +96,7 @@ public: \ static idClass *CreateInstance( void ); \ virtual idTypeInfo *GetType( void ) const; \ static idTypeInfo &GetClassType( void ); \ + static const int __typeinfogen_has_class_prototype = 1; \ virtual intptr_t Invoke(const char* functionName, void *param1) override; \ virtual bool HasNativeFunction(const char* functionName) override; \ static idEventFunc eventCallbacks[] @@ -146,6 +146,7 @@ Use this on single inheritance abstract classes only. #define ABSTRACT_PROTOTYPE( nameofclass ) \ public: \ static idTypeInfo Type; \ + static const int __typeinfogen_has_abstract_prototype = 1; \ static idClass *CreateInstance( void ); \ static idTypeInfo &GetClassType( void ); \ virtual idTypeInfo *GetType( void ) const; \ @@ -253,6 +254,7 @@ public: bool PostEventSec(const idEventDef* ev, float time, idEventArg arg1, idEventArg arg2, idEventArg arg3, idEventArg arg4, idEventArg arg5, idEventArg arg6); bool PostEventSec(const idEventDef* ev, float time, idEventArg arg1, idEventArg arg2, idEventArg arg3, idEventArg arg4, idEventArg arg5, idEventArg arg6, idEventArg arg7); bool PostEventSec(const idEventDef* ev, float time, idEventArg arg1, idEventArg arg2, idEventArg arg3, idEventArg arg4, idEventArg arg5, idEventArg arg6, idEventArg arg7, idEventArg arg8); + const idEventDef* FindEventDef(const char* name, const char* formatspec = NULL) const; bool ProcessEvent(const idEventDef* ev); bool ProcessEvent(const idEventDef* ev, idEventArg arg1); @@ -388,4 +390,4 @@ ID_INLINE bool idClass::RespondsTo(const idEventDef& ev) const { return c->RespondsTo(ev); } -#endif /* !__SYS_CLASS_H__ */ \ No newline at end of file +#endif /* !__SYS_CLASS_H__ */ diff --git a/neo/doom3/game/gamesys/Event.cpp b/neo/doom3/game/gamesys/Event.cpp index a5afa372..90826e0e 100644 --- a/neo/doom3/game/gamesys/Event.cpp +++ b/neo/doom3/game/gamesys/Event.cpp @@ -28,6 +28,7 @@ If you have questions concerning this license or the applicable additional terms #include "precompiled.h" #include "../Game_local.h" +#include "TypeInfoGen_Events_local.h" /* sys_event.cpp diff --git a/neo/doom3/game/gamesys/NoGameTypeInfo.h b/neo/doom3/game/gamesys/NoGameTypeInfo.h deleted file mode 100644 index ef75cc5f..00000000 --- a/neo/doom3/game/gamesys/NoGameTypeInfo.h +++ /dev/null @@ -1,83 +0,0 @@ -/* -=========================================================================== - -IceTech GPL Source Code -Copyright (C) 2026 Justin Marshall - -This file is part of the IceTech GPL Source Code (?IceTech Source Code?). - -IceTech Source Code is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -IceTech Source Code is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with IceTech Source Code. If not, see . - -In addition, the IceTech Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the IceTech Source Code. If not, please request a copy in writing from id Software at the address below. - -If you have questions concerning this license or the applicable additional terms, you may contact in writing Justin Marshall, justinmarshall20@gmail.com - -=========================================================================== -*/ - -#ifndef __GAMETYPEINFO_H__ -#define __GAMETYPEINFO_H__ - -/* -=================================================================================== - - This file has been generated with the Type Info Generator v1.0 (c) 2004 id Software - -=================================================================================== -*/ - -typedef struct { - const char * name; - const char * type; - const char * value; -} constantInfo_t; - -typedef struct { - const char * name; - int value; -} enumValueInfo_t; - -typedef struct { - const char * typeName; - const enumValueInfo_t * values; -} enumTypeInfo_t; - -typedef struct { - const char * type; - const char * name; - int offset; - int size; -} classVariableInfo_t; - -typedef struct { - const char * typeName; - const char * superType; - int size; - const classVariableInfo_t * variables; -} classTypeInfo_t; - - -static constantInfo_t constantInfo[] = { - { NULL, NULL, NULL } -}; - -static enumTypeInfo_t enumTypeInfo[] = { - { NULL, NULL } -}; - -static classTypeInfo_t classTypeInfo[] = { - { NULL, NULL, 0, NULL } -}; - -#endif /* !__GAMETYPEINFO_H__ */ diff --git a/neo/doom3/game/gamesys/SysCmds.cpp b/neo/doom3/game/gamesys/SysCmds.cpp index 9145e657..9a3fcd1a 100644 --- a/neo/doom3/game/gamesys/SysCmds.cpp +++ b/neo/doom3/game/gamesys/SysCmds.cpp @@ -310,7 +310,7 @@ void Cmd_Give_f( const idCmdArgs &args ) { gameLocal.world->spawnArgs.SetBool( "no_Weapons", false ); for( i = 0; i < gameLocal.numClients; i++ ) { if ( gameLocal.entities[ i ] ) { - gameLocal.entities[ i ]->PostEventSec( &EV_Player_SelectWeapon, 0.5f, gameLocal.entities[ i ]->spawnArgs.GetString( "def_weapon1" ) ); + gameLocal.entities[ i ]->PostEventSec( &EV_idPlayer_SelectWeapon, 0.5f, gameLocal.entities[ i ]->spawnArgs.GetString( "def_weapon1" ) ); } } } @@ -774,8 +774,11 @@ void Cmd_Trigger_f( const idCmdArgs &args ) { return; } + const idEventDef *activateEvent = ent->FindEventDef( "activate", "e" ); ent->Signal( SIG_TRIGGER ); - ent->ProcessEvent( &EV_Activate, player ); + if ( activateEvent ) { + ent->ProcessEvent( activateEvent, player ); + } ent->TriggerGuis(); } diff --git a/neo/doom3/game/gamesys/GameTypeInfo.cpp b/neo/doom3/game/gamesys/TypeInfoGen.cpp similarity index 99% rename from neo/doom3/game/gamesys/GameTypeInfo.cpp rename to neo/doom3/game/gamesys/TypeInfoGen.cpp index 727fd0e7..e16cd8eb 100644 --- a/neo/doom3/game/gamesys/GameTypeInfo.cpp +++ b/neo/doom3/game/gamesys/TypeInfoGen.cpp @@ -1104,8 +1104,7 @@ intptr_t idPhysics_Parametric::Invoke(const char *functionName, void *param1) { return (intptr_t)GetAngularEndTime(); }; if(functionNameHash == 147808) { // TestIfAtRest - TestIfAtRest(); - return 0; + return (intptr_t)TestIfAtRest(); }; if(functionNameHash == 49945) { // Rest Rest(); @@ -15049,8 +15048,7 @@ intptr_t rvmBot::Invoke(const char *functionName, void *param1) { return 0; }; if(functionNameHash == 139244) { // state_Chase - state_Chase((stateParms_t *)param1); - return 0; + return (intptr_t)state_Chase((stateParms_t *)param1); }; if(functionNameHash == 221136) { // state_BattleFight return (intptr_t)state_BattleFight((stateParms_t *)param1); diff --git a/neo/doom3/game/gamesys/GameTypeInfo.h b/neo/doom3/game/gamesys/TypeInfoGen.h similarity index 91% rename from neo/doom3/game/gamesys/GameTypeInfo.h rename to neo/doom3/game/gamesys/TypeInfoGen.h index 1d2b5213..90d2d21f 100644 --- a/neo/doom3/game/gamesys/GameTypeInfo.h +++ b/neo/doom3/game/gamesys/TypeInfoGen.h @@ -1,6 +1,6 @@ -#ifndef __GAMETYPEINFO_H__ -#define __GAMETYPEINFO_H__ +#ifndef __TYPEINFOGEN_H__ +#define __TYPEINFOGEN_H__ /* =================================================================================== @@ -186,7 +186,7 @@ static constantInfo_t constantInfo[] = { { "int", "LEXFL_ALLOWMULTICHARLITERALS", "2048" }, { "int", "LEXFL_ALLOWBACKSLASHSTRINGCONCAT", "4096" }, { "int", "LEXFL_ONLYSTRINGS", "8192" }, - { ": static const int", "idCmdArgs::MAX_COMMAND_ARGS", "64" }, + { "static const int", "idCmdArgs::MAX_COMMAND_ARGS", "64" }, { "static const int", "idCmdArgs::MAX_COMMAND_STRING", "2*1024" }, { "const int", "OLD_MAP_VERSION", "1" }, { "const int", "CURRENT_MAP_VERSION", "2" }, @@ -869,7 +869,7 @@ static constantInfo_t constantInfo[] = { { "int", "idEventQueue::OUTOFORDER_DROP", "1" }, { "int", "idEventQueue::OUTOFORDER_SORT", "2" }, { "static const int", "idGameLocal::msec", "16" }, - { ": const static int", "idGameLocal::INITIAL_SPAWN_COUNT", "1" }, + { "const static int", "idGameLocal::INITIAL_SPAWN_COUNT", "1" }, { "int", "SND_CHANNEL_ANY", "0" }, { "int", "SND_CHANNEL_VOICE", "1" }, { "int", "SND_CHANNEL_VOICE2", "2" }, @@ -941,14 +941,14 @@ static constantInfo_t constantInfo[] = { { "int", "SIG_MOVER_1TO2", "8" }, { "int", "SIG_MOVER_2TO1", "9" }, { "int", "NUM_SIGNALS", "10" }, - { ": static const int", "idEntity::MAX_PVS_AREAS", "4" }, + { "static const int", "idEntity::MAX_PVS_AREAS", "4" }, { "int", "idEntity::EVENT_STARTSOUNDSHADER", "0" }, { "int", "idEntity::EVENT_STOPSOUNDSHADER", "1" }, { "int", "idEntity::EVENT_MAXEVENTS", "2" }, { "int", "idAnimatedEntity::EVENT_ADD_DAMAGE_EFFECT", "2" }, { "int", "idAnimatedEntity::EVENT_MAXEVENTS", "3" }, - { ": static const int", "idIK_Walk::MAX_LEGS", "8" }, - { ": static const int", "idIK_Reach::MAX_ARMS", "2" }, + { "static const int", "idIK_Walk::MAX_LEGS", "8" }, + { "static const int", "idIK_Reach::MAX_ARMS", "2" }, { "const int", "GIB_DELAY", "200" }, { "int", "idPlayerStart::EVENT_TELEPORTPLAYER", "2" }, { "int", "idPlayerStart::EVENT_MAXEVENTS", "3" }, @@ -1101,7 +1101,7 @@ static constantInfo_t constantInfo[] = { { "int", "SE_ENTER_OBSTACLE", "4" }, { "int", "SE_FALL", "8" }, { "int", "SE_LAND", "16" }, - { ": static const int", "rvmAIObject::AI_NATIVE_MAX_CHANNELS", "4" }, + { "static const int", "rvmAIObject::AI_NATIVE_MAX_CHANNELS", "4" }, { "int", "rvmCharacter::CHAR_TALK_TRIGGERED", "0" }, { "int", "rvmCharacter::CHAR_TALK_PRIMARY", "1" }, { "int", "rvmCharacter::CHAR_TALK_SECONDARY", "2" }, @@ -2946,13 +2946,13 @@ static classVariableInfo_t idPort_typeInfo[] = { { "int", "bytesRead", (intptr_t)(&((idPort *)0)->bytesRead), sizeof( ((idPort *)0)->bytesRead ) }, { "int", "packetsWritten", (intptr_t)(&((idPort *)0)->packetsWritten), sizeof( ((idPort *)0)->packetsWritten ) }, { "int", "bytesWritten", (intptr_t)(&((idPort *)0)->bytesWritten), sizeof( ((idPort *)0)->bytesWritten ) }, - { ": netadr_t", "bound_to", (intptr_t)(&((idPort *)0)->bound_to), sizeof( ((idPort *)0)->bound_to ) }, + { "netadr_t", "bound_to", (intptr_t)(&((idPort *)0)->bound_to), sizeof( ((idPort *)0)->bound_to ) }, { "int", "netSocket", (intptr_t)(&((idPort *)0)->netSocket), sizeof( ((idPort *)0)->netSocket ) }, { NULL, 0 } }; static classVariableInfo_t idTCP_typeInfo[] = { - { ": netadr_t", "address", (intptr_t)(&((idTCP *)0)->address), sizeof( ((idTCP *)0)->address ) }, + { "netadr_t", "address", (intptr_t)(&((idTCP *)0)->address), sizeof( ((idTCP *)0)->address ) }, { "int", "fd", (intptr_t)(&((idTCP *)0)->fd), sizeof( ((idTCP *)0)->fd ) }, { NULL, 0 } }; @@ -2973,7 +2973,7 @@ static classVariableInfo_t idLib_typeInfo[] = { }; static classVariableInfo_t idException_typeInfo[] = { - { ": char[1024]", "error", (intptr_t)(&((idException *)0)->error), sizeof( ((idException *)0)->error ) }, + { "char[1024]", "error", (intptr_t)(&((idException *)0)->error), sizeof( ((idException *)0)->error ) }, { NULL, 0 } }; @@ -3009,36 +3009,36 @@ static classVariableInfo_t rvRandom_typeInfo[] = { }; static classVariableInfo_t idRandom_typeInfo[] = { - { ": int", "seed", (intptr_t)(&((idRandom *)0)->seed), sizeof( ((idRandom *)0)->seed ) }, + { "int", "seed", (intptr_t)(&((idRandom *)0)->seed), sizeof( ((idRandom *)0)->seed ) }, { NULL, 0 } }; static classVariableInfo_t idRandom2_typeInfo[] = { - { ": unsigned long", "seed", (intptr_t)(&((idRandom2 *)0)->seed), sizeof( ((idRandom2 *)0)->seed ) }, + { "unsigned long", "seed", (intptr_t)(&((idRandom2 *)0)->seed), sizeof( ((idRandom2 *)0)->seed ) }, { NULL, 0 } }; static classVariableInfo_t idComplex_typeInfo[] = { - { ": float", "r", (intptr_t)(&((idComplex *)0)->r), sizeof( ((idComplex *)0)->r ) }, + { "float", "r", (intptr_t)(&((idComplex *)0)->r), sizeof( ((idComplex *)0)->r ) }, { "float", "i", (intptr_t)(&((idComplex *)0)->i), sizeof( ((idComplex *)0)->i ) }, { NULL, 0 } }; static classVariableInfo_t idVec2_typeInfo[] = { - { ": float", "x", (intptr_t)(&((idVec2 *)0)->x), sizeof( ((idVec2 *)0)->x ) }, + { "float", "x", (intptr_t)(&((idVec2 *)0)->x), sizeof( ((idVec2 *)0)->x ) }, { "float", "y", (intptr_t)(&((idVec2 *)0)->y), sizeof( ((idVec2 *)0)->y ) }, { NULL, 0 } }; static classVariableInfo_t idVec3_typeInfo[] = { - { ": float", "x", (intptr_t)(&((idVec3 *)0)->x), sizeof( ((idVec3 *)0)->x ) }, + { "float", "x", (intptr_t)(&((idVec3 *)0)->x), sizeof( ((idVec3 *)0)->x ) }, { "float", "y", (intptr_t)(&((idVec3 *)0)->y), sizeof( ((idVec3 *)0)->y ) }, { "float", "z", (intptr_t)(&((idVec3 *)0)->z), sizeof( ((idVec3 *)0)->z ) }, { NULL, 0 } }; static classVariableInfo_t idVec4_typeInfo[] = { - { ": float", "x", (intptr_t)(&((idVec4 *)0)->x), sizeof( ((idVec4 *)0)->x ) }, + { "float", "x", (intptr_t)(&((idVec4 *)0)->x), sizeof( ((idVec4 *)0)->x ) }, { "float", "y", (intptr_t)(&((idVec4 *)0)->y), sizeof( ((idVec4 *)0)->y ) }, { "float", "z", (intptr_t)(&((idVec4 *)0)->z), sizeof( ((idVec4 *)0)->z ) }, { "float", "w", (intptr_t)(&((idVec4 *)0)->w), sizeof( ((idVec4 *)0)->w ) }, @@ -3046,7 +3046,7 @@ static classVariableInfo_t idVec4_typeInfo[] = { }; static classVariableInfo_t idVec5_typeInfo[] = { - { ": float", "x", (intptr_t)(&((idVec5 *)0)->x), sizeof( ((idVec5 *)0)->x ) }, + { "float", "x", (intptr_t)(&((idVec5 *)0)->x), sizeof( ((idVec5 *)0)->x ) }, { "float", "y", (intptr_t)(&((idVec5 *)0)->y), sizeof( ((idVec5 *)0)->y ) }, { "float", "z", (intptr_t)(&((idVec5 *)0)->z), sizeof( ((idVec5 *)0)->z ) }, { "float", "s", (intptr_t)(&((idVec5 *)0)->s), sizeof( ((idVec5 *)0)->s ) }, @@ -3055,51 +3055,51 @@ static classVariableInfo_t idVec5_typeInfo[] = { }; static classVariableInfo_t idVec6_typeInfo[] = { - { ": float[6]", "p", (intptr_t)(&((idVec6 *)0)->p), sizeof( ((idVec6 *)0)->p ) }, + { "float[6]", "p", (intptr_t)(&((idVec6 *)0)->p), sizeof( ((idVec6 *)0)->p ) }, { NULL, 0 } }; static classVariableInfo_t idVecX_typeInfo[] = { - { ": int", "size", (intptr_t)(&((idVecX *)0)->size), sizeof( ((idVecX *)0)->size ) }, + { "int", "size", (intptr_t)(&((idVecX *)0)->size), sizeof( ((idVecX *)0)->size ) }, { "int", "alloced", (intptr_t)(&((idVecX *)0)->alloced), sizeof( ((idVecX *)0)->alloced ) }, { "float *", "p", (intptr_t)(&((idVecX *)0)->p), sizeof( ((idVecX *)0)->p ) }, { NULL, 0 } }; static classVariableInfo_t idPolar3_typeInfo[] = { - { ": float", "radius", (intptr_t)(&((idPolar3 *)0)->radius), sizeof( ((idPolar3 *)0)->radius ) }, - { ": float", "theta", (intptr_t)(&((idPolar3 *)0)->theta), sizeof( ((idPolar3 *)0)->theta ) }, - { ": float", "phi", (intptr_t)(&((idPolar3 *)0)->phi), sizeof( ((idPolar3 *)0)->phi ) }, + { "float", "radius", (intptr_t)(&((idPolar3 *)0)->radius), sizeof( ((idPolar3 *)0)->radius ) }, + { "float", "theta", (intptr_t)(&((idPolar3 *)0)->theta), sizeof( ((idPolar3 *)0)->theta ) }, + { "float", "phi", (intptr_t)(&((idPolar3 *)0)->phi), sizeof( ((idPolar3 *)0)->phi ) }, { NULL, 0 } }; static classVariableInfo_t idMat2_typeInfo[] = { - { ": idVec2[2]", "mat", (intptr_t)(&((idMat2 *)0)->mat), sizeof( ((idMat2 *)0)->mat ) }, + { "idVec2[2]", "mat", (intptr_t)(&((idMat2 *)0)->mat), sizeof( ((idMat2 *)0)->mat ) }, { NULL, 0 } }; static classVariableInfo_t idMat3_typeInfo[] = { - { ": idVec3[3]", "mat", (intptr_t)(&((idMat3 *)0)->mat), sizeof( ((idMat3 *)0)->mat ) }, + { "idVec3[3]", "mat", (intptr_t)(&((idMat3 *)0)->mat), sizeof( ((idMat3 *)0)->mat ) }, { NULL, 0 } }; static classVariableInfo_t idMat4_typeInfo[] = { - { ": idVec4[4]", "mat", (intptr_t)(&((idMat4 *)0)->mat), sizeof( ((idMat4 *)0)->mat ) }, + { "idVec4[4]", "mat", (intptr_t)(&((idMat4 *)0)->mat), sizeof( ((idMat4 *)0)->mat ) }, { NULL, 0 } }; static classVariableInfo_t idMat5_typeInfo[] = { - { ": idVec5[5]", "mat", (intptr_t)(&((idMat5 *)0)->mat), sizeof( ((idMat5 *)0)->mat ) }, + { "idVec5[5]", "mat", (intptr_t)(&((idMat5 *)0)->mat), sizeof( ((idMat5 *)0)->mat ) }, { NULL, 0 } }; static classVariableInfo_t idMat6_typeInfo[] = { - { ": idVec6[6]", "mat", (intptr_t)(&((idMat6 *)0)->mat), sizeof( ((idMat6 *)0)->mat ) }, + { "idVec6[6]", "mat", (intptr_t)(&((idMat6 *)0)->mat), sizeof( ((idMat6 *)0)->mat ) }, { NULL, 0 } }; static classVariableInfo_t idMatX_typeInfo[] = { - { ": int", "numRows", (intptr_t)(&((idMatX *)0)->numRows), sizeof( ((idMatX *)0)->numRows ) }, + { "int", "numRows", (intptr_t)(&((idMatX *)0)->numRows), sizeof( ((idMatX *)0)->numRows ) }, { "int", "numColumns", (intptr_t)(&((idMatX *)0)->numColumns), sizeof( ((idMatX *)0)->numColumns ) }, { "int", "alloced", (intptr_t)(&((idMatX *)0)->alloced), sizeof( ((idMatX *)0)->alloced ) }, { "float *", "mat", (intptr_t)(&((idMatX *)0)->mat), sizeof( ((idMatX *)0)->mat ) }, @@ -3107,14 +3107,14 @@ static classVariableInfo_t idMatX_typeInfo[] = { }; static classVariableInfo_t idAngles_typeInfo[] = { - { ": float", "pitch", (intptr_t)(&((idAngles *)0)->pitch), sizeof( ((idAngles *)0)->pitch ) }, + { "float", "pitch", (intptr_t)(&((idAngles *)0)->pitch), sizeof( ((idAngles *)0)->pitch ) }, { "float", "yaw", (intptr_t)(&((idAngles *)0)->yaw), sizeof( ((idAngles *)0)->yaw ) }, { "float", "roll", (intptr_t)(&((idAngles *)0)->roll), sizeof( ((idAngles *)0)->roll ) }, { NULL, 0 } }; static classVariableInfo_t idQuat_typeInfo[] = { - { ": float", "x", (intptr_t)(&((idQuat *)0)->x), sizeof( ((idQuat *)0)->x ) }, + { "float", "x", (intptr_t)(&((idQuat *)0)->x), sizeof( ((idQuat *)0)->x ) }, { "float", "y", (intptr_t)(&((idQuat *)0)->y), sizeof( ((idQuat *)0)->y ) }, { "float", "z", (intptr_t)(&((idQuat *)0)->z), sizeof( ((idQuat *)0)->z ) }, { "float", "w", (intptr_t)(&((idQuat *)0)->w), sizeof( ((idQuat *)0)->w ) }, @@ -3122,14 +3122,14 @@ static classVariableInfo_t idQuat_typeInfo[] = { }; static classVariableInfo_t idCQuat_typeInfo[] = { - { ": float", "x", (intptr_t)(&((idCQuat *)0)->x), sizeof( ((idCQuat *)0)->x ) }, + { "float", "x", (intptr_t)(&((idCQuat *)0)->x), sizeof( ((idCQuat *)0)->x ) }, { "float", "y", (intptr_t)(&((idCQuat *)0)->y), sizeof( ((idCQuat *)0)->y ) }, { "float", "z", (intptr_t)(&((idCQuat *)0)->z), sizeof( ((idCQuat *)0)->z ) }, { NULL, 0 } }; static classVariableInfo_t idRotation_typeInfo[] = { - { ": idVec3", "origin", (intptr_t)(&((idRotation *)0)->origin), sizeof( ((idRotation *)0)->origin ) }, + { "idVec3", "origin", (intptr_t)(&((idRotation *)0)->origin), sizeof( ((idRotation *)0)->origin ) }, { "idVec3", "vec", (intptr_t)(&((idRotation *)0)->vec), sizeof( ((idRotation *)0)->vec ) }, { "float", "angle", (intptr_t)(&((idRotation *)0)->angle), sizeof( ((idRotation *)0)->angle ) }, { "mutable idMat3", "axis", (intptr_t)(&((idRotation *)0)->axis), sizeof( ((idRotation *)0)->axis ) }, @@ -3138,7 +3138,7 @@ static classVariableInfo_t idRotation_typeInfo[] = { }; static classVariableInfo_t idPlane_typeInfo[] = { - { ": float", "a", (intptr_t)(&((idPlane *)0)->a), sizeof( ((idPlane *)0)->a ) }, + { "float", "a", (intptr_t)(&((idPlane *)0)->a), sizeof( ((idPlane *)0)->a ) }, { "float", "b", (intptr_t)(&((idPlane *)0)->b), sizeof( ((idPlane *)0)->b ) }, { "float", "c", (intptr_t)(&((idPlane *)0)->c), sizeof( ((idPlane *)0)->c ) }, { "float", "d", (intptr_t)(&((idPlane *)0)->d), sizeof( ((idPlane *)0)->d ) }, @@ -3146,37 +3146,37 @@ static classVariableInfo_t idPlane_typeInfo[] = { }; static classVariableInfo_t idPluecker_typeInfo[] = { - { ": float[6]", "p", (intptr_t)(&((idPluecker *)0)->p), sizeof( ((idPluecker *)0)->p ) }, + { "float[6]", "p", (intptr_t)(&((idPluecker *)0)->p), sizeof( ((idPluecker *)0)->p ) }, { NULL, 0 } }; static classVariableInfo_t idPolynomial_typeInfo[] = { - { ": int", "degree", (intptr_t)(&((idPolynomial *)0)->degree), sizeof( ((idPolynomial *)0)->degree ) }, + { "int", "degree", (intptr_t)(&((idPolynomial *)0)->degree), sizeof( ((idPolynomial *)0)->degree ) }, { "int", "allocated", (intptr_t)(&((idPolynomial *)0)->allocated), sizeof( ((idPolynomial *)0)->allocated ) }, { "float *", "coefficient", (intptr_t)(&((idPolynomial *)0)->coefficient), sizeof( ((idPolynomial *)0)->coefficient ) }, { NULL, 0 } }; static classVariableInfo_t idODE_typeInfo[] = { - { ": int", "dimension", (intptr_t)(&((idODE *)0)->dimension), sizeof( ((idODE *)0)->dimension ) }, + { "int", "dimension", (intptr_t)(&((idODE *)0)->dimension), sizeof( ((idODE *)0)->dimension ) }, { "deriveFunction_t", "derive", (intptr_t)(&((idODE *)0)->derive), sizeof( ((idODE *)0)->derive ) }, { "const void *", "userData", (intptr_t)(&((idODE *)0)->userData), sizeof( ((idODE *)0)->userData ) }, { NULL, 0 } }; static classVariableInfo_t idODE_Euler_typeInfo[] = { - { ": float *", "derivatives", (intptr_t)(&((idODE_Euler *)0)->derivatives), sizeof( ((idODE_Euler *)0)->derivatives ) }, + { "float *", "derivatives", (intptr_t)(&((idODE_Euler *)0)->derivatives), sizeof( ((idODE_Euler *)0)->derivatives ) }, { NULL, 0 } }; static classVariableInfo_t idODE_Midpoint_typeInfo[] = { - { ": float *", "tmpState", (intptr_t)(&((idODE_Midpoint *)0)->tmpState), sizeof( ((idODE_Midpoint *)0)->tmpState ) }, + { "float *", "tmpState", (intptr_t)(&((idODE_Midpoint *)0)->tmpState), sizeof( ((idODE_Midpoint *)0)->tmpState ) }, { "float *", "derivatives", (intptr_t)(&((idODE_Midpoint *)0)->derivatives), sizeof( ((idODE_Midpoint *)0)->derivatives ) }, { NULL, 0 } }; static classVariableInfo_t idODE_RK4_typeInfo[] = { - { ": float *", "tmpState", (intptr_t)(&((idODE_RK4 *)0)->tmpState), sizeof( ((idODE_RK4 *)0)->tmpState ) }, + { "float *", "tmpState", (intptr_t)(&((idODE_RK4 *)0)->tmpState), sizeof( ((idODE_RK4 *)0)->tmpState ) }, { "float *", "d1", (intptr_t)(&((idODE_RK4 *)0)->d1), sizeof( ((idODE_RK4 *)0)->d1 ) }, { "float *", "d2", (intptr_t)(&((idODE_RK4 *)0)->d2), sizeof( ((idODE_RK4 *)0)->d2 ) }, { "float *", "d3", (intptr_t)(&((idODE_RK4 *)0)->d3), sizeof( ((idODE_RK4 *)0)->d3 ) }, @@ -3185,7 +3185,7 @@ static classVariableInfo_t idODE_RK4_typeInfo[] = { }; static classVariableInfo_t idODE_RK4Adaptive_typeInfo[] = { - { ": float", "maxError", (intptr_t)(&((idODE_RK4Adaptive *)0)->maxError), sizeof( ((idODE_RK4Adaptive *)0)->maxError ) }, + { "float", "maxError", (intptr_t)(&((idODE_RK4Adaptive *)0)->maxError), sizeof( ((idODE_RK4Adaptive *)0)->maxError ) }, { "float *", "tmpState", (intptr_t)(&((idODE_RK4Adaptive *)0)->tmpState), sizeof( ((idODE_RK4Adaptive *)0)->tmpState ) }, { "float *", "d1", (intptr_t)(&((idODE_RK4Adaptive *)0)->d1), sizeof( ((idODE_RK4Adaptive *)0)->d1 ) }, { "float *", "d1half", (intptr_t)(&((idODE_RK4Adaptive *)0)->d1half), sizeof( ((idODE_RK4Adaptive *)0)->d1half ) }, @@ -3196,30 +3196,30 @@ static classVariableInfo_t idODE_RK4Adaptive_typeInfo[] = { }; static classVariableInfo_t idLCP_typeInfo[] = { - { ": int", "maxIterations", (intptr_t)(&((idLCP *)0)->maxIterations), sizeof( ((idLCP *)0)->maxIterations ) }, + { "int", "maxIterations", (intptr_t)(&((idLCP *)0)->maxIterations), sizeof( ((idLCP *)0)->maxIterations ) }, { NULL, 0 } }; static classVariableInfo_t idSphere_typeInfo[] = { - { ": idVec3", "origin", (intptr_t)(&((idSphere *)0)->origin), sizeof( ((idSphere *)0)->origin ) }, + { "idVec3", "origin", (intptr_t)(&((idSphere *)0)->origin), sizeof( ((idSphere *)0)->origin ) }, { "float", "radius", (intptr_t)(&((idSphere *)0)->radius), sizeof( ((idSphere *)0)->radius ) }, { NULL, 0 } }; static classVariableInfo_t idBounds_typeInfo[] = { - { ": idVec3[2]", "b", (intptr_t)(&((idBounds *)0)->b), sizeof( ((idBounds *)0)->b ) }, + { "idVec3[2]", "b", (intptr_t)(&((idBounds *)0)->b), sizeof( ((idBounds *)0)->b ) }, { NULL, 0 } }; static classVariableInfo_t idBox_typeInfo[] = { - { ": idVec3", "center", (intptr_t)(&((idBox *)0)->center), sizeof( ((idBox *)0)->center ) }, + { "idVec3", "center", (intptr_t)(&((idBox *)0)->center), sizeof( ((idBox *)0)->center ) }, { "idVec3", "extents", (intptr_t)(&((idBox *)0)->extents), sizeof( ((idBox *)0)->extents ) }, { "idMat3", "axis", (intptr_t)(&((idBox *)0)->axis), sizeof( ((idBox *)0)->axis ) }, { NULL, 0 } }; static classVariableInfo_t idFrustum_typeInfo[] = { - { ": idVec3", "origin", (intptr_t)(&((idFrustum *)0)->origin), sizeof( ((idFrustum *)0)->origin ) }, + { "idVec3", "origin", (intptr_t)(&((idFrustum *)0)->origin), sizeof( ((idFrustum *)0)->origin ) }, { "idMat3", "axis", (intptr_t)(&((idFrustum *)0)->axis), sizeof( ((idFrustum *)0)->axis ) }, { "float", "dNear", (intptr_t)(&((idFrustum *)0)->dNear), sizeof( ((idFrustum *)0)->dNear ) }, { "float", "dFar", (intptr_t)(&((idFrustum *)0)->dFar), sizeof( ((idFrustum *)0)->dFar ) }, @@ -3230,7 +3230,7 @@ static classVariableInfo_t idFrustum_typeInfo[] = { }; static classVariableInfo_t idDrawVert_typeInfo[] = { - { ": idVec3", "xyz", (intptr_t)(&((idDrawVert *)0)->xyz), sizeof( ((idDrawVert *)0)->xyz ) }, + { "idVec3", "xyz", (intptr_t)(&((idDrawVert *)0)->xyz), sizeof( ((idDrawVert *)0)->xyz ) }, { "idVec2", "st", (intptr_t)(&((idDrawVert *)0)->st), sizeof( ((idDrawVert *)0)->st ) }, { "idVec3", "normal", (intptr_t)(&((idDrawVert *)0)->normal), sizeof( ((idDrawVert *)0)->normal ) }, { "idVec3[2]", "tangents", (intptr_t)(&((idDrawVert *)0)->tangents), sizeof( ((idDrawVert *)0)->tangents ) }, @@ -3239,30 +3239,30 @@ static classVariableInfo_t idDrawVert_typeInfo[] = { }; static classVariableInfo_t idJointQuat_typeInfo[] = { - { ": idQuat", "q", (intptr_t)(&((idJointQuat *)0)->q), sizeof( ((idJointQuat *)0)->q ) }, + { "idQuat", "q", (intptr_t)(&((idJointQuat *)0)->q), sizeof( ((idJointQuat *)0)->q ) }, { "idVec3", "t", (intptr_t)(&((idJointQuat *)0)->t), sizeof( ((idJointQuat *)0)->t ) }, { NULL, 0 } }; static classVariableInfo_t idJointMat_typeInfo[] = { - { ": float[12]", "mat", (intptr_t)(&((idJointMat *)0)->mat), sizeof( ((idJointMat *)0)->mat ) }, + { "float[12]", "mat", (intptr_t)(&((idJointMat *)0)->mat), sizeof( ((idJointMat *)0)->mat ) }, { NULL, 0 } }; static classVariableInfo_t idWinding_typeInfo[] = { - { ": int", "numPoints", (intptr_t)(&((idWinding *)0)->numPoints), sizeof( ((idWinding *)0)->numPoints ) }, + { "int", "numPoints", (intptr_t)(&((idWinding *)0)->numPoints), sizeof( ((idWinding *)0)->numPoints ) }, { "idVec5 *", "p", (intptr_t)(&((idWinding *)0)->p), sizeof( ((idWinding *)0)->p ) }, { "int", "allocedSize", (intptr_t)(&((idWinding *)0)->allocedSize), sizeof( ((idWinding *)0)->allocedSize ) }, { NULL, 0 } }; static classVariableInfo_t idFixedWinding_typeInfo[] = { - { ": idVec5[64]", "data", (intptr_t)(&((idFixedWinding *)0)->data), sizeof( ((idFixedWinding *)0)->data ) }, + { "idVec5[64]", "data", (intptr_t)(&((idFixedWinding *)0)->data), sizeof( ((idFixedWinding *)0)->data ) }, { NULL, 0 } }; static classVariableInfo_t idWinding2D_typeInfo[] = { - { ": int", "numPoints", (intptr_t)(&((idWinding2D *)0)->numPoints), sizeof( ((idWinding2D *)0)->numPoints ) }, + { "int", "numPoints", (intptr_t)(&((idWinding2D *)0)->numPoints), sizeof( ((idWinding2D *)0)->numPoints ) }, { "idVec2[16]", "p", (intptr_t)(&((idWinding2D *)0)->p), sizeof( ((idWinding2D *)0)->p ) }, { NULL, 0 } }; @@ -3274,7 +3274,7 @@ static classVariableInfo_t surfaceEdge_t_typeInfo[] = { }; static classVariableInfo_t idSurface_typeInfo[] = { - { ": idList < idDrawVert >", "verts", (intptr_t)(&((idSurface *)0)->verts), sizeof( ((idSurface *)0)->verts ) }, + { "idList < idDrawVert >", "verts", (intptr_t)(&((idSurface *)0)->verts), sizeof( ((idSurface *)0)->verts ) }, { "idList < int >", "indexes", (intptr_t)(&((idSurface *)0)->indexes), sizeof( ((idSurface *)0)->indexes ) }, { "idList < surfaceEdge_t >", "edges", (intptr_t)(&((idSurface *)0)->edges), sizeof( ((idSurface *)0)->edges ) }, { "idList < int >", "edgeIndexes", (intptr_t)(&((idSurface *)0)->edgeIndexes), sizeof( ((idSurface *)0)->edgeIndexes ) }, @@ -3282,7 +3282,7 @@ static classVariableInfo_t idSurface_typeInfo[] = { }; static classVariableInfo_t idSurface_Patch_typeInfo[] = { - { ": int", "width", (intptr_t)(&((idSurface_Patch *)0)->width), sizeof( ((idSurface_Patch *)0)->width ) }, + { "int", "width", (intptr_t)(&((idSurface_Patch *)0)->width), sizeof( ((idSurface_Patch *)0)->width ) }, { "int", "height", (intptr_t)(&((idSurface_Patch *)0)->height), sizeof( ((idSurface_Patch *)0)->height ) }, { "int", "maxWidth", (intptr_t)(&((idSurface_Patch *)0)->maxWidth), sizeof( ((idSurface_Patch *)0)->maxWidth ) }, { "int", "maxHeight", (intptr_t)(&((idSurface_Patch *)0)->maxHeight), sizeof( ((idSurface_Patch *)0)->maxHeight ) }, @@ -3295,7 +3295,7 @@ static classVariableInfo_t idSurface_Polytope_typeInfo[] = { }; static classVariableInfo_t idSurface_SweptSpline_typeInfo[] = { - { ": idCurve_Spline < idVec4 > *", "spline", (intptr_t)(&((idSurface_SweptSpline *)0)->spline), sizeof( ((idSurface_SweptSpline *)0)->spline ) }, + { "idCurve_Spline < idVec4 > *", "spline", (intptr_t)(&((idSurface_SweptSpline *)0)->spline), sizeof( ((idSurface_SweptSpline *)0)->spline ) }, { "idCurve_Spline < idVec4 > *", "sweptSpline", (intptr_t)(&((idSurface_SweptSpline *)0)->sweptSpline), sizeof( ((idSurface_SweptSpline *)0)->sweptSpline ) }, { NULL, 0 } }; @@ -3316,7 +3316,7 @@ static classVariableInfo_t traceModelPoly_t_typeInfo[] = { }; static classVariableInfo_t idTraceModel_typeInfo[] = { - { ": traceModel_t", "type", (intptr_t)(&((idTraceModel *)0)->type), sizeof( ((idTraceModel *)0)->type ) }, + { "traceModel_t", "type", (intptr_t)(&((idTraceModel *)0)->type), sizeof( ((idTraceModel *)0)->type ) }, { "int", "numVerts", (intptr_t)(&((idTraceModel *)0)->numVerts), sizeof( ((idTraceModel *)0)->numVerts ) }, { "traceModelVert_t[64]", "verts", (intptr_t)(&((idTraceModel *)0)->verts), sizeof( ((idTraceModel *)0)->verts ) }, { "int", "numEdges", (intptr_t)(&((idTraceModel *)0)->numEdges), sizeof( ((idTraceModel *)0)->numEdges ) }, @@ -3330,7 +3330,7 @@ static classVariableInfo_t idTraceModel_typeInfo[] = { }; static classVariableInfo_t idStr_typeInfo[] = { - { ": int", "len", (intptr_t)(&((idStr *)0)->len), sizeof( ((idStr *)0)->len ) }, + { "int", "len", (intptr_t)(&((idStr *)0)->len), sizeof( ((idStr *)0)->len ) }, { "char *", "data", (intptr_t)(&((idStr *)0)->data), sizeof( ((idStr *)0)->data ) }, { "int", "alloced", (intptr_t)(&((idStr *)0)->alloced), sizeof( ((idStr *)0)->alloced ) }, { "char[20]", "baseBuffer", (intptr_t)(&((idStr *)0)->baseBuffer), sizeof( ((idStr *)0)->baseBuffer ) }, @@ -3338,7 +3338,7 @@ static classVariableInfo_t idStr_typeInfo[] = { }; static classVariableInfo_t idToken_typeInfo[] = { - { ": int", "type", (intptr_t)(&((idToken *)0)->type), sizeof( ((idToken *)0)->type ) }, + { "int", "type", (intptr_t)(&((idToken *)0)->type), sizeof( ((idToken *)0)->type ) }, { "int", "subtype", (intptr_t)(&((idToken *)0)->subtype), sizeof( ((idToken *)0)->subtype ) }, { "int", "line", (intptr_t)(&((idToken *)0)->line), sizeof( ((idToken *)0)->line ) }, { "int", "linesCrossed", (intptr_t)(&((idToken *)0)->linesCrossed), sizeof( ((idToken *)0)->linesCrossed ) }, @@ -3358,7 +3358,7 @@ static classVariableInfo_t punctuation_t_typeInfo[] = { }; static classVariableInfo_t idLexer_typeInfo[] = { - { ": int", "loaded", (intptr_t)(&((idLexer *)0)->loaded), sizeof( ((idLexer *)0)->loaded ) }, + { "int", "loaded", (intptr_t)(&((idLexer *)0)->loaded), sizeof( ((idLexer *)0)->loaded ) }, { "idStr", "filename", (intptr_t)(&((idLexer *)0)->filename), sizeof( ((idLexer *)0)->filename ) }, { "int", "allocated", (intptr_t)(&((idLexer *)0)->allocated), sizeof( ((idLexer *)0)->allocated ) }, { "const char *", "buffer", (intptr_t)(&((idLexer *)0)->buffer), sizeof( ((idLexer *)0)->buffer ) }, @@ -3407,7 +3407,7 @@ static classVariableInfo_t indent_t_typeInfo[] = { }; static classVariableInfo_t idParser_typeInfo[] = { - { ": int", "loaded", (intptr_t)(&((idParser *)0)->loaded), sizeof( ((idParser *)0)->loaded ) }, + { "int", "loaded", (intptr_t)(&((idParser *)0)->loaded), sizeof( ((idParser *)0)->loaded ) }, { "idStr", "filename", (intptr_t)(&((idParser *)0)->filename), sizeof( ((idParser *)0)->filename ) }, { "idStr", "includepath", (intptr_t)(&((idParser *)0)->includepath), sizeof( ((idParser *)0)->includepath ) }, { "bool", "OSPath", (intptr_t)(&((idParser *)0)->OSPath), sizeof( ((idParser *)0)->OSPath ) }, @@ -3424,7 +3424,7 @@ static classVariableInfo_t idParser_typeInfo[] = { }; static classVariableInfo_t idBase64_typeInfo[] = { - { ": byte *", "data", (intptr_t)(&((idBase64 *)0)->data), sizeof( ((idBase64 *)0)->data ) }, + { "byte *", "data", (intptr_t)(&((idBase64 *)0)->data), sizeof( ((idBase64 *)0)->data ) }, { "int", "len", (intptr_t)(&((idBase64 *)0)->len), sizeof( ((idBase64 *)0)->len ) }, { "int", "alloced", (intptr_t)(&((idBase64 *)0)->alloced), sizeof( ((idBase64 *)0)->alloced ) }, { NULL, 0 } @@ -3438,7 +3438,7 @@ static classVariableInfo_t idCmdArgs_typeInfo[] = { }; static classVariableInfo_t idHashIndex_typeInfo[] = { - { ": int", "hashSize", (intptr_t)(&((idHashIndex *)0)->hashSize), sizeof( ((idHashIndex *)0)->hashSize ) }, + { "int", "hashSize", (intptr_t)(&((idHashIndex *)0)->hashSize), sizeof( ((idHashIndex *)0)->hashSize ) }, { "int *", "hash", (intptr_t)(&((idHashIndex *)0)->hash), sizeof( ((idHashIndex *)0)->hash ) }, { "int", "indexSize", (intptr_t)(&((idHashIndex *)0)->indexSize), sizeof( ((idHashIndex *)0)->indexSize ) }, { "int *", "indexChain", (intptr_t)(&((idHashIndex *)0)->indexChain), sizeof( ((idHashIndex *)0)->indexChain ) }, @@ -3449,50 +3449,50 @@ static classVariableInfo_t idHashIndex_typeInfo[] = { }; static classVariableInfo_t idPoolStr_typeInfo[] = { - { ": idStrPool *", "pool", (intptr_t)(&((idPoolStr *)0)->pool), sizeof( ((idPoolStr *)0)->pool ) }, + { "idStrPool *", "pool", (intptr_t)(&((idPoolStr *)0)->pool), sizeof( ((idPoolStr *)0)->pool ) }, { "mutable int", "numUsers", (intptr_t)(&((idPoolStr *)0)->numUsers), sizeof( ((idPoolStr *)0)->numUsers ) }, { NULL, 0 } }; static classVariableInfo_t idStrPool_typeInfo[] = { - { ": bool", "caseSensitive", (intptr_t)(&((idStrPool *)0)->caseSensitive), sizeof( ((idStrPool *)0)->caseSensitive ) }, + { "bool", "caseSensitive", (intptr_t)(&((idStrPool *)0)->caseSensitive), sizeof( ((idStrPool *)0)->caseSensitive ) }, { "idList < idPoolStr * >", "pool", (intptr_t)(&((idStrPool *)0)->pool), sizeof( ((idStrPool *)0)->pool ) }, { "idHashIndex", "poolHash", (intptr_t)(&((idStrPool *)0)->poolHash), sizeof( ((idStrPool *)0)->poolHash ) }, { NULL, 0 } }; static classVariableInfo_t idPlaneSet_typeInfo[] = { - { ": idHashIndex", "hash", (intptr_t)(&((idPlaneSet *)0)->hash), sizeof( ((idPlaneSet *)0)->hash ) }, + { "idHashIndex", "hash", (intptr_t)(&((idPlaneSet *)0)->hash), sizeof( ((idPlaneSet *)0)->hash ) }, { NULL, 0 } }; static classVariableInfo_t idKeyValue_typeInfo[] = { - { ": const idPoolStr *", "key", (intptr_t)(&((idKeyValue *)0)->key), sizeof( ((idKeyValue *)0)->key ) }, + { "const idPoolStr *", "key", (intptr_t)(&((idKeyValue *)0)->key), sizeof( ((idKeyValue *)0)->key ) }, { "const idPoolStr *", "value", (intptr_t)(&((idKeyValue *)0)->value), sizeof( ((idKeyValue *)0)->value ) }, { NULL, 0 } }; static classVariableInfo_t idDict_typeInfo[] = { - { ": idList < idKeyValue >", "args", (intptr_t)(&((idDict *)0)->args), sizeof( ((idDict *)0)->args ) }, + { "idList < idKeyValue >", "args", (intptr_t)(&((idDict *)0)->args), sizeof( ((idDict *)0)->args ) }, { "idHashIndex", "argHash", (intptr_t)(&((idDict *)0)->argHash), sizeof( ((idDict *)0)->argHash ) }, { NULL, 0 } }; static classVariableInfo_t idLangKeyValue_typeInfo[] = { - { ": idStr", "key", (intptr_t)(&((idLangKeyValue *)0)->key), sizeof( ((idLangKeyValue *)0)->key ) }, + { "idStr", "key", (intptr_t)(&((idLangKeyValue *)0)->key), sizeof( ((idLangKeyValue *)0)->key ) }, { "idStr", "value", (intptr_t)(&((idLangKeyValue *)0)->value), sizeof( ((idLangKeyValue *)0)->value ) }, { NULL, 0 } }; static classVariableInfo_t idLangDict_typeInfo[] = { - { ": idList < idLangKeyValue >", "args", (intptr_t)(&((idLangDict *)0)->args), sizeof( ((idLangDict *)0)->args ) }, + { "idList < idLangKeyValue >", "args", (intptr_t)(&((idLangDict *)0)->args), sizeof( ((idLangDict *)0)->args ) }, { "idHashIndex", "hash", (intptr_t)(&((idLangDict *)0)->hash), sizeof( ((idLangDict *)0)->hash ) }, { "int", "baseID", (intptr_t)(&((idLangDict *)0)->baseID), sizeof( ((idLangDict *)0)->baseID ) }, { NULL, 0 } }; static classVariableInfo_t idBitMsg_typeInfo[] = { - { ": byte *", "writeData", (intptr_t)(&((idBitMsg *)0)->writeData), sizeof( ((idBitMsg *)0)->writeData ) }, + { "byte *", "writeData", (intptr_t)(&((idBitMsg *)0)->writeData), sizeof( ((idBitMsg *)0)->writeData ) }, { "const byte *", "readData", (intptr_t)(&((idBitMsg *)0)->readData), sizeof( ((idBitMsg *)0)->readData ) }, { "int", "maxSize", (intptr_t)(&((idBitMsg *)0)->maxSize), sizeof( ((idBitMsg *)0)->maxSize ) }, { "int", "curSize", (intptr_t)(&((idBitMsg *)0)->curSize), sizeof( ((idBitMsg *)0)->curSize ) }, @@ -3505,7 +3505,7 @@ static classVariableInfo_t idBitMsg_typeInfo[] = { }; static classVariableInfo_t idBitMsgDelta_typeInfo[] = { - { ": const idBitMsg *", "base", (intptr_t)(&((idBitMsgDelta *)0)->base), sizeof( ((idBitMsgDelta *)0)->base ) }, + { "const idBitMsg *", "base", (intptr_t)(&((idBitMsgDelta *)0)->base), sizeof( ((idBitMsgDelta *)0)->base ) }, { "idBitMsg *", "newBase", (intptr_t)(&((idBitMsgDelta *)0)->newBase), sizeof( ((idBitMsgDelta *)0)->newBase ) }, { "idBitMsg *", "writeDelta", (intptr_t)(&((idBitMsgDelta *)0)->writeDelta), sizeof( ((idBitMsgDelta *)0)->writeDelta ) }, { "const idBitMsg *", "readDelta", (intptr_t)(&((idBitMsgDelta *)0)->readDelta), sizeof( ((idBitMsgDelta *)0)->readDelta ) }, @@ -3515,12 +3515,12 @@ static classVariableInfo_t idBitMsgDelta_typeInfo[] = { static classVariableInfo_t idMapPrimitive_typeInfo[] = { { "idDict", "epairs", (intptr_t)(&((idMapPrimitive *)0)->epairs), sizeof( ((idMapPrimitive *)0)->epairs ) }, - { ": int", "type", (intptr_t)(&((idMapPrimitive *)0)->type), sizeof( ((idMapPrimitive *)0)->type ) }, + { "int", "type", (intptr_t)(&((idMapPrimitive *)0)->type), sizeof( ((idMapPrimitive *)0)->type ) }, { NULL, 0 } }; static classVariableInfo_t idMapBrushSide_typeInfo[] = { - { ": idStr", "material", (intptr_t)(&((idMapBrushSide *)0)->material), sizeof( ((idMapBrushSide *)0)->material ) }, + { "idStr", "material", (intptr_t)(&((idMapBrushSide *)0)->material), sizeof( ((idMapBrushSide *)0)->material ) }, { "idPlane", "plane", (intptr_t)(&((idMapBrushSide *)0)->plane), sizeof( ((idMapBrushSide *)0)->plane ) }, { "idVec3[2]", "texMat", (intptr_t)(&((idMapBrushSide *)0)->texMat), sizeof( ((idMapBrushSide *)0)->texMat ) }, { "idVec3", "origin", (intptr_t)(&((idMapBrushSide *)0)->origin), sizeof( ((idMapBrushSide *)0)->origin ) }, @@ -3528,13 +3528,13 @@ static classVariableInfo_t idMapBrushSide_typeInfo[] = { }; static classVariableInfo_t idMapBrush_typeInfo[] = { - { ": int", "numSides", (intptr_t)(&((idMapBrush *)0)->numSides), sizeof( ((idMapBrush *)0)->numSides ) }, + { "int", "numSides", (intptr_t)(&((idMapBrush *)0)->numSides), sizeof( ((idMapBrush *)0)->numSides ) }, { "idList < idMapBrushSide * >", "sides", (intptr_t)(&((idMapBrush *)0)->sides), sizeof( ((idMapBrush *)0)->sides ) }, { NULL, 0 } }; static classVariableInfo_t idMapPatch_typeInfo[] = { - { ": idStr", "material", (intptr_t)(&((idMapPatch *)0)->material), sizeof( ((idMapPatch *)0)->material ) }, + { "idStr", "material", (intptr_t)(&((idMapPatch *)0)->material), sizeof( ((idMapPatch *)0)->material ) }, { "int", "horzSubdivisions", (intptr_t)(&((idMapPatch *)0)->horzSubdivisions), sizeof( ((idMapPatch *)0)->horzSubdivisions ) }, { "int", "vertSubdivisions", (intptr_t)(&((idMapPatch *)0)->vertSubdivisions), sizeof( ((idMapPatch *)0)->vertSubdivisions ) }, { "bool", "explicitSubdivisions", (intptr_t)(&((idMapPatch *)0)->explicitSubdivisions), sizeof( ((idMapPatch *)0)->explicitSubdivisions ) }, @@ -3542,13 +3542,13 @@ static classVariableInfo_t idMapPatch_typeInfo[] = { }; static classVariableInfo_t idMapEntity_typeInfo[] = { - { ": idDict", "epairs", (intptr_t)(&((idMapEntity *)0)->epairs), sizeof( ((idMapEntity *)0)->epairs ) }, - { ": idList < idMapPrimitive * >", "primitives", (intptr_t)(&((idMapEntity *)0)->primitives), sizeof( ((idMapEntity *)0)->primitives ) }, + { "idDict", "epairs", (intptr_t)(&((idMapEntity *)0)->epairs), sizeof( ((idMapEntity *)0)->epairs ) }, + { "idList < idMapPrimitive * >", "primitives", (intptr_t)(&((idMapEntity *)0)->primitives), sizeof( ((idMapEntity *)0)->primitives ) }, { NULL, 0 } }; static classVariableInfo_t idMapFile_typeInfo[] = { - { ": float", "version", (intptr_t)(&((idMapFile *)0)->version), sizeof( ((idMapFile *)0)->version ) }, + { "float", "version", (intptr_t)(&((idMapFile *)0)->version), sizeof( ((idMapFile *)0)->version ) }, { "time_t", "fileTime", (intptr_t)(&((idMapFile *)0)->fileTime), sizeof( ((idMapFile *)0)->fileTime ) }, { "unsigned int", "geometryCRC", (intptr_t)(&((idMapFile *)0)->geometryCRC), sizeof( ((idMapFile *)0)->geometryCRC ) }, { "idList < idMapEntity * >", "entities", (intptr_t)(&((idMapFile *)0)->entities), sizeof( ((idMapFile *)0)->entities ) }, @@ -3565,14 +3565,14 @@ static classVariableInfo_t idTimer_typeInfo[] = { }; static classVariableInfo_t idTimerReport_typeInfo[] = { - { ": idList < idTimer * >", "timers", (intptr_t)(&((idTimerReport *)0)->timers), sizeof( ((idTimerReport *)0)->timers ) }, + { "idList < idTimer * >", "timers", (intptr_t)(&((idTimerReport *)0)->timers), sizeof( ((idTimerReport *)0)->timers ) }, { "idStrList", "names", (intptr_t)(&((idTimerReport *)0)->names), sizeof( ((idTimerReport *)0)->names ) }, { "idStr", "reportName", (intptr_t)(&((idTimerReport *)0)->reportName), sizeof( ((idTimerReport *)0)->reportName ) }, { NULL, 0 } }; static classVariableInfo_t idRectangle_typeInfo[] = { - { ": float", "x", (intptr_t)(&((idRectangle *)0)->x), sizeof( ((idRectangle *)0)->x ) }, + { "float", "x", (intptr_t)(&((idRectangle *)0)->x), sizeof( ((idRectangle *)0)->x ) }, { "float", "y", (intptr_t)(&((idRectangle *)0)->y), sizeof( ((idRectangle *)0)->y ) }, { "float", "w", (intptr_t)(&((idRectangle *)0)->w), sizeof( ((idRectangle *)0)->w ) }, { "float", "h", (intptr_t)(&((idRectangle *)0)->h), sizeof( ((idRectangle *)0)->h ) }, @@ -3580,7 +3580,7 @@ static classVariableInfo_t idRectangle_typeInfo[] = { }; static classVariableInfo_t idRegion_typeInfo[] = { - { ": idList < idRectangle >", "rects", (intptr_t)(&((idRegion *)0)->rects), sizeof( ((idRegion *)0)->rects ) }, + { "idList < idRectangle >", "rects", (intptr_t)(&((idRegion *)0)->rects), sizeof( ((idRegion *)0)->rects ) }, { NULL, 0 } }; @@ -3589,7 +3589,7 @@ static classVariableInfo_t idFile_typeInfo[] = { }; static classVariableInfo_t idFile_Memory_typeInfo[] = { - { ": idStr", "name", (intptr_t)(&((idFile_Memory *)0)->name), sizeof( ((idFile_Memory *)0)->name ) }, + { "idStr", "name", (intptr_t)(&((idFile_Memory *)0)->name), sizeof( ((idFile_Memory *)0)->name ) }, { "int", "mode", (intptr_t)(&((idFile_Memory *)0)->mode), sizeof( ((idFile_Memory *)0)->mode ) }, { "int", "maxSize", (intptr_t)(&((idFile_Memory *)0)->maxSize), sizeof( ((idFile_Memory *)0)->maxSize ) }, { "int", "fileSize", (intptr_t)(&((idFile_Memory *)0)->fileSize), sizeof( ((idFile_Memory *)0)->fileSize ) }, @@ -3601,14 +3601,14 @@ static classVariableInfo_t idFile_Memory_typeInfo[] = { }; static classVariableInfo_t idFile_BitMsg_typeInfo[] = { - { ": idStr", "name", (intptr_t)(&((idFile_BitMsg *)0)->name), sizeof( ((idFile_BitMsg *)0)->name ) }, + { "idStr", "name", (intptr_t)(&((idFile_BitMsg *)0)->name), sizeof( ((idFile_BitMsg *)0)->name ) }, { "int", "mode", (intptr_t)(&((idFile_BitMsg *)0)->mode), sizeof( ((idFile_BitMsg *)0)->mode ) }, { "idBitMsg *", "msg", (intptr_t)(&((idFile_BitMsg *)0)->msg), sizeof( ((idFile_BitMsg *)0)->msg ) }, { NULL, 0 } }; static classVariableInfo_t idFile_Permanent_typeInfo[] = { - { ": idStr", "name", (intptr_t)(&((idFile_Permanent *)0)->name), sizeof( ((idFile_Permanent *)0)->name ) }, + { "idStr", "name", (intptr_t)(&((idFile_Permanent *)0)->name), sizeof( ((idFile_Permanent *)0)->name ) }, { "idStr", "fullPath", (intptr_t)(&((idFile_Permanent *)0)->fullPath), sizeof( ((idFile_Permanent *)0)->fullPath ) }, { "int", "mode", (intptr_t)(&((idFile_Permanent *)0)->mode), sizeof( ((idFile_Permanent *)0)->mode ) }, { "int", "fileSize", (intptr_t)(&((idFile_Permanent *)0)->fileSize), sizeof( ((idFile_Permanent *)0)->fileSize ) }, @@ -3618,7 +3618,7 @@ static classVariableInfo_t idFile_Permanent_typeInfo[] = { }; static classVariableInfo_t idFile_InZip_typeInfo[] = { - { ": idStr", "name", (intptr_t)(&((idFile_InZip *)0)->name), sizeof( ((idFile_InZip *)0)->name ) }, + { "idStr", "name", (intptr_t)(&((idFile_InZip *)0)->name), sizeof( ((idFile_InZip *)0)->name ) }, { "idStr", "fullPath", (intptr_t)(&((idFile_InZip *)0)->fullPath), sizeof( ((idFile_InZip *)0)->fullPath ) }, { "int", "zipFilePos", (intptr_t)(&((idFile_InZip *)0)->zipFilePos), sizeof( ((idFile_InZip *)0)->zipFilePos ) }, { "int", "fileSize", (intptr_t)(&((idFile_InZip *)0)->fileSize), sizeof( ((idFile_InZip *)0)->fileSize ) }, @@ -3627,7 +3627,7 @@ static classVariableInfo_t idFile_InZip_typeInfo[] = { }; static classVariableInfo_t rvAngles_typeInfo[] = { - { ": float", "pitch", (intptr_t)(&((rvAngles *)0)->pitch), sizeof( ((rvAngles *)0)->pitch ) }, + { "float", "pitch", (intptr_t)(&((rvAngles *)0)->pitch), sizeof( ((rvAngles *)0)->pitch ) }, { "float", "yaw", (intptr_t)(&((rvAngles *)0)->yaw), sizeof( ((rvAngles *)0)->yaw ) }, { "float", "roll", (intptr_t)(&((rvAngles *)0)->roll), sizeof( ((rvAngles *)0)->roll ) }, { NULL, 0 } @@ -3638,7 +3638,7 @@ static classVariableInfo_t idCmdSystem_typeInfo[] = { }; static classVariableInfo_t idCVar_typeInfo[] = { - { ": const char *", "name", (intptr_t)(&((idCVar *)0)->name), sizeof( ((idCVar *)0)->name ) }, + { "const char *", "name", (intptr_t)(&((idCVar *)0)->name), sizeof( ((idCVar *)0)->name ) }, { "const char *", "value", (intptr_t)(&((idCVar *)0)->value), sizeof( ((idCVar *)0)->value ) }, { "const char *", "description", (intptr_t)(&((idCVar *)0)->description), sizeof( ((idCVar *)0)->description ) }, { "int", "flags", (intptr_t)(&((idCVar *)0)->flags), sizeof( ((idCVar *)0)->flags ) }, @@ -3702,13 +3702,13 @@ static classVariableInfo_t backgroundDownload_t_typeInfo[] = { }; static classVariableInfo_t idFileList_typeInfo[] = { - { ": idStr", "basePath", (intptr_t)(&((idFileList *)0)->basePath), sizeof( ((idFileList *)0)->basePath ) }, + { "idStr", "basePath", (intptr_t)(&((idFileList *)0)->basePath), sizeof( ((idFileList *)0)->basePath ) }, { "idStrList", "list", (intptr_t)(&((idFileList *)0)->list), sizeof( ((idFileList *)0)->list ) }, { NULL, 0 } }; static classVariableInfo_t idModList_typeInfo[] = { - { ": idStrList", "mods", (intptr_t)(&((idModList *)0)->mods), sizeof( ((idModList *)0)->mods ) }, + { "idStrList", "mods", (intptr_t)(&((idModList *)0)->mods), sizeof( ((idModList *)0)->mods ) }, { "idStrList", "descriptions", (intptr_t)(&((idModList *)0)->descriptions), sizeof( ((idModList *)0)->descriptions ) }, { NULL, 0 } }; @@ -3718,7 +3718,7 @@ static classVariableInfo_t idFileSystem_typeInfo[] = { }; static classVariableInfo_t usercmd_t_typeInfo[] = { - { ": int", "gameFrame", (intptr_t)(&((usercmd_t *)0)->gameFrame), sizeof( ((usercmd_t *)0)->gameFrame ) }, + { "int", "gameFrame", (intptr_t)(&((usercmd_t *)0)->gameFrame), sizeof( ((usercmd_t *)0)->gameFrame ) }, { "int", "gameTime", (intptr_t)(&((usercmd_t *)0)->gameTime), sizeof( ((usercmd_t *)0)->gameTime ) }, { "int", "duplicateCount", (intptr_t)(&((usercmd_t *)0)->duplicateCount), sizeof( ((usercmd_t *)0)->duplicateCount ) }, { "byte", "buttons", (intptr_t)(&((usercmd_t *)0)->buttons), sizeof( ((usercmd_t *)0)->buttons ) }, @@ -3743,7 +3743,7 @@ static classVariableInfo_t idDeclBase_typeInfo[] = { }; static classVariableInfo_t idDecl_typeInfo[] = { - { ": idDeclBase *", "base", (intptr_t)(&((idDecl *)0)->base), sizeof( ((idDecl *)0)->base ) }, + { "idDeclBase *", "base", (intptr_t)(&((idDecl *)0)->base), sizeof( ((idDecl *)0)->base ) }, { NULL, 0 } }; @@ -3752,7 +3752,7 @@ static classVariableInfo_t idDeclManager_typeInfo[] = { }; static classVariableInfo_t idDeclTable_typeInfo[] = { - { ": bool", "clamp", (intptr_t)(&((idDeclTable *)0)->clamp), sizeof( ((idDeclTable *)0)->clamp ) }, + { "bool", "clamp", (intptr_t)(&((idDeclTable *)0)->clamp), sizeof( ((idDeclTable *)0)->clamp ) }, { "bool", "snap", (intptr_t)(&((idDeclTable *)0)->snap), sizeof( ((idDeclTable *)0)->snap ) }, { "idList < float >", "values", (intptr_t)(&((idDeclTable *)0)->values), sizeof( ((idDeclTable *)0)->values ) }, { NULL, 0 } @@ -3765,13 +3765,13 @@ static classVariableInfo_t skinMapping_t_typeInfo[] = { }; static classVariableInfo_t idDeclSkin_typeInfo[] = { - { ": idList < skinMapping_t >", "mappings", (intptr_t)(&((idDeclSkin *)0)->mappings), sizeof( ((idDeclSkin *)0)->mappings ) }, + { "idList < skinMapping_t >", "mappings", (intptr_t)(&((idDeclSkin *)0)->mappings), sizeof( ((idDeclSkin *)0)->mappings ) }, { "idStrList", "associatedModels", (intptr_t)(&((idDeclSkin *)0)->associatedModels), sizeof( ((idDeclSkin *)0)->associatedModels ) }, { NULL, 0 } }; static classVariableInfo_t idDeclEntityDef_typeInfo[] = { - { ": idDict", "dict", (intptr_t)(&((idDeclEntityDef *)0)->dict), sizeof( ((idDeclEntityDef *)0)->dict ) }, + { "idDict", "dict", (intptr_t)(&((idDeclEntityDef *)0)->dict), sizeof( ((idDeclEntityDef *)0)->dict ) }, { NULL, 0 } }; @@ -3888,13 +3888,13 @@ static classVariableInfo_t idAFVector_typeInfo[] = { { "idAFVector::enum_42", "type", (intptr_t)(&((idAFVector *)0)->type), sizeof( ((idAFVector *)0)->type ) }, { "idStr", "joint1", (intptr_t)(&((idAFVector *)0)->joint1), sizeof( ((idAFVector *)0)->joint1 ) }, { "idStr", "joint2", (intptr_t)(&((idAFVector *)0)->joint2), sizeof( ((idAFVector *)0)->joint2 ) }, - { ": mutable idVec3", "vec", (intptr_t)(&((idAFVector *)0)->vec), sizeof( ((idAFVector *)0)->vec ) }, + { "mutable idVec3", "vec", (intptr_t)(&((idAFVector *)0)->vec), sizeof( ((idAFVector *)0)->vec ) }, { "bool", "negate", (intptr_t)(&((idAFVector *)0)->negate), sizeof( ((idAFVector *)0)->negate ) }, { NULL, 0 } }; static classVariableInfo_t idDeclAF_Body_typeInfo[] = { - { ": idStr", "name", (intptr_t)(&((idDeclAF_Body *)0)->name), sizeof( ((idDeclAF_Body *)0)->name ) }, + { "idStr", "name", (intptr_t)(&((idDeclAF_Body *)0)->name), sizeof( ((idDeclAF_Body *)0)->name ) }, { "idStr", "jointName", (intptr_t)(&((idDeclAF_Body *)0)->jointName), sizeof( ((idDeclAF_Body *)0)->jointName ) }, { "declAFJointMod_t", "jointMod", (intptr_t)(&((idDeclAF_Body *)0)->jointMod), sizeof( ((idDeclAF_Body *)0)->jointMod ) }, { "int", "modelType", (intptr_t)(&((idDeclAF_Body *)0)->modelType), sizeof( ((idDeclAF_Body *)0)->modelType ) }, @@ -3919,7 +3919,7 @@ static classVariableInfo_t idDeclAF_Body_typeInfo[] = { }; static classVariableInfo_t idDeclAF_Constraint_typeInfo[] = { - { ": idStr", "name", (intptr_t)(&((idDeclAF_Constraint *)0)->name), sizeof( ((idDeclAF_Constraint *)0)->name ) }, + { "idStr", "name", (intptr_t)(&((idDeclAF_Constraint *)0)->name), sizeof( ((idDeclAF_Constraint *)0)->name ) }, { "idStr", "body1", (intptr_t)(&((idDeclAF_Constraint *)0)->body1), sizeof( ((idDeclAF_Constraint *)0)->body1 ) }, { "idStr", "body2", (intptr_t)(&((idDeclAF_Constraint *)0)->body2), sizeof( ((idDeclAF_Constraint *)0)->body2 ) }, { "declAFConstraintType_t", "type", (intptr_t)(&((idDeclAF_Constraint *)0)->type), sizeof( ((idDeclAF_Constraint *)0)->type ) }, @@ -3941,7 +3941,7 @@ static classVariableInfo_t idDeclAF_Constraint_typeInfo[] = { }; static classVariableInfo_t idDeclAF_typeInfo[] = { - { ": bool", "modified", (intptr_t)(&((idDeclAF *)0)->modified), sizeof( ((idDeclAF *)0)->modified ) }, + { "bool", "modified", (intptr_t)(&((idDeclAF *)0)->modified), sizeof( ((idDeclAF *)0)->modified ) }, { "idStr", "model", (intptr_t)(&((idDeclAF *)0)->model), sizeof( ((idDeclAF *)0)->model ) }, { "idStr", "skin", (intptr_t)(&((idDeclAF *)0)->skin), sizeof( ((idDeclAF *)0)->skin ) }, { "float", "defaultLinearFriction", (intptr_t)(&((idDeclAF *)0)->defaultLinearFriction), sizeof( ((idDeclAF *)0)->defaultLinearFriction ) }, @@ -3965,7 +3965,7 @@ static classVariableInfo_t idDeclAF_typeInfo[] = { }; static classVariableInfo_t idDeclEmail_typeInfo[] = { - { ": idStr", "text", (intptr_t)(&((idDeclEmail *)0)->text), sizeof( ((idDeclEmail *)0)->text ) }, + { "idStr", "text", (intptr_t)(&((idDeclEmail *)0)->text), sizeof( ((idDeclEmail *)0)->text ) }, { "idStr", "subject", (intptr_t)(&((idDeclEmail *)0)->subject), sizeof( ((idDeclEmail *)0)->subject ) }, { "idStr", "date", (intptr_t)(&((idDeclEmail *)0)->date), sizeof( ((idDeclEmail *)0)->date ) }, { "idStr", "to", (intptr_t)(&((idDeclEmail *)0)->to), sizeof( ((idDeclEmail *)0)->to ) }, @@ -3975,7 +3975,7 @@ static classVariableInfo_t idDeclEmail_typeInfo[] = { }; static classVariableInfo_t idDeclVideo_typeInfo[] = { - { ": idStr", "preview", (intptr_t)(&((idDeclVideo *)0)->preview), sizeof( ((idDeclVideo *)0)->preview ) }, + { "idStr", "preview", (intptr_t)(&((idDeclVideo *)0)->preview), sizeof( ((idDeclVideo *)0)->preview ) }, { "idStr", "video", (intptr_t)(&((idDeclVideo *)0)->video), sizeof( ((idDeclVideo *)0)->video ) }, { "idStr", "videoName", (intptr_t)(&((idDeclVideo *)0)->videoName), sizeof( ((idDeclVideo *)0)->videoName ) }, { "idStr", "info", (intptr_t)(&((idDeclVideo *)0)->info), sizeof( ((idDeclVideo *)0)->info ) }, @@ -3984,7 +3984,7 @@ static classVariableInfo_t idDeclVideo_typeInfo[] = { }; static classVariableInfo_t idDeclAudio_typeInfo[] = { - { ": idStr", "audio", (intptr_t)(&((idDeclAudio *)0)->audio), sizeof( ((idDeclAudio *)0)->audio ) }, + { "idStr", "audio", (intptr_t)(&((idDeclAudio *)0)->audio), sizeof( ((idDeclAudio *)0)->audio ) }, { "idStr", "audioName", (intptr_t)(&((idDeclAudio *)0)->audioName), sizeof( ((idDeclAudio *)0)->audioName ) }, { "idStr", "info", (intptr_t)(&((idDeclAudio *)0)->info), sizeof( ((idDeclAudio *)0)->info ) }, { "idStr", "preview", (intptr_t)(&((idDeclAudio *)0)->preview), sizeof( ((idDeclAudio *)0)->preview ) }, @@ -3992,7 +3992,7 @@ static classVariableInfo_t idDeclAudio_typeInfo[] = { }; static classVariableInfo_t idDeclPDA_typeInfo[] = { - { ": mutable idStrList", "videos", (intptr_t)(&((idDeclPDA *)0)->videos), sizeof( ((idDeclPDA *)0)->videos ) }, + { "mutable idStrList", "videos", (intptr_t)(&((idDeclPDA *)0)->videos), sizeof( ((idDeclPDA *)0)->videos ) }, { "mutable idStrList", "audios", (intptr_t)(&((idDeclPDA *)0)->audios), sizeof( ((idDeclPDA *)0)->audios ) }, { "mutable idStrList", "emails", (intptr_t)(&((idDeclPDA *)0)->emails), sizeof( ((idDeclPDA *)0)->emails ) }, { "idStr", "pdaName", (intptr_t)(&((idDeclPDA *)0)->pdaName), sizeof( ((idDeclPDA *)0)->pdaName ) }, @@ -4186,7 +4186,7 @@ static classVariableInfo_t idCinematic_typeInfo[] = { }; static classVariableInfo_t idSndWindow_typeInfo[] = { - { ": bool", "showWaveform", (intptr_t)(&((idSndWindow *)0)->showWaveform), sizeof( ((idSndWindow *)0)->showWaveform ) }, + { "bool", "showWaveform", (intptr_t)(&((idSndWindow *)0)->showWaveform), sizeof( ((idSndWindow *)0)->showWaveform ) }, { NULL, 0 } }; @@ -4744,7 +4744,7 @@ static classVariableInfo_t idCollisionModelManager_typeInfo[] = { }; static classVariableInfo_t idReachability_typeInfo[] = { - { ": int", "travelType", (intptr_t)(&((idReachability *)0)->travelType), sizeof( ((idReachability *)0)->travelType ) }, + { "int", "travelType", (intptr_t)(&((idReachability *)0)->travelType), sizeof( ((idReachability *)0)->travelType ) }, { "short", "toAreaNum", (intptr_t)(&((idReachability *)0)->toAreaNum), sizeof( ((idReachability *)0)->toAreaNum ) }, { "short", "fromAreaNum", (intptr_t)(&((idReachability *)0)->fromAreaNum), sizeof( ((idReachability *)0)->fromAreaNum ) }, { "idVec3", "start", (intptr_t)(&((idReachability *)0)->start), sizeof( ((idReachability *)0)->start ) }, @@ -4784,7 +4784,7 @@ static classVariableInfo_t idReachability_Fly_typeInfo[] = { }; static classVariableInfo_t idReachability_Special_typeInfo[] = { - { ": idDict", "dict", (intptr_t)(&((idReachability_Special *)0)->dict), sizeof( ((idReachability_Special *)0)->dict ) }, + { "idDict", "dict", (intptr_t)(&((idReachability_Special *)0)->dict), sizeof( ((idReachability_Special *)0)->dict ) }, { NULL, 0 } }; @@ -4856,7 +4856,7 @@ static classVariableInfo_t aasTrace_t_typeInfo[] = { }; static classVariableInfo_t idAASSettings_typeInfo[] = { - { ": int", "numBoundingBoxes", (intptr_t)(&((idAASSettings *)0)->numBoundingBoxes), sizeof( ((idAASSettings *)0)->numBoundingBoxes ) }, + { "int", "numBoundingBoxes", (intptr_t)(&((idAASSettings *)0)->numBoundingBoxes), sizeof( ((idAASSettings *)0)->numBoundingBoxes ) }, { "idBounds[4]", "boundingBoxes", (intptr_t)(&((idAASSettings *)0)->boundingBoxes), sizeof( ((idAASSettings *)0)->boundingBoxes ) }, { "bool", "usePatches", (intptr_t)(&((idAASSettings *)0)->usePatches), sizeof( ((idAASSettings *)0)->usePatches ) }, { "bool", "writeBrushMap", (intptr_t)(&((idAASSettings *)0)->writeBrushMap), sizeof( ((idAASSettings *)0)->writeBrushMap ) }, @@ -4882,7 +4882,7 @@ static classVariableInfo_t idAASSettings_typeInfo[] = { }; static classVariableInfo_t idAASFile_typeInfo[] = { - { ": idStr", "name", (intptr_t)(&((idAASFile *)0)->name), sizeof( ((idAASFile *)0)->name ) }, + { "idStr", "name", (intptr_t)(&((idAASFile *)0)->name), sizeof( ((idAASFile *)0)->name ) }, { "unsigned int", "crc", (intptr_t)(&((idAASFile *)0)->crc), sizeof( ((idAASFile *)0)->crc ) }, { "idPlaneSet", "planeList", (intptr_t)(&((idAASFile *)0)->planeList), sizeof( ((idAASFile *)0)->planeList ) }, { "idList < aasVertex_t >", "vertices", (intptr_t)(&((idAASFile *)0)->vertices), sizeof( ((idAASFile *)0)->vertices ) }, @@ -4990,7 +4990,7 @@ static classVariableInfo_t idSession_typeInfo[] = { }; static classVariableInfo_t idEventDef_typeInfo[] = { - { ": const char *", "name", (intptr_t)(&((idEventDef *)0)->name), sizeof( ((idEventDef *)0)->name ) }, + { "const char *", "name", (intptr_t)(&((idEventDef *)0)->name), sizeof( ((idEventDef *)0)->name ) }, { "const char *", "formatspec", (intptr_t)(&((idEventDef *)0)->formatspec), sizeof( ((idEventDef *)0)->formatspec ) }, { "unsigned int", "formatspecIndex", (intptr_t)(&((idEventDef *)0)->formatspecIndex), sizeof( ((idEventDef *)0)->formatspecIndex ) }, { "int", "returnType", (intptr_t)(&((idEventDef *)0)->returnType), sizeof( ((idEventDef *)0)->returnType ) }, @@ -5003,7 +5003,7 @@ static classVariableInfo_t idEventDef_typeInfo[] = { }; static classVariableInfo_t idEvent_typeInfo[] = { - { ": const idEventDef *", "eventdef", (intptr_t)(&((idEvent *)0)->eventdef), sizeof( ((idEvent *)0)->eventdef ) }, + { "const idEventDef *", "eventdef", (intptr_t)(&((idEvent *)0)->eventdef), sizeof( ((idEvent *)0)->eventdef ) }, { "byte *", "data", (intptr_t)(&((idEvent *)0)->data), sizeof( ((idEvent *)0)->data ) }, { "int", "time", (intptr_t)(&((idEvent *)0)->time), sizeof( ((idEvent *)0)->time ) }, { "idClass *", "object", (intptr_t)(&((idEvent *)0)->object), sizeof( ((idEvent *)0)->object ) }, @@ -5052,7 +5052,7 @@ static classVariableInfo_t rvStateThread_typeInfo[] = { }; static classVariableInfo_t idEventArg_typeInfo[] = { - { ": int", "type", (intptr_t)(&((idEventArg *)0)->type), sizeof( ((idEventArg *)0)->type ) }, + { "int", "type", (intptr_t)(&((idEventArg *)0)->type), sizeof( ((idEventArg *)0)->type ) }, { "intptr_t", "value", (intptr_t)(&((idEventArg *)0)->value), sizeof( ((idEventArg *)0)->value ) }, { NULL, 0 } }; @@ -5061,12 +5061,12 @@ static classVariableInfo_t idAllocError_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idClass_typeInfo[] = { +classVariableInfo_t idClass::typeInfo[] = { { NULL, 0 } }; static classVariableInfo_t idTypeInfo_typeInfo[] = { - { ": const char *", "classname", (intptr_t)(&((idTypeInfo *)0)->classname), sizeof( ((idTypeInfo *)0)->classname ) }, + { "const char *", "classname", (intptr_t)(&((idTypeInfo *)0)->classname), sizeof( ((idTypeInfo *)0)->classname ) }, { "const char *", "superclass", (intptr_t)(&((idTypeInfo *)0)->superclass), sizeof( ((idTypeInfo *)0)->superclass ) }, { "idEventFunc < idClass > *", "eventCallbacks", (intptr_t)(&((idTypeInfo *)0)->eventCallbacks), sizeof( ((idTypeInfo *)0)->eventCallbacks ) }, { "eventCallback_t *", "eventMap", (intptr_t)(&((idTypeInfo *)0)->eventMap), sizeof( ((idTypeInfo *)0)->eventMap ) }, @@ -5080,27 +5080,27 @@ static classVariableInfo_t idTypeInfo_typeInfo[] = { }; static classVariableInfo_t idSaveGame_typeInfo[] = { - { ": idFile *", "file", (intptr_t)(&((idSaveGame *)0)->file), sizeof( ((idSaveGame *)0)->file ) }, + { "idFile *", "file", (intptr_t)(&((idSaveGame *)0)->file), sizeof( ((idSaveGame *)0)->file ) }, { "idList < const idClass * >", "objects", (intptr_t)(&((idSaveGame *)0)->objects), sizeof( ((idSaveGame *)0)->objects ) }, { NULL, 0 } }; static classVariableInfo_t idRestoreGame_typeInfo[] = { - { ": int", "buildNumber", (intptr_t)(&((idRestoreGame *)0)->buildNumber), sizeof( ((idRestoreGame *)0)->buildNumber ) }, + { "int", "buildNumber", (intptr_t)(&((idRestoreGame *)0)->buildNumber), sizeof( ((idRestoreGame *)0)->buildNumber ) }, { "idFile *", "file", (intptr_t)(&((idRestoreGame *)0)->file), sizeof( ((idRestoreGame *)0)->file ) }, { "idList < idClass * >", "objects", (intptr_t)(&((idRestoreGame *)0)->objects), sizeof( ((idRestoreGame *)0)->objects ) }, { NULL, 0 } }; static classVariableInfo_t idDebugGraph_typeInfo[] = { - { ": idList < float >", "samples", (intptr_t)(&((idDebugGraph *)0)->samples), sizeof( ((idDebugGraph *)0)->samples ) }, + { "idList < float >", "samples", (intptr_t)(&((idDebugGraph *)0)->samples), sizeof( ((idDebugGraph *)0)->samples ) }, { "int", "index", (intptr_t)(&((idDebugGraph *)0)->index), sizeof( ((idDebugGraph *)0)->index ) }, { NULL, 0 } }; static classVariableInfo_t function_t_typeInfo[] = { - { ": idStr", "name", (intptr_t)(&((function_t *)0)->name), sizeof( ((function_t *)0)->name ) }, - { ": const idEventDef *", "eventdef", (intptr_t)(&((function_t *)0)->eventdef), sizeof( ((function_t *)0)->eventdef ) }, + { "idStr", "name", (intptr_t)(&((function_t *)0)->name), sizeof( ((function_t *)0)->name ) }, + { "const idEventDef *", "eventdef", (intptr_t)(&((function_t *)0)->eventdef), sizeof( ((function_t *)0)->eventdef ) }, { "idVarDef *", "def", (intptr_t)(&((function_t *)0)->def), sizeof( ((function_t *)0)->def ) }, { "const idTypeDef *", "type", (intptr_t)(&((function_t *)0)->type), sizeof( ((function_t *)0)->type ) }, { "int", "firstStatement", (intptr_t)(&((function_t *)0)->firstStatement), sizeof( ((function_t *)0)->firstStatement ) }, @@ -5123,20 +5123,20 @@ static classVariableInfo_t eval_t_typeInfo[] = { }; static classVariableInfo_t idTypeDef_typeInfo[] = { - { ": etype_t", "type", (intptr_t)(&((idTypeDef *)0)->type), sizeof( ((idTypeDef *)0)->type ) }, + { "etype_t", "type", (intptr_t)(&((idTypeDef *)0)->type), sizeof( ((idTypeDef *)0)->type ) }, { "idStr", "name", (intptr_t)(&((idTypeDef *)0)->name), sizeof( ((idTypeDef *)0)->name ) }, { "int", "size", (intptr_t)(&((idTypeDef *)0)->size), sizeof( ((idTypeDef *)0)->size ) }, { "idTypeDef *", "auxType", (intptr_t)(&((idTypeDef *)0)->auxType), sizeof( ((idTypeDef *)0)->auxType ) }, { "idList < idTypeDef * >", "parmTypes", (intptr_t)(&((idTypeDef *)0)->parmTypes), sizeof( ((idTypeDef *)0)->parmTypes ) }, { "idStrList", "parmNames", (intptr_t)(&((idTypeDef *)0)->parmNames), sizeof( ((idTypeDef *)0)->parmNames ) }, { "idList < const function_t * >", "functions", (intptr_t)(&((idTypeDef *)0)->functions), sizeof( ((idTypeDef *)0)->functions ) }, - { ": idVarDef *", "def", (intptr_t)(&((idTypeDef *)0)->def), sizeof( ((idTypeDef *)0)->def ) }, + { "idVarDef *", "def", (intptr_t)(&((idTypeDef *)0)->def), sizeof( ((idTypeDef *)0)->def ) }, { NULL, 0 } }; static classVariableInfo_t idScriptObject_typeInfo[] = { - { ": idTypeDef *", "type", (intptr_t)(&((idScriptObject *)0)->type), sizeof( ((idScriptObject *)0)->type ) }, - { ": byte *", "data", (intptr_t)(&((idScriptObject *)0)->data), sizeof( ((idScriptObject *)0)->data ) }, + { "idTypeDef *", "type", (intptr_t)(&((idScriptObject *)0)->type), sizeof( ((idScriptObject *)0)->type ) }, + { "byte *", "data", (intptr_t)(&((idScriptObject *)0)->data), sizeof( ((idScriptObject *)0)->data ) }, { NULL, 0 } }; @@ -5163,19 +5163,19 @@ static classVariableInfo_t varEval_t_typeInfo[] = { }; static classVariableInfo_t idVarDef_typeInfo[] = { - { ": int", "num", (intptr_t)(&((idVarDef *)0)->num), sizeof( ((idVarDef *)0)->num ) }, + { "int", "num", (intptr_t)(&((idVarDef *)0)->num), sizeof( ((idVarDef *)0)->num ) }, { "varEval_t", "value", (intptr_t)(&((idVarDef *)0)->value), sizeof( ((idVarDef *)0)->value ) }, { "idVarDef *", "scope", (intptr_t)(&((idVarDef *)0)->scope), sizeof( ((idVarDef *)0)->scope ) }, { "int", "numUsers", (intptr_t)(&((idVarDef *)0)->numUsers), sizeof( ((idVarDef *)0)->numUsers ) }, { "initialized_t", "initialized", (intptr_t)(&((idVarDef *)0)->initialized), sizeof( ((idVarDef *)0)->initialized ) }, - { ": idTypeDef *", "typeDef", (intptr_t)(&((idVarDef *)0)->typeDef), sizeof( ((idVarDef *)0)->typeDef ) }, + { "idTypeDef *", "typeDef", (intptr_t)(&((idVarDef *)0)->typeDef), sizeof( ((idVarDef *)0)->typeDef ) }, { "idVarDefName *", "name", (intptr_t)(&((idVarDef *)0)->name), sizeof( ((idVarDef *)0)->name ) }, { "idVarDef *", "next", (intptr_t)(&((idVarDef *)0)->next), sizeof( ((idVarDef *)0)->next ) }, { NULL, 0 } }; static classVariableInfo_t idVarDefName_typeInfo[] = { - { ": idStr", "name", (intptr_t)(&((idVarDefName *)0)->name), sizeof( ((idVarDefName *)0)->name ) }, + { "idStr", "name", (intptr_t)(&((idVarDefName *)0)->name), sizeof( ((idVarDefName *)0)->name ) }, { "idVarDef *", "defs", (intptr_t)(&((idVarDefName *)0)->defs), sizeof( ((idVarDefName *)0)->defs ) }, { NULL, 0 } }; @@ -5192,7 +5192,7 @@ static classVariableInfo_t statement_t_typeInfo[] = { }; static classVariableInfo_t idProgram_typeInfo[] = { - { ": idStrList", "fileList", (intptr_t)(&((idProgram *)0)->fileList), sizeof( ((idProgram *)0)->fileList ) }, + { "idStrList", "fileList", (intptr_t)(&((idProgram *)0)->fileList), sizeof( ((idProgram *)0)->fileList ) }, { "idStr", "filename", (intptr_t)(&((idProgram *)0)->filename), sizeof( ((idProgram *)0)->filename ) }, { "int", "filenum", (intptr_t)(&((idProgram *)0)->filenum), sizeof( ((idProgram *)0)->filenum ) }, { "int", "numVariables", (intptr_t)(&((idProgram *)0)->numVariables), sizeof( ((idProgram *)0)->numVariables ) }, @@ -5210,7 +5210,7 @@ static classVariableInfo_t idProgram_typeInfo[] = { { "int", "top_types", (intptr_t)(&((idProgram *)0)->top_types), sizeof( ((idProgram *)0)->top_types ) }, { "int", "top_defs", (intptr_t)(&((idProgram *)0)->top_defs), sizeof( ((idProgram *)0)->top_defs ) }, { "int", "top_files", (intptr_t)(&((idProgram *)0)->top_files), sizeof( ((idProgram *)0)->top_files ) }, - { ": idVarDef *", "returnDef", (intptr_t)(&((idProgram *)0)->returnDef), sizeof( ((idProgram *)0)->returnDef ) }, + { "idVarDef *", "returnDef", (intptr_t)(&((idProgram *)0)->returnDef), sizeof( ((idProgram *)0)->returnDef ) }, { "idVarDef *", "returnStringDef", (intptr_t)(&((idProgram *)0)->returnStringDef), sizeof( ((idProgram *)0)->returnStringDef ) }, { NULL, 0 } }; @@ -5270,7 +5270,7 @@ static classVariableInfo_t animFlags_t_typeInfo[] = { }; static classVariableInfo_t idModelExport_typeInfo[] = { - { ": idStr", "commandLine", (intptr_t)(&((idModelExport *)0)->commandLine), sizeof( ((idModelExport *)0)->commandLine ) }, + { "idStr", "commandLine", (intptr_t)(&((idModelExport *)0)->commandLine), sizeof( ((idModelExport *)0)->commandLine ) }, { "idStr", "src", (intptr_t)(&((idModelExport *)0)->src), sizeof( ((idModelExport *)0)->src ) }, { "idStr", "dest", (intptr_t)(&((idModelExport *)0)->dest), sizeof( ((idModelExport *)0)->dest ) }, { "bool", "force", (intptr_t)(&((idModelExport *)0)->force), sizeof( ((idModelExport *)0)->force ) }, @@ -5278,7 +5278,7 @@ static classVariableInfo_t idModelExport_typeInfo[] = { }; static classVariableInfo_t idMD5Anim_typeInfo[] = { - { ": int", "numFrames", (intptr_t)(&((idMD5Anim *)0)->numFrames), sizeof( ((idMD5Anim *)0)->numFrames ) }, + { "int", "numFrames", (intptr_t)(&((idMD5Anim *)0)->numFrames), sizeof( ((idMD5Anim *)0)->numFrames ) }, { "int", "frameRate", (intptr_t)(&((idMD5Anim *)0)->frameRate), sizeof( ((idMD5Anim *)0)->frameRate ) }, { "int", "animLength", (intptr_t)(&((idMD5Anim *)0)->animLength), sizeof( ((idMD5Anim *)0)->animLength ) }, { "int", "numJoints", (intptr_t)(&((idMD5Anim *)0)->numJoints), sizeof( ((idMD5Anim *)0)->numJoints ) }, @@ -5294,7 +5294,7 @@ static classVariableInfo_t idMD5Anim_typeInfo[] = { }; static classVariableInfo_t idAnim_typeInfo[] = { - { ": const idDeclModelDef *", "modelDef", (intptr_t)(&((idAnim *)0)->modelDef), sizeof( ((idAnim *)0)->modelDef ) }, + { "const idDeclModelDef *", "modelDef", (intptr_t)(&((idAnim *)0)->modelDef), sizeof( ((idAnim *)0)->modelDef ) }, { "const idMD5Anim *[3]", "anims", (intptr_t)(&((idAnim *)0)->anims), sizeof( ((idAnim *)0)->anims ) }, { "int", "numAnims", (intptr_t)(&((idAnim *)0)->numAnims), sizeof( ((idAnim *)0)->numAnims ) }, { "idStr", "name", (intptr_t)(&((idAnim *)0)->name), sizeof( ((idAnim *)0)->name ) }, @@ -5306,7 +5306,7 @@ static classVariableInfo_t idAnim_typeInfo[] = { }; static classVariableInfo_t idDeclModelDef_typeInfo[] = { - { ": idVec3", "offset", (intptr_t)(&((idDeclModelDef *)0)->offset), sizeof( ((idDeclModelDef *)0)->offset ) }, + { "idVec3", "offset", (intptr_t)(&((idDeclModelDef *)0)->offset), sizeof( ((idDeclModelDef *)0)->offset ) }, { "idList < jointInfo_t >", "joints", (intptr_t)(&((idDeclModelDef *)0)->joints), sizeof( ((idDeclModelDef *)0)->joints ) }, { "idList < int >", "jointParents", (intptr_t)(&((idDeclModelDef *)0)->jointParents), sizeof( ((idDeclModelDef *)0)->jointParents ) }, { "idList < int >[5]", "channelJoints", (intptr_t)(&((idDeclModelDef *)0)->channelJoints), sizeof( ((idDeclModelDef *)0)->channelJoints ) }, @@ -5317,7 +5317,7 @@ static classVariableInfo_t idDeclModelDef_typeInfo[] = { }; static classVariableInfo_t idAnimBlend_typeInfo[] = { - { ": const idDeclModelDef *", "modelDef", (intptr_t)(&((idAnimBlend *)0)->modelDef), sizeof( ((idAnimBlend *)0)->modelDef ) }, + { "const idDeclModelDef *", "modelDef", (intptr_t)(&((idAnimBlend *)0)->modelDef), sizeof( ((idAnimBlend *)0)->modelDef ) }, { "int", "starttime", (intptr_t)(&((idAnimBlend *)0)->starttime), sizeof( ((idAnimBlend *)0)->starttime ) }, { "int", "endtime", (intptr_t)(&((idAnimBlend *)0)->endtime), sizeof( ((idAnimBlend *)0)->endtime ) }, { "int", "timeOffset", (intptr_t)(&((idAnimBlend *)0)->timeOffset), sizeof( ((idAnimBlend *)0)->timeOffset ) }, @@ -5343,7 +5343,7 @@ static classVariableInfo_t idAFPoseJointMod_typeInfo[] = { }; static classVariableInfo_t idAnimator_typeInfo[] = { - { ": const idDeclModelDef *", "modelDef", (intptr_t)(&((idAnimator *)0)->modelDef), sizeof( ((idAnimator *)0)->modelDef ) }, + { "const idDeclModelDef *", "modelDef", (intptr_t)(&((idAnimator *)0)->modelDef), sizeof( ((idAnimator *)0)->modelDef ) }, { "idEntity *", "entity", (intptr_t)(&((idAnimator *)0)->entity), sizeof( ((idAnimator *)0)->entity ) }, { "idAnimBlend[15]", "channels", (intptr_t)(&((idAnimator *)0)->channels), sizeof( ((idAnimator *)0)->channels ) }, { "idList < jointMod_t * >", "jointMods", (intptr_t)(&((idAnimator *)0)->jointMods), sizeof( ((idAnimator *)0)->jointMods ) }, @@ -5364,7 +5364,7 @@ static classVariableInfo_t idAnimator_typeInfo[] = { }; static classVariableInfo_t idAnimManager_typeInfo[] = { - { ": idHashTable < idMD5Anim * >", "animations", (intptr_t)(&((idAnimManager *)0)->animations), sizeof( ((idAnimManager *)0)->animations ) }, + { "idHashTable < idMD5Anim * >", "animations", (intptr_t)(&((idAnimManager *)0)->animations), sizeof( ((idAnimManager *)0)->animations ) }, { "idStrList", "jointnames", (intptr_t)(&((idAnimManager *)0)->jointnames), sizeof( ((idAnimManager *)0)->jointnames ) }, { "idHashIndex", "jointnamesHash", (intptr_t)(&((idAnimManager *)0)->jointnamesHash), sizeof( ((idAnimManager *)0)->jointnamesHash ) }, { NULL, 0 } @@ -5400,7 +5400,7 @@ static classVariableInfo_t idNAV_typeInfo[] = { }; static classVariableInfo_t idClipModel_typeInfo[] = { - { ": bool", "enabled", (intptr_t)(&((idClipModel *)0)->enabled), sizeof( ((idClipModel *)0)->enabled ) }, + { "bool", "enabled", (intptr_t)(&((idClipModel *)0)->enabled), sizeof( ((idClipModel *)0)->enabled ) }, { "idEntity *", "entity", (intptr_t)(&((idClipModel *)0)->entity), sizeof( ((idClipModel *)0)->entity ) }, { "int", "id", (intptr_t)(&((idClipModel *)0)->id), sizeof( ((idClipModel *)0)->id ) }, { "idEntity *", "owner", (intptr_t)(&((idClipModel *)0)->owner), sizeof( ((idClipModel *)0)->owner ) }, @@ -5419,7 +5419,7 @@ static classVariableInfo_t idClipModel_typeInfo[] = { }; static classVariableInfo_t idClip_typeInfo[] = { - { ": cmHandle_t", "worldCollisionModel", (intptr_t)(&((idClip *)0)->worldCollisionModel), sizeof( ((idClip *)0)->worldCollisionModel ) }, + { "cmHandle_t", "worldCollisionModel", (intptr_t)(&((idClip *)0)->worldCollisionModel), sizeof( ((idClip *)0)->worldCollisionModel ) }, { "int", "numClipSectors", (intptr_t)(&((idClip *)0)->numClipSectors), sizeof( ((idClip *)0)->numClipSectors ) }, { "clipSector_s *", "clipSectors", (intptr_t)(&((idClip *)0)->clipSectors), sizeof( ((idClip *)0)->clipSectors ) }, { "idBounds", "worldBounds", (intptr_t)(&((idClip *)0)->worldBounds), sizeof( ((idClip *)0)->worldBounds ) }, @@ -5470,7 +5470,7 @@ static classVariableInfo_t pvsCurrent_t_typeInfo[] = { }; static classVariableInfo_t idPVS_typeInfo[] = { - { ": int", "numAreas", (intptr_t)(&((idPVS *)0)->numAreas), sizeof( ((idPVS *)0)->numAreas ) }, + { "int", "numAreas", (intptr_t)(&((idPVS *)0)->numAreas), sizeof( ((idPVS *)0)->numAreas ) }, { "int", "numPortals", (intptr_t)(&((idPVS *)0)->numPortals), sizeof( ((idPVS *)0)->numPortals ) }, { "bool *", "connectedAreas", (intptr_t)(&((idPVS *)0)->connectedAreas), sizeof( ((idPVS *)0)->connectedAreas ) }, { "int *", "areaQueue", (intptr_t)(&((idPVS *)0)->areaQueue), sizeof( ((idPVS *)0)->areaQueue ) }, @@ -5584,7 +5584,7 @@ static classVariableInfo_t spawnSpot_t_typeInfo[] = { }; static classVariableInfo_t idEventQueue_typeInfo[] = { - { ": entityNetEvent_t *", "start", (intptr_t)(&((idEventQueue *)0)->start), sizeof( ((idEventQueue *)0)->start ) }, + { "entityNetEvent_t *", "start", (intptr_t)(&((idEventQueue *)0)->start), sizeof( ((idEventQueue *)0)->start ) }, { "entityNetEvent_t *", "end", (intptr_t)(&((idEventQueue *)0)->end), sizeof( ((idEventQueue *)0)->end ) }, { "idBlockAlloc < entityNetEvent_t , 32 >", "eventAllocator", (intptr_t)(&((idEventQueue *)0)->eventAllocator), sizeof( ((idEventQueue *)0)->eventAllocator ) }, { NULL, 0 } @@ -5597,7 +5597,7 @@ static classVariableInfo_t rvmGameDelayRemoveEntry_t_typeInfo[] = { }; static classVariableInfo_t idGameLocal_typeInfo[] = { - { ": idDict", "serverInfo", (intptr_t)(&((idGameLocal *)0)->serverInfo), sizeof( ((idGameLocal *)0)->serverInfo ) }, + { "idDict", "serverInfo", (intptr_t)(&((idGameLocal *)0)->serverInfo), sizeof( ((idGameLocal *)0)->serverInfo ) }, { "int", "numClients", (intptr_t)(&((idGameLocal *)0)->numClients), sizeof( ((idGameLocal *)0)->numClients ) }, { "idDict[32]", "userInfo", (intptr_t)(&((idGameLocal *)0)->userInfo), sizeof( ((idGameLocal *)0)->userInfo ) }, { "usercmd_t[32]", "usercmds", (intptr_t)(&((idGameLocal *)0)->usercmds), sizeof( ((idGameLocal *)0)->usercmds ) }, @@ -5692,20 +5692,20 @@ static classVariableInfo_t idGameError_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idForce_typeInfo[] = { +classVariableInfo_t idForce::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idForce_Constant_typeInfo[] = { - { ": idVec3", "force", (intptr_t)(&((idForce_Constant *)0)->force), sizeof( ((idForce_Constant *)0)->force ) }, +classVariableInfo_t idForce_Constant::typeInfo[] = { + { "idVec3", "force", (intptr_t)(&((idForce_Constant *)0)->force), sizeof( ((idForce_Constant *)0)->force ) }, { "idPhysics *", "physics", (intptr_t)(&((idForce_Constant *)0)->physics), sizeof( ((idForce_Constant *)0)->physics ) }, { "int", "id", (intptr_t)(&((idForce_Constant *)0)->id), sizeof( ((idForce_Constant *)0)->id ) }, { "idVec3", "point", (intptr_t)(&((idForce_Constant *)0)->point), sizeof( ((idForce_Constant *)0)->point ) }, { NULL, 0 } }; -static classVariableInfo_t idForce_Drag_typeInfo[] = { - { ": float", "damping", (intptr_t)(&((idForce_Drag *)0)->damping), sizeof( ((idForce_Drag *)0)->damping ) }, +classVariableInfo_t idForce_Drag::typeInfo[] = { + { "float", "damping", (intptr_t)(&((idForce_Drag *)0)->damping), sizeof( ((idForce_Drag *)0)->damping ) }, { "idPhysics *", "physics", (intptr_t)(&((idForce_Drag *)0)->physics), sizeof( ((idForce_Drag *)0)->physics ) }, { "int", "id", (intptr_t)(&((idForce_Drag *)0)->id), sizeof( ((idForce_Drag *)0)->id ) }, { "idVec3", "p", (intptr_t)(&((idForce_Drag *)0)->p), sizeof( ((idForce_Drag *)0)->p ) }, @@ -5713,8 +5713,8 @@ static classVariableInfo_t idForce_Drag_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idForce_Field_typeInfo[] = { - { ": forceFieldType", "type", (intptr_t)(&((idForce_Field *)0)->type), sizeof( ((idForce_Field *)0)->type ) }, +classVariableInfo_t idForce_Field::typeInfo[] = { + { "forceFieldType", "type", (intptr_t)(&((idForce_Field *)0)->type), sizeof( ((idForce_Field *)0)->type ) }, { "forceFieldApplyType", "applyType", (intptr_t)(&((idForce_Field *)0)->applyType), sizeof( ((idForce_Field *)0)->applyType ) }, { "float", "magnitude", (intptr_t)(&((idForce_Field *)0)->magnitude), sizeof( ((idForce_Field *)0)->magnitude ) }, { "idVec3", "dir", (intptr_t)(&((idForce_Field *)0)->dir), sizeof( ((idForce_Field *)0)->dir ) }, @@ -5725,8 +5725,8 @@ static classVariableInfo_t idForce_Field_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idForce_Spring_typeInfo[] = { - { ": float", "Kstretch", (intptr_t)(&((idForce_Spring *)0)->Kstretch), sizeof( ((idForce_Spring *)0)->Kstretch ) }, +classVariableInfo_t idForce_Spring::typeInfo[] = { + { "float", "Kstretch", (intptr_t)(&((idForce_Spring *)0)->Kstretch), sizeof( ((idForce_Spring *)0)->Kstretch ) }, { "float", "Kcompress", (intptr_t)(&((idForce_Spring *)0)->Kcompress), sizeof( ((idForce_Spring *)0)->Kcompress ) }, { "float", "damping", (intptr_t)(&((idForce_Spring *)0)->damping), sizeof( ((idForce_Spring *)0)->damping ) }, { "float", "restLength", (intptr_t)(&((idForce_Spring *)0)->restLength), sizeof( ((idForce_Spring *)0)->restLength ) }, @@ -5747,7 +5747,7 @@ static classVariableInfo_t impactInfo_t_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idPhysics_typeInfo[] = { +classVariableInfo_t idPhysics::typeInfo[] = { { NULL, 0 } }; @@ -5759,8 +5759,8 @@ static classVariableInfo_t staticPState_t_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idPhysics_Static_typeInfo[] = { - { ": idEntity *", "self", (intptr_t)(&((idPhysics_Static *)0)->self), sizeof( ((idPhysics_Static *)0)->self ) }, +classVariableInfo_t idPhysics_Static::typeInfo[] = { + { "idEntity *", "self", (intptr_t)(&((idPhysics_Static *)0)->self), sizeof( ((idPhysics_Static *)0)->self ) }, { "staticPState_t", "current", (intptr_t)(&((idPhysics_Static *)0)->current), sizeof( ((idPhysics_Static *)0)->current ) }, { "idClipModel *", "clipModel", (intptr_t)(&((idPhysics_Static *)0)->clipModel), sizeof( ((idPhysics_Static *)0)->clipModel ) }, { "bool", "hasMaster", (intptr_t)(&((idPhysics_Static *)0)->hasMaster), sizeof( ((idPhysics_Static *)0)->hasMaster ) }, @@ -5768,8 +5768,8 @@ static classVariableInfo_t idPhysics_Static_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idPhysics_StaticMulti_typeInfo[] = { - { ": idEntity *", "self", (intptr_t)(&((idPhysics_StaticMulti *)0)->self), sizeof( ((idPhysics_StaticMulti *)0)->self ) }, +classVariableInfo_t idPhysics_StaticMulti::typeInfo[] = { + { "idEntity *", "self", (intptr_t)(&((idPhysics_StaticMulti *)0)->self), sizeof( ((idPhysics_StaticMulti *)0)->self ) }, { "idList < staticPState_t >", "current", (intptr_t)(&((idPhysics_StaticMulti *)0)->current), sizeof( ((idPhysics_StaticMulti *)0)->current ) }, { "idList < idClipModel * >", "clipModels", (intptr_t)(&((idPhysics_StaticMulti *)0)->clipModels), sizeof( ((idPhysics_StaticMulti *)0)->clipModels ) }, { "bool", "hasMaster", (intptr_t)(&((idPhysics_StaticMulti *)0)->hasMaster), sizeof( ((idPhysics_StaticMulti *)0)->hasMaster ) }, @@ -5777,8 +5777,8 @@ static classVariableInfo_t idPhysics_StaticMulti_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idPhysics_Base_typeInfo[] = { - { ": idEntity *", "self", (intptr_t)(&((idPhysics_Base *)0)->self), sizeof( ((idPhysics_Base *)0)->self ) }, +classVariableInfo_t idPhysics_Base::typeInfo[] = { + { "idEntity *", "self", (intptr_t)(&((idPhysics_Base *)0)->self), sizeof( ((idPhysics_Base *)0)->self ) }, { "int", "clipMask", (intptr_t)(&((idPhysics_Base *)0)->clipMask), sizeof( ((idPhysics_Base *)0)->clipMask ) }, { "idVec3", "gravityVector", (intptr_t)(&((idPhysics_Base *)0)->gravityVector), sizeof( ((idPhysics_Base *)0)->gravityVector ) }, { "idVec3", "gravityNormal", (intptr_t)(&((idPhysics_Base *)0)->gravityNormal), sizeof( ((idPhysics_Base *)0)->gravityNormal ) }, @@ -5787,8 +5787,8 @@ static classVariableInfo_t idPhysics_Base_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idPhysics_Actor_typeInfo[] = { - { ": idClipModel *", "clipModel", (intptr_t)(&((idPhysics_Actor *)0)->clipModel), sizeof( ((idPhysics_Actor *)0)->clipModel ) }, +classVariableInfo_t idPhysics_Actor::typeInfo[] = { + { "idClipModel *", "clipModel", (intptr_t)(&((idPhysics_Actor *)0)->clipModel), sizeof( ((idPhysics_Actor *)0)->clipModel ) }, { "idMat3", "clipModelAxis", (intptr_t)(&((idPhysics_Actor *)0)->clipModelAxis), sizeof( ((idPhysics_Actor *)0)->clipModelAxis ) }, { "float", "mass", (intptr_t)(&((idPhysics_Actor *)0)->mass), sizeof( ((idPhysics_Actor *)0)->mass ) }, { "float", "invMass", (intptr_t)(&((idPhysics_Actor *)0)->invMass), sizeof( ((idPhysics_Actor *)0)->invMass ) }, @@ -5809,8 +5809,8 @@ static classVariableInfo_t monsterPState_t_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idPhysics_Monster_typeInfo[] = { - { ": monsterPState_t", "current", (intptr_t)(&((idPhysics_Monster *)0)->current), sizeof( ((idPhysics_Monster *)0)->current ) }, +classVariableInfo_t idPhysics_Monster::typeInfo[] = { + { "monsterPState_t", "current", (intptr_t)(&((idPhysics_Monster *)0)->current), sizeof( ((idPhysics_Monster *)0)->current ) }, { "monsterPState_t", "saved", (intptr_t)(&((idPhysics_Monster *)0)->saved), sizeof( ((idPhysics_Monster *)0)->saved ) }, { "float", "maxStepHeight", (intptr_t)(&((idPhysics_Monster *)0)->maxStepHeight), sizeof( ((idPhysics_Monster *)0)->maxStepHeight ) }, { "float", "minFloorCosine", (intptr_t)(&((idPhysics_Monster *)0)->minFloorCosine), sizeof( ((idPhysics_Monster *)0)->minFloorCosine ) }, @@ -5836,8 +5836,8 @@ static classVariableInfo_t playerPState_t_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idPhysics_Player_typeInfo[] = { - { ": playerPState_t", "current", (intptr_t)(&((idPhysics_Player *)0)->current), sizeof( ((idPhysics_Player *)0)->current ) }, +classVariableInfo_t idPhysics_Player::typeInfo[] = { + { "playerPState_t", "current", (intptr_t)(&((idPhysics_Player *)0)->current), sizeof( ((idPhysics_Player *)0)->current ) }, { "playerPState_t", "saved", (intptr_t)(&((idPhysics_Player *)0)->saved), sizeof( ((idPhysics_Player *)0)->saved ) }, { "float", "walkSpeed", (intptr_t)(&((idPhysics_Player *)0)->walkSpeed), sizeof( ((idPhysics_Player *)0)->walkSpeed ) }, { "float", "crouchSpeed", (intptr_t)(&((idPhysics_Player *)0)->crouchSpeed), sizeof( ((idPhysics_Player *)0)->crouchSpeed ) }, @@ -5880,8 +5880,8 @@ static classVariableInfo_t parametricPState_t_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idPhysics_Parametric_typeInfo[] = { - { ": parametricPState_t", "current", (intptr_t)(&((idPhysics_Parametric *)0)->current), sizeof( ((idPhysics_Parametric *)0)->current ) }, +classVariableInfo_t idPhysics_Parametric::typeInfo[] = { + { "parametricPState_t", "current", (intptr_t)(&((idPhysics_Parametric *)0)->current), sizeof( ((idPhysics_Parametric *)0)->current ) }, { "parametricPState_t", "saved", (intptr_t)(&((idPhysics_Parametric *)0)->saved), sizeof( ((idPhysics_Parametric *)0)->saved ) }, { "bool", "isPusher", (intptr_t)(&((idPhysics_Parametric *)0)->isPusher), sizeof( ((idPhysics_Parametric *)0)->isPusher ) }, { "idClipModel *", "clipModel", (intptr_t)(&((idPhysics_Parametric *)0)->clipModel), sizeof( ((idPhysics_Parametric *)0)->clipModel ) }, @@ -5913,8 +5913,8 @@ static classVariableInfo_t rigidBodyPState_t_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idPhysics_RigidBody_typeInfo[] = { - { ": rigidBodyPState_t", "current", (intptr_t)(&((idPhysics_RigidBody *)0)->current), sizeof( ((idPhysics_RigidBody *)0)->current ) }, +classVariableInfo_t idPhysics_RigidBody::typeInfo[] = { + { "rigidBodyPState_t", "current", (intptr_t)(&((idPhysics_RigidBody *)0)->current), sizeof( ((idPhysics_RigidBody *)0)->current ) }, { "rigidBodyPState_t", "saved", (intptr_t)(&((idPhysics_RigidBody *)0)->saved), sizeof( ((idPhysics_RigidBody *)0)->saved ) }, { "float", "linearFriction", (intptr_t)(&((idPhysics_RigidBody *)0)->linearFriction), sizeof( ((idPhysics_RigidBody *)0)->linearFriction ) }, { "float", "angularFriction", (intptr_t)(&((idPhysics_RigidBody *)0)->angularFriction), sizeof( ((idPhysics_RigidBody *)0)->angularFriction ) }, @@ -5946,7 +5946,7 @@ static classVariableInfo_t idAFConstraint_constraintFlags_s_typeInfo[] = { }; static classVariableInfo_t idAFConstraint_typeInfo[] = { - { ": constraintType_t", "type", (intptr_t)(&((idAFConstraint *)0)->type), sizeof( ((idAFConstraint *)0)->type ) }, + { "constraintType_t", "type", (intptr_t)(&((idAFConstraint *)0)->type), sizeof( ((idAFConstraint *)0)->type ) }, { "idStr", "name", (intptr_t)(&((idAFConstraint *)0)->name), sizeof( ((idAFConstraint *)0)->name ) }, { "idAFBody *", "body1", (intptr_t)(&((idAFConstraint *)0)->body1), sizeof( ((idAFConstraint *)0)->body1 ) }, { "idAFBody *", "body2", (intptr_t)(&((idAFConstraint *)0)->body2), sizeof( ((idAFConstraint *)0)->body2 ) }, @@ -5970,13 +5970,13 @@ static classVariableInfo_t idAFConstraint_typeInfo[] = { }; static classVariableInfo_t idAFConstraint_Fixed_typeInfo[] = { - { ": idVec3", "offset", (intptr_t)(&((idAFConstraint_Fixed *)0)->offset), sizeof( ((idAFConstraint_Fixed *)0)->offset ) }, + { "idVec3", "offset", (intptr_t)(&((idAFConstraint_Fixed *)0)->offset), sizeof( ((idAFConstraint_Fixed *)0)->offset ) }, { "idMat3", "relAxis", (intptr_t)(&((idAFConstraint_Fixed *)0)->relAxis), sizeof( ((idAFConstraint_Fixed *)0)->relAxis ) }, { NULL, 0 } }; static classVariableInfo_t idAFConstraint_BallAndSocketJoint_typeInfo[] = { - { ": idVec3", "anchor1", (intptr_t)(&((idAFConstraint_BallAndSocketJoint *)0)->anchor1), sizeof( ((idAFConstraint_BallAndSocketJoint *)0)->anchor1 ) }, + { "idVec3", "anchor1", (intptr_t)(&((idAFConstraint_BallAndSocketJoint *)0)->anchor1), sizeof( ((idAFConstraint_BallAndSocketJoint *)0)->anchor1 ) }, { "idVec3", "anchor2", (intptr_t)(&((idAFConstraint_BallAndSocketJoint *)0)->anchor2), sizeof( ((idAFConstraint_BallAndSocketJoint *)0)->anchor2 ) }, { "float", "friction", (intptr_t)(&((idAFConstraint_BallAndSocketJoint *)0)->friction), sizeof( ((idAFConstraint_BallAndSocketJoint *)0)->friction ) }, { "idAFConstraint_ConeLimit *", "coneLimit", (intptr_t)(&((idAFConstraint_BallAndSocketJoint *)0)->coneLimit), sizeof( ((idAFConstraint_BallAndSocketJoint *)0)->coneLimit ) }, @@ -5986,12 +5986,12 @@ static classVariableInfo_t idAFConstraint_BallAndSocketJoint_typeInfo[] = { }; static classVariableInfo_t idAFConstraint_BallAndSocketJointFriction_typeInfo[] = { - { ": idAFConstraint_BallAndSocketJoint *", "joint", (intptr_t)(&((idAFConstraint_BallAndSocketJointFriction *)0)->joint), sizeof( ((idAFConstraint_BallAndSocketJointFriction *)0)->joint ) }, + { "idAFConstraint_BallAndSocketJoint *", "joint", (intptr_t)(&((idAFConstraint_BallAndSocketJointFriction *)0)->joint), sizeof( ((idAFConstraint_BallAndSocketJointFriction *)0)->joint ) }, { NULL, 0 } }; static classVariableInfo_t idAFConstraint_UniversalJoint_typeInfo[] = { - { ": idVec3", "anchor1", (intptr_t)(&((idAFConstraint_UniversalJoint *)0)->anchor1), sizeof( ((idAFConstraint_UniversalJoint *)0)->anchor1 ) }, + { "idVec3", "anchor1", (intptr_t)(&((idAFConstraint_UniversalJoint *)0)->anchor1), sizeof( ((idAFConstraint_UniversalJoint *)0)->anchor1 ) }, { "idVec3", "anchor2", (intptr_t)(&((idAFConstraint_UniversalJoint *)0)->anchor2), sizeof( ((idAFConstraint_UniversalJoint *)0)->anchor2 ) }, { "idVec3", "shaft1", (intptr_t)(&((idAFConstraint_UniversalJoint *)0)->shaft1), sizeof( ((idAFConstraint_UniversalJoint *)0)->shaft1 ) }, { "idVec3", "shaft2", (intptr_t)(&((idAFConstraint_UniversalJoint *)0)->shaft2), sizeof( ((idAFConstraint_UniversalJoint *)0)->shaft2 ) }, @@ -6005,7 +6005,7 @@ static classVariableInfo_t idAFConstraint_UniversalJoint_typeInfo[] = { }; static classVariableInfo_t idAFConstraint_UniversalJointFriction_typeInfo[] = { - { ": idAFConstraint_UniversalJoint *", "joint", (intptr_t)(&((idAFConstraint_UniversalJointFriction *)0)->joint), sizeof( ((idAFConstraint_UniversalJointFriction *)0)->joint ) }, + { "idAFConstraint_UniversalJoint *", "joint", (intptr_t)(&((idAFConstraint_UniversalJointFriction *)0)->joint), sizeof( ((idAFConstraint_UniversalJointFriction *)0)->joint ) }, { NULL, 0 } }; @@ -6014,7 +6014,7 @@ static classVariableInfo_t idAFConstraint_CylindricalJoint_typeInfo[] = { }; static classVariableInfo_t idAFConstraint_Hinge_typeInfo[] = { - { ": idVec3", "anchor1", (intptr_t)(&((idAFConstraint_Hinge *)0)->anchor1), sizeof( ((idAFConstraint_Hinge *)0)->anchor1 ) }, + { "idVec3", "anchor1", (intptr_t)(&((idAFConstraint_Hinge *)0)->anchor1), sizeof( ((idAFConstraint_Hinge *)0)->anchor1 ) }, { "idVec3", "anchor2", (intptr_t)(&((idAFConstraint_Hinge *)0)->anchor2), sizeof( ((idAFConstraint_Hinge *)0)->anchor2 ) }, { "idVec3", "axis1", (intptr_t)(&((idAFConstraint_Hinge *)0)->axis1), sizeof( ((idAFConstraint_Hinge *)0)->axis1 ) }, { "idVec3", "axis2", (intptr_t)(&((idAFConstraint_Hinge *)0)->axis2), sizeof( ((idAFConstraint_Hinge *)0)->axis2 ) }, @@ -6027,12 +6027,12 @@ static classVariableInfo_t idAFConstraint_Hinge_typeInfo[] = { }; static classVariableInfo_t idAFConstraint_HingeFriction_typeInfo[] = { - { ": idAFConstraint_Hinge *", "hinge", (intptr_t)(&((idAFConstraint_HingeFriction *)0)->hinge), sizeof( ((idAFConstraint_HingeFriction *)0)->hinge ) }, + { "idAFConstraint_Hinge *", "hinge", (intptr_t)(&((idAFConstraint_HingeFriction *)0)->hinge), sizeof( ((idAFConstraint_HingeFriction *)0)->hinge ) }, { NULL, 0 } }; static classVariableInfo_t idAFConstraint_HingeSteering_typeInfo[] = { - { ": idAFConstraint_Hinge *", "hinge", (intptr_t)(&((idAFConstraint_HingeSteering *)0)->hinge), sizeof( ((idAFConstraint_HingeSteering *)0)->hinge ) }, + { "idAFConstraint_Hinge *", "hinge", (intptr_t)(&((idAFConstraint_HingeSteering *)0)->hinge), sizeof( ((idAFConstraint_HingeSteering *)0)->hinge ) }, { "float", "steerAngle", (intptr_t)(&((idAFConstraint_HingeSteering *)0)->steerAngle), sizeof( ((idAFConstraint_HingeSteering *)0)->steerAngle ) }, { "float", "steerSpeed", (intptr_t)(&((idAFConstraint_HingeSteering *)0)->steerSpeed), sizeof( ((idAFConstraint_HingeSteering *)0)->steerSpeed ) }, { "float", "epsilon", (intptr_t)(&((idAFConstraint_HingeSteering *)0)->epsilon), sizeof( ((idAFConstraint_HingeSteering *)0)->epsilon ) }, @@ -6040,7 +6040,7 @@ static classVariableInfo_t idAFConstraint_HingeSteering_typeInfo[] = { }; static classVariableInfo_t idAFConstraint_Slider_typeInfo[] = { - { ": idVec3", "axis", (intptr_t)(&((idAFConstraint_Slider *)0)->axis), sizeof( ((idAFConstraint_Slider *)0)->axis ) }, + { "idVec3", "axis", (intptr_t)(&((idAFConstraint_Slider *)0)->axis), sizeof( ((idAFConstraint_Slider *)0)->axis ) }, { "idVec3", "offset", (intptr_t)(&((idAFConstraint_Slider *)0)->offset), sizeof( ((idAFConstraint_Slider *)0)->offset ) }, { "idMat3", "relAxis", (intptr_t)(&((idAFConstraint_Slider *)0)->relAxis), sizeof( ((idAFConstraint_Slider *)0)->relAxis ) }, { NULL, 0 } @@ -6051,14 +6051,14 @@ static classVariableInfo_t idAFConstraint_Line_typeInfo[] = { }; static classVariableInfo_t idAFConstraint_Plane_typeInfo[] = { - { ": idVec3", "anchor1", (intptr_t)(&((idAFConstraint_Plane *)0)->anchor1), sizeof( ((idAFConstraint_Plane *)0)->anchor1 ) }, + { "idVec3", "anchor1", (intptr_t)(&((idAFConstraint_Plane *)0)->anchor1), sizeof( ((idAFConstraint_Plane *)0)->anchor1 ) }, { "idVec3", "anchor2", (intptr_t)(&((idAFConstraint_Plane *)0)->anchor2), sizeof( ((idAFConstraint_Plane *)0)->anchor2 ) }, { "idVec3", "planeNormal", (intptr_t)(&((idAFConstraint_Plane *)0)->planeNormal), sizeof( ((idAFConstraint_Plane *)0)->planeNormal ) }, { NULL, 0 } }; static classVariableInfo_t idAFConstraint_Spring_typeInfo[] = { - { ": idVec3", "anchor1", (intptr_t)(&((idAFConstraint_Spring *)0)->anchor1), sizeof( ((idAFConstraint_Spring *)0)->anchor1 ) }, + { "idVec3", "anchor1", (intptr_t)(&((idAFConstraint_Spring *)0)->anchor1), sizeof( ((idAFConstraint_Spring *)0)->anchor1 ) }, { "idVec3", "anchor2", (intptr_t)(&((idAFConstraint_Spring *)0)->anchor2), sizeof( ((idAFConstraint_Spring *)0)->anchor2 ) }, { "float", "kstretch", (intptr_t)(&((idAFConstraint_Spring *)0)->kstretch), sizeof( ((idAFConstraint_Spring *)0)->kstretch ) }, { "float", "kcompress", (intptr_t)(&((idAFConstraint_Spring *)0)->kcompress), sizeof( ((idAFConstraint_Spring *)0)->kcompress ) }, @@ -6070,18 +6070,18 @@ static classVariableInfo_t idAFConstraint_Spring_typeInfo[] = { }; static classVariableInfo_t idAFConstraint_Contact_typeInfo[] = { - { ": contactInfo_t", "contact", (intptr_t)(&((idAFConstraint_Contact *)0)->contact), sizeof( ((idAFConstraint_Contact *)0)->contact ) }, + { "contactInfo_t", "contact", (intptr_t)(&((idAFConstraint_Contact *)0)->contact), sizeof( ((idAFConstraint_Contact *)0)->contact ) }, { "idAFConstraint_ContactFriction *", "fc", (intptr_t)(&((idAFConstraint_Contact *)0)->fc), sizeof( ((idAFConstraint_Contact *)0)->fc ) }, { NULL, 0 } }; static classVariableInfo_t idAFConstraint_ContactFriction_typeInfo[] = { - { ": idAFConstraint_Contact *", "cc", (intptr_t)(&((idAFConstraint_ContactFriction *)0)->cc), sizeof( ((idAFConstraint_ContactFriction *)0)->cc ) }, + { "idAFConstraint_Contact *", "cc", (intptr_t)(&((idAFConstraint_ContactFriction *)0)->cc), sizeof( ((idAFConstraint_ContactFriction *)0)->cc ) }, { NULL, 0 } }; static classVariableInfo_t idAFConstraint_ConeLimit_typeInfo[] = { - { ": idVec3", "coneAnchor", (intptr_t)(&((idAFConstraint_ConeLimit *)0)->coneAnchor), sizeof( ((idAFConstraint_ConeLimit *)0)->coneAnchor ) }, + { "idVec3", "coneAnchor", (intptr_t)(&((idAFConstraint_ConeLimit *)0)->coneAnchor), sizeof( ((idAFConstraint_ConeLimit *)0)->coneAnchor ) }, { "idVec3", "coneAxis", (intptr_t)(&((idAFConstraint_ConeLimit *)0)->coneAxis), sizeof( ((idAFConstraint_ConeLimit *)0)->coneAxis ) }, { "idVec3", "body1Axis", (intptr_t)(&((idAFConstraint_ConeLimit *)0)->body1Axis), sizeof( ((idAFConstraint_ConeLimit *)0)->body1Axis ) }, { "float", "cosAngle", (intptr_t)(&((idAFConstraint_ConeLimit *)0)->cosAngle), sizeof( ((idAFConstraint_ConeLimit *)0)->cosAngle ) }, @@ -6092,7 +6092,7 @@ static classVariableInfo_t idAFConstraint_ConeLimit_typeInfo[] = { }; static classVariableInfo_t idAFConstraint_PyramidLimit_typeInfo[] = { - { ": idVec3", "pyramidAnchor", (intptr_t)(&((idAFConstraint_PyramidLimit *)0)->pyramidAnchor), sizeof( ((idAFConstraint_PyramidLimit *)0)->pyramidAnchor ) }, + { "idVec3", "pyramidAnchor", (intptr_t)(&((idAFConstraint_PyramidLimit *)0)->pyramidAnchor), sizeof( ((idAFConstraint_PyramidLimit *)0)->pyramidAnchor ) }, { "idMat3", "pyramidBasis", (intptr_t)(&((idAFConstraint_PyramidLimit *)0)->pyramidBasis), sizeof( ((idAFConstraint_PyramidLimit *)0)->pyramidBasis ) }, { "idVec3", "body1Axis", (intptr_t)(&((idAFConstraint_PyramidLimit *)0)->body1Axis), sizeof( ((idAFConstraint_PyramidLimit *)0)->body1Axis ) }, { "float[2]", "cosAngle", (intptr_t)(&((idAFConstraint_PyramidLimit *)0)->cosAngle), sizeof( ((idAFConstraint_PyramidLimit *)0)->cosAngle ) }, @@ -6103,7 +6103,7 @@ static classVariableInfo_t idAFConstraint_PyramidLimit_typeInfo[] = { }; static classVariableInfo_t idAFConstraint_Suspension_typeInfo[] = { - { ": idVec3", "localOrigin", (intptr_t)(&((idAFConstraint_Suspension *)0)->localOrigin), sizeof( ((idAFConstraint_Suspension *)0)->localOrigin ) }, + { "idVec3", "localOrigin", (intptr_t)(&((idAFConstraint_Suspension *)0)->localOrigin), sizeof( ((idAFConstraint_Suspension *)0)->localOrigin ) }, { "idMat3", "localAxis", (intptr_t)(&((idAFConstraint_Suspension *)0)->localAxis), sizeof( ((idAFConstraint_Suspension *)0)->localAxis ) }, { "float", "suspensionUp", (intptr_t)(&((idAFConstraint_Suspension *)0)->suspensionUp), sizeof( ((idAFConstraint_Suspension *)0)->suspensionUp ) }, { "float", "suspensionDown", (intptr_t)(&((idAFConstraint_Suspension *)0)->suspensionDown), sizeof( ((idAFConstraint_Suspension *)0)->suspensionDown ) }, @@ -6140,7 +6140,7 @@ static classVariableInfo_t idAFBody_bodyFlags_s_typeInfo[] = { }; static classVariableInfo_t idAFBody_typeInfo[] = { - { ": idStr", "name", (intptr_t)(&((idAFBody *)0)->name), sizeof( ((idAFBody *)0)->name ) }, + { "idStr", "name", (intptr_t)(&((idAFBody *)0)->name), sizeof( ((idAFBody *)0)->name ) }, { "idAFBody *", "parent", (intptr_t)(&((idAFBody *)0)->parent), sizeof( ((idAFBody *)0)->parent ) }, { "idList < idAFBody * >", "children", (intptr_t)(&((idAFBody *)0)->children), sizeof( ((idAFBody *)0)->children ) }, { "idClipModel *", "clipModel", (intptr_t)(&((idAFBody *)0)->clipModel), sizeof( ((idAFBody *)0)->clipModel ) }, @@ -6185,7 +6185,7 @@ static classVariableInfo_t idAFBody_typeInfo[] = { }; static classVariableInfo_t idAFTree_typeInfo[] = { - { ": idList < idAFBody * >", "sortedBodies", (intptr_t)(&((idAFTree *)0)->sortedBodies), sizeof( ((idAFTree *)0)->sortedBodies ) }, + { "idList < idAFBody * >", "sortedBodies", (intptr_t)(&((idAFTree *)0)->sortedBodies), sizeof( ((idAFTree *)0)->sortedBodies ) }, { NULL, 0 } }; @@ -6204,8 +6204,8 @@ static classVariableInfo_t AFCollision_t_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idPhysics_AF_typeInfo[] = { - { ": idList < idAFTree * >", "trees", (intptr_t)(&((idPhysics_AF *)0)->trees), sizeof( ((idPhysics_AF *)0)->trees ) }, +classVariableInfo_t idPhysics_AF::typeInfo[] = { + { "idList < idAFTree * >", "trees", (intptr_t)(&((idPhysics_AF *)0)->trees), sizeof( ((idPhysics_AF *)0)->trees ) }, { "idList < idAFBody * >", "bodies", (intptr_t)(&((idPhysics_AF *)0)->bodies), sizeof( ((idPhysics_AF *)0)->bodies ) }, { "idList < idAFConstraint * >", "constraints", (intptr_t)(&((idPhysics_AF *)0)->constraints), sizeof( ((idPhysics_AF *)0)->constraints ) }, { "idList < idAFConstraint * >", "primaryConstraints", (intptr_t)(&((idPhysics_AF *)0)->primaryConstraints), sizeof( ((idPhysics_AF *)0)->primaryConstraints ) }, @@ -6273,7 +6273,7 @@ static classVariableInfo_t activeSmokeStage_t_typeInfo[] = { }; static classVariableInfo_t idSmokeParticles_typeInfo[] = { - { ": bool", "initialized", (intptr_t)(&((idSmokeParticles *)0)->initialized), sizeof( ((idSmokeParticles *)0)->initialized ) }, + { "bool", "initialized", (intptr_t)(&((idSmokeParticles *)0)->initialized), sizeof( ((idSmokeParticles *)0)->initialized ) }, { "renderEntity_t", "renderEntity", (intptr_t)(&((idSmokeParticles *)0)->renderEntity), sizeof( ((idSmokeParticles *)0)->renderEntity ) }, { "int", "renderEntityHandle", (intptr_t)(&((idSmokeParticles *)0)->renderEntityHandle), sizeof( ((idSmokeParticles *)0)->renderEntityHandle ) }, { "singleSmoke_t[10000]", "smokes", (intptr_t)(&((idSmokeParticles *)0)->smokes), sizeof( ((idSmokeParticles *)0)->smokes ) }, @@ -6291,7 +6291,7 @@ static classVariableInfo_t signal_t_typeInfo[] = { }; static classVariableInfo_t signalList_t_typeInfo[] = { - { ": idList < signal_t >[10]", "signal", (intptr_t)(&((signalList_t *)0)->signal), sizeof( ((signalList_t *)0)->signal ) }, + { "idList < signal_t >[10]", "signal", (intptr_t)(&((signalList_t *)0)->signal), sizeof( ((signalList_t *)0)->signal ) }, { NULL, 0 } }; @@ -6311,7 +6311,7 @@ static classVariableInfo_t idEntity_entityFlags_s_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idEntity_typeInfo[] = { +classVariableInfo_t idEntity::typeInfo[] = { { "int", "entityNumber", (intptr_t)(&((idEntity *)0)->entityNumber), sizeof( ((idEntity *)0)->entityNumber ) }, { "int", "entityDefNumber", (intptr_t)(&((idEntity *)0)->entityDefNumber), sizeof( ((idEntity *)0)->entityDefNumber ) }, { "idLinkList < idEntity >", "spawnNode", (intptr_t)(&((idEntity *)0)->spawnNode), sizeof( ((idEntity *)0)->spawnNode ) }, @@ -6330,10 +6330,10 @@ static classVariableInfo_t idEntity_typeInfo[] = { { "idList < idEntityPtr < idEntity > >", "targets", (intptr_t)(&((idEntity *)0)->targets), sizeof( ((idEntity *)0)->targets ) }, { "int", "health", (intptr_t)(&((idEntity *)0)->health), sizeof( ((idEntity *)0)->health ) }, { "idEntity::entityFlags_s", "fl", (intptr_t)(&((idEntity *)0)->fl), sizeof( ((idEntity *)0)->fl ) }, - { ": renderEntity_t", "renderEntity", (intptr_t)(&((idEntity *)0)->renderEntity), sizeof( ((idEntity *)0)->renderEntity ) }, + { "renderEntity_t", "renderEntity", (intptr_t)(&((idEntity *)0)->renderEntity), sizeof( ((idEntity *)0)->renderEntity ) }, { "int", "modelDefHandle", (intptr_t)(&((idEntity *)0)->modelDefHandle), sizeof( ((idEntity *)0)->modelDefHandle ) }, { "refSound_t", "refSound", (intptr_t)(&((idEntity *)0)->refSound), sizeof( ((idEntity *)0)->refSound ) }, - { ": idPhysics_Static", "defaultPhysicsObj", (intptr_t)(&((idEntity *)0)->defaultPhysicsObj), sizeof( ((idEntity *)0)->defaultPhysicsObj ) }, + { "idPhysics_Static", "defaultPhysicsObj", (intptr_t)(&((idEntity *)0)->defaultPhysicsObj), sizeof( ((idEntity *)0)->defaultPhysicsObj ) }, { "idPhysics *", "physics", (intptr_t)(&((idEntity *)0)->physics), sizeof( ((idEntity *)0)->physics ) }, { "idEntity *", "bindMaster", (intptr_t)(&((idEntity *)0)->bindMaster), sizeof( ((idEntity *)0)->bindMaster ) }, { "jointHandle_t", "bindJoint", (intptr_t)(&((idEntity *)0)->bindJoint), sizeof( ((idEntity *)0)->bindJoint ) }, @@ -6357,20 +6357,20 @@ static classVariableInfo_t damageEffect_t_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idAnimatedEntity_typeInfo[] = { - { ": idAnimator", "animator", (intptr_t)(&((idAnimatedEntity *)0)->animator), sizeof( ((idAnimatedEntity *)0)->animator ) }, +classVariableInfo_t idAnimatedEntity::typeInfo[] = { + { "idAnimator", "animator", (intptr_t)(&((idAnimatedEntity *)0)->animator), sizeof( ((idAnimatedEntity *)0)->animator ) }, { "damageEffect_t *", "damageEffects", (intptr_t)(&((idAnimatedEntity *)0)->damageEffects), sizeof( ((idAnimatedEntity *)0)->damageEffects ) }, { NULL, 0 } }; -static classVariableInfo_t idCursor3D_typeInfo[] = { +classVariableInfo_t idCursor3D::typeInfo[] = { { "idForce_Drag", "drag", (intptr_t)(&((idCursor3D *)0)->drag), sizeof( ((idCursor3D *)0)->drag ) }, { "idVec3", "draggedPosition", (intptr_t)(&((idCursor3D *)0)->draggedPosition), sizeof( ((idCursor3D *)0)->draggedPosition ) }, { NULL, 0 } }; static classVariableInfo_t idDragEntity_typeInfo[] = { - { ": idEntityPtr < idEntity >", "dragEnt", (intptr_t)(&((idDragEntity *)0)->dragEnt), sizeof( ((idDragEntity *)0)->dragEnt ) }, + { "idEntityPtr < idEntity >", "dragEnt", (intptr_t)(&((idDragEntity *)0)->dragEnt), sizeof( ((idDragEntity *)0)->dragEnt ) }, { "jointHandle_t", "joint", (intptr_t)(&((idDragEntity *)0)->joint), sizeof( ((idDragEntity *)0)->joint ) }, { "int", "id", (intptr_t)(&((idDragEntity *)0)->id), sizeof( ((idDragEntity *)0)->id ) }, { "idVec3", "localEntityPoint", (intptr_t)(&((idDragEntity *)0)->localEntityPoint), sizeof( ((idDragEntity *)0)->localEntityPoint ) }, @@ -6388,7 +6388,7 @@ static classVariableInfo_t selectedTypeInfo_t_typeInfo[] = { }; static classVariableInfo_t idEditEntities_typeInfo[] = { - { ": int", "nextSelectTime", (intptr_t)(&((idEditEntities *)0)->nextSelectTime), sizeof( ((idEditEntities *)0)->nextSelectTime ) }, + { "int", "nextSelectTime", (intptr_t)(&((idEditEntities *)0)->nextSelectTime), sizeof( ((idEditEntities *)0)->nextSelectTime ) }, { "idList < selectedTypeInfo_t >", "selectableEntityClasses", (intptr_t)(&((idEditEntities *)0)->selectableEntityClasses), sizeof( ((idEditEntities *)0)->selectableEntityClasses ) }, { "idList < idEntity * >", "selectedEntities", (intptr_t)(&((idEditEntities *)0)->selectedEntities), sizeof( ((idEditEntities *)0)->selectedEntities ) }, { NULL, 0 } @@ -6411,7 +6411,7 @@ static classVariableInfo_t afTouch_t_typeInfo[] = { }; static classVariableInfo_t idAF_typeInfo[] = { - { ": idStr", "name", (intptr_t)(&((idAF *)0)->name), sizeof( ((idAF *)0)->name ) }, + { "idStr", "name", (intptr_t)(&((idAF *)0)->name), sizeof( ((idAF *)0)->name ) }, { "idPhysics_AF", "physicsObj", (intptr_t)(&((idAF *)0)->physicsObj), sizeof( ((idAF *)0)->physicsObj ) }, { "idEntity *", "self", (intptr_t)(&((idAF *)0)->self), sizeof( ((idAF *)0)->self ) }, { "idAnimator *", "animator", (intptr_t)(&((idAF *)0)->animator), sizeof( ((idAF *)0)->animator ) }, @@ -6429,7 +6429,7 @@ static classVariableInfo_t idAF_typeInfo[] = { }; static classVariableInfo_t idIK_typeInfo[] = { - { ": bool", "initialized", (intptr_t)(&((idIK *)0)->initialized), sizeof( ((idIK *)0)->initialized ) }, + { "bool", "initialized", (intptr_t)(&((idIK *)0)->initialized), sizeof( ((idIK *)0)->initialized ) }, { "bool", "ik_activate", (intptr_t)(&((idIK *)0)->ik_activate), sizeof( ((idIK *)0)->ik_activate ) }, { "idEntity *", "self", (intptr_t)(&((idIK *)0)->self), sizeof( ((idIK *)0)->self ) }, { "idAnimator *", "animator", (intptr_t)(&((idIK *)0)->animator), sizeof( ((idIK *)0)->animator ) }, @@ -6490,27 +6490,27 @@ static classVariableInfo_t idIK_Reach_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idMultiModelAF_typeInfo[] = { - { ": idPhysics_AF", "physicsObj", (intptr_t)(&((idMultiModelAF *)0)->physicsObj), sizeof( ((idMultiModelAF *)0)->physicsObj ) }, - { ": idList < idRenderModel * >", "modelHandles", (intptr_t)(&((idMultiModelAF *)0)->modelHandles), sizeof( ((idMultiModelAF *)0)->modelHandles ) }, +classVariableInfo_t idMultiModelAF::typeInfo[] = { + { "idPhysics_AF", "physicsObj", (intptr_t)(&((idMultiModelAF *)0)->physicsObj), sizeof( ((idMultiModelAF *)0)->physicsObj ) }, + { "idList < idRenderModel * >", "modelHandles", (intptr_t)(&((idMultiModelAF *)0)->modelHandles), sizeof( ((idMultiModelAF *)0)->modelHandles ) }, { "idList < int >", "modelDefHandles", (intptr_t)(&((idMultiModelAF *)0)->modelDefHandles), sizeof( ((idMultiModelAF *)0)->modelDefHandles ) }, { NULL, 0 } }; -static classVariableInfo_t idChain_typeInfo[] = { +classVariableInfo_t idChain::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idAFAttachment_typeInfo[] = { - { ": idEntity *", "body", (intptr_t)(&((idAFAttachment *)0)->body), sizeof( ((idAFAttachment *)0)->body ) }, +classVariableInfo_t idAFAttachment::typeInfo[] = { + { "idEntity *", "body", (intptr_t)(&((idAFAttachment *)0)->body), sizeof( ((idAFAttachment *)0)->body ) }, { "idClipModel *", "combatModel", (intptr_t)(&((idAFAttachment *)0)->combatModel), sizeof( ((idAFAttachment *)0)->combatModel ) }, { "int", "idleAnim", (intptr_t)(&((idAFAttachment *)0)->idleAnim), sizeof( ((idAFAttachment *)0)->idleAnim ) }, { "jointHandle_t", "attachJoint", (intptr_t)(&((idAFAttachment *)0)->attachJoint), sizeof( ((idAFAttachment *)0)->attachJoint ) }, { NULL, 0 } }; -static classVariableInfo_t idAFEntity_Base_typeInfo[] = { - { ": idAF", "af", (intptr_t)(&((idAFEntity_Base *)0)->af), sizeof( ((idAFEntity_Base *)0)->af ) }, +classVariableInfo_t idAFEntity_Base::typeInfo[] = { + { "idAF", "af", (intptr_t)(&((idAFEntity_Base *)0)->af), sizeof( ((idAFEntity_Base *)0)->af ) }, { "idClipModel *", "combatModel", (intptr_t)(&((idAFEntity_Base *)0)->combatModel), sizeof( ((idAFEntity_Base *)0)->combatModel ) }, { "int", "combatModelContents", (intptr_t)(&((idAFEntity_Base *)0)->combatModelContents), sizeof( ((idAFEntity_Base *)0)->combatModelContents ) }, { "idVec3", "spawnOrigin", (intptr_t)(&((idAFEntity_Base *)0)->spawnOrigin), sizeof( ((idAFEntity_Base *)0)->spawnOrigin ) }, @@ -6519,25 +6519,25 @@ static classVariableInfo_t idAFEntity_Base_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idAFEntity_Gibbable_typeInfo[] = { - { ": idRenderModel *", "skeletonModel", (intptr_t)(&((idAFEntity_Gibbable *)0)->skeletonModel), sizeof( ((idAFEntity_Gibbable *)0)->skeletonModel ) }, +classVariableInfo_t idAFEntity_Gibbable::typeInfo[] = { + { "idRenderModel *", "skeletonModel", (intptr_t)(&((idAFEntity_Gibbable *)0)->skeletonModel), sizeof( ((idAFEntity_Gibbable *)0)->skeletonModel ) }, { "int", "skeletonModelDefHandle", (intptr_t)(&((idAFEntity_Gibbable *)0)->skeletonModelDefHandle), sizeof( ((idAFEntity_Gibbable *)0)->skeletonModelDefHandle ) }, { "bool", "gibbed", (intptr_t)(&((idAFEntity_Gibbable *)0)->gibbed), sizeof( ((idAFEntity_Gibbable *)0)->gibbed ) }, { NULL, 0 } }; -static classVariableInfo_t idAFEntity_Generic_typeInfo[] = { +classVariableInfo_t idAFEntity_Generic::typeInfo[] = { { "bool", "keepRunningPhysics", (intptr_t)(&((idAFEntity_Generic *)0)->keepRunningPhysics), sizeof( ((idAFEntity_Generic *)0)->keepRunningPhysics ) }, { NULL, 0 } }; -static classVariableInfo_t idAFEntity_WithAttachedHead_typeInfo[] = { - { ": idEntityPtr < idAFAttachment >", "head", (intptr_t)(&((idAFEntity_WithAttachedHead *)0)->head), sizeof( ((idAFEntity_WithAttachedHead *)0)->head ) }, +classVariableInfo_t idAFEntity_WithAttachedHead::typeInfo[] = { + { "idEntityPtr < idAFAttachment >", "head", (intptr_t)(&((idAFEntity_WithAttachedHead *)0)->head), sizeof( ((idAFEntity_WithAttachedHead *)0)->head ) }, { NULL, 0 } }; -static classVariableInfo_t idAFEntity_Vehicle_typeInfo[] = { - { ": idPlayer *", "player", (intptr_t)(&((idAFEntity_Vehicle *)0)->player), sizeof( ((idAFEntity_Vehicle *)0)->player ) }, +classVariableInfo_t idAFEntity_Vehicle::typeInfo[] = { + { "idPlayer *", "player", (intptr_t)(&((idAFEntity_Vehicle *)0)->player), sizeof( ((idAFEntity_Vehicle *)0)->player ) }, { "jointHandle_t", "eyesJoint", (intptr_t)(&((idAFEntity_Vehicle *)0)->eyesJoint), sizeof( ((idAFEntity_Vehicle *)0)->eyesJoint ) }, { "jointHandle_t", "steeringWheelJoint", (intptr_t)(&((idAFEntity_Vehicle *)0)->steeringWheelJoint), sizeof( ((idAFEntity_Vehicle *)0)->steeringWheelJoint ) }, { "float", "wheelRadius", (intptr_t)(&((idAFEntity_Vehicle *)0)->wheelRadius), sizeof( ((idAFEntity_Vehicle *)0)->wheelRadius ) }, @@ -6547,32 +6547,32 @@ static classVariableInfo_t idAFEntity_Vehicle_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idAFEntity_VehicleSimple_typeInfo[] = { - { ": idClipModel *", "wheelModel", (intptr_t)(&((idAFEntity_VehicleSimple *)0)->wheelModel), sizeof( ((idAFEntity_VehicleSimple *)0)->wheelModel ) }, +classVariableInfo_t idAFEntity_VehicleSimple::typeInfo[] = { + { "idClipModel *", "wheelModel", (intptr_t)(&((idAFEntity_VehicleSimple *)0)->wheelModel), sizeof( ((idAFEntity_VehicleSimple *)0)->wheelModel ) }, { "idAFConstraint_Suspension *[4]", "suspension", (intptr_t)(&((idAFEntity_VehicleSimple *)0)->suspension), sizeof( ((idAFEntity_VehicleSimple *)0)->suspension ) }, { "jointHandle_t[4]", "wheelJoints", (intptr_t)(&((idAFEntity_VehicleSimple *)0)->wheelJoints), sizeof( ((idAFEntity_VehicleSimple *)0)->wheelJoints ) }, { "float[4]", "wheelAngles", (intptr_t)(&((idAFEntity_VehicleSimple *)0)->wheelAngles), sizeof( ((idAFEntity_VehicleSimple *)0)->wheelAngles ) }, { NULL, 0 } }; -static classVariableInfo_t idAFEntity_VehicleFourWheels_typeInfo[] = { - { ": idAFBody *[4]", "wheels", (intptr_t)(&((idAFEntity_VehicleFourWheels *)0)->wheels), sizeof( ((idAFEntity_VehicleFourWheels *)0)->wheels ) }, +classVariableInfo_t idAFEntity_VehicleFourWheels::typeInfo[] = { + { "idAFBody *[4]", "wheels", (intptr_t)(&((idAFEntity_VehicleFourWheels *)0)->wheels), sizeof( ((idAFEntity_VehicleFourWheels *)0)->wheels ) }, { "idAFConstraint_Hinge *[2]", "steering", (intptr_t)(&((idAFEntity_VehicleFourWheels *)0)->steering), sizeof( ((idAFEntity_VehicleFourWheels *)0)->steering ) }, { "jointHandle_t[4]", "wheelJoints", (intptr_t)(&((idAFEntity_VehicleFourWheels *)0)->wheelJoints), sizeof( ((idAFEntity_VehicleFourWheels *)0)->wheelJoints ) }, { "float[4]", "wheelAngles", (intptr_t)(&((idAFEntity_VehicleFourWheels *)0)->wheelAngles), sizeof( ((idAFEntity_VehicleFourWheels *)0)->wheelAngles ) }, { NULL, 0 } }; -static classVariableInfo_t idAFEntity_VehicleSixWheels_typeInfo[] = { - { ": idAFBody *[6]", "wheels", (intptr_t)(&((idAFEntity_VehicleSixWheels *)0)->wheels), sizeof( ((idAFEntity_VehicleSixWheels *)0)->wheels ) }, +classVariableInfo_t idAFEntity_VehicleSixWheels::typeInfo[] = { + { "idAFBody *[6]", "wheels", (intptr_t)(&((idAFEntity_VehicleSixWheels *)0)->wheels), sizeof( ((idAFEntity_VehicleSixWheels *)0)->wheels ) }, { "idAFConstraint_Hinge *[4]", "steering", (intptr_t)(&((idAFEntity_VehicleSixWheels *)0)->steering), sizeof( ((idAFEntity_VehicleSixWheels *)0)->steering ) }, { "jointHandle_t[6]", "wheelJoints", (intptr_t)(&((idAFEntity_VehicleSixWheels *)0)->wheelJoints), sizeof( ((idAFEntity_VehicleSixWheels *)0)->wheelJoints ) }, { "float[6]", "wheelAngles", (intptr_t)(&((idAFEntity_VehicleSixWheels *)0)->wheelAngles), sizeof( ((idAFEntity_VehicleSixWheels *)0)->wheelAngles ) }, { NULL, 0 } }; -static classVariableInfo_t idAFEntity_SteamPipe_typeInfo[] = { - { ": int", "steamBody", (intptr_t)(&((idAFEntity_SteamPipe *)0)->steamBody), sizeof( ((idAFEntity_SteamPipe *)0)->steamBody ) }, +classVariableInfo_t idAFEntity_SteamPipe::typeInfo[] = { + { "int", "steamBody", (intptr_t)(&((idAFEntity_SteamPipe *)0)->steamBody), sizeof( ((idAFEntity_SteamPipe *)0)->steamBody ) }, { "float", "steamForce", (intptr_t)(&((idAFEntity_SteamPipe *)0)->steamForce), sizeof( ((idAFEntity_SteamPipe *)0)->steamForce ) }, { "float", "steamUpForce", (intptr_t)(&((idAFEntity_SteamPipe *)0)->steamUpForce), sizeof( ((idAFEntity_SteamPipe *)0)->steamUpForce ) }, { "idForce_Constant", "force", (intptr_t)(&((idAFEntity_SteamPipe *)0)->force), sizeof( ((idAFEntity_SteamPipe *)0)->force ) }, @@ -6581,41 +6581,41 @@ static classVariableInfo_t idAFEntity_SteamPipe_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idAFEntity_ClawFourFingers_typeInfo[] = { - { ": idAFConstraint_Hinge *[4]", "fingers", (intptr_t)(&((idAFEntity_ClawFourFingers *)0)->fingers), sizeof( ((idAFEntity_ClawFourFingers *)0)->fingers ) }, +classVariableInfo_t idAFEntity_ClawFourFingers::typeInfo[] = { + { "idAFConstraint_Hinge *[4]", "fingers", (intptr_t)(&((idAFEntity_ClawFourFingers *)0)->fingers), sizeof( ((idAFEntity_ClawFourFingers *)0)->fingers ) }, { NULL, 0 } }; -static classVariableInfo_t idSpawnableEntity_typeInfo[] = { +classVariableInfo_t idSpawnableEntity::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idPlayerStart_typeInfo[] = { - { ": int", "teleportStage", (intptr_t)(&((idPlayerStart *)0)->teleportStage), sizeof( ((idPlayerStart *)0)->teleportStage ) }, +classVariableInfo_t idPlayerStart::typeInfo[] = { + { "int", "teleportStage", (intptr_t)(&((idPlayerStart *)0)->teleportStage), sizeof( ((idPlayerStart *)0)->teleportStage ) }, { NULL, 0 } }; -static classVariableInfo_t idActivator_typeInfo[] = { - { ": bool", "stay_on", (intptr_t)(&((idActivator *)0)->stay_on), sizeof( ((idActivator *)0)->stay_on ) }, +classVariableInfo_t idActivator::typeInfo[] = { + { "bool", "stay_on", (intptr_t)(&((idActivator *)0)->stay_on), sizeof( ((idActivator *)0)->stay_on ) }, { NULL, 0 } }; -static classVariableInfo_t idPathCorner_typeInfo[] = { +classVariableInfo_t idPathCorner::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idDamagable_typeInfo[] = { - { ": int", "count", (intptr_t)(&((idDamagable *)0)->count), sizeof( ((idDamagable *)0)->count ) }, +classVariableInfo_t idDamagable::typeInfo[] = { + { "int", "count", (intptr_t)(&((idDamagable *)0)->count), sizeof( ((idDamagable *)0)->count ) }, { "int", "nextTriggerTime", (intptr_t)(&((idDamagable *)0)->nextTriggerTime), sizeof( ((idDamagable *)0)->nextTriggerTime ) }, { NULL, 0 } }; -static classVariableInfo_t idExplodable_typeInfo[] = { +classVariableInfo_t idExplodable::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idSpring_typeInfo[] = { - { ": idEntity *", "ent1", (intptr_t)(&((idSpring *)0)->ent1), sizeof( ((idSpring *)0)->ent1 ) }, +classVariableInfo_t idSpring::typeInfo[] = { + { "idEntity *", "ent1", (intptr_t)(&((idSpring *)0)->ent1), sizeof( ((idSpring *)0)->ent1 ) }, { "idEntity *", "ent2", (intptr_t)(&((idSpring *)0)->ent2), sizeof( ((idSpring *)0)->ent2 ) }, { "int", "id1", (intptr_t)(&((idSpring *)0)->id1), sizeof( ((idSpring *)0)->id1 ) }, { "int", "id2", (intptr_t)(&((idSpring *)0)->id2), sizeof( ((idSpring *)0)->id2 ) }, @@ -6625,13 +6625,13 @@ static classVariableInfo_t idSpring_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idForceField_typeInfo[] = { - { ": idForce_Field", "forceField", (intptr_t)(&((idForceField *)0)->forceField), sizeof( ((idForceField *)0)->forceField ) }, +classVariableInfo_t idForceField::typeInfo[] = { + { "idForce_Field", "forceField", (intptr_t)(&((idForceField *)0)->forceField), sizeof( ((idForceField *)0)->forceField ) }, { NULL, 0 } }; -static classVariableInfo_t idAnimated_typeInfo[] = { - { ": int", "num_anims", (intptr_t)(&((idAnimated *)0)->num_anims), sizeof( ((idAnimated *)0)->num_anims ) }, +classVariableInfo_t idAnimated::typeInfo[] = { + { "int", "num_anims", (intptr_t)(&((idAnimated *)0)->num_anims), sizeof( ((idAnimated *)0)->num_anims ) }, { "int", "current_anim_index", (intptr_t)(&((idAnimated *)0)->current_anim_index), sizeof( ((idAnimated *)0)->current_anim_index ) }, { "int", "anim", (intptr_t)(&((idAnimated *)0)->anim), sizeof( ((idAnimated *)0)->anim ) }, { "int", "blendFrames", (intptr_t)(&((idAnimated *)0)->blendFrames), sizeof( ((idAnimated *)0)->blendFrames ) }, @@ -6641,7 +6641,7 @@ static classVariableInfo_t idAnimated_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idStaticEntity_typeInfo[] = { +classVariableInfo_t idStaticEntity::typeInfo[] = { { "int", "spawnTime", (intptr_t)(&((idStaticEntity *)0)->spawnTime), sizeof( ((idStaticEntity *)0)->spawnTime ) }, { "bool", "active", (intptr_t)(&((idStaticEntity *)0)->active), sizeof( ((idStaticEntity *)0)->active ) }, { "idVec4", "fadeFrom", (intptr_t)(&((idStaticEntity *)0)->fadeFrom), sizeof( ((idStaticEntity *)0)->fadeFrom ) }, @@ -6652,64 +6652,64 @@ static classVariableInfo_t idStaticEntity_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idFuncEmitter_typeInfo[] = { - { ": bool", "hidden", (intptr_t)(&((idFuncEmitter *)0)->hidden), sizeof( ((idFuncEmitter *)0)->hidden ) }, +classVariableInfo_t idFuncEmitter::typeInfo[] = { + { "bool", "hidden", (intptr_t)(&((idFuncEmitter *)0)->hidden), sizeof( ((idFuncEmitter *)0)->hidden ) }, { NULL, 0 } }; -static classVariableInfo_t idFuncSmoke_typeInfo[] = { - { ": int", "smokeTime", (intptr_t)(&((idFuncSmoke *)0)->smokeTime), sizeof( ((idFuncSmoke *)0)->smokeTime ) }, +classVariableInfo_t idFuncSmoke::typeInfo[] = { + { "int", "smokeTime", (intptr_t)(&((idFuncSmoke *)0)->smokeTime), sizeof( ((idFuncSmoke *)0)->smokeTime ) }, { "const idDeclParticle *", "smoke", (intptr_t)(&((idFuncSmoke *)0)->smoke), sizeof( ((idFuncSmoke *)0)->smoke ) }, { "bool", "restart", (intptr_t)(&((idFuncSmoke *)0)->restart), sizeof( ((idFuncSmoke *)0)->restart ) }, { NULL, 0 } }; -static classVariableInfo_t idFuncSplat_typeInfo[] = { +classVariableInfo_t idFuncSplat::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTextEntity_typeInfo[] = { - { ": idStr", "text", (intptr_t)(&((idTextEntity *)0)->text), sizeof( ((idTextEntity *)0)->text ) }, +classVariableInfo_t idTextEntity::typeInfo[] = { + { "idStr", "text", (intptr_t)(&((idTextEntity *)0)->text), sizeof( ((idTextEntity *)0)->text ) }, { "bool", "playerOriented", (intptr_t)(&((idTextEntity *)0)->playerOriented), sizeof( ((idTextEntity *)0)->playerOriented ) }, { NULL, 0 } }; -static classVariableInfo_t idLocationEntity_typeInfo[] = { +classVariableInfo_t idLocationEntity::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idLocationSeparatorEntity_typeInfo[] = { +classVariableInfo_t idLocationSeparatorEntity::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idVacuumSeparatorEntity_typeInfo[] = { - { ": qhandle_t", "portal", (intptr_t)(&((idVacuumSeparatorEntity *)0)->portal), sizeof( ((idVacuumSeparatorEntity *)0)->portal ) }, +classVariableInfo_t idVacuumSeparatorEntity::typeInfo[] = { + { "qhandle_t", "portal", (intptr_t)(&((idVacuumSeparatorEntity *)0)->portal), sizeof( ((idVacuumSeparatorEntity *)0)->portal ) }, { NULL, 0 } }; -static classVariableInfo_t idVacuumEntity_typeInfo[] = { +classVariableInfo_t idVacuumEntity::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idBeam_typeInfo[] = { +classVariableInfo_t idBeam::typeInfo[] = { { "idEntityPtr < idBeam >", "target", (intptr_t)(&((idBeam *)0)->target), sizeof( ((idBeam *)0)->target ) }, { "idEntityPtr < idBeam >", "master", (intptr_t)(&((idBeam *)0)->master), sizeof( ((idBeam *)0)->master ) }, { NULL, 0 } }; -static classVariableInfo_t idLiquid_typeInfo[] = { +classVariableInfo_t idLiquid::typeInfo[] = { { "idRenderModelLiquid *", "model", (intptr_t)(&((idLiquid *)0)->model), sizeof( ((idLiquid *)0)->model ) }, { NULL, 0 } }; -static classVariableInfo_t idShaking_typeInfo[] = { - { ": idPhysics_Parametric", "physicsObj", (intptr_t)(&((idShaking *)0)->physicsObj), sizeof( ((idShaking *)0)->physicsObj ) }, +classVariableInfo_t idShaking::typeInfo[] = { + { "idPhysics_Parametric", "physicsObj", (intptr_t)(&((idShaking *)0)->physicsObj), sizeof( ((idShaking *)0)->physicsObj ) }, { "bool", "active", (intptr_t)(&((idShaking *)0)->active), sizeof( ((idShaking *)0)->active ) }, { NULL, 0 } }; -static classVariableInfo_t idEarthQuake_typeInfo[] = { - { ": int", "nextTriggerTime", (intptr_t)(&((idEarthQuake *)0)->nextTriggerTime), sizeof( ((idEarthQuake *)0)->nextTriggerTime ) }, +classVariableInfo_t idEarthQuake::typeInfo[] = { + { "int", "nextTriggerTime", (intptr_t)(&((idEarthQuake *)0)->nextTriggerTime), sizeof( ((idEarthQuake *)0)->nextTriggerTime ) }, { "int", "shakeStopTime", (intptr_t)(&((idEarthQuake *)0)->shakeStopTime), sizeof( ((idEarthQuake *)0)->shakeStopTime ) }, { "float", "wait", (intptr_t)(&((idEarthQuake *)0)->wait), sizeof( ((idEarthQuake *)0)->wait ) }, { "float", "random", (intptr_t)(&((idEarthQuake *)0)->random), sizeof( ((idEarthQuake *)0)->random ) }, @@ -6720,28 +6720,28 @@ static classVariableInfo_t idEarthQuake_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idFuncPortal_typeInfo[] = { - { ": qhandle_t", "portal", (intptr_t)(&((idFuncPortal *)0)->portal), sizeof( ((idFuncPortal *)0)->portal ) }, +classVariableInfo_t idFuncPortal::typeInfo[] = { + { "qhandle_t", "portal", (intptr_t)(&((idFuncPortal *)0)->portal), sizeof( ((idFuncPortal *)0)->portal ) }, { "bool", "state", (intptr_t)(&((idFuncPortal *)0)->state), sizeof( ((idFuncPortal *)0)->state ) }, { NULL, 0 } }; -static classVariableInfo_t idFuncAASPortal_typeInfo[] = { - { ": bool", "state", (intptr_t)(&((idFuncAASPortal *)0)->state), sizeof( ((idFuncAASPortal *)0)->state ) }, +classVariableInfo_t idFuncAASPortal::typeInfo[] = { + { "bool", "state", (intptr_t)(&((idFuncAASPortal *)0)->state), sizeof( ((idFuncAASPortal *)0)->state ) }, { NULL, 0 } }; -static classVariableInfo_t idFuncAASObstacle_typeInfo[] = { - { ": bool", "state", (intptr_t)(&((idFuncAASObstacle *)0)->state), sizeof( ((idFuncAASObstacle *)0)->state ) }, +classVariableInfo_t idFuncAASObstacle::typeInfo[] = { + { "bool", "state", (intptr_t)(&((idFuncAASObstacle *)0)->state), sizeof( ((idFuncAASObstacle *)0)->state ) }, { NULL, 0 } }; -static classVariableInfo_t idFuncRadioChatter_typeInfo[] = { - { ": float", "time", (intptr_t)(&((idFuncRadioChatter *)0)->time), sizeof( ((idFuncRadioChatter *)0)->time ) }, +classVariableInfo_t idFuncRadioChatter::typeInfo[] = { + { "float", "time", (intptr_t)(&((idFuncRadioChatter *)0)->time), sizeof( ((idFuncRadioChatter *)0)->time ) }, { NULL, 0 } }; -static classVariableInfo_t idPhantomObjects_typeInfo[] = { +classVariableInfo_t idPhantomObjects::typeInfo[] = { { "int", "end_time", (intptr_t)(&((idPhantomObjects *)0)->end_time), sizeof( ((idPhantomObjects *)0)->end_time ) }, { "float", "throw_time", (intptr_t)(&((idPhantomObjects *)0)->throw_time), sizeof( ((idPhantomObjects *)0)->throw_time ) }, { "float", "shake_time", (intptr_t)(&((idPhantomObjects *)0)->shake_time), sizeof( ((idPhantomObjects *)0)->shake_time ) }, @@ -6756,10 +6756,10 @@ static classVariableInfo_t idPhantomObjects_typeInfo[] = { }; static classVariableInfo_t idAnimState_typeInfo[] = { - { ": bool", "idleAnim", (intptr_t)(&((idAnimState *)0)->idleAnim), sizeof( ((idAnimState *)0)->idleAnim ) }, + { "bool", "idleAnim", (intptr_t)(&((idAnimState *)0)->idleAnim), sizeof( ((idAnimState *)0)->idleAnim ) }, { "int", "animBlendFrames", (intptr_t)(&((idAnimState *)0)->animBlendFrames), sizeof( ((idAnimState *)0)->animBlendFrames ) }, { "int", "lastAnimBlendFrames", (intptr_t)(&((idAnimState *)0)->lastAnimBlendFrames), sizeof( ((idAnimState *)0)->lastAnimBlendFrames ) }, - { ": idEntity *", "self", (intptr_t)(&((idAnimState *)0)->self), sizeof( ((idAnimState *)0)->self ) }, + { "idEntity *", "self", (intptr_t)(&((idAnimState *)0)->self), sizeof( ((idAnimState *)0)->self ) }, { "idAnimator *", "animator", (intptr_t)(&((idAnimState *)0)->animator), sizeof( ((idAnimState *)0)->animator ) }, { "int", "channel", (intptr_t)(&((idAnimState *)0)->channel), sizeof( ((idAnimState *)0)->channel ) }, { "bool", "disabled", (intptr_t)(&((idAnimState *)0)->disabled), sizeof( ((idAnimState *)0)->disabled ) }, @@ -6768,7 +6768,7 @@ static classVariableInfo_t idAnimState_typeInfo[] = { }; static classVariableInfo_t idAttachInfo_typeInfo[] = { - { ": idEntityPtr < idEntity >", "ent", (intptr_t)(&((idAttachInfo *)0)->ent), sizeof( ((idAttachInfo *)0)->ent ) }, + { "idEntityPtr < idEntity >", "ent", (intptr_t)(&((idAttachInfo *)0)->ent), sizeof( ((idAttachInfo *)0)->ent ) }, { "int", "channel", (intptr_t)(&((idAttachInfo *)0)->channel), sizeof( ((idAttachInfo *)0)->channel ) }, { NULL, 0 } }; @@ -6780,7 +6780,7 @@ static classVariableInfo_t copyJoints_t_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idActor_typeInfo[] = { +classVariableInfo_t idActor::typeInfo[] = { { "int", "team", (intptr_t)(&((idActor *)0)->team), sizeof( ((idActor *)0)->team ) }, { "int", "rank", (intptr_t)(&((idActor *)0)->rank), sizeof( ((idActor *)0)->rank ) }, { "idMat3", "viewAxis", (intptr_t)(&((idActor *)0)->viewAxis), sizeof( ((idActor *)0)->viewAxis ) }, @@ -6833,8 +6833,8 @@ static classVariableInfo_t idProjectile_projectileFlags_s_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idProjectile_typeInfo[] = { - { ": idEntityPtr < idEntity >", "owner", (intptr_t)(&((idProjectile *)0)->owner), sizeof( ((idProjectile *)0)->owner ) }, +classVariableInfo_t idProjectile::typeInfo[] = { + { "idEntityPtr < idEntity >", "owner", (intptr_t)(&((idProjectile *)0)->owner), sizeof( ((idProjectile *)0)->owner ) }, { "idProjectile::projectileFlags_s", "projectileFlags", (intptr_t)(&((idProjectile *)0)->projectileFlags), sizeof( ((idProjectile *)0)->projectileFlags ) }, { "float", "thrust", (intptr_t)(&((idProjectile *)0)->thrust), sizeof( ((idProjectile *)0)->thrust ) }, { "int", "thrust_end", (intptr_t)(&((idProjectile *)0)->thrust_end), sizeof( ((idProjectile *)0)->thrust_end ) }, @@ -6850,14 +6850,14 @@ static classVariableInfo_t idProjectile_typeInfo[] = { { "const idDeclParticle *", "smokeFly", (intptr_t)(&((idProjectile *)0)->smokeFly), sizeof( ((idProjectile *)0)->smokeFly ) }, { "int", "smokeFlyTime", (intptr_t)(&((idProjectile *)0)->smokeFlyTime), sizeof( ((idProjectile *)0)->smokeFlyTime ) }, { "projectileState_t", "state", (intptr_t)(&((idProjectile *)0)->state), sizeof( ((idProjectile *)0)->state ) }, - { ": bool", "netSyncPhysics", (intptr_t)(&((idProjectile *)0)->netSyncPhysics), sizeof( ((idProjectile *)0)->netSyncPhysics ) }, + { "bool", "netSyncPhysics", (intptr_t)(&((idProjectile *)0)->netSyncPhysics), sizeof( ((idProjectile *)0)->netSyncPhysics ) }, { NULL, 0 } }; -static classVariableInfo_t idGuidedProjectile_typeInfo[] = { - { ": float", "speed", (intptr_t)(&((idGuidedProjectile *)0)->speed), sizeof( ((idGuidedProjectile *)0)->speed ) }, +classVariableInfo_t idGuidedProjectile::typeInfo[] = { + { "float", "speed", (intptr_t)(&((idGuidedProjectile *)0)->speed), sizeof( ((idGuidedProjectile *)0)->speed ) }, { "idEntityPtr < idEntity >", "enemy", (intptr_t)(&((idGuidedProjectile *)0)->enemy), sizeof( ((idGuidedProjectile *)0)->enemy ) }, - { ": idAngles", "rndScale", (intptr_t)(&((idGuidedProjectile *)0)->rndScale), sizeof( ((idGuidedProjectile *)0)->rndScale ) }, + { "idAngles", "rndScale", (intptr_t)(&((idGuidedProjectile *)0)->rndScale), sizeof( ((idGuidedProjectile *)0)->rndScale ) }, { "idAngles", "rndAng", (intptr_t)(&((idGuidedProjectile *)0)->rndAng), sizeof( ((idGuidedProjectile *)0)->rndAng ) }, { "idAngles", "angles", (intptr_t)(&((idGuidedProjectile *)0)->angles), sizeof( ((idGuidedProjectile *)0)->angles ) }, { "int", "rndUpdateTime", (intptr_t)(&((idGuidedProjectile *)0)->rndUpdateTime), sizeof( ((idGuidedProjectile *)0)->rndUpdateTime ) }, @@ -6870,8 +6870,8 @@ static classVariableInfo_t idGuidedProjectile_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idSoulCubeMissile_typeInfo[] = { - { ": idVec3", "startingVelocity", (intptr_t)(&((idSoulCubeMissile *)0)->startingVelocity), sizeof( ((idSoulCubeMissile *)0)->startingVelocity ) }, +classVariableInfo_t idSoulCubeMissile::typeInfo[] = { + { "idVec3", "startingVelocity", (intptr_t)(&((idSoulCubeMissile *)0)->startingVelocity), sizeof( ((idSoulCubeMissile *)0)->startingVelocity ) }, { "idVec3", "endingVelocity", (intptr_t)(&((idSoulCubeMissile *)0)->endingVelocity), sizeof( ((idSoulCubeMissile *)0)->endingVelocity ) }, { "float", "accelTime", (intptr_t)(&((idSoulCubeMissile *)0)->accelTime), sizeof( ((idSoulCubeMissile *)0)->accelTime ) }, { "int", "launchTime", (intptr_t)(&((idSoulCubeMissile *)0)->launchTime), sizeof( ((idSoulCubeMissile *)0)->launchTime ) }, @@ -6892,8 +6892,8 @@ static classVariableInfo_t beamTarget_t_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idBFGProjectile_typeInfo[] = { - { ": idList < beamTarget_t >", "beamTargets", (intptr_t)(&((idBFGProjectile *)0)->beamTargets), sizeof( ((idBFGProjectile *)0)->beamTargets ) }, +classVariableInfo_t idBFGProjectile::typeInfo[] = { + { "idList < beamTarget_t >", "beamTargets", (intptr_t)(&((idBFGProjectile *)0)->beamTargets), sizeof( ((idBFGProjectile *)0)->beamTargets ) }, { "renderEntity_t", "secondModel", (intptr_t)(&((idBFGProjectile *)0)->secondModel), sizeof( ((idBFGProjectile *)0)->secondModel ) }, { "qhandle_t", "secondModelDefHandle", (intptr_t)(&((idBFGProjectile *)0)->secondModelDefHandle), sizeof( ((idBFGProjectile *)0)->secondModelDefHandle ) }, { "int", "nextDamageTime", (intptr_t)(&((idBFGProjectile *)0)->nextDamageTime), sizeof( ((idBFGProjectile *)0)->nextDamageTime ) }, @@ -6901,8 +6901,8 @@ static classVariableInfo_t idBFGProjectile_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idDebris_typeInfo[] = { - { ": idEntityPtr < idEntity >", "owner", (intptr_t)(&((idDebris *)0)->owner), sizeof( ((idDebris *)0)->owner ) }, +classVariableInfo_t idDebris::typeInfo[] = { + { "idEntityPtr < idEntity >", "owner", (intptr_t)(&((idDebris *)0)->owner), sizeof( ((idDebris *)0)->owner ) }, { "idPhysics_RigidBody", "physicsObj", (intptr_t)(&((idDebris *)0)->physicsObj), sizeof( ((idDebris *)0)->physicsObj ) }, { "const idDeclParticle *", "smokeFly", (intptr_t)(&((idDebris *)0)->smokeFly), sizeof( ((idDebris *)0)->smokeFly ) }, { "int", "smokeFlyTime", (intptr_t)(&((idDebris *)0)->smokeFlyTime), sizeof( ((idDebris *)0)->smokeFlyTime ) }, @@ -6932,15 +6932,15 @@ static classVariableInfo_t WeaponLight_t_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmWeaponObject_typeInfo[] = { - { ": idWeapon *", "owner", (intptr_t)(&((rvmWeaponObject *)0)->owner), sizeof( ((rvmWeaponObject *)0)->owner ) }, - { ": rvStateThread", "stateThread", (intptr_t)(&((rvmWeaponObject *)0)->stateThread), sizeof( ((rvmWeaponObject *)0)->stateThread ) }, +classVariableInfo_t rvmWeaponObject::typeInfo[] = { + { "idWeapon *", "owner", (intptr_t)(&((rvmWeaponObject *)0)->owner), sizeof( ((rvmWeaponObject *)0)->owner ) }, + { "rvStateThread", "stateThread", (intptr_t)(&((rvmWeaponObject *)0)->stateThread), sizeof( ((rvmWeaponObject *)0)->stateThread ) }, { "float", "next_attack", (intptr_t)(&((rvmWeaponObject *)0)->next_attack), sizeof( ((rvmWeaponObject *)0)->next_attack ) }, { NULL, 0 } }; -static classVariableInfo_t idWeapon_typeInfo[] = { - { ": int", "animBlendFrames", (intptr_t)(&((idWeapon *)0)->animBlendFrames), sizeof( ((idWeapon *)0)->animBlendFrames ) }, +classVariableInfo_t idWeapon::typeInfo[] = { + { "int", "animBlendFrames", (intptr_t)(&((idWeapon *)0)->animBlendFrames), sizeof( ((idWeapon *)0)->animBlendFrames ) }, { "int", "animDoneTime", (intptr_t)(&((idWeapon *)0)->animDoneTime), sizeof( ((idWeapon *)0)->animDoneTime ) }, { "bool", "isPlayerFlashlight", (intptr_t)(&((idWeapon *)0)->isPlayerFlashlight), sizeof( ((idWeapon *)0)->isPlayerFlashlight ) }, { "bool", "isLinked", (intptr_t)(&((idWeapon *)0)->isLinked), sizeof( ((idWeapon *)0)->isLinked ) }, @@ -7037,13 +7037,13 @@ static classVariableInfo_t idWeapon_typeInfo[] = { { "float", "weaponOffsetTime", (intptr_t)(&((idWeapon *)0)->weaponOffsetTime), sizeof( ((idWeapon *)0)->weaponOffsetTime ) }, { "float", "weaponOffsetScale", (intptr_t)(&((idWeapon *)0)->weaponOffsetScale), sizeof( ((idWeapon *)0)->weaponOffsetScale ) }, { "int", "grabberState", (intptr_t)(&((idWeapon *)0)->grabberState), sizeof( ((idWeapon *)0)->grabberState ) }, - { ": rvmWeaponObject *", "currentWeaponObject", (intptr_t)(&((idWeapon *)0)->currentWeaponObject), sizeof( ((idWeapon *)0)->currentWeaponObject ) }, + { "rvmWeaponObject *", "currentWeaponObject", (intptr_t)(&((idWeapon *)0)->currentWeaponObject), sizeof( ((idWeapon *)0)->currentWeaponObject ) }, { "bool", "OutOfAmmo", (intptr_t)(&((idWeapon *)0)->OutOfAmmo), sizeof( ((idWeapon *)0)->OutOfAmmo ) }, { NULL, 0 } }; -static classVariableInfo_t idLight_typeInfo[] = { - { ": renderLight_t", "renderLight", (intptr_t)(&((idLight *)0)->renderLight), sizeof( ((idLight *)0)->renderLight ) }, +classVariableInfo_t idLight::typeInfo[] = { + { "renderLight_t", "renderLight", (intptr_t)(&((idLight *)0)->renderLight), sizeof( ((idLight *)0)->renderLight ) }, { "idVec3", "localLightOrigin", (intptr_t)(&((idLight *)0)->localLightOrigin), sizeof( ((idLight *)0)->localLightOrigin ) }, { "idMat3", "localLightAxis", (intptr_t)(&((idLight *)0)->localLightAxis), sizeof( ((idLight *)0)->localLightAxis ) }, { "qhandle_t", "lightDefHandle", (intptr_t)(&((idLight *)0)->lightDefHandle), sizeof( ((idLight *)0)->lightDefHandle ) }, @@ -7063,12 +7063,12 @@ static classVariableInfo_t idLight_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idWorldspawn_typeInfo[] = { +classVariableInfo_t idWorldspawn::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idItem_typeInfo[] = { - { ": idVec3", "orgOrigin", (intptr_t)(&((idItem *)0)->orgOrigin), sizeof( ((idItem *)0)->orgOrigin ) }, +classVariableInfo_t idItem::typeInfo[] = { + { "idVec3", "orgOrigin", (intptr_t)(&((idItem *)0)->orgOrigin), sizeof( ((idItem *)0)->orgOrigin ) }, { "bool", "spin", (intptr_t)(&((idItem *)0)->spin), sizeof( ((idItem *)0)->spin ) }, { "bool", "pulse", (intptr_t)(&((idItem *)0)->pulse), sizeof( ((idItem *)0)->pulse ) }, { "bool", "canPickUp", (intptr_t)(&((idItem *)0)->canPickUp), sizeof( ((idItem *)0)->canPickUp ) }, @@ -7082,43 +7082,43 @@ static classVariableInfo_t idItem_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idItemPowerup_typeInfo[] = { - { ": int", "time", (intptr_t)(&((idItemPowerup *)0)->time), sizeof( ((idItemPowerup *)0)->time ) }, +classVariableInfo_t idItemPowerup::typeInfo[] = { + { "int", "time", (intptr_t)(&((idItemPowerup *)0)->time), sizeof( ((idItemPowerup *)0)->time ) }, { "int", "type", (intptr_t)(&((idItemPowerup *)0)->type), sizeof( ((idItemPowerup *)0)->type ) }, { NULL, 0 } }; -static classVariableInfo_t idObjective_typeInfo[] = { - { ": idVec3", "playerPos", (intptr_t)(&((idObjective *)0)->playerPos), sizeof( ((idObjective *)0)->playerPos ) }, +classVariableInfo_t idObjective::typeInfo[] = { + { "idVec3", "playerPos", (intptr_t)(&((idObjective *)0)->playerPos), sizeof( ((idObjective *)0)->playerPos ) }, { NULL, 0 } }; -static classVariableInfo_t idVideoCDItem_typeInfo[] = { +classVariableInfo_t idVideoCDItem::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idPDAItem_typeInfo[] = { +classVariableInfo_t idPDAItem::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idMoveableItem_typeInfo[] = { - { ": idPhysics_RigidBody", "physicsObj", (intptr_t)(&((idMoveableItem *)0)->physicsObj), sizeof( ((idMoveableItem *)0)->physicsObj ) }, +classVariableInfo_t idMoveableItem::typeInfo[] = { + { "idPhysics_RigidBody", "physicsObj", (intptr_t)(&((idMoveableItem *)0)->physicsObj), sizeof( ((idMoveableItem *)0)->physicsObj ) }, { "idClipModel *", "trigger", (intptr_t)(&((idMoveableItem *)0)->trigger), sizeof( ((idMoveableItem *)0)->trigger ) }, { "const idDeclParticle *", "smoke", (intptr_t)(&((idMoveableItem *)0)->smoke), sizeof( ((idMoveableItem *)0)->smoke ) }, { "int", "smokeTime", (intptr_t)(&((idMoveableItem *)0)->smokeTime), sizeof( ((idMoveableItem *)0)->smokeTime ) }, { NULL, 0 } }; -static classVariableInfo_t idMoveablePDAItem_typeInfo[] = { +classVariableInfo_t idMoveablePDAItem::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idItemRemover_typeInfo[] = { +classVariableInfo_t idItemRemover::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idObjectiveComplete_typeInfo[] = { - { ": idVec3", "playerPos", (intptr_t)(&((idObjectiveComplete *)0)->playerPos), sizeof( ((idObjectiveComplete *)0)->playerPos ) }, +classVariableInfo_t idObjectiveComplete::typeInfo[] = { + { "idVec3", "playerPos", (intptr_t)(&((idObjectiveComplete *)0)->playerPos), sizeof( ((idObjectiveComplete *)0)->playerPos ) }, { NULL, 0 } }; @@ -7165,7 +7165,7 @@ static classVariableInfo_t idPlayerView_typeInfo[] = { }; static classVariableInfo_t idPlayerIcon_typeInfo[] = { - { ": playerIconType_t", "iconType", (intptr_t)(&((idPlayerIcon *)0)->iconType), sizeof( ((idPlayerIcon *)0)->iconType ) }, + { "playerIconType_t", "iconType", (intptr_t)(&((idPlayerIcon *)0)->iconType), sizeof( ((idPlayerIcon *)0)->iconType ) }, { "renderEntity_t", "renderEnt", (intptr_t)(&((idPlayerIcon *)0)->renderEnt), sizeof( ((idPlayerIcon *)0)->renderEnt ) }, { "qhandle_t", "iconHandle", (intptr_t)(&((idPlayerIcon *)0)->iconHandle), sizeof( ((idPlayerIcon *)0)->iconHandle ) }, { NULL, 0 } @@ -7191,7 +7191,7 @@ static classVariableInfo_t idLevelTriggerInfo_typeInfo[] = { }; static classVariableInfo_t idInventory_typeInfo[] = { - { ": int", "maxHealth", (intptr_t)(&((idInventory *)0)->maxHealth), sizeof( ((idInventory *)0)->maxHealth ) }, + { "int", "maxHealth", (intptr_t)(&((idInventory *)0)->maxHealth), sizeof( ((idInventory *)0)->maxHealth ) }, { "int", "weapons", (intptr_t)(&((idInventory *)0)->weapons), sizeof( ((idInventory *)0)->weapons ) }, { "int", "powerups", (intptr_t)(&((idInventory *)0)->powerups), sizeof( ((idInventory *)0)->powerups ) }, { "int", "armor", (intptr_t)(&((idInventory *)0)->armor), sizeof( ((idInventory *)0)->armor ) }, @@ -7241,7 +7241,7 @@ static classVariableInfo_t aasLocation_t_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idPlayer_typeInfo[] = { +classVariableInfo_t idPlayer::typeInfo[] = { { "usercmd_t", "usercmd", (intptr_t)(&((idPlayer *)0)->usercmd), sizeof( ((idPlayer *)0)->usercmd ) }, { "idPlayerView", "playerView", (intptr_t)(&((idPlayer *)0)->playerView), sizeof( ((idPlayer *)0)->playerView ) }, { "bool", "noclip", (intptr_t)(&((idPlayer *)0)->noclip), sizeof( ((idPlayer *)0)->noclip ) }, @@ -7329,7 +7329,7 @@ static classVariableInfo_t idPlayer_typeInfo[] = { { "idMat3", "firstPersonViewAxis", (intptr_t)(&((idPlayer *)0)->firstPersonViewAxis), sizeof( ((idPlayer *)0)->firstPersonViewAxis ) }, { "idDragEntity", "dragEntity", (intptr_t)(&((idPlayer *)0)->dragEntity), sizeof( ((idPlayer *)0)->dragEntity ) }, { "idStr", "netname", (intptr_t)(&((idPlayer *)0)->netname), sizeof( ((idPlayer *)0)->netname ) }, - { ": jointHandle_t", "hipJoint", (intptr_t)(&((idPlayer *)0)->hipJoint), sizeof( ((idPlayer *)0)->hipJoint ) }, + { "jointHandle_t", "hipJoint", (intptr_t)(&((idPlayer *)0)->hipJoint), sizeof( ((idPlayer *)0)->hipJoint ) }, { "jointHandle_t", "chestJoint", (intptr_t)(&((idPlayer *)0)->chestJoint), sizeof( ((idPlayer *)0)->chestJoint ) }, { "jointHandle_t", "headJoint", (intptr_t)(&((idPlayer *)0)->headJoint), sizeof( ((idPlayer *)0)->headJoint ) }, { "idPhysics_Player", "physicsObj", (intptr_t)(&((idPlayer *)0)->physicsObj), sizeof( ((idPlayer *)0)->physicsObj ) }, @@ -7436,10 +7436,10 @@ static classVariableInfo_t idMover_rotationState_t_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idMover_typeInfo[] = { +classVariableInfo_t idMover::typeInfo[] = { { "idPhysics_Parametric", "physicsObj", (intptr_t)(&((idMover *)0)->physicsObj), sizeof( ((idMover *)0)->physicsObj ) }, { "moveState_t", "move", (intptr_t)(&((idMover *)0)->move), sizeof( ((idMover *)0)->move ) }, - { ": rotationState_t", "rot", (intptr_t)(&((idMover *)0)->rot), sizeof( ((idMover *)0)->rot ) }, + { "rotationState_t", "rot", (intptr_t)(&((idMover *)0)->rot), sizeof( ((idMover *)0)->rot ) }, { "int", "move_thread", (intptr_t)(&((idMover *)0)->move_thread), sizeof( ((idMover *)0)->move_thread ) }, { "int", "rotate_thread", (intptr_t)(&((idMover *)0)->rotate_thread), sizeof( ((idMover *)0)->rotate_thread ) }, { "idAngles", "dest_angles", (intptr_t)(&((idMover *)0)->dest_angles), sizeof( ((idMover *)0)->dest_angles ) }, @@ -7460,7 +7460,7 @@ static classVariableInfo_t idMover_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idSplinePath_typeInfo[] = { +classVariableInfo_t idSplinePath::typeInfo[] = { { NULL, 0 } }; @@ -7471,7 +7471,7 @@ static classVariableInfo_t floorInfo_s_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idElevator_typeInfo[] = { +classVariableInfo_t idElevator::typeInfo[] = { { "elevatorState_t", "state", (intptr_t)(&((idElevator *)0)->state), sizeof( ((idElevator *)0)->state ) }, { "idList < floorInfo_s >", "floorInfo", (intptr_t)(&((idElevator *)0)->floorInfo), sizeof( ((idElevator *)0)->floorInfo ) }, { "int", "currentFloor", (intptr_t)(&((idElevator *)0)->currentFloor), sizeof( ((idElevator *)0)->currentFloor ) }, @@ -7484,8 +7484,8 @@ static classVariableInfo_t idElevator_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idMover_Binary_typeInfo[] = { - { ": idVec3", "pos1", (intptr_t)(&((idMover_Binary *)0)->pos1), sizeof( ((idMover_Binary *)0)->pos1 ) }, +classVariableInfo_t idMover_Binary::typeInfo[] = { + { "idVec3", "pos1", (intptr_t)(&((idMover_Binary *)0)->pos1), sizeof( ((idMover_Binary *)0)->pos1 ) }, { "idVec3", "pos2", (intptr_t)(&((idMover_Binary *)0)->pos2), sizeof( ((idMover_Binary *)0)->pos2 ) }, { "moverState_t", "moverState", (intptr_t)(&((idMover_Binary *)0)->moverState), sizeof( ((idMover_Binary *)0)->moverState ) }, { "idMover_Binary *", "moveMaster", (intptr_t)(&((idMover_Binary *)0)->moveMaster), sizeof( ((idMover_Binary *)0)->moveMaster ) }, @@ -7514,8 +7514,8 @@ static classVariableInfo_t idMover_Binary_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idDoor_typeInfo[] = { - { ": float", "triggersize", (intptr_t)(&((idDoor *)0)->triggersize), sizeof( ((idDoor *)0)->triggersize ) }, +classVariableInfo_t idDoor::typeInfo[] = { + { "float", "triggersize", (intptr_t)(&((idDoor *)0)->triggersize), sizeof( ((idDoor *)0)->triggersize ) }, { "bool", "crusher", (intptr_t)(&((idDoor *)0)->crusher), sizeof( ((idDoor *)0)->crusher ) }, { "bool", "noTouch", (intptr_t)(&((idDoor *)0)->noTouch), sizeof( ((idDoor *)0)->noTouch ) }, { "bool", "nav_area_closed", (intptr_t)(&((idDoor *)0)->nav_area_closed), sizeof( ((idDoor *)0)->nav_area_closed ) }, @@ -7533,41 +7533,41 @@ static classVariableInfo_t idDoor_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idPlat_typeInfo[] = { - { ": idClipModel *", "trigger", (intptr_t)(&((idPlat *)0)->trigger), sizeof( ((idPlat *)0)->trigger ) }, +classVariableInfo_t idPlat::typeInfo[] = { + { "idClipModel *", "trigger", (intptr_t)(&((idPlat *)0)->trigger), sizeof( ((idPlat *)0)->trigger ) }, { "idVec3", "localTriggerOrigin", (intptr_t)(&((idPlat *)0)->localTriggerOrigin), sizeof( ((idPlat *)0)->localTriggerOrigin ) }, { "idMat3", "localTriggerAxis", (intptr_t)(&((idPlat *)0)->localTriggerAxis), sizeof( ((idPlat *)0)->localTriggerAxis ) }, { NULL, 0 } }; -static classVariableInfo_t idMover_Periodic_typeInfo[] = { - { ": idPhysics_Parametric", "physicsObj", (intptr_t)(&((idMover_Periodic *)0)->physicsObj), sizeof( ((idMover_Periodic *)0)->physicsObj ) }, +classVariableInfo_t idMover_Periodic::typeInfo[] = { + { "idPhysics_Parametric", "physicsObj", (intptr_t)(&((idMover_Periodic *)0)->physicsObj), sizeof( ((idMover_Periodic *)0)->physicsObj ) }, { "float", "damage", (intptr_t)(&((idMover_Periodic *)0)->damage), sizeof( ((idMover_Periodic *)0)->damage ) }, { NULL, 0 } }; -static classVariableInfo_t idRotater_typeInfo[] = { - { ": idEntityPtr < idEntity >", "activatedBy", (intptr_t)(&((idRotater *)0)->activatedBy), sizeof( ((idRotater *)0)->activatedBy ) }, +classVariableInfo_t idRotater::typeInfo[] = { + { "idEntityPtr < idEntity >", "activatedBy", (intptr_t)(&((idRotater *)0)->activatedBy), sizeof( ((idRotater *)0)->activatedBy ) }, { NULL, 0 } }; -static classVariableInfo_t idBobber_typeInfo[] = { +classVariableInfo_t idBobber::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idPendulum_typeInfo[] = { +classVariableInfo_t idPendulum::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idRiser_typeInfo[] = { +classVariableInfo_t idRiser::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idCamera_typeInfo[] = { +classVariableInfo_t idCamera::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idCameraView_typeInfo[] = { +classVariableInfo_t idCameraView::typeInfo[] = { { "float", "fov", (intptr_t)(&((idCameraView *)0)->fov), sizeof( ((idCameraView *)0)->fov ) }, { "idEntity *", "attachedTo", (intptr_t)(&((idCameraView *)0)->attachedTo), sizeof( ((idCameraView *)0)->attachedTo ) }, { "idEntity *", "attachedView", (intptr_t)(&((idCameraView *)0)->attachedView), sizeof( ((idCameraView *)0)->attachedView ) }, @@ -7581,8 +7581,8 @@ static classVariableInfo_t cameraFrame_t_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idCameraAnim_typeInfo[] = { - { ": int", "threadNum", (intptr_t)(&((idCameraAnim *)0)->threadNum), sizeof( ((idCameraAnim *)0)->threadNum ) }, +classVariableInfo_t idCameraAnim::typeInfo[] = { + { "int", "threadNum", (intptr_t)(&((idCameraAnim *)0)->threadNum), sizeof( ((idCameraAnim *)0)->threadNum ) }, { "idVec3", "offset", (intptr_t)(&((idCameraAnim *)0)->offset), sizeof( ((idCameraAnim *)0)->offset ) }, { "int", "frameRate", (intptr_t)(&((idCameraAnim *)0)->frameRate), sizeof( ((idCameraAnim *)0)->frameRate ) }, { "int", "starttime", (intptr_t)(&((idCameraAnim *)0)->starttime), sizeof( ((idCameraAnim *)0)->starttime ) }, @@ -7593,8 +7593,8 @@ static classVariableInfo_t idCameraAnim_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idMoveable_typeInfo[] = { - { ": idPhysics_RigidBody", "physicsObj", (intptr_t)(&((idMoveable *)0)->physicsObj), sizeof( ((idMoveable *)0)->physicsObj ) }, +classVariableInfo_t idMoveable::typeInfo[] = { + { "idPhysics_RigidBody", "physicsObj", (intptr_t)(&((idMoveable *)0)->physicsObj), sizeof( ((idMoveable *)0)->physicsObj ) }, { "idStr", "brokenModel", (intptr_t)(&((idMoveable *)0)->brokenModel), sizeof( ((idMoveable *)0)->brokenModel ) }, { "idStr", "damage", (intptr_t)(&((idMoveable *)0)->damage), sizeof( ((idMoveable *)0)->damage ) }, { "idStr", "fxCollide", (intptr_t)(&((idMoveable *)0)->fxCollide), sizeof( ((idMoveable *)0)->fxCollide ) }, @@ -7612,8 +7612,8 @@ static classVariableInfo_t idMoveable_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idBarrel_typeInfo[] = { - { ": float", "radius", (intptr_t)(&((idBarrel *)0)->radius), sizeof( ((idBarrel *)0)->radius ) }, +classVariableInfo_t idBarrel::typeInfo[] = { + { "float", "radius", (intptr_t)(&((idBarrel *)0)->radius), sizeof( ((idBarrel *)0)->radius ) }, { "int", "barrelAxis", (intptr_t)(&((idBarrel *)0)->barrelAxis), sizeof( ((idBarrel *)0)->barrelAxis ) }, { "idVec3", "lastOrigin", (intptr_t)(&((idBarrel *)0)->lastOrigin), sizeof( ((idBarrel *)0)->lastOrigin ) }, { "idMat3", "lastAxis", (intptr_t)(&((idBarrel *)0)->lastAxis), sizeof( ((idBarrel *)0)->lastAxis ) }, @@ -7622,7 +7622,7 @@ static classVariableInfo_t idBarrel_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idExplodingBarrel_typeInfo[] = { +classVariableInfo_t idExplodingBarrel::typeInfo[] = { { "explode_state_t", "state", (intptr_t)(&((idExplodingBarrel *)0)->state), sizeof( ((idExplodingBarrel *)0)->state ) }, { "idVec3", "spawnOrigin", (intptr_t)(&((idExplodingBarrel *)0)->spawnOrigin), sizeof( ((idExplodingBarrel *)0)->spawnOrigin ) }, { "idMat3", "spawnAxis", (intptr_t)(&((idExplodingBarrel *)0)->spawnAxis), sizeof( ((idExplodingBarrel *)0)->spawnAxis ) }, @@ -7636,74 +7636,74 @@ static classVariableInfo_t idExplodingBarrel_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_typeInfo[] = { +classVariableInfo_t idTarget::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_Remove_typeInfo[] = { +classVariableInfo_t idTarget_Remove::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_Show_typeInfo[] = { +classVariableInfo_t idTarget_Show::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_Damage_typeInfo[] = { +classVariableInfo_t idTarget_Damage::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_SessionCommand_typeInfo[] = { +classVariableInfo_t idTarget_SessionCommand::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_EndLevel_typeInfo[] = { +classVariableInfo_t idTarget_EndLevel::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_WaitForButton_typeInfo[] = { +classVariableInfo_t idTarget_WaitForButton::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_SetGlobalShaderTime_typeInfo[] = { +classVariableInfo_t idTarget_SetGlobalShaderTime::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_SetShaderParm_typeInfo[] = { +classVariableInfo_t idTarget_SetShaderParm::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_SetShaderTime_typeInfo[] = { +classVariableInfo_t idTarget_SetShaderTime::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_FadeEntity_typeInfo[] = { - { ": idVec4", "fadeFrom", (intptr_t)(&((idTarget_FadeEntity *)0)->fadeFrom), sizeof( ((idTarget_FadeEntity *)0)->fadeFrom ) }, +classVariableInfo_t idTarget_FadeEntity::typeInfo[] = { + { "idVec4", "fadeFrom", (intptr_t)(&((idTarget_FadeEntity *)0)->fadeFrom), sizeof( ((idTarget_FadeEntity *)0)->fadeFrom ) }, { "int", "fadeStart", (intptr_t)(&((idTarget_FadeEntity *)0)->fadeStart), sizeof( ((idTarget_FadeEntity *)0)->fadeStart ) }, { "int", "fadeEnd", (intptr_t)(&((idTarget_FadeEntity *)0)->fadeEnd), sizeof( ((idTarget_FadeEntity *)0)->fadeEnd ) }, { NULL, 0 } }; -static classVariableInfo_t idTarget_LightFadeIn_typeInfo[] = { +classVariableInfo_t idTarget_LightFadeIn::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_LightFadeOut_typeInfo[] = { +classVariableInfo_t idTarget_LightFadeOut::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_Give_typeInfo[] = { +classVariableInfo_t idTarget_Give::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_GiveEmail_typeInfo[] = { +classVariableInfo_t idTarget_GiveEmail::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_SetModel_typeInfo[] = { +classVariableInfo_t idTarget_SetModel::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_SetInfluence_typeInfo[] = { +classVariableInfo_t idTarget_SetInfluence::typeInfo[] = { { "idList < int >", "lightList", (intptr_t)(&((idTarget_SetInfluence *)0)->lightList), sizeof( ((idTarget_SetInfluence *)0)->lightList ) }, { "idList < int >", "guiList", (intptr_t)(&((idTarget_SetInfluence *)0)->guiList), sizeof( ((idTarget_SetInfluence *)0)->guiList ) }, { "idList < int >", "soundList", (intptr_t)(&((idTarget_SetInfluence *)0)->soundList), sizeof( ((idTarget_SetInfluence *)0)->soundList ) }, @@ -7720,63 +7720,63 @@ static classVariableInfo_t idTarget_SetInfluence_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_SetKeyVal_typeInfo[] = { +classVariableInfo_t idTarget_SetKeyVal::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_SetFov_typeInfo[] = { - { ": idInterpolate < int >", "fovSetting", (intptr_t)(&((idTarget_SetFov *)0)->fovSetting), sizeof( ((idTarget_SetFov *)0)->fovSetting ) }, +classVariableInfo_t idTarget_SetFov::typeInfo[] = { + { "idInterpolate < int >", "fovSetting", (intptr_t)(&((idTarget_SetFov *)0)->fovSetting), sizeof( ((idTarget_SetFov *)0)->fovSetting ) }, { NULL, 0 } }; -static classVariableInfo_t idTarget_SetPrimaryObjective_typeInfo[] = { +classVariableInfo_t idTarget_SetPrimaryObjective::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_LockDoor_typeInfo[] = { +classVariableInfo_t idTarget_LockDoor::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_CallObjectFunction_typeInfo[] = { +classVariableInfo_t idTarget_CallObjectFunction::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_EnableLevelWeapons_typeInfo[] = { +classVariableInfo_t idTarget_EnableLevelWeapons::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_Tip_typeInfo[] = { - { ": idVec3", "playerPos", (intptr_t)(&((idTarget_Tip *)0)->playerPos), sizeof( ((idTarget_Tip *)0)->playerPos ) }, +classVariableInfo_t idTarget_Tip::typeInfo[] = { + { "idVec3", "playerPos", (intptr_t)(&((idTarget_Tip *)0)->playerPos), sizeof( ((idTarget_Tip *)0)->playerPos ) }, { NULL, 0 } }; -static classVariableInfo_t idTarget_GiveSecurity_typeInfo[] = { +classVariableInfo_t idTarget_GiveSecurity::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_RemoveWeapons_typeInfo[] = { +classVariableInfo_t idTarget_RemoveWeapons::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_LevelTrigger_typeInfo[] = { +classVariableInfo_t idTarget_LevelTrigger::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_EnableStamina_typeInfo[] = { +classVariableInfo_t idTarget_EnableStamina::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTarget_FadeSoundClass_typeInfo[] = { +classVariableInfo_t idTarget_FadeSoundClass::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTrigger_typeInfo[] = { +classVariableInfo_t idTrigger::typeInfo[] = { { "const function_t *", "scriptFunction", (intptr_t)(&((idTrigger *)0)->scriptFunction), sizeof( ((idTrigger *)0)->scriptFunction ) }, { NULL, 0 } }; -static classVariableInfo_t idTrigger_Multi_typeInfo[] = { - { ": float", "wait", (intptr_t)(&((idTrigger_Multi *)0)->wait), sizeof( ((idTrigger_Multi *)0)->wait ) }, +classVariableInfo_t idTrigger_Multi::typeInfo[] = { + { "float", "wait", (intptr_t)(&((idTrigger_Multi *)0)->wait), sizeof( ((idTrigger_Multi *)0)->wait ) }, { "float", "random", (intptr_t)(&((idTrigger_Multi *)0)->random), sizeof( ((idTrigger_Multi *)0)->random ) }, { "float", "delay", (intptr_t)(&((idTrigger_Multi *)0)->delay), sizeof( ((idTrigger_Multi *)0)->delay ) }, { "float", "random_delay", (intptr_t)(&((idTrigger_Multi *)0)->random_delay), sizeof( ((idTrigger_Multi *)0)->random_delay ) }, @@ -7790,8 +7790,8 @@ static classVariableInfo_t idTrigger_Multi_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTrigger_EntityName_typeInfo[] = { - { ": float", "wait", (intptr_t)(&((idTrigger_EntityName *)0)->wait), sizeof( ((idTrigger_EntityName *)0)->wait ) }, +classVariableInfo_t idTrigger_EntityName::typeInfo[] = { + { "float", "wait", (intptr_t)(&((idTrigger_EntityName *)0)->wait), sizeof( ((idTrigger_EntityName *)0)->wait ) }, { "float", "random", (intptr_t)(&((idTrigger_EntityName *)0)->random), sizeof( ((idTrigger_EntityName *)0)->random ) }, { "float", "delay", (intptr_t)(&((idTrigger_EntityName *)0)->delay), sizeof( ((idTrigger_EntityName *)0)->delay ) }, { "float", "random_delay", (intptr_t)(&((idTrigger_EntityName *)0)->random_delay), sizeof( ((idTrigger_EntityName *)0)->random_delay ) }, @@ -7801,8 +7801,8 @@ static classVariableInfo_t idTrigger_EntityName_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTrigger_Timer_typeInfo[] = { - { ": float", "random", (intptr_t)(&((idTrigger_Timer *)0)->random), sizeof( ((idTrigger_Timer *)0)->random ) }, +classVariableInfo_t idTrigger_Timer::typeInfo[] = { + { "float", "random", (intptr_t)(&((idTrigger_Timer *)0)->random), sizeof( ((idTrigger_Timer *)0)->random ) }, { "float", "wait", (intptr_t)(&((idTrigger_Timer *)0)->wait), sizeof( ((idTrigger_Timer *)0)->wait ) }, { "bool", "on", (intptr_t)(&((idTrigger_Timer *)0)->on), sizeof( ((idTrigger_Timer *)0)->on ) }, { "float", "delay", (intptr_t)(&((idTrigger_Timer *)0)->delay), sizeof( ((idTrigger_Timer *)0)->delay ) }, @@ -7811,31 +7811,31 @@ static classVariableInfo_t idTrigger_Timer_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTrigger_Count_typeInfo[] = { - { ": int", "goal", (intptr_t)(&((idTrigger_Count *)0)->goal), sizeof( ((idTrigger_Count *)0)->goal ) }, +classVariableInfo_t idTrigger_Count::typeInfo[] = { + { "int", "goal", (intptr_t)(&((idTrigger_Count *)0)->goal), sizeof( ((idTrigger_Count *)0)->goal ) }, { "int", "count", (intptr_t)(&((idTrigger_Count *)0)->count), sizeof( ((idTrigger_Count *)0)->count ) }, { "float", "delay", (intptr_t)(&((idTrigger_Count *)0)->delay), sizeof( ((idTrigger_Count *)0)->delay ) }, { NULL, 0 } }; -static classVariableInfo_t idTrigger_Hurt_typeInfo[] = { - { ": bool", "on", (intptr_t)(&((idTrigger_Hurt *)0)->on), sizeof( ((idTrigger_Hurt *)0)->on ) }, +classVariableInfo_t idTrigger_Hurt::typeInfo[] = { + { "bool", "on", (intptr_t)(&((idTrigger_Hurt *)0)->on), sizeof( ((idTrigger_Hurt *)0)->on ) }, { "float", "delay", (intptr_t)(&((idTrigger_Hurt *)0)->delay), sizeof( ((idTrigger_Hurt *)0)->delay ) }, { "int", "nextTime", (intptr_t)(&((idTrigger_Hurt *)0)->nextTime), sizeof( ((idTrigger_Hurt *)0)->nextTime ) }, { NULL, 0 } }; -static classVariableInfo_t idTrigger_Fade_typeInfo[] = { +classVariableInfo_t idTrigger_Fade::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTrigger_Touch_typeInfo[] = { - { ": idClipModel *", "clipModel", (intptr_t)(&((idTrigger_Touch *)0)->clipModel), sizeof( ((idTrigger_Touch *)0)->clipModel ) }, +classVariableInfo_t idTrigger_Touch::typeInfo[] = { + { "idClipModel *", "clipModel", (intptr_t)(&((idTrigger_Touch *)0)->clipModel), sizeof( ((idTrigger_Touch *)0)->clipModel ) }, { NULL, 0 } }; -static classVariableInfo_t idSound_typeInfo[] = { - { ": float", "lastSoundVol", (intptr_t)(&((idSound *)0)->lastSoundVol), sizeof( ((idSound *)0)->lastSoundVol ) }, +classVariableInfo_t idSound::typeInfo[] = { + { "float", "lastSoundVol", (intptr_t)(&((idSound *)0)->lastSoundVol), sizeof( ((idSound *)0)->lastSoundVol ) }, { "float", "soundVol", (intptr_t)(&((idSound *)0)->soundVol), sizeof( ((idSound *)0)->soundVol ) }, { "float", "random", (intptr_t)(&((idSound *)0)->random), sizeof( ((idSound *)0)->random ) }, { "float", "wait", (intptr_t)(&((idSound *)0)->wait), sizeof( ((idSound *)0)->wait ) }, @@ -7861,7 +7861,7 @@ static classVariableInfo_t idFXLocalAction_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idEntityFx_typeInfo[] = { +classVariableInfo_t idEntityFx::typeInfo[] = { { "int", "started", (intptr_t)(&((idEntityFx *)0)->started), sizeof( ((idEntityFx *)0)->started ) }, { "int", "nextTriggerTime", (intptr_t)(&((idEntityFx *)0)->nextTriggerTime), sizeof( ((idEntityFx *)0)->nextTriggerTime ) }, { "const idDeclFX *", "fxEffect", (intptr_t)(&((idEntityFx *)0)->fxEffect), sizeof( ((idEntityFx *)0)->fxEffect ) }, @@ -7870,11 +7870,11 @@ static classVariableInfo_t idEntityFx_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTeleporter_typeInfo[] = { +classVariableInfo_t idTeleporter::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idSecurityCamera_typeInfo[] = { +classVariableInfo_t idSecurityCamera::typeInfo[] = { { "float", "angle", (intptr_t)(&((idSecurityCamera *)0)->angle), sizeof( ((idSecurityCamera *)0)->angle ) }, { "float", "sweepAngle", (intptr_t)(&((idSecurityCamera *)0)->sweepAngle), sizeof( ((idSecurityCamera *)0)->sweepAngle ) }, { "int", "modelAxis", (intptr_t)(&((idSecurityCamera *)0)->modelAxis), sizeof( ((idSecurityCamera *)0)->modelAxis ) }, @@ -7908,8 +7908,8 @@ static classVariableInfo_t shard_t_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idBrittleFracture_typeInfo[] = { - { ": const idMaterial *", "material", (intptr_t)(&((idBrittleFracture *)0)->material), sizeof( ((idBrittleFracture *)0)->material ) }, +classVariableInfo_t idBrittleFracture::typeInfo[] = { + { "const idMaterial *", "material", (intptr_t)(&((idBrittleFracture *)0)->material), sizeof( ((idBrittleFracture *)0)->material ) }, { "const idMaterial *", "decalMaterial", (intptr_t)(&((idBrittleFracture *)0)->decalMaterial), sizeof( ((idBrittleFracture *)0)->decalMaterial ) }, { "float", "decalSize", (intptr_t)(&((idBrittleFracture *)0)->decalSize), sizeof( ((idBrittleFracture *)0)->decalSize ) }, { "float", "maxShardArea", (intptr_t)(&((idBrittleFracture *)0)->maxShardArea), sizeof( ((idBrittleFracture *)0)->maxShardArea ) }, @@ -7981,8 +7981,8 @@ static classVariableInfo_t idMoveState_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idAI_typeInfo[] = { - { ": idNAV *", "aas", (intptr_t)(&((idAI *)0)->aas), sizeof( ((idAI *)0)->aas ) }, +classVariableInfo_t idAI::typeInfo[] = { + { "idNAV *", "aas", (intptr_t)(&((idAI *)0)->aas), sizeof( ((idAI *)0)->aas ) }, { "int", "travelFlags", (intptr_t)(&((idAI *)0)->travelFlags), sizeof( ((idAI *)0)->travelFlags ) }, { "idMoveState", "move", (intptr_t)(&((idAI *)0)->move), sizeof( ((idAI *)0)->move ) }, { "idMoveState", "savedMove", (intptr_t)(&((idAI *)0)->savedMove), sizeof( ((idAI *)0)->savedMove ) }, @@ -8100,8 +8100,8 @@ static classVariableInfo_t idAI_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idCombatNode_typeInfo[] = { - { ": float", "min_dist", (intptr_t)(&((idCombatNode *)0)->min_dist), sizeof( ((idCombatNode *)0)->min_dist ) }, +classVariableInfo_t idCombatNode::typeInfo[] = { + { "float", "min_dist", (intptr_t)(&((idCombatNode *)0)->min_dist), sizeof( ((idCombatNode *)0)->min_dist ) }, { "float", "max_dist", (intptr_t)(&((idCombatNode *)0)->max_dist), sizeof( ((idCombatNode *)0)->max_dist ) }, { "float", "cone_dist", (intptr_t)(&((idCombatNode *)0)->cone_dist), sizeof( ((idCombatNode *)0)->cone_dist ) }, { "float", "min_height", (intptr_t)(&((idCombatNode *)0)->min_height), sizeof( ((idCombatNode *)0)->min_height ) }, @@ -8113,11 +8113,11 @@ static classVariableInfo_t idCombatNode_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idAI_Vagary_typeInfo[] = { +classVariableInfo_t idAI_Vagary::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmAIObject_typeInfo[] = { +classVariableInfo_t rvmAIObject::typeInfo[] = { { "idAI *", "owner", (intptr_t)(&((rvmAIObject *)0)->owner), sizeof( ((rvmAIObject *)0)->owner ) }, { "idStr", "currentState", (intptr_t)(&((rvmAIObject *)0)->currentState), sizeof( ((rvmAIObject *)0)->currentState ) }, { "idStr", "currentAction", (intptr_t)(&((rvmAIObject *)0)->currentAction), sizeof( ((rvmAIObject *)0)->currentAction ) }, @@ -8137,8 +8137,8 @@ static classVariableInfo_t rvmAIObject_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterBase_typeInfo[] = { - { ": float", "run_distance", (intptr_t)(&((rvmMonsterBase *)0)->run_distance), sizeof( ((rvmMonsterBase *)0)->run_distance ) }, +classVariableInfo_t rvmMonsterBase::typeInfo[] = { + { "float", "run_distance", (intptr_t)(&((rvmMonsterBase *)0)->run_distance), sizeof( ((rvmMonsterBase *)0)->run_distance ) }, { "float", "walk_turn", (intptr_t)(&((rvmMonsterBase *)0)->walk_turn), sizeof( ((rvmMonsterBase *)0)->walk_turn ) }, { "bool", "run", (intptr_t)(&((rvmMonsterBase *)0)->run), sizeof( ((rvmMonsterBase *)0)->run ) }, { "bool", "ambush", (intptr_t)(&((rvmMonsterBase *)0)->ambush), sizeof( ((rvmMonsterBase *)0)->ambush ) }, @@ -8155,44 +8155,44 @@ static classVariableInfo_t rvmMonsterBase_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterZombieBase_typeInfo[] = { +classVariableInfo_t rvmMonsterZombieBase::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterZombie_typeInfo[] = { - { ": float", "painNextTime", (intptr_t)(&((rvmMonsterZombie *)0)->painNextTime), sizeof( ((rvmMonsterZombie *)0)->painNextTime ) }, +classVariableInfo_t rvmMonsterZombie::typeInfo[] = { + { "float", "painNextTime", (intptr_t)(&((rvmMonsterZombie *)0)->painNextTime), sizeof( ((rvmMonsterZombie *)0)->painNextTime ) }, { "bool", "can_run", (intptr_t)(&((rvmMonsterZombie *)0)->can_run), sizeof( ((rvmMonsterZombie *)0)->can_run ) }, { NULL, 0 } }; -static classVariableInfo_t rvmMonsterZombieBernie_typeInfo[] = { - { ": float", "painNextTime", (intptr_t)(&((rvmMonsterZombieBernie *)0)->painNextTime), sizeof( ((rvmMonsterZombieBernie *)0)->painNextTime ) }, +classVariableInfo_t rvmMonsterZombieBernie::typeInfo[] = { + { "float", "painNextTime", (intptr_t)(&((rvmMonsterZombieBernie *)0)->painNextTime), sizeof( ((rvmMonsterZombieBernie *)0)->painNextTime ) }, { NULL, 0 } }; -static classVariableInfo_t rvmMonsterZombieMorgue_typeInfo[] = { - { ": float", "painNextTime", (intptr_t)(&((rvmMonsterZombieMorgue *)0)->painNextTime), sizeof( ((rvmMonsterZombieMorgue *)0)->painNextTime ) }, +classVariableInfo_t rvmMonsterZombieMorgue::typeInfo[] = { + { "float", "painNextTime", (intptr_t)(&((rvmMonsterZombieMorgue *)0)->painNextTime), sizeof( ((rvmMonsterZombieMorgue *)0)->painNextTime ) }, { NULL, 0 } }; -static classVariableInfo_t rvmMonsterZombieSawyer_typeInfo[] = { - { ": bool", "attack", (intptr_t)(&((rvmMonsterZombieSawyer *)0)->attack), sizeof( ((rvmMonsterZombieSawyer *)0)->attack ) }, +classVariableInfo_t rvmMonsterZombieSawyer::typeInfo[] = { + { "bool", "attack", (intptr_t)(&((rvmMonsterZombieSawyer *)0)->attack), sizeof( ((rvmMonsterZombieSawyer *)0)->attack ) }, { "float", "painNextTime", (intptr_t)(&((rvmMonsterZombieSawyer *)0)->painNextTime), sizeof( ((rvmMonsterZombieSawyer *)0)->painNextTime ) }, { "float", "nextHitTime", (intptr_t)(&((rvmMonsterZombieSawyer *)0)->nextHitTime), sizeof( ((rvmMonsterZombieSawyer *)0)->nextHitTime ) }, { "int", "bloodSmokeFrames", (intptr_t)(&((rvmMonsterZombieSawyer *)0)->bloodSmokeFrames), sizeof( ((rvmMonsterZombieSawyer *)0)->bloodSmokeFrames ) }, { NULL, 0 } }; -static classVariableInfo_t rvmMonsterZombieCommandoTentacle_typeInfo[] = { - { ": float", "nextAttack", (intptr_t)(&((rvmMonsterZombieCommandoTentacle *)0)->nextAttack), sizeof( ((rvmMonsterZombieCommandoTentacle *)0)->nextAttack ) }, +classVariableInfo_t rvmMonsterZombieCommandoTentacle::typeInfo[] = { + { "float", "nextAttack", (intptr_t)(&((rvmMonsterZombieCommandoTentacle *)0)->nextAttack), sizeof( ((rvmMonsterZombieCommandoTentacle *)0)->nextAttack ) }, { "float", "nextNoFOVAttack", (intptr_t)(&((rvmMonsterZombieCommandoTentacle *)0)->nextNoFOVAttack), sizeof( ((rvmMonsterZombieCommandoTentacle *)0)->nextNoFOVAttack ) }, { "bool", "tentacleDamage", (intptr_t)(&((rvmMonsterZombieCommandoTentacle *)0)->tentacleDamage), sizeof( ((rvmMonsterZombieCommandoTentacle *)0)->tentacleDamage ) }, { "float", "painNextTime", (intptr_t)(&((rvmMonsterZombieCommandoTentacle *)0)->painNextTime), sizeof( ((rvmMonsterZombieCommandoTentacle *)0)->painNextTime ) }, { NULL, 0 } }; -static classVariableInfo_t rvmMonsterZombieCommandoCGun_typeInfo[] = { - { ": bool", "fire", (intptr_t)(&((rvmMonsterZombieCommandoCGun *)0)->fire), sizeof( ((rvmMonsterZombieCommandoCGun *)0)->fire ) }, +classVariableInfo_t rvmMonsterZombieCommandoCGun::typeInfo[] = { + { "bool", "fire", (intptr_t)(&((rvmMonsterZombieCommandoCGun *)0)->fire), sizeof( ((rvmMonsterZombieCommandoCGun *)0)->fire ) }, { "bool", "crouch_fire", (intptr_t)(&((rvmMonsterZombieCommandoCGun *)0)->crouch_fire), sizeof( ((rvmMonsterZombieCommandoCGun *)0)->crouch_fire ) }, { "bool", "step_left", (intptr_t)(&((rvmMonsterZombieCommandoCGun *)0)->step_left), sizeof( ((rvmMonsterZombieCommandoCGun *)0)->step_left ) }, { "bool", "step_right", (intptr_t)(&((rvmMonsterZombieCommandoCGun *)0)->step_right), sizeof( ((rvmMonsterZombieCommandoCGun *)0)->step_right ) }, @@ -8209,8 +8209,8 @@ static classVariableInfo_t rvmMonsterZombieCommandoCGun_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterZombieSecurityPistol_typeInfo[] = { - { ": bool", "fire", (intptr_t)(&((rvmMonsterZombieSecurityPistol *)0)->fire), sizeof( ((rvmMonsterZombieSecurityPistol *)0)->fire ) }, +classVariableInfo_t rvmMonsterZombieSecurityPistol::typeInfo[] = { + { "bool", "fire", (intptr_t)(&((rvmMonsterZombieSecurityPistol *)0)->fire), sizeof( ((rvmMonsterZombieSecurityPistol *)0)->fire ) }, { "bool", "crouch_fire", (intptr_t)(&((rvmMonsterZombieSecurityPistol *)0)->crouch_fire), sizeof( ((rvmMonsterZombieSecurityPistol *)0)->crouch_fire ) }, { "bool", "step_left", (intptr_t)(&((rvmMonsterZombieSecurityPistol *)0)->step_left), sizeof( ((rvmMonsterZombieSecurityPistol *)0)->step_left ) }, { "bool", "step_right", (intptr_t)(&((rvmMonsterZombieSecurityPistol *)0)->step_right), sizeof( ((rvmMonsterZombieSecurityPistol *)0)->step_right ) }, @@ -8227,7 +8227,7 @@ static classVariableInfo_t rvmMonsterZombieSecurityPistol_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmCharacter_typeInfo[] = { +classVariableInfo_t rvmCharacter::typeInfo[] = { { "float", "talkMode", (intptr_t)(&((rvmCharacter *)0)->talkMode), sizeof( ((rvmCharacter *)0)->talkMode ) }, { "int", "talkSecondaryIndex", (intptr_t)(&((rvmCharacter *)0)->talkSecondaryIndex), sizeof( ((rvmCharacter *)0)->talkSecondaryIndex ) }, { "idStr", "customAnim", (intptr_t)(&((rvmCharacter *)0)->customAnim), sizeof( ((rvmCharacter *)0)->customAnim ) }, @@ -8254,15 +8254,15 @@ static classVariableInfo_t rvmCharacter_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmAICharacterProne_typeInfo[] = { +classVariableInfo_t rvmAICharacterProne::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmFollower_typeInfo[] = { +classVariableInfo_t rvmFollower::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmCharSentry_typeInfo[] = { +classVariableInfo_t rvmCharSentry::typeInfo[] = { { "bool", "lead_player", (intptr_t)(&((rvmCharSentry *)0)->lead_player), sizeof( ((rvmCharSentry *)0)->lead_player ) }, { "bool", "hanging", (intptr_t)(&((rvmCharSentry *)0)->hanging), sizeof( ((rvmCharSentry *)0)->hanging ) }, { "bool", "awake", (intptr_t)(&((rvmCharSentry *)0)->awake), sizeof( ((rvmCharSentry *)0)->awake ) }, @@ -8282,20 +8282,20 @@ static classVariableInfo_t rvmCharSentry_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmAIAlphaLabs2Scientist1_typeInfo[] = { +classVariableInfo_t rvmAIAlphaLabs2Scientist1::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterDemonPinky_typeInfo[] = { - { ": float", "nextDodge", (intptr_t)(&((rvmMonsterDemonPinky *)0)->nextDodge), sizeof( ((rvmMonsterDemonPinky *)0)->nextDodge ) }, +classVariableInfo_t rvmMonsterDemonPinky::typeInfo[] = { + { "float", "nextDodge", (intptr_t)(&((rvmMonsterDemonPinky *)0)->nextDodge), sizeof( ((rvmMonsterDemonPinky *)0)->nextDodge ) }, { "float", "nextRoar", (intptr_t)(&((rvmMonsterDemonPinky *)0)->nextRoar), sizeof( ((rvmMonsterDemonPinky *)0)->nextRoar ) }, { "float", "painNextTime", (intptr_t)(&((rvmMonsterDemonPinky *)0)->painNextTime), sizeof( ((rvmMonsterDemonPinky *)0)->painNextTime ) }, { "idEntityPtr < idEntity >", "combat_node", (intptr_t)(&((rvmMonsterDemonPinky *)0)->combat_node), sizeof( ((rvmMonsterDemonPinky *)0)->combat_node ) }, { NULL, 0 } }; -static classVariableInfo_t rvmMonsterDemonImp_typeInfo[] = { - { ": float", "nextDodge", (intptr_t)(&((rvmMonsterDemonImp *)0)->nextDodge), sizeof( ((rvmMonsterDemonImp *)0)->nextDodge ) }, +classVariableInfo_t rvmMonsterDemonImp::typeInfo[] = { + { "float", "nextDodge", (intptr_t)(&((rvmMonsterDemonImp *)0)->nextDodge), sizeof( ((rvmMonsterDemonImp *)0)->nextDodge ) }, { "float", "nextAttack", (intptr_t)(&((rvmMonsterDemonImp *)0)->nextAttack), sizeof( ((rvmMonsterDemonImp *)0)->nextAttack ) }, { "float", "nextNoFOVAttack", (intptr_t)(&((rvmMonsterDemonImp *)0)->nextNoFOVAttack), sizeof( ((rvmMonsterDemonImp *)0)->nextNoFOVAttack ) }, { "float", "nextLeap", (intptr_t)(&((rvmMonsterDemonImp *)0)->nextLeap), sizeof( ((rvmMonsterDemonImp *)0)->nextLeap ) }, @@ -8306,8 +8306,8 @@ static classVariableInfo_t rvmMonsterDemonImp_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterDemonVulgar_typeInfo[] = { - { ": float", "nextDodge", (intptr_t)(&((rvmMonsterDemonVulgar *)0)->nextDodge), sizeof( ((rvmMonsterDemonVulgar *)0)->nextDodge ) }, +classVariableInfo_t rvmMonsterDemonVulgar::typeInfo[] = { + { "float", "nextDodge", (intptr_t)(&((rvmMonsterDemonVulgar *)0)->nextDodge), sizeof( ((rvmMonsterDemonVulgar *)0)->nextDodge ) }, { "float", "nextAttack", (intptr_t)(&((rvmMonsterDemonVulgar *)0)->nextAttack), sizeof( ((rvmMonsterDemonVulgar *)0)->nextAttack ) }, { "float", "nextNoFOVAttack", (intptr_t)(&((rvmMonsterDemonVulgar *)0)->nextNoFOVAttack), sizeof( ((rvmMonsterDemonVulgar *)0)->nextNoFOVAttack ) }, { "float", "nextLeap", (intptr_t)(&((rvmMonsterDemonVulgar *)0)->nextLeap), sizeof( ((rvmMonsterDemonVulgar *)0)->nextLeap ) }, @@ -8318,8 +8318,8 @@ static classVariableInfo_t rvmMonsterDemonVulgar_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterDemonRevenant_typeInfo[] = { - { ": float", "nextDodge", (intptr_t)(&((rvmMonsterDemonRevenant *)0)->nextDodge), sizeof( ((rvmMonsterDemonRevenant *)0)->nextDodge ) }, +classVariableInfo_t rvmMonsterDemonRevenant::typeInfo[] = { + { "float", "nextDodge", (intptr_t)(&((rvmMonsterDemonRevenant *)0)->nextDodge), sizeof( ((rvmMonsterDemonRevenant *)0)->nextDodge ) }, { "float", "nextAttack", (intptr_t)(&((rvmMonsterDemonRevenant *)0)->nextAttack), sizeof( ((rvmMonsterDemonRevenant *)0)->nextAttack ) }, { "float", "nextNoFOVAttack", (intptr_t)(&((rvmMonsterDemonRevenant *)0)->nextNoFOVAttack), sizeof( ((rvmMonsterDemonRevenant *)0)->nextNoFOVAttack ) }, { "float", "nextLeap", (intptr_t)(&((rvmMonsterDemonRevenant *)0)->nextLeap), sizeof( ((rvmMonsterDemonRevenant *)0)->nextLeap ) }, @@ -8330,8 +8330,8 @@ static classVariableInfo_t rvmMonsterDemonRevenant_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterDemonHellknight_typeInfo[] = { - { ": float", "nextDodge", (intptr_t)(&((rvmMonsterDemonHellknight *)0)->nextDodge), sizeof( ((rvmMonsterDemonHellknight *)0)->nextDodge ) }, +classVariableInfo_t rvmMonsterDemonHellknight::typeInfo[] = { + { "float", "nextDodge", (intptr_t)(&((rvmMonsterDemonHellknight *)0)->nextDodge), sizeof( ((rvmMonsterDemonHellknight *)0)->nextDodge ) }, { "float", "nextAttack", (intptr_t)(&((rvmMonsterDemonHellknight *)0)->nextAttack), sizeof( ((rvmMonsterDemonHellknight *)0)->nextAttack ) }, { "float", "nextNoFOVAttack", (intptr_t)(&((rvmMonsterDemonHellknight *)0)->nextNoFOVAttack), sizeof( ((rvmMonsterDemonHellknight *)0)->nextNoFOVAttack ) }, { "float", "nextLeap", (intptr_t)(&((rvmMonsterDemonHellknight *)0)->nextLeap), sizeof( ((rvmMonsterDemonHellknight *)0)->nextLeap ) }, @@ -8342,8 +8342,8 @@ static classVariableInfo_t rvmMonsterDemonHellknight_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterDemonMaggot_typeInfo[] = { - { ": bool", "explode", (intptr_t)(&((rvmMonsterDemonMaggot *)0)->explode), sizeof( ((rvmMonsterDemonMaggot *)0)->explode ) }, +classVariableInfo_t rvmMonsterDemonMaggot::typeInfo[] = { + { "bool", "explode", (intptr_t)(&((rvmMonsterDemonMaggot *)0)->explode), sizeof( ((rvmMonsterDemonMaggot *)0)->explode ) }, { "float", "nextDodge", (intptr_t)(&((rvmMonsterDemonMaggot *)0)->nextDodge), sizeof( ((rvmMonsterDemonMaggot *)0)->nextDodge ) }, { "float", "nextLeap", (intptr_t)(&((rvmMonsterDemonMaggot *)0)->nextLeap), sizeof( ((rvmMonsterDemonMaggot *)0)->nextLeap ) }, { "float", "painNextTime", (intptr_t)(&((rvmMonsterDemonMaggot *)0)->painNextTime), sizeof( ((rvmMonsterDemonMaggot *)0)->painNextTime ) }, @@ -8352,8 +8352,8 @@ static classVariableInfo_t rvmMonsterDemonMaggot_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterDemonCherub_typeInfo[] = { - { ": bool", "explode", (intptr_t)(&((rvmMonsterDemonCherub *)0)->explode), sizeof( ((rvmMonsterDemonCherub *)0)->explode ) }, +classVariableInfo_t rvmMonsterDemonCherub::typeInfo[] = { + { "bool", "explode", (intptr_t)(&((rvmMonsterDemonCherub *)0)->explode), sizeof( ((rvmMonsterDemonCherub *)0)->explode ) }, { "float", "nextDodge", (intptr_t)(&((rvmMonsterDemonCherub *)0)->nextDodge), sizeof( ((rvmMonsterDemonCherub *)0)->nextDodge ) }, { "float", "nextLeap", (intptr_t)(&((rvmMonsterDemonCherub *)0)->nextLeap), sizeof( ((rvmMonsterDemonCherub *)0)->nextLeap ) }, { "float", "painNextTime", (intptr_t)(&((rvmMonsterDemonCherub *)0)->painNextTime), sizeof( ((rvmMonsterDemonCherub *)0)->painNextTime ) }, @@ -8362,8 +8362,8 @@ static classVariableInfo_t rvmMonsterDemonCherub_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterDemonTrite_typeInfo[] = { - { ": bool", "explode", (intptr_t)(&((rvmMonsterDemonTrite *)0)->explode), sizeof( ((rvmMonsterDemonTrite *)0)->explode ) }, +classVariableInfo_t rvmMonsterDemonTrite::typeInfo[] = { + { "bool", "explode", (intptr_t)(&((rvmMonsterDemonTrite *)0)->explode), sizeof( ((rvmMonsterDemonTrite *)0)->explode ) }, { "float", "nextDodge", (intptr_t)(&((rvmMonsterDemonTrite *)0)->nextDodge), sizeof( ((rvmMonsterDemonTrite *)0)->nextDodge ) }, { "float", "nextLeap", (intptr_t)(&((rvmMonsterDemonTrite *)0)->nextLeap), sizeof( ((rvmMonsterDemonTrite *)0)->nextLeap ) }, { "float", "painNextTime", (intptr_t)(&((rvmMonsterDemonTrite *)0)->painNextTime), sizeof( ((rvmMonsterDemonTrite *)0)->painNextTime ) }, @@ -8372,8 +8372,8 @@ static classVariableInfo_t rvmMonsterDemonTrite_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterDemonWraith_typeInfo[] = { - { ": bool", "invisible", (intptr_t)(&((rvmMonsterDemonWraith *)0)->invisible), sizeof( ((rvmMonsterDemonWraith *)0)->invisible ) }, +classVariableInfo_t rvmMonsterDemonWraith::typeInfo[] = { + { "bool", "invisible", (intptr_t)(&((rvmMonsterDemonWraith *)0)->invisible), sizeof( ((rvmMonsterDemonWraith *)0)->invisible ) }, { "float", "nextDodge", (intptr_t)(&((rvmMonsterDemonWraith *)0)->nextDodge), sizeof( ((rvmMonsterDemonWraith *)0)->nextDodge ) }, { "float", "nextInvisible", (intptr_t)(&((rvmMonsterDemonWraith *)0)->nextInvisible), sizeof( ((rvmMonsterDemonWraith *)0)->nextInvisible ) }, { "float", "painNextTime", (intptr_t)(&((rvmMonsterDemonWraith *)0)->painNextTime), sizeof( ((rvmMonsterDemonWraith *)0)->painNextTime ) }, @@ -8382,8 +8382,8 @@ static classVariableInfo_t rvmMonsterDemonWraith_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterDemonMancubus_typeInfo[] = { - { ": float", "nextAttack", (intptr_t)(&((rvmMonsterDemonMancubus *)0)->nextAttack), sizeof( ((rvmMonsterDemonMancubus *)0)->nextAttack ) }, +classVariableInfo_t rvmMonsterDemonMancubus::typeInfo[] = { + { "float", "nextAttack", (intptr_t)(&((rvmMonsterDemonMancubus *)0)->nextAttack), sizeof( ((rvmMonsterDemonMancubus *)0)->nextAttack ) }, { "float", "nextNoFOVAttack", (intptr_t)(&((rvmMonsterDemonMancubus *)0)->nextNoFOVAttack), sizeof( ((rvmMonsterDemonMancubus *)0)->nextNoFOVAttack ) }, { "float", "fire", (intptr_t)(&((rvmMonsterDemonMancubus *)0)->fire), sizeof( ((rvmMonsterDemonMancubus *)0)->fire ) }, { "float", "painNextTime", (intptr_t)(&((rvmMonsterDemonMancubus *)0)->painNextTime), sizeof( ((rvmMonsterDemonMancubus *)0)->painNextTime ) }, @@ -8391,8 +8391,8 @@ static classVariableInfo_t rvmMonsterDemonMancubus_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterDemonArchvile_typeInfo[] = { - { ": float", "nextDodge", (intptr_t)(&((rvmMonsterDemonArchvile *)0)->nextDodge), sizeof( ((rvmMonsterDemonArchvile *)0)->nextDodge ) }, +classVariableInfo_t rvmMonsterDemonArchvile::typeInfo[] = { + { "float", "nextDodge", (intptr_t)(&((rvmMonsterDemonArchvile *)0)->nextDodge), sizeof( ((rvmMonsterDemonArchvile *)0)->nextDodge ) }, { "float", "nextAttack", (intptr_t)(&((rvmMonsterDemonArchvile *)0)->nextAttack), sizeof( ((rvmMonsterDemonArchvile *)0)->nextAttack ) }, { "float", "nextNoFOVAttack", (intptr_t)(&((rvmMonsterDemonArchvile *)0)->nextNoFOVAttack), sizeof( ((rvmMonsterDemonArchvile *)0)->nextNoFOVAttack ) }, { "float", "painNextTime", (intptr_t)(&((rvmMonsterDemonArchvile *)0)->painNextTime), sizeof( ((rvmMonsterDemonArchvile *)0)->painNextTime ) }, @@ -8407,16 +8407,16 @@ static classVariableInfo_t rvmMonsterDemonArchvile_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterFlyingCacodemon_typeInfo[] = { - { ": float", "nextAttack", (intptr_t)(&((rvmMonsterFlyingCacodemon *)0)->nextAttack), sizeof( ((rvmMonsterFlyingCacodemon *)0)->nextAttack ) }, +classVariableInfo_t rvmMonsterFlyingCacodemon::typeInfo[] = { + { "float", "nextAttack", (intptr_t)(&((rvmMonsterFlyingCacodemon *)0)->nextAttack), sizeof( ((rvmMonsterFlyingCacodemon *)0)->nextAttack ) }, { "float", "nextNoFOVAttack", (intptr_t)(&((rvmMonsterFlyingCacodemon *)0)->nextNoFOVAttack), sizeof( ((rvmMonsterFlyingCacodemon *)0)->nextNoFOVAttack ) }, { "float", "painNextTime", (intptr_t)(&((rvmMonsterFlyingCacodemon *)0)->painNextTime), sizeof( ((rvmMonsterFlyingCacodemon *)0)->painNextTime ) }, { "idEntityPtr < idEntity >", "combat_node", (intptr_t)(&((rvmMonsterFlyingCacodemon *)0)->combat_node), sizeof( ((rvmMonsterFlyingCacodemon *)0)->combat_node ) }, { NULL, 0 } }; -static classVariableInfo_t rvmMonsterFlyingLostsoul_typeInfo[] = { - { ": float", "nextAttack", (intptr_t)(&((rvmMonsterFlyingLostsoul *)0)->nextAttack), sizeof( ((rvmMonsterFlyingLostsoul *)0)->nextAttack ) }, +classVariableInfo_t rvmMonsterFlyingLostsoul::typeInfo[] = { + { "float", "nextAttack", (intptr_t)(&((rvmMonsterFlyingLostsoul *)0)->nextAttack), sizeof( ((rvmMonsterFlyingLostsoul *)0)->nextAttack ) }, { "float", "nextNoFOVAttack", (intptr_t)(&((rvmMonsterFlyingLostsoul *)0)->nextNoFOVAttack), sizeof( ((rvmMonsterFlyingLostsoul *)0)->nextNoFOVAttack ) }, { "float", "noMeleeTime", (intptr_t)(&((rvmMonsterFlyingLostsoul *)0)->noMeleeTime), sizeof( ((rvmMonsterFlyingLostsoul *)0)->noMeleeTime ) }, { "float", "fly_offset", (intptr_t)(&((rvmMonsterFlyingLostsoul *)0)->fly_offset), sizeof( ((rvmMonsterFlyingLostsoul *)0)->fly_offset ) }, @@ -8425,8 +8425,8 @@ static classVariableInfo_t rvmMonsterFlyingLostsoul_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterTurret_typeInfo[] = { - { ": bool", "fire", (intptr_t)(&((rvmMonsterTurret *)0)->fire), sizeof( ((rvmMonsterTurret *)0)->fire ) }, +classVariableInfo_t rvmMonsterTurret::typeInfo[] = { + { "bool", "fire", (intptr_t)(&((rvmMonsterTurret *)0)->fire), sizeof( ((rvmMonsterTurret *)0)->fire ) }, { "bool", "attack_monsters", (intptr_t)(&((rvmMonsterTurret *)0)->attack_monsters), sizeof( ((rvmMonsterTurret *)0)->attack_monsters ) }, { "bool", "light_is_on", (intptr_t)(&((rvmMonsterTurret *)0)->light_is_on), sizeof( ((rvmMonsterTurret *)0)->light_is_on ) }, { "float", "attackTime", (intptr_t)(&((rvmMonsterTurret *)0)->attackTime), sizeof( ((rvmMonsterTurret *)0)->attackTime ) }, @@ -8436,8 +8436,8 @@ static classVariableInfo_t rvmMonsterTurret_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterBossCyberdemon_typeInfo[] = { - { ": float", "nextAttack", (intptr_t)(&((rvmMonsterBossCyberdemon *)0)->nextAttack), sizeof( ((rvmMonsterBossCyberdemon *)0)->nextAttack ) }, +classVariableInfo_t rvmMonsterBossCyberdemon::typeInfo[] = { + { "float", "nextAttack", (intptr_t)(&((rvmMonsterBossCyberdemon *)0)->nextAttack), sizeof( ((rvmMonsterBossCyberdemon *)0)->nextAttack ) }, { "float", "nextNoFOVAttack", (intptr_t)(&((rvmMonsterBossCyberdemon *)0)->nextNoFOVAttack), sizeof( ((rvmMonsterBossCyberdemon *)0)->nextNoFOVAttack ) }, { "float", "painNextTime", (intptr_t)(&((rvmMonsterBossCyberdemon *)0)->painNextTime), sizeof( ((rvmMonsterBossCyberdemon *)0)->painNextTime ) }, { "idStr", "range_attack_anim", (intptr_t)(&((rvmMonsterBossCyberdemon *)0)->range_attack_anim), sizeof( ((rvmMonsterBossCyberdemon *)0)->range_attack_anim ) }, @@ -8445,8 +8445,8 @@ static classVariableInfo_t rvmMonsterBossCyberdemon_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterBossVagary_typeInfo[] = { - { ": float", "nextDodge", (intptr_t)(&((rvmMonsterBossVagary *)0)->nextDodge), sizeof( ((rvmMonsterBossVagary *)0)->nextDodge ) }, +classVariableInfo_t rvmMonsterBossVagary::typeInfo[] = { + { "float", "nextDodge", (intptr_t)(&((rvmMonsterBossVagary *)0)->nextDodge), sizeof( ((rvmMonsterBossVagary *)0)->nextDodge ) }, { "float", "nextAttack", (intptr_t)(&((rvmMonsterBossVagary *)0)->nextAttack), sizeof( ((rvmMonsterBossVagary *)0)->nextAttack ) }, { "float", "nextNoFOVAttack", (intptr_t)(&((rvmMonsterBossVagary *)0)->nextNoFOVAttack), sizeof( ((rvmMonsterBossVagary *)0)->nextNoFOVAttack ) }, { "float", "painNextTime", (intptr_t)(&((rvmMonsterBossVagary *)0)->painNextTime), sizeof( ((rvmMonsterBossVagary *)0)->painNextTime ) }, @@ -8455,8 +8455,8 @@ static classVariableInfo_t rvmMonsterBossVagary_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterBossSabaoth_typeInfo[] = { - { ": float", "nextAttack", (intptr_t)(&((rvmMonsterBossSabaoth *)0)->nextAttack), sizeof( ((rvmMonsterBossSabaoth *)0)->nextAttack ) }, +classVariableInfo_t rvmMonsterBossSabaoth::typeInfo[] = { + { "float", "nextAttack", (intptr_t)(&((rvmMonsterBossSabaoth *)0)->nextAttack), sizeof( ((rvmMonsterBossSabaoth *)0)->nextAttack ) }, { "float", "nextMeleeAttack", (intptr_t)(&((rvmMonsterBossSabaoth *)0)->nextMeleeAttack), sizeof( ((rvmMonsterBossSabaoth *)0)->nextMeleeAttack ) }, { "float", "pathSpeed", (intptr_t)(&((rvmMonsterBossSabaoth *)0)->pathSpeed), sizeof( ((rvmMonsterBossSabaoth *)0)->pathSpeed ) }, { "bool", "noSlowToStop", (intptr_t)(&((rvmMonsterBossSabaoth *)0)->noSlowToStop), sizeof( ((rvmMonsterBossSabaoth *)0)->noSlowToStop ) }, @@ -8465,20 +8465,20 @@ static classVariableInfo_t rvmMonsterBossSabaoth_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmSeekerBase_typeInfo[] = { +classVariableInfo_t rvmSeekerBase::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterBossGuardianSpawner_typeInfo[] = { - { ": idEntityPtr < idEntity >", "guardian", (intptr_t)(&((rvmMonsterBossGuardianSpawner *)0)->guardian), sizeof( ((rvmMonsterBossGuardianSpawner *)0)->guardian ) }, +classVariableInfo_t rvmMonsterBossGuardianSpawner::typeInfo[] = { + { "idEntityPtr < idEntity >", "guardian", (intptr_t)(&((rvmMonsterBossGuardianSpawner *)0)->guardian), sizeof( ((rvmMonsterBossGuardianSpawner *)0)->guardian ) }, { "float", "inactive_time", (intptr_t)(&((rvmMonsterBossGuardianSpawner *)0)->inactive_time), sizeof( ((rvmMonsterBossGuardianSpawner *)0)->inactive_time ) }, { "float", "active_time", (intptr_t)(&((rvmMonsterBossGuardianSpawner *)0)->active_time), sizeof( ((rvmMonsterBossGuardianSpawner *)0)->active_time ) }, { "float", "pain_time", (intptr_t)(&((rvmMonsterBossGuardianSpawner *)0)->pain_time), sizeof( ((rvmMonsterBossGuardianSpawner *)0)->pain_time ) }, { NULL, 0 } }; -static classVariableInfo_t rvmMonsterBossGuardian_typeInfo[] = { - { ": float", "nextAttack", (intptr_t)(&((rvmMonsterBossGuardian *)0)->nextAttack), sizeof( ((rvmMonsterBossGuardian *)0)->nextAttack ) }, +classVariableInfo_t rvmMonsterBossGuardian::typeInfo[] = { + { "float", "nextAttack", (intptr_t)(&((rvmMonsterBossGuardian *)0)->nextAttack), sizeof( ((rvmMonsterBossGuardian *)0)->nextAttack ) }, { "float", "painNextTime", (intptr_t)(&((rvmMonsterBossGuardian *)0)->painNextTime), sizeof( ((rvmMonsterBossGuardian *)0)->painNextTime ) }, { "bool", "in_melee", (intptr_t)(&((rvmMonsterBossGuardian *)0)->in_melee), sizeof( ((rvmMonsterBossGuardian *)0)->in_melee ) }, { "bool", "rightfoot", (intptr_t)(&((rvmMonsterBossGuardian *)0)->rightfoot), sizeof( ((rvmMonsterBossGuardian *)0)->rightfoot ) }, @@ -8490,8 +8490,8 @@ static classVariableInfo_t rvmMonsterBossGuardian_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmMonsterBossGuardianSeeker_typeInfo[] = { - { ": float", "painNextTime", (intptr_t)(&((rvmMonsterBossGuardianSeeker *)0)->painNextTime), sizeof( ((rvmMonsterBossGuardianSeeker *)0)->painNextTime ) }, +classVariableInfo_t rvmMonsterBossGuardianSeeker::typeInfo[] = { + { "float", "painNextTime", (intptr_t)(&((rvmMonsterBossGuardianSeeker *)0)->painNextTime), sizeof( ((rvmMonsterBossGuardianSeeker *)0)->painNextTime ) }, { "float", "nextEnemyCheck", (intptr_t)(&((rvmMonsterBossGuardianSeeker *)0)->nextEnemyCheck), sizeof( ((rvmMonsterBossGuardianSeeker *)0)->nextEnemyCheck ) }, { "float", "getCloserEndTime", (intptr_t)(&((rvmMonsterBossGuardianSeeker *)0)->getCloserEndTime), sizeof( ((rvmMonsterBossGuardianSeeker *)0)->getCloserEndTime ) }, { "float", "retreatEndTime", (intptr_t)(&((rvmMonsterBossGuardianSeeker *)0)->retreatEndTime), sizeof( ((rvmMonsterBossGuardianSeeker *)0)->retreatEndTime ) }, @@ -8499,8 +8499,8 @@ static classVariableInfo_t rvmMonsterBossGuardianSeeker_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t idTestModel_typeInfo[] = { - { ": idEntityPtr < idEntity >", "head", (intptr_t)(&((idTestModel *)0)->head), sizeof( ((idTestModel *)0)->head ) }, +classVariableInfo_t idTestModel::typeInfo[] = { + { "idEntityPtr < idEntity >", "head", (intptr_t)(&((idTestModel *)0)->head), sizeof( ((idTestModel *)0)->head ) }, { "idAnimator *", "headAnimator", (intptr_t)(&((idTestModel *)0)->headAnimator), sizeof( ((idTestModel *)0)->headAnimator ) }, { "idAnim", "customAnim", (intptr_t)(&((idTestModel *)0)->customAnim), sizeof( ((idTestModel *)0)->customAnim ) }, { "idPhysics_Parametric", "physicsObj", (intptr_t)(&((idTestModel *)0)->physicsObj), sizeof( ((idTestModel *)0)->physicsObj ) }, @@ -8553,7 +8553,7 @@ static classVariableInfo_t prstack_t_typeInfo[] = { }; static classVariableInfo_t idInterpreter_typeInfo[] = { - { ": prstack_t[64]", "callStack", (intptr_t)(&((idInterpreter *)0)->callStack), sizeof( ((idInterpreter *)0)->callStack ) }, + { "prstack_t[64]", "callStack", (intptr_t)(&((idInterpreter *)0)->callStack), sizeof( ((idInterpreter *)0)->callStack ) }, { "int", "callStackDepth", (intptr_t)(&((idInterpreter *)0)->callStackDepth), sizeof( ((idInterpreter *)0)->callStackDepth ) }, { "int", "maxStackDepth", (intptr_t)(&((idInterpreter *)0)->maxStackDepth), sizeof( ((idInterpreter *)0)->maxStackDepth ) }, { "byte[12288]", "localstack", (intptr_t)(&((idInterpreter *)0)->localstack), sizeof( ((idInterpreter *)0)->localstack ) }, @@ -8566,14 +8566,14 @@ static classVariableInfo_t idInterpreter_typeInfo[] = { { "const idEventDef *", "multiFrameEvent", (intptr_t)(&((idInterpreter *)0)->multiFrameEvent), sizeof( ((idInterpreter *)0)->multiFrameEvent ) }, { "idEntity *", "eventEntity", (intptr_t)(&((idInterpreter *)0)->eventEntity), sizeof( ((idInterpreter *)0)->eventEntity ) }, { "idThread *", "thread", (intptr_t)(&((idInterpreter *)0)->thread), sizeof( ((idInterpreter *)0)->thread ) }, - { ": bool", "doneProcessing", (intptr_t)(&((idInterpreter *)0)->doneProcessing), sizeof( ((idInterpreter *)0)->doneProcessing ) }, + { "bool", "doneProcessing", (intptr_t)(&((idInterpreter *)0)->doneProcessing), sizeof( ((idInterpreter *)0)->doneProcessing ) }, { "bool", "threadDying", (intptr_t)(&((idInterpreter *)0)->threadDying), sizeof( ((idInterpreter *)0)->threadDying ) }, { "bool", "terminateOnExit", (intptr_t)(&((idInterpreter *)0)->terminateOnExit), sizeof( ((idInterpreter *)0)->terminateOnExit ) }, { "bool", "debug", (intptr_t)(&((idInterpreter *)0)->debug), sizeof( ((idInterpreter *)0)->debug ) }, { NULL, 0 } }; -static classVariableInfo_t idThread_typeInfo[] = { +classVariableInfo_t idThread::typeInfo[] = { { "idThread *", "waitingForThread", (intptr_t)(&((idThread *)0)->waitingForThread), sizeof( ((idThread *)0)->waitingForThread ) }, { "int", "waitingFor", (intptr_t)(&((idThread *)0)->waitingFor), sizeof( ((idThread *)0)->waitingFor ) }, { "int", "waitingUntil", (intptr_t)(&((idThread *)0)->waitingUntil), sizeof( ((idThread *)0)->waitingUntil ) }, @@ -8587,18 +8587,18 @@ static classVariableInfo_t idThread_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmWeaponFist_typeInfo[] = { +classVariableInfo_t rvmWeaponFist::typeInfo[] = { { "bool", "side", (intptr_t)(&((rvmWeaponFist *)0)->side), sizeof( ((rvmWeaponFist *)0)->side ) }, { NULL, 0 } }; -static classVariableInfo_t rvmWeaponPistol_typeInfo[] = { - { ": float", "spread", (intptr_t)(&((rvmWeaponPistol *)0)->spread), sizeof( ((rvmWeaponPistol *)0)->spread ) }, +classVariableInfo_t rvmWeaponPistol::typeInfo[] = { + { "float", "spread", (intptr_t)(&((rvmWeaponPistol *)0)->spread), sizeof( ((rvmWeaponPistol *)0)->spread ) }, { "const idSoundShader *", "snd_lowammo", (intptr_t)(&((rvmWeaponPistol *)0)->snd_lowammo), sizeof( ((rvmWeaponPistol *)0)->snd_lowammo ) }, { NULL, 0 } }; -static classVariableInfo_t rvmWeaponFlashlight_typeInfo[] = { +classVariableInfo_t rvmWeaponFlashlight::typeInfo[] = { { "bool", "on", (intptr_t)(&((rvmWeaponFlashlight *)0)->on), sizeof( ((rvmWeaponFlashlight *)0)->on ) }, { "float", "intensity", (intptr_t)(&((rvmWeaponFlashlight *)0)->intensity), sizeof( ((rvmWeaponFlashlight *)0)->intensity ) }, { "idStr", "skin_on", (intptr_t)(&((rvmWeaponFlashlight *)0)->skin_on), sizeof( ((rvmWeaponFlashlight *)0)->skin_on ) }, @@ -8608,34 +8608,34 @@ static classVariableInfo_t rvmWeaponFlashlight_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmWeaponPDA_typeInfo[] = { +classVariableInfo_t rvmWeaponPDA::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmWeaponShotgun_typeInfo[] = { - { ": float", "spread", (intptr_t)(&((rvmWeaponShotgun *)0)->spread), sizeof( ((rvmWeaponShotgun *)0)->spread ) }, +classVariableInfo_t rvmWeaponShotgun::typeInfo[] = { + { "float", "spread", (intptr_t)(&((rvmWeaponShotgun *)0)->spread), sizeof( ((rvmWeaponShotgun *)0)->spread ) }, { "const idSoundShader *", "snd_lowammo", (intptr_t)(&((rvmWeaponShotgun *)0)->snd_lowammo), sizeof( ((rvmWeaponShotgun *)0)->snd_lowammo ) }, { NULL, 0 } }; -static classVariableInfo_t rvmWeaponDoubleShotgun_typeInfo[] = { +classVariableInfo_t rvmWeaponDoubleShotgun::typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmWeaponMachineGun_typeInfo[] = { - { ": float", "spread", (intptr_t)(&((rvmWeaponMachineGun *)0)->spread), sizeof( ((rvmWeaponMachineGun *)0)->spread ) }, +classVariableInfo_t rvmWeaponMachineGun::typeInfo[] = { + { "float", "spread", (intptr_t)(&((rvmWeaponMachineGun *)0)->spread), sizeof( ((rvmWeaponMachineGun *)0)->spread ) }, { "const idSoundShader *", "snd_lowammo", (intptr_t)(&((rvmWeaponMachineGun *)0)->snd_lowammo), sizeof( ((rvmWeaponMachineGun *)0)->snd_lowammo ) }, { NULL, 0 } }; -static classVariableInfo_t rvmWeaponPlasmaGun_typeInfo[] = { - { ": float", "spread", (intptr_t)(&((rvmWeaponPlasmaGun *)0)->spread), sizeof( ((rvmWeaponPlasmaGun *)0)->spread ) }, +classVariableInfo_t rvmWeaponPlasmaGun::typeInfo[] = { + { "float", "spread", (intptr_t)(&((rvmWeaponPlasmaGun *)0)->spread), sizeof( ((rvmWeaponPlasmaGun *)0)->spread ) }, { "const idSoundShader *", "snd_lowammo", (intptr_t)(&((rvmWeaponPlasmaGun *)0)->snd_lowammo), sizeof( ((rvmWeaponPlasmaGun *)0)->snd_lowammo ) }, { NULL, 0 } }; -static classVariableInfo_t rvmWeaponChainGun_typeInfo[] = { - { ": idAnimatedEntity *", "world_model", (intptr_t)(&((rvmWeaponChainGun *)0)->world_model), sizeof( ((rvmWeaponChainGun *)0)->world_model ) }, +classVariableInfo_t rvmWeaponChainGun::typeInfo[] = { + { "idAnimatedEntity *", "world_model", (intptr_t)(&((rvmWeaponChainGun *)0)->world_model), sizeof( ((rvmWeaponChainGun *)0)->world_model ) }, { "jointHandle_t", "world_barrel_joint", (intptr_t)(&((rvmWeaponChainGun *)0)->world_barrel_joint), sizeof( ((rvmWeaponChainGun *)0)->world_barrel_joint ) }, { "jointHandle_t", "barrel_joint", (intptr_t)(&((rvmWeaponChainGun *)0)->barrel_joint), sizeof( ((rvmWeaponChainGun *)0)->barrel_joint ) }, { "float", "barrel_angle", (intptr_t)(&((rvmWeaponChainGun *)0)->barrel_angle), sizeof( ((rvmWeaponChainGun *)0)->barrel_angle ) }, @@ -8651,13 +8651,13 @@ static classVariableInfo_t rvmWeaponChainGun_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmWeaponRocketLauncher_typeInfo[] = { +classVariableInfo_t rvmWeaponRocketLauncher::typeInfo[] = { { "float", "spread", (intptr_t)(&((rvmWeaponRocketLauncher *)0)->spread), sizeof( ((rvmWeaponRocketLauncher *)0)->spread ) }, { "idStr", "skin_invisible", (intptr_t)(&((rvmWeaponRocketLauncher *)0)->skin_invisible), sizeof( ((rvmWeaponRocketLauncher *)0)->skin_invisible ) }, { NULL, 0 } }; -static classVariableInfo_t rvmWeaponBFG_typeInfo[] = { +classVariableInfo_t rvmWeaponBFG::typeInfo[] = { { "float", "spread", (intptr_t)(&((rvmWeaponBFG *)0)->spread), sizeof( ((rvmWeaponBFG *)0)->spread ) }, { "float", "fuse_start", (intptr_t)(&((rvmWeaponBFG *)0)->fuse_start), sizeof( ((rvmWeaponBFG *)0)->fuse_start ) }, { "float", "fuse_end", (intptr_t)(&((rvmWeaponBFG *)0)->fuse_end), sizeof( ((rvmWeaponBFG *)0)->fuse_end ) }, @@ -8666,8 +8666,8 @@ static classVariableInfo_t rvmWeaponBFG_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmWeaponHandgrenade_typeInfo[] = { - { ": float", "spread", (intptr_t)(&((rvmWeaponHandgrenade *)0)->spread), sizeof( ((rvmWeaponHandgrenade *)0)->spread ) }, +classVariableInfo_t rvmWeaponHandgrenade::typeInfo[] = { + { "float", "spread", (intptr_t)(&((rvmWeaponHandgrenade *)0)->spread), sizeof( ((rvmWeaponHandgrenade *)0)->spread ) }, { "float", "fuse_start", (intptr_t)(&((rvmWeaponHandgrenade *)0)->fuse_start), sizeof( ((rvmWeaponHandgrenade *)0)->fuse_start ) }, { "idStr", "skin_nade", (intptr_t)(&((rvmWeaponHandgrenade *)0)->skin_nade), sizeof( ((rvmWeaponHandgrenade *)0)->skin_nade ) }, { "idStr", "skin_nade_invis", (intptr_t)(&((rvmWeaponHandgrenade *)0)->skin_nade_invis), sizeof( ((rvmWeaponHandgrenade *)0)->skin_nade_invis ) }, @@ -8675,7 +8675,7 @@ static classVariableInfo_t rvmWeaponHandgrenade_typeInfo[] = { { "idStr", "skin_nonade_invis", (intptr_t)(&((rvmWeaponHandgrenade *)0)->skin_nonade_invis), sizeof( ((rvmWeaponHandgrenade *)0)->skin_nonade_invis ) }, { "idProjectile *", "projectile", (intptr_t)(&((rvmWeaponHandgrenade *)0)->projectile), sizeof( ((rvmWeaponHandgrenade *)0)->projectile ) }, { "boolean", "show_grenade", (intptr_t)(&((rvmWeaponHandgrenade *)0)->show_grenade), sizeof( ((rvmWeaponHandgrenade *)0)->show_grenade ) }, - { ": float", "fuse_end", (intptr_t)(&((rvmWeaponHandgrenade *)0)->fuse_end), sizeof( ((rvmWeaponHandgrenade *)0)->fuse_end ) }, + { "float", "fuse_end", (intptr_t)(&((rvmWeaponHandgrenade *)0)->fuse_end), sizeof( ((rvmWeaponHandgrenade *)0)->fuse_end ) }, { "float", "current_time", (intptr_t)(&((rvmWeaponHandgrenade *)0)->current_time), sizeof( ((rvmWeaponHandgrenade *)0)->current_time ) }, { "float", "time_held", (intptr_t)(&((rvmWeaponHandgrenade *)0)->time_held), sizeof( ((rvmWeaponHandgrenade *)0)->time_held ) }, { "float", "power", (intptr_t)(&((rvmWeaponHandgrenade *)0)->power), sizeof( ((rvmWeaponHandgrenade *)0)->power ) }, @@ -8684,19 +8684,19 @@ static classVariableInfo_t rvmWeaponHandgrenade_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmWeaponChainsaw_typeInfo[] = { - { ": bool", "side", (intptr_t)(&((rvmWeaponChainsaw *)0)->side), sizeof( ((rvmWeaponChainsaw *)0)->side ) }, +classVariableInfo_t rvmWeaponChainsaw::typeInfo[] = { + { "bool", "side", (intptr_t)(&((rvmWeaponChainsaw *)0)->side), sizeof( ((rvmWeaponChainsaw *)0)->side ) }, { NULL, 0 } }; -static classVariableInfo_t rvmWeaponGrabber_typeInfo[] = { +classVariableInfo_t rvmWeaponGrabber::typeInfo[] = { { "const idSoundShader *", "snd_fireloop", (intptr_t)(&((rvmWeaponGrabber *)0)->snd_fireloop), sizeof( ((rvmWeaponGrabber *)0)->snd_fireloop ) }, { "const idSoundShader *", "snd_electroloop", (intptr_t)(&((rvmWeaponGrabber *)0)->snd_electroloop), sizeof( ((rvmWeaponGrabber *)0)->snd_electroloop ) }, { "const idSoundShader *", "snd_mainfire", (intptr_t)(&((rvmWeaponGrabber *)0)->snd_mainfire), sizeof( ((rvmWeaponGrabber *)0)->snd_mainfire ) }, { "const idSoundShader *", "snd_cangrab", (intptr_t)(&((rvmWeaponGrabber *)0)->snd_cangrab), sizeof( ((rvmWeaponGrabber *)0)->snd_cangrab ) }, { "const idSoundShader *", "snd_warning", (intptr_t)(&((rvmWeaponGrabber *)0)->snd_warning), sizeof( ((rvmWeaponGrabber *)0)->snd_warning ) }, { "const idSoundShader *", "snd_stopfire", (intptr_t)(&((rvmWeaponGrabber *)0)->snd_stopfire), sizeof( ((rvmWeaponGrabber *)0)->snd_stopfire ) }, - { ": float", "next_attack", (intptr_t)(&((rvmWeaponGrabber *)0)->next_attack), sizeof( ((rvmWeaponGrabber *)0)->next_attack ) }, + { "float", "next_attack", (intptr_t)(&((rvmWeaponGrabber *)0)->next_attack), sizeof( ((rvmWeaponGrabber *)0)->next_attack ) }, { "float", "fireStartTime", (intptr_t)(&((rvmWeaponGrabber *)0)->fireStartTime), sizeof( ((rvmWeaponGrabber *)0)->fireStartTime ) }, { "bool", "warningBeep1", (intptr_t)(&((rvmWeaponGrabber *)0)->warningBeep1), sizeof( ((rvmWeaponGrabber *)0)->warningBeep1 ) }, { "bool", "warningBeep2", (intptr_t)(&((rvmWeaponGrabber *)0)->warningBeep2), sizeof( ((rvmWeaponGrabber *)0)->warningBeep2 ) }, @@ -8836,7 +8836,7 @@ static classVariableInfo_t bot_weaponstate_t_typeInfo[] = { }; static classVariableInfo_t idBotWeaponInfoManager_typeInfo[] = { - { ": idList < projectileinfo_t >", "projectileinfo", (intptr_t)(&((idBotWeaponInfoManager *)0)->projectileinfo), sizeof( ((idBotWeaponInfoManager *)0)->projectileinfo ) }, + { "idList < projectileinfo_t >", "projectileinfo", (intptr_t)(&((idBotWeaponInfoManager *)0)->projectileinfo), sizeof( ((idBotWeaponInfoManager *)0)->projectileinfo ) }, { "bot_weaponstate_t[33]", "botweaponstates", (intptr_t)(&((idBotWeaponInfoManager *)0)->botweaponstates), sizeof( ((idBotWeaponInfoManager *)0)->botweaponstates ) }, { "weaponinfo_t[32]", "weaponinfo", (intptr_t)(&((idBotWeaponInfoManager *)0)->weaponinfo), sizeof( ((idBotWeaponInfoManager *)0)->weaponinfo ) }, { NULL, 0 } @@ -8922,7 +8922,7 @@ static classVariableInfo_t bot_goalstate_t_typeInfo[] = { }; static classVariableInfo_t idBotGoalManager_typeInfo[] = { - { ": bot_goalstate_t[33]", "botgoalstates", (intptr_t)(&((idBotGoalManager *)0)->botgoalstates), sizeof( ((idBotGoalManager *)0)->botgoalstates ) }, + { "bot_goalstate_t[33]", "botgoalstates", (intptr_t)(&((idBotGoalManager *)0)->botgoalstates), sizeof( ((idBotGoalManager *)0)->botgoalstates ) }, { "itemconfig_t", "itemconfiglocal", (intptr_t)(&((idBotGoalManager *)0)->itemconfiglocal), sizeof( ((idBotGoalManager *)0)->itemconfiglocal ) }, { "itemconfig_t *", "itemconfig", (intptr_t)(&((idBotGoalManager *)0)->itemconfig), sizeof( ((idBotGoalManager *)0)->itemconfig ) }, { "levelitem_t[2048]", "levelitemheap", (intptr_t)(&((idBotGoalManager *)0)->levelitemheap), sizeof( ((idBotGoalManager *)0)->levelitemheap ) }, @@ -8983,14 +8983,14 @@ static classVariableInfo_t bot_state_t_typeInfo[] = { { NULL, 0 } }; -static classVariableInfo_t rvmBot_typeInfo[] = { - { ": bot_state_t", "bs", (intptr_t)(&((rvmBot *)0)->bs), sizeof( ((rvmBot *)0)->bs ) }, +classVariableInfo_t rvmBot::typeInfo[] = { + { "bot_state_t", "bs", (intptr_t)(&((rvmBot *)0)->bs), sizeof( ((rvmBot *)0)->bs ) }, { "bool", "hasSpawned", (intptr_t)(&((rvmBot *)0)->hasSpawned), sizeof( ((rvmBot *)0)->hasSpawned ) }, - { ": int", "weapon_machinegun", (intptr_t)(&((rvmBot *)0)->weapon_machinegun), sizeof( ((rvmBot *)0)->weapon_machinegun ) }, + { "int", "weapon_machinegun", (intptr_t)(&((rvmBot *)0)->weapon_machinegun), sizeof( ((rvmBot *)0)->weapon_machinegun ) }, { "int", "weapon_shotgun", (intptr_t)(&((rvmBot *)0)->weapon_shotgun), sizeof( ((rvmBot *)0)->weapon_shotgun ) }, { "int", "weapon_plasmagun", (intptr_t)(&((rvmBot *)0)->weapon_plasmagun), sizeof( ((rvmBot *)0)->weapon_plasmagun ) }, { "int", "weapon_rocketlauncher", (intptr_t)(&((rvmBot *)0)->weapon_rocketlauncher), sizeof( ((rvmBot *)0)->weapon_rocketlauncher ) }, - { ": idNAV *", "aas", (intptr_t)(&((rvmBot *)0)->aas), sizeof( ((rvmBot *)0)->aas ) }, + { "idNAV *", "aas", (intptr_t)(&((rvmBot *)0)->aas), sizeof( ((rvmBot *)0)->aas ) }, { NULL, 0 } }; @@ -9262,7 +9262,7 @@ static classTypeInfo_t classTypeInfo[] = { { "rvStateThread", "", sizeof(rvStateThread), rvStateThread_typeInfo }, { "idEventArg", "", sizeof(idEventArg), idEventArg_typeInfo }, { "idAllocError", "idException", sizeof(idAllocError), idAllocError_typeInfo }, - { "idClass", "", sizeof(idClass), idClass_typeInfo }, + { "idClass", "", sizeof(idClass), idClass::typeInfo }, { "idTypeInfo", "", sizeof(idTypeInfo), idTypeInfo_typeInfo }, { "idSaveGame", "", sizeof(idSaveGame), idSaveGame_typeInfo }, { "idRestoreGame", "", sizeof(idRestoreGame), idRestoreGame_typeInfo }, @@ -9318,27 +9318,27 @@ static classTypeInfo_t classTypeInfo[] = { { "rvmGameDelayRemoveEntry_t", "", sizeof(rvmGameDelayRemoveEntry_t), rvmGameDelayRemoveEntry_t_typeInfo }, { "idGameLocal", "idGame", sizeof(idGameLocal), idGameLocal_typeInfo }, { "idGameError", "idException", sizeof(idGameError), idGameError_typeInfo }, - { "idForce", "idClass", sizeof(idForce), idForce_typeInfo }, - { "idForce_Constant", "idForce", sizeof(idForce_Constant), idForce_Constant_typeInfo }, - { "idForce_Drag", "idForce", sizeof(idForce_Drag), idForce_Drag_typeInfo }, - { "idForce_Field", "idForce", sizeof(idForce_Field), idForce_Field_typeInfo }, - { "idForce_Spring", "idForce", sizeof(idForce_Spring), idForce_Spring_typeInfo }, + { "idForce", "idClass", sizeof(idForce), idForce::typeInfo }, + { "idForce_Constant", "idForce", sizeof(idForce_Constant), idForce_Constant::typeInfo }, + { "idForce_Drag", "idForce", sizeof(idForce_Drag), idForce_Drag::typeInfo }, + { "idForce_Field", "idForce", sizeof(idForce_Field), idForce_Field::typeInfo }, + { "idForce_Spring", "idForce", sizeof(idForce_Spring), idForce_Spring::typeInfo }, { "impactInfo_t", "", sizeof(impactInfo_t), impactInfo_t_typeInfo }, - { "idPhysics", "idClass", sizeof(idPhysics), idPhysics_typeInfo }, + { "idPhysics", "idClass", sizeof(idPhysics), idPhysics::typeInfo }, { "staticPState_t", "", sizeof(staticPState_t), staticPState_t_typeInfo }, - { "idPhysics_Static", "idPhysics", sizeof(idPhysics_Static), idPhysics_Static_typeInfo }, - { "idPhysics_StaticMulti", "idPhysics", sizeof(idPhysics_StaticMulti), idPhysics_StaticMulti_typeInfo }, - { "idPhysics_Base", "idPhysics", sizeof(idPhysics_Base), idPhysics_Base_typeInfo }, - { "idPhysics_Actor", "idPhysics_Base", sizeof(idPhysics_Actor), idPhysics_Actor_typeInfo }, + { "idPhysics_Static", "idPhysics", sizeof(idPhysics_Static), idPhysics_Static::typeInfo }, + { "idPhysics_StaticMulti", "idPhysics", sizeof(idPhysics_StaticMulti), idPhysics_StaticMulti::typeInfo }, + { "idPhysics_Base", "idPhysics", sizeof(idPhysics_Base), idPhysics_Base::typeInfo }, + { "idPhysics_Actor", "idPhysics_Base", sizeof(idPhysics_Actor), idPhysics_Actor::typeInfo }, { "monsterPState_t", "", sizeof(monsterPState_t), monsterPState_t_typeInfo }, - { "idPhysics_Monster", "idPhysics_Actor", sizeof(idPhysics_Monster), idPhysics_Monster_typeInfo }, + { "idPhysics_Monster", "idPhysics_Actor", sizeof(idPhysics_Monster), idPhysics_Monster::typeInfo }, { "playerPState_t", "", sizeof(playerPState_t), playerPState_t_typeInfo }, - { "idPhysics_Player", "idPhysics_Actor", sizeof(idPhysics_Player), idPhysics_Player_typeInfo }, + { "idPhysics_Player", "idPhysics_Actor", sizeof(idPhysics_Player), idPhysics_Player::typeInfo }, { "parametricPState_t", "", sizeof(parametricPState_t), parametricPState_t_typeInfo }, - { "idPhysics_Parametric", "idPhysics_Base", sizeof(idPhysics_Parametric), idPhysics_Parametric_typeInfo }, + { "idPhysics_Parametric", "idPhysics_Base", sizeof(idPhysics_Parametric), idPhysics_Parametric::typeInfo }, { "rigidBodyIState_t", "", sizeof(rigidBodyIState_t), rigidBodyIState_t_typeInfo }, { "rigidBodyPState_t", "", sizeof(rigidBodyPState_t), rigidBodyPState_t_typeInfo }, - { "idPhysics_RigidBody", "idPhysics_Base", sizeof(idPhysics_RigidBody), idPhysics_RigidBody_typeInfo }, + { "idPhysics_RigidBody", "idPhysics_Base", sizeof(idPhysics_RigidBody), idPhysics_RigidBody::typeInfo }, { "idAFConstraint::constraintFlags_s", "", sizeof(idAFConstraint::constraintFlags_s), idAFConstraint_constraintFlags_s_typeInfo }, { "idAFConstraint", "", sizeof(idAFConstraint), idAFConstraint_typeInfo }, { "idAFConstraint_Fixed", "idAFConstraint", sizeof(idAFConstraint_Fixed), idAFConstraint_Fixed_typeInfo }, @@ -9365,17 +9365,17 @@ static classTypeInfo_t classTypeInfo[] = { { "idAFTree", "", sizeof(idAFTree), idAFTree_typeInfo }, { "AFPState_t", "", sizeof(AFPState_t), AFPState_t_typeInfo }, { "AFCollision_t", "", sizeof(AFCollision_t), AFCollision_t_typeInfo }, - { "idPhysics_AF", "idPhysics_Base", sizeof(idPhysics_AF), idPhysics_AF_typeInfo }, + { "idPhysics_AF", "idPhysics_Base", sizeof(idPhysics_AF), idPhysics_AF::typeInfo }, { "singleSmoke_t", "", sizeof(singleSmoke_t), singleSmoke_t_typeInfo }, { "activeSmokeStage_t", "", sizeof(activeSmokeStage_t), activeSmokeStage_t_typeInfo }, { "idSmokeParticles", "", sizeof(idSmokeParticles), idSmokeParticles_typeInfo }, { "signal_t", "", sizeof(signal_t), signal_t_typeInfo }, { "signalList_t", "", sizeof(signalList_t), signalList_t_typeInfo }, { "idEntity::entityFlags_s", "", sizeof(idEntity::entityFlags_s), idEntity_entityFlags_s_typeInfo }, - { "idEntity", "idClass", sizeof(idEntity), idEntity_typeInfo }, + { "idEntity", "idClass", sizeof(idEntity), idEntity::typeInfo }, { "damageEffect_t", "", sizeof(damageEffect_t), damageEffect_t_typeInfo }, - { "idAnimatedEntity", "idEntity", sizeof(idAnimatedEntity), idAnimatedEntity_typeInfo }, - { "idCursor3D", "idEntity", sizeof(idCursor3D), idCursor3D_typeInfo }, + { "idAnimatedEntity", "idEntity", sizeof(idAnimatedEntity), idAnimatedEntity::typeInfo }, + { "idCursor3D", "idEntity", sizeof(idCursor3D), idCursor3D::typeInfo }, { "idDragEntity", "", sizeof(idDragEntity), idDragEntity_typeInfo }, { "selectedTypeInfo_t", "", sizeof(selectedTypeInfo_t), selectedTypeInfo_t_typeInfo }, { "idEditEntities", "", sizeof(idEditEntities), idEditEntities_typeInfo }, @@ -9385,73 +9385,73 @@ static classTypeInfo_t classTypeInfo[] = { { "idIK", "", sizeof(idIK), idIK_typeInfo }, { "idIK_Walk", "idIK", sizeof(idIK_Walk), idIK_Walk_typeInfo }, { "idIK_Reach", "idIK", sizeof(idIK_Reach), idIK_Reach_typeInfo }, - { "idMultiModelAF", "idEntity", sizeof(idMultiModelAF), idMultiModelAF_typeInfo }, - { "idChain", "idMultiModelAF", sizeof(idChain), idChain_typeInfo }, - { "idAFAttachment", "idAnimatedEntity", sizeof(idAFAttachment), idAFAttachment_typeInfo }, - { "idAFEntity_Base", "idAnimatedEntity", sizeof(idAFEntity_Base), idAFEntity_Base_typeInfo }, - { "idAFEntity_Gibbable", "idAFEntity_Base", sizeof(idAFEntity_Gibbable), idAFEntity_Gibbable_typeInfo }, - { "idAFEntity_Generic", "idAFEntity_Gibbable", sizeof(idAFEntity_Generic), idAFEntity_Generic_typeInfo }, - { "idAFEntity_WithAttachedHead", "idAFEntity_Gibbable", sizeof(idAFEntity_WithAttachedHead), idAFEntity_WithAttachedHead_typeInfo }, - { "idAFEntity_Vehicle", "idAFEntity_Base", sizeof(idAFEntity_Vehicle), idAFEntity_Vehicle_typeInfo }, - { "idAFEntity_VehicleSimple", "idAFEntity_Vehicle", sizeof(idAFEntity_VehicleSimple), idAFEntity_VehicleSimple_typeInfo }, - { "idAFEntity_VehicleFourWheels", "idAFEntity_Vehicle", sizeof(idAFEntity_VehicleFourWheels), idAFEntity_VehicleFourWheels_typeInfo }, - { "idAFEntity_VehicleSixWheels", "idAFEntity_Vehicle", sizeof(idAFEntity_VehicleSixWheels), idAFEntity_VehicleSixWheels_typeInfo }, - { "idAFEntity_SteamPipe", "idAFEntity_Base", sizeof(idAFEntity_SteamPipe), idAFEntity_SteamPipe_typeInfo }, - { "idAFEntity_ClawFourFingers", "idAFEntity_Base", sizeof(idAFEntity_ClawFourFingers), idAFEntity_ClawFourFingers_typeInfo }, - { "idSpawnableEntity", "idEntity", sizeof(idSpawnableEntity), idSpawnableEntity_typeInfo }, - { "idPlayerStart", "idEntity", sizeof(idPlayerStart), idPlayerStart_typeInfo }, - { "idActivator", "idEntity", sizeof(idActivator), idActivator_typeInfo }, - { "idPathCorner", "idEntity", sizeof(idPathCorner), idPathCorner_typeInfo }, - { "idDamagable", "idEntity", sizeof(idDamagable), idDamagable_typeInfo }, - { "idExplodable", "idEntity", sizeof(idExplodable), idExplodable_typeInfo }, - { "idSpring", "idEntity", sizeof(idSpring), idSpring_typeInfo }, - { "idForceField", "idEntity", sizeof(idForceField), idForceField_typeInfo }, - { "idAnimated", "idAFEntity_Gibbable", sizeof(idAnimated), idAnimated_typeInfo }, - { "idStaticEntity", "idEntity", sizeof(idStaticEntity), idStaticEntity_typeInfo }, - { "idFuncEmitter", "idStaticEntity", sizeof(idFuncEmitter), idFuncEmitter_typeInfo }, - { "idFuncSmoke", "idEntity", sizeof(idFuncSmoke), idFuncSmoke_typeInfo }, - { "idFuncSplat", "idFuncEmitter", sizeof(idFuncSplat), idFuncSplat_typeInfo }, - { "idTextEntity", "idEntity", sizeof(idTextEntity), idTextEntity_typeInfo }, - { "idLocationEntity", "idEntity", sizeof(idLocationEntity), idLocationEntity_typeInfo }, - { "idLocationSeparatorEntity", "idEntity", sizeof(idLocationSeparatorEntity), idLocationSeparatorEntity_typeInfo }, - { "idVacuumSeparatorEntity", "idEntity", sizeof(idVacuumSeparatorEntity), idVacuumSeparatorEntity_typeInfo }, - { "idVacuumEntity", "idEntity", sizeof(idVacuumEntity), idVacuumEntity_typeInfo }, - { "idBeam", "idEntity", sizeof(idBeam), idBeam_typeInfo }, - { "idLiquid", "idEntity", sizeof(idLiquid), idLiquid_typeInfo }, - { "idShaking", "idEntity", sizeof(idShaking), idShaking_typeInfo }, - { "idEarthQuake", "idEntity", sizeof(idEarthQuake), idEarthQuake_typeInfo }, - { "idFuncPortal", "idEntity", sizeof(idFuncPortal), idFuncPortal_typeInfo }, - { "idFuncAASPortal", "idEntity", sizeof(idFuncAASPortal), idFuncAASPortal_typeInfo }, - { "idFuncAASObstacle", "idEntity", sizeof(idFuncAASObstacle), idFuncAASObstacle_typeInfo }, - { "idFuncRadioChatter", "idEntity", sizeof(idFuncRadioChatter), idFuncRadioChatter_typeInfo }, - { "idPhantomObjects", "idEntity", sizeof(idPhantomObjects), idPhantomObjects_typeInfo }, + { "idMultiModelAF", "idEntity", sizeof(idMultiModelAF), idMultiModelAF::typeInfo }, + { "idChain", "idMultiModelAF", sizeof(idChain), idChain::typeInfo }, + { "idAFAttachment", "idAnimatedEntity", sizeof(idAFAttachment), idAFAttachment::typeInfo }, + { "idAFEntity_Base", "idAnimatedEntity", sizeof(idAFEntity_Base), idAFEntity_Base::typeInfo }, + { "idAFEntity_Gibbable", "idAFEntity_Base", sizeof(idAFEntity_Gibbable), idAFEntity_Gibbable::typeInfo }, + { "idAFEntity_Generic", "idAFEntity_Gibbable", sizeof(idAFEntity_Generic), idAFEntity_Generic::typeInfo }, + { "idAFEntity_WithAttachedHead", "idAFEntity_Gibbable", sizeof(idAFEntity_WithAttachedHead), idAFEntity_WithAttachedHead::typeInfo }, + { "idAFEntity_Vehicle", "idAFEntity_Base", sizeof(idAFEntity_Vehicle), idAFEntity_Vehicle::typeInfo }, + { "idAFEntity_VehicleSimple", "idAFEntity_Vehicle", sizeof(idAFEntity_VehicleSimple), idAFEntity_VehicleSimple::typeInfo }, + { "idAFEntity_VehicleFourWheels", "idAFEntity_Vehicle", sizeof(idAFEntity_VehicleFourWheels), idAFEntity_VehicleFourWheels::typeInfo }, + { "idAFEntity_VehicleSixWheels", "idAFEntity_Vehicle", sizeof(idAFEntity_VehicleSixWheels), idAFEntity_VehicleSixWheels::typeInfo }, + { "idAFEntity_SteamPipe", "idAFEntity_Base", sizeof(idAFEntity_SteamPipe), idAFEntity_SteamPipe::typeInfo }, + { "idAFEntity_ClawFourFingers", "idAFEntity_Base", sizeof(idAFEntity_ClawFourFingers), idAFEntity_ClawFourFingers::typeInfo }, + { "idSpawnableEntity", "idEntity", sizeof(idSpawnableEntity), idSpawnableEntity::typeInfo }, + { "idPlayerStart", "idEntity", sizeof(idPlayerStart), idPlayerStart::typeInfo }, + { "idActivator", "idEntity", sizeof(idActivator), idActivator::typeInfo }, + { "idPathCorner", "idEntity", sizeof(idPathCorner), idPathCorner::typeInfo }, + { "idDamagable", "idEntity", sizeof(idDamagable), idDamagable::typeInfo }, + { "idExplodable", "idEntity", sizeof(idExplodable), idExplodable::typeInfo }, + { "idSpring", "idEntity", sizeof(idSpring), idSpring::typeInfo }, + { "idForceField", "idEntity", sizeof(idForceField), idForceField::typeInfo }, + { "idAnimated", "idAFEntity_Gibbable", sizeof(idAnimated), idAnimated::typeInfo }, + { "idStaticEntity", "idEntity", sizeof(idStaticEntity), idStaticEntity::typeInfo }, + { "idFuncEmitter", "idStaticEntity", sizeof(idFuncEmitter), idFuncEmitter::typeInfo }, + { "idFuncSmoke", "idEntity", sizeof(idFuncSmoke), idFuncSmoke::typeInfo }, + { "idFuncSplat", "idFuncEmitter", sizeof(idFuncSplat), idFuncSplat::typeInfo }, + { "idTextEntity", "idEntity", sizeof(idTextEntity), idTextEntity::typeInfo }, + { "idLocationEntity", "idEntity", sizeof(idLocationEntity), idLocationEntity::typeInfo }, + { "idLocationSeparatorEntity", "idEntity", sizeof(idLocationSeparatorEntity), idLocationSeparatorEntity::typeInfo }, + { "idVacuumSeparatorEntity", "idEntity", sizeof(idVacuumSeparatorEntity), idVacuumSeparatorEntity::typeInfo }, + { "idVacuumEntity", "idEntity", sizeof(idVacuumEntity), idVacuumEntity::typeInfo }, + { "idBeam", "idEntity", sizeof(idBeam), idBeam::typeInfo }, + { "idLiquid", "idEntity", sizeof(idLiquid), idLiquid::typeInfo }, + { "idShaking", "idEntity", sizeof(idShaking), idShaking::typeInfo }, + { "idEarthQuake", "idEntity", sizeof(idEarthQuake), idEarthQuake::typeInfo }, + { "idFuncPortal", "idEntity", sizeof(idFuncPortal), idFuncPortal::typeInfo }, + { "idFuncAASPortal", "idEntity", sizeof(idFuncAASPortal), idFuncAASPortal::typeInfo }, + { "idFuncAASObstacle", "idEntity", sizeof(idFuncAASObstacle), idFuncAASObstacle::typeInfo }, + { "idFuncRadioChatter", "idEntity", sizeof(idFuncRadioChatter), idFuncRadioChatter::typeInfo }, + { "idPhantomObjects", "idEntity", sizeof(idPhantomObjects), idPhantomObjects::typeInfo }, { "idAnimState", "", sizeof(idAnimState), idAnimState_typeInfo }, { "idAttachInfo", "", sizeof(idAttachInfo), idAttachInfo_typeInfo }, { "copyJoints_t", "", sizeof(copyJoints_t), copyJoints_t_typeInfo }, - { "idActor", "idAFEntity_Gibbable", sizeof(idActor), idActor_typeInfo }, + { "idActor", "idAFEntity_Gibbable", sizeof(idActor), idActor::typeInfo }, { "idProjectile::projectileFlags_s", "", sizeof(idProjectile::projectileFlags_s), idProjectile_projectileFlags_s_typeInfo }, - { "idProjectile", "idEntity", sizeof(idProjectile), idProjectile_typeInfo }, - { "idGuidedProjectile", "idProjectile", sizeof(idGuidedProjectile), idGuidedProjectile_typeInfo }, - { "idSoulCubeMissile", "idGuidedProjectile", sizeof(idSoulCubeMissile), idSoulCubeMissile_typeInfo }, + { "idProjectile", "idEntity", sizeof(idProjectile), idProjectile::typeInfo }, + { "idGuidedProjectile", "idProjectile", sizeof(idGuidedProjectile), idGuidedProjectile::typeInfo }, + { "idSoulCubeMissile", "idGuidedProjectile", sizeof(idSoulCubeMissile), idSoulCubeMissile::typeInfo }, { "beamTarget_t", "", sizeof(beamTarget_t), beamTarget_t_typeInfo }, - { "idBFGProjectile", "idProjectile", sizeof(idBFGProjectile), idBFGProjectile_typeInfo }, - { "idDebris", "idEntity", sizeof(idDebris), idDebris_typeInfo }, + { "idBFGProjectile", "idProjectile", sizeof(idBFGProjectile), idBFGProjectile::typeInfo }, + { "idDebris", "idEntity", sizeof(idDebris), idDebris::typeInfo }, // { "idPredictedValue< class type_ >", "", sizeof(idPredictedValue< class type_ >), idPredictedValue_class_type___typeInfo }, { "WeaponParticle_t", "", sizeof(WeaponParticle_t), WeaponParticle_t_typeInfo }, { "WeaponLight_t", "", sizeof(WeaponLight_t), WeaponLight_t_typeInfo }, - { "rvmWeaponObject", "idClass", sizeof(rvmWeaponObject), rvmWeaponObject_typeInfo }, - { "idWeapon", "idAnimatedEntity", sizeof(idWeapon), idWeapon_typeInfo }, - { "idLight", "idEntity", sizeof(idLight), idLight_typeInfo }, - { "idWorldspawn", "idEntity", sizeof(idWorldspawn), idWorldspawn_typeInfo }, - { "idItem", "idEntity", sizeof(idItem), idItem_typeInfo }, - { "idItemPowerup", "idItem", sizeof(idItemPowerup), idItemPowerup_typeInfo }, - { "idObjective", "idItem", sizeof(idObjective), idObjective_typeInfo }, - { "idVideoCDItem", "idItem", sizeof(idVideoCDItem), idVideoCDItem_typeInfo }, - { "idPDAItem", "idItem", sizeof(idPDAItem), idPDAItem_typeInfo }, - { "idMoveableItem", "idItem", sizeof(idMoveableItem), idMoveableItem_typeInfo }, - { "idMoveablePDAItem", "idMoveableItem", sizeof(idMoveablePDAItem), idMoveablePDAItem_typeInfo }, - { "idItemRemover", "idEntity", sizeof(idItemRemover), idItemRemover_typeInfo }, - { "idObjectiveComplete", "idItemRemover", sizeof(idObjectiveComplete), idObjectiveComplete_typeInfo }, + { "rvmWeaponObject", "idClass", sizeof(rvmWeaponObject), rvmWeaponObject::typeInfo }, + { "idWeapon", "idAnimatedEntity", sizeof(idWeapon), idWeapon::typeInfo }, + { "idLight", "idEntity", sizeof(idLight), idLight::typeInfo }, + { "idWorldspawn", "idEntity", sizeof(idWorldspawn), idWorldspawn::typeInfo }, + { "idItem", "idEntity", sizeof(idItem), idItem::typeInfo }, + { "idItemPowerup", "idItem", sizeof(idItemPowerup), idItemPowerup::typeInfo }, + { "idObjective", "idItem", sizeof(idObjective), idObjective::typeInfo }, + { "idVideoCDItem", "idItem", sizeof(idVideoCDItem), idVideoCDItem::typeInfo }, + { "idPDAItem", "idItem", sizeof(idPDAItem), idPDAItem::typeInfo }, + { "idMoveableItem", "idItem", sizeof(idMoveableItem), idMoveableItem::typeInfo }, + { "idMoveablePDAItem", "idMoveableItem", sizeof(idMoveablePDAItem), idMoveablePDAItem::typeInfo }, + { "idItemRemover", "idEntity", sizeof(idItemRemover), idItemRemover::typeInfo }, + { "idObjectiveComplete", "idItemRemover", sizeof(idObjectiveComplete), idObjectiveComplete::typeInfo }, { "screenBlob_t", "", sizeof(screenBlob_t), screenBlob_t_typeInfo }, { "idPlayerView", "", sizeof(idPlayerView), idPlayerView_typeInfo }, { "idPlayerIcon", "", sizeof(idPlayerIcon), idPlayerIcon_typeInfo }, @@ -9461,135 +9461,135 @@ static classTypeInfo_t classTypeInfo[] = { { "idInventory", "", sizeof(idInventory), idInventory_typeInfo }, { "loggedAccel_t", "", sizeof(loggedAccel_t), loggedAccel_t_typeInfo }, { "aasLocation_t", "", sizeof(aasLocation_t), aasLocation_t_typeInfo }, - { "idPlayer", "idActor", sizeof(idPlayer), idPlayer_typeInfo }, + { "idPlayer", "idActor", sizeof(idPlayer), idPlayer::typeInfo }, { "idMover::moveState_t", "", sizeof(idMover::moveState_t), idMover_moveState_t_typeInfo }, { "idMover::rotationState_t", "", sizeof(idMover::rotationState_t), idMover_rotationState_t_typeInfo }, - { "idMover", "idEntity", sizeof(idMover), idMover_typeInfo }, - { "idSplinePath", "idEntity", sizeof(idSplinePath), idSplinePath_typeInfo }, + { "idMover", "idEntity", sizeof(idMover), idMover::typeInfo }, + { "idSplinePath", "idEntity", sizeof(idSplinePath), idSplinePath::typeInfo }, { "floorInfo_s", "", sizeof(floorInfo_s), floorInfo_s_typeInfo }, - { "idElevator", "idMover", sizeof(idElevator), idElevator_typeInfo }, - { "idMover_Binary", "idEntity", sizeof(idMover_Binary), idMover_Binary_typeInfo }, - { "idDoor", "idMover_Binary", sizeof(idDoor), idDoor_typeInfo }, - { "idPlat", "idMover_Binary", sizeof(idPlat), idPlat_typeInfo }, - { "idMover_Periodic", "idEntity", sizeof(idMover_Periodic), idMover_Periodic_typeInfo }, - { "idRotater", "idMover_Periodic", sizeof(idRotater), idRotater_typeInfo }, - { "idBobber", "idMover_Periodic", sizeof(idBobber), idBobber_typeInfo }, - { "idPendulum", "idMover_Periodic", sizeof(idPendulum), idPendulum_typeInfo }, - { "idRiser", "idMover_Periodic", sizeof(idRiser), idRiser_typeInfo }, - { "idCamera", "idEntity", sizeof(idCamera), idCamera_typeInfo }, - { "idCameraView", "idCamera", sizeof(idCameraView), idCameraView_typeInfo }, + { "idElevator", "idMover", sizeof(idElevator), idElevator::typeInfo }, + { "idMover_Binary", "idEntity", sizeof(idMover_Binary), idMover_Binary::typeInfo }, + { "idDoor", "idMover_Binary", sizeof(idDoor), idDoor::typeInfo }, + { "idPlat", "idMover_Binary", sizeof(idPlat), idPlat::typeInfo }, + { "idMover_Periodic", "idEntity", sizeof(idMover_Periodic), idMover_Periodic::typeInfo }, + { "idRotater", "idMover_Periodic", sizeof(idRotater), idRotater::typeInfo }, + { "idBobber", "idMover_Periodic", sizeof(idBobber), idBobber::typeInfo }, + { "idPendulum", "idMover_Periodic", sizeof(idPendulum), idPendulum::typeInfo }, + { "idRiser", "idMover_Periodic", sizeof(idRiser), idRiser::typeInfo }, + { "idCamera", "idEntity", sizeof(idCamera), idCamera::typeInfo }, + { "idCameraView", "idCamera", sizeof(idCameraView), idCameraView::typeInfo }, { "cameraFrame_t", "", sizeof(cameraFrame_t), cameraFrame_t_typeInfo }, - { "idCameraAnim", "idCamera", sizeof(idCameraAnim), idCameraAnim_typeInfo }, - { "idMoveable", "idEntity", sizeof(idMoveable), idMoveable_typeInfo }, - { "idBarrel", "idMoveable", sizeof(idBarrel), idBarrel_typeInfo }, - { "idExplodingBarrel", "idBarrel", sizeof(idExplodingBarrel), idExplodingBarrel_typeInfo }, - { "idTarget", "idEntity", sizeof(idTarget), idTarget_typeInfo }, - { "idTarget_Remove", "idTarget", sizeof(idTarget_Remove), idTarget_Remove_typeInfo }, - { "idTarget_Show", "idTarget", sizeof(idTarget_Show), idTarget_Show_typeInfo }, - { "idTarget_Damage", "idTarget", sizeof(idTarget_Damage), idTarget_Damage_typeInfo }, - { "idTarget_SessionCommand", "idTarget", sizeof(idTarget_SessionCommand), idTarget_SessionCommand_typeInfo }, - { "idTarget_EndLevel", "idTarget", sizeof(idTarget_EndLevel), idTarget_EndLevel_typeInfo }, - { "idTarget_WaitForButton", "idTarget", sizeof(idTarget_WaitForButton), idTarget_WaitForButton_typeInfo }, - { "idTarget_SetGlobalShaderTime", "idTarget", sizeof(idTarget_SetGlobalShaderTime), idTarget_SetGlobalShaderTime_typeInfo }, - { "idTarget_SetShaderParm", "idTarget", sizeof(idTarget_SetShaderParm), idTarget_SetShaderParm_typeInfo }, - { "idTarget_SetShaderTime", "idTarget", sizeof(idTarget_SetShaderTime), idTarget_SetShaderTime_typeInfo }, - { "idTarget_FadeEntity", "idTarget", sizeof(idTarget_FadeEntity), idTarget_FadeEntity_typeInfo }, - { "idTarget_LightFadeIn", "idTarget", sizeof(idTarget_LightFadeIn), idTarget_LightFadeIn_typeInfo }, - { "idTarget_LightFadeOut", "idTarget", sizeof(idTarget_LightFadeOut), idTarget_LightFadeOut_typeInfo }, - { "idTarget_Give", "idTarget", sizeof(idTarget_Give), idTarget_Give_typeInfo }, - { "idTarget_GiveEmail", "idTarget", sizeof(idTarget_GiveEmail), idTarget_GiveEmail_typeInfo }, - { "idTarget_SetModel", "idTarget", sizeof(idTarget_SetModel), idTarget_SetModel_typeInfo }, - { "idTarget_SetInfluence", "idTarget", sizeof(idTarget_SetInfluence), idTarget_SetInfluence_typeInfo }, - { "idTarget_SetKeyVal", "idTarget", sizeof(idTarget_SetKeyVal), idTarget_SetKeyVal_typeInfo }, - { "idTarget_SetFov", "idTarget", sizeof(idTarget_SetFov), idTarget_SetFov_typeInfo }, - { "idTarget_SetPrimaryObjective", "idTarget", sizeof(idTarget_SetPrimaryObjective), idTarget_SetPrimaryObjective_typeInfo }, - { "idTarget_LockDoor", "idTarget", sizeof(idTarget_LockDoor), idTarget_LockDoor_typeInfo }, - { "idTarget_CallObjectFunction", "idTarget", sizeof(idTarget_CallObjectFunction), idTarget_CallObjectFunction_typeInfo }, - { "idTarget_EnableLevelWeapons", "idTarget", sizeof(idTarget_EnableLevelWeapons), idTarget_EnableLevelWeapons_typeInfo }, - { "idTarget_Tip", "idTarget", sizeof(idTarget_Tip), idTarget_Tip_typeInfo }, - { "idTarget_GiveSecurity", "idTarget", sizeof(idTarget_GiveSecurity), idTarget_GiveSecurity_typeInfo }, - { "idTarget_RemoveWeapons", "idTarget", sizeof(idTarget_RemoveWeapons), idTarget_RemoveWeapons_typeInfo }, - { "idTarget_LevelTrigger", "idTarget", sizeof(idTarget_LevelTrigger), idTarget_LevelTrigger_typeInfo }, - { "idTarget_EnableStamina", "idTarget", sizeof(idTarget_EnableStamina), idTarget_EnableStamina_typeInfo }, - { "idTarget_FadeSoundClass", "idTarget", sizeof(idTarget_FadeSoundClass), idTarget_FadeSoundClass_typeInfo }, - { "idTrigger", "idEntity", sizeof(idTrigger), idTrigger_typeInfo }, - { "idTrigger_Multi", "idTrigger", sizeof(idTrigger_Multi), idTrigger_Multi_typeInfo }, - { "idTrigger_EntityName", "idTrigger", sizeof(idTrigger_EntityName), idTrigger_EntityName_typeInfo }, - { "idTrigger_Timer", "idTrigger", sizeof(idTrigger_Timer), idTrigger_Timer_typeInfo }, - { "idTrigger_Count", "idTrigger", sizeof(idTrigger_Count), idTrigger_Count_typeInfo }, - { "idTrigger_Hurt", "idTrigger", sizeof(idTrigger_Hurt), idTrigger_Hurt_typeInfo }, - { "idTrigger_Fade", "idTrigger", sizeof(idTrigger_Fade), idTrigger_Fade_typeInfo }, - { "idTrigger_Touch", "idTrigger", sizeof(idTrigger_Touch), idTrigger_Touch_typeInfo }, - { "idSound", "idEntity", sizeof(idSound), idSound_typeInfo }, + { "idCameraAnim", "idCamera", sizeof(idCameraAnim), idCameraAnim::typeInfo }, + { "idMoveable", "idEntity", sizeof(idMoveable), idMoveable::typeInfo }, + { "idBarrel", "idMoveable", sizeof(idBarrel), idBarrel::typeInfo }, + { "idExplodingBarrel", "idBarrel", sizeof(idExplodingBarrel), idExplodingBarrel::typeInfo }, + { "idTarget", "idEntity", sizeof(idTarget), idTarget::typeInfo }, + { "idTarget_Remove", "idTarget", sizeof(idTarget_Remove), idTarget_Remove::typeInfo }, + { "idTarget_Show", "idTarget", sizeof(idTarget_Show), idTarget_Show::typeInfo }, + { "idTarget_Damage", "idTarget", sizeof(idTarget_Damage), idTarget_Damage::typeInfo }, + { "idTarget_SessionCommand", "idTarget", sizeof(idTarget_SessionCommand), idTarget_SessionCommand::typeInfo }, + { "idTarget_EndLevel", "idTarget", sizeof(idTarget_EndLevel), idTarget_EndLevel::typeInfo }, + { "idTarget_WaitForButton", "idTarget", sizeof(idTarget_WaitForButton), idTarget_WaitForButton::typeInfo }, + { "idTarget_SetGlobalShaderTime", "idTarget", sizeof(idTarget_SetGlobalShaderTime), idTarget_SetGlobalShaderTime::typeInfo }, + { "idTarget_SetShaderParm", "idTarget", sizeof(idTarget_SetShaderParm), idTarget_SetShaderParm::typeInfo }, + { "idTarget_SetShaderTime", "idTarget", sizeof(idTarget_SetShaderTime), idTarget_SetShaderTime::typeInfo }, + { "idTarget_FadeEntity", "idTarget", sizeof(idTarget_FadeEntity), idTarget_FadeEntity::typeInfo }, + { "idTarget_LightFadeIn", "idTarget", sizeof(idTarget_LightFadeIn), idTarget_LightFadeIn::typeInfo }, + { "idTarget_LightFadeOut", "idTarget", sizeof(idTarget_LightFadeOut), idTarget_LightFadeOut::typeInfo }, + { "idTarget_Give", "idTarget", sizeof(idTarget_Give), idTarget_Give::typeInfo }, + { "idTarget_GiveEmail", "idTarget", sizeof(idTarget_GiveEmail), idTarget_GiveEmail::typeInfo }, + { "idTarget_SetModel", "idTarget", sizeof(idTarget_SetModel), idTarget_SetModel::typeInfo }, + { "idTarget_SetInfluence", "idTarget", sizeof(idTarget_SetInfluence), idTarget_SetInfluence::typeInfo }, + { "idTarget_SetKeyVal", "idTarget", sizeof(idTarget_SetKeyVal), idTarget_SetKeyVal::typeInfo }, + { "idTarget_SetFov", "idTarget", sizeof(idTarget_SetFov), idTarget_SetFov::typeInfo }, + { "idTarget_SetPrimaryObjective", "idTarget", sizeof(idTarget_SetPrimaryObjective), idTarget_SetPrimaryObjective::typeInfo }, + { "idTarget_LockDoor", "idTarget", sizeof(idTarget_LockDoor), idTarget_LockDoor::typeInfo }, + { "idTarget_CallObjectFunction", "idTarget", sizeof(idTarget_CallObjectFunction), idTarget_CallObjectFunction::typeInfo }, + { "idTarget_EnableLevelWeapons", "idTarget", sizeof(idTarget_EnableLevelWeapons), idTarget_EnableLevelWeapons::typeInfo }, + { "idTarget_Tip", "idTarget", sizeof(idTarget_Tip), idTarget_Tip::typeInfo }, + { "idTarget_GiveSecurity", "idTarget", sizeof(idTarget_GiveSecurity), idTarget_GiveSecurity::typeInfo }, + { "idTarget_RemoveWeapons", "idTarget", sizeof(idTarget_RemoveWeapons), idTarget_RemoveWeapons::typeInfo }, + { "idTarget_LevelTrigger", "idTarget", sizeof(idTarget_LevelTrigger), idTarget_LevelTrigger::typeInfo }, + { "idTarget_EnableStamina", "idTarget", sizeof(idTarget_EnableStamina), idTarget_EnableStamina::typeInfo }, + { "idTarget_FadeSoundClass", "idTarget", sizeof(idTarget_FadeSoundClass), idTarget_FadeSoundClass::typeInfo }, + { "idTrigger", "idEntity", sizeof(idTrigger), idTrigger::typeInfo }, + { "idTrigger_Multi", "idTrigger", sizeof(idTrigger_Multi), idTrigger_Multi::typeInfo }, + { "idTrigger_EntityName", "idTrigger", sizeof(idTrigger_EntityName), idTrigger_EntityName::typeInfo }, + { "idTrigger_Timer", "idTrigger", sizeof(idTrigger_Timer), idTrigger_Timer::typeInfo }, + { "idTrigger_Count", "idTrigger", sizeof(idTrigger_Count), idTrigger_Count::typeInfo }, + { "idTrigger_Hurt", "idTrigger", sizeof(idTrigger_Hurt), idTrigger_Hurt::typeInfo }, + { "idTrigger_Fade", "idTrigger", sizeof(idTrigger_Fade), idTrigger_Fade::typeInfo }, + { "idTrigger_Touch", "idTrigger", sizeof(idTrigger_Touch), idTrigger_Touch::typeInfo }, + { "idSound", "idEntity", sizeof(idSound), idSound::typeInfo }, { "idFXLocalAction", "", sizeof(idFXLocalAction), idFXLocalAction_typeInfo }, - { "idEntityFx", "idEntity", sizeof(idEntityFx), idEntityFx_typeInfo }, - { "idTeleporter", "idEntityFx", sizeof(idTeleporter), idTeleporter_typeInfo }, - { "idSecurityCamera", "idEntity", sizeof(idSecurityCamera), idSecurityCamera_typeInfo }, + { "idEntityFx", "idEntity", sizeof(idEntityFx), idEntityFx::typeInfo }, + { "idTeleporter", "idEntityFx", sizeof(idTeleporter), idTeleporter::typeInfo }, + { "idSecurityCamera", "idEntity", sizeof(idSecurityCamera), idSecurityCamera::typeInfo }, { "shard_t", "", sizeof(shard_t), shard_t_typeInfo }, - { "idBrittleFracture", "idEntity", sizeof(idBrittleFracture), idBrittleFracture_typeInfo }, + { "idBrittleFracture", "idEntity", sizeof(idBrittleFracture), idBrittleFracture::typeInfo }, { "obstaclePath_t", "", sizeof(obstaclePath_t), obstaclePath_t_typeInfo }, { "predictedPath_t", "", sizeof(predictedPath_t), predictedPath_t_typeInfo }, { "particleEmitter_t", "", sizeof(particleEmitter_t), particleEmitter_t_typeInfo }, { "idMoveState", "", sizeof(idMoveState), idMoveState_typeInfo }, - { "idAI", "idActor", sizeof(idAI), idAI_typeInfo }, - { "idCombatNode", "idEntity", sizeof(idCombatNode), idCombatNode_typeInfo }, - { "idAI_Vagary", "idAI", sizeof(idAI_Vagary), idAI_Vagary_typeInfo }, - { "rvmAIObject", "idClass", sizeof(rvmAIObject), rvmAIObject_typeInfo }, - { "rvmMonsterBase", "rvmAIObject", sizeof(rvmMonsterBase), rvmMonsterBase_typeInfo }, - { "rvmMonsterZombieBase", "rvmMonsterBase", sizeof(rvmMonsterZombieBase), rvmMonsterZombieBase_typeInfo }, - { "rvmMonsterZombie", "rvmMonsterZombieBase", sizeof(rvmMonsterZombie), rvmMonsterZombie_typeInfo }, - { "rvmMonsterZombieBernie", "rvmMonsterZombieBase", sizeof(rvmMonsterZombieBernie), rvmMonsterZombieBernie_typeInfo }, - { "rvmMonsterZombieMorgue", "rvmMonsterZombieBase", sizeof(rvmMonsterZombieMorgue), rvmMonsterZombieMorgue_typeInfo }, - { "rvmMonsterZombieSawyer", "rvmMonsterZombieBase", sizeof(rvmMonsterZombieSawyer), rvmMonsterZombieSawyer_typeInfo }, - { "rvmMonsterZombieCommandoTentacle", "rvmMonsterBase", sizeof(rvmMonsterZombieCommandoTentacle), rvmMonsterZombieCommandoTentacle_typeInfo }, - { "rvmMonsterZombieCommandoCGun", "rvmMonsterBase", sizeof(rvmMonsterZombieCommandoCGun), rvmMonsterZombieCommandoCGun_typeInfo }, - { "rvmMonsterZombieSecurityPistol", "rvmMonsterZombieBase", sizeof(rvmMonsterZombieSecurityPistol), rvmMonsterZombieSecurityPistol_typeInfo }, - { "rvmCharacter", "rvmAIObject", sizeof(rvmCharacter), rvmCharacter_typeInfo }, - { "rvmAICharacterProne", "rvmAIObject", sizeof(rvmAICharacterProne), rvmAICharacterProne_typeInfo }, - { "rvmFollower", "rvmAIObject", sizeof(rvmFollower), rvmFollower_typeInfo }, - { "rvmCharSentry", "rvmCharacter", sizeof(rvmCharSentry), rvmCharSentry_typeInfo }, - { "rvmAIAlphaLabs2Scientist1", "rvmAIObject", sizeof(rvmAIAlphaLabs2Scientist1), rvmAIAlphaLabs2Scientist1_typeInfo }, - { "rvmMonsterDemonPinky", "rvmMonsterBase", sizeof(rvmMonsterDemonPinky), rvmMonsterDemonPinky_typeInfo }, - { "rvmMonsterDemonImp", "rvmMonsterBase", sizeof(rvmMonsterDemonImp), rvmMonsterDemonImp_typeInfo }, - { "rvmMonsterDemonVulgar", "rvmMonsterBase", sizeof(rvmMonsterDemonVulgar), rvmMonsterDemonVulgar_typeInfo }, - { "rvmMonsterDemonRevenant", "rvmMonsterBase", sizeof(rvmMonsterDemonRevenant), rvmMonsterDemonRevenant_typeInfo }, - { "rvmMonsterDemonHellknight", "rvmMonsterBase", sizeof(rvmMonsterDemonHellknight), rvmMonsterDemonHellknight_typeInfo }, - { "rvmMonsterDemonMaggot", "rvmMonsterBase", sizeof(rvmMonsterDemonMaggot), rvmMonsterDemonMaggot_typeInfo }, - { "rvmMonsterDemonCherub", "rvmMonsterBase", sizeof(rvmMonsterDemonCherub), rvmMonsterDemonCherub_typeInfo }, - { "rvmMonsterDemonTrite", "rvmMonsterBase", sizeof(rvmMonsterDemonTrite), rvmMonsterDemonTrite_typeInfo }, - { "rvmMonsterDemonWraith", "rvmMonsterBase", sizeof(rvmMonsterDemonWraith), rvmMonsterDemonWraith_typeInfo }, - { "rvmMonsterDemonMancubus", "rvmMonsterBase", sizeof(rvmMonsterDemonMancubus), rvmMonsterDemonMancubus_typeInfo }, - { "rvmMonsterDemonArchvile", "rvmMonsterBase", sizeof(rvmMonsterDemonArchvile), rvmMonsterDemonArchvile_typeInfo }, - { "rvmMonsterFlyingCacodemon", "rvmMonsterBase", sizeof(rvmMonsterFlyingCacodemon), rvmMonsterFlyingCacodemon_typeInfo }, - { "rvmMonsterFlyingLostsoul", "rvmMonsterBase", sizeof(rvmMonsterFlyingLostsoul), rvmMonsterFlyingLostsoul_typeInfo }, - { "rvmMonsterTurret", "rvmMonsterBase", sizeof(rvmMonsterTurret), rvmMonsterTurret_typeInfo }, - { "rvmMonsterBossCyberdemon", "rvmMonsterBase", sizeof(rvmMonsterBossCyberdemon), rvmMonsterBossCyberdemon_typeInfo }, - { "rvmMonsterBossVagary", "rvmMonsterBase", sizeof(rvmMonsterBossVagary), rvmMonsterBossVagary_typeInfo }, - { "rvmMonsterBossSabaoth", "rvmMonsterBase", sizeof(rvmMonsterBossSabaoth), rvmMonsterBossSabaoth_typeInfo }, - { "rvmSeekerBase", "rvmMonsterBase", sizeof(rvmSeekerBase), rvmSeekerBase_typeInfo }, - { "rvmMonsterBossGuardianSpawner", "rvmMonsterBase", sizeof(rvmMonsterBossGuardianSpawner), rvmMonsterBossGuardianSpawner_typeInfo }, - { "rvmMonsterBossGuardian", "rvmMonsterBase", sizeof(rvmMonsterBossGuardian), rvmMonsterBossGuardian_typeInfo }, - { "rvmMonsterBossGuardianSeeker", "rvmSeekerBase", sizeof(rvmMonsterBossGuardianSeeker), rvmMonsterBossGuardianSeeker_typeInfo }, - { "idTestModel", "idAnimatedEntity", sizeof(idTestModel), idTestModel_typeInfo }, + { "idAI", "idActor", sizeof(idAI), idAI::typeInfo }, + { "idCombatNode", "idEntity", sizeof(idCombatNode), idCombatNode::typeInfo }, + { "idAI_Vagary", "idAI", sizeof(idAI_Vagary), idAI_Vagary::typeInfo }, + { "rvmAIObject", "idClass", sizeof(rvmAIObject), rvmAIObject::typeInfo }, + { "rvmMonsterBase", "rvmAIObject", sizeof(rvmMonsterBase), rvmMonsterBase::typeInfo }, + { "rvmMonsterZombieBase", "rvmMonsterBase", sizeof(rvmMonsterZombieBase), rvmMonsterZombieBase::typeInfo }, + { "rvmMonsterZombie", "rvmMonsterZombieBase", sizeof(rvmMonsterZombie), rvmMonsterZombie::typeInfo }, + { "rvmMonsterZombieBernie", "rvmMonsterZombieBase", sizeof(rvmMonsterZombieBernie), rvmMonsterZombieBernie::typeInfo }, + { "rvmMonsterZombieMorgue", "rvmMonsterZombieBase", sizeof(rvmMonsterZombieMorgue), rvmMonsterZombieMorgue::typeInfo }, + { "rvmMonsterZombieSawyer", "rvmMonsterZombieBase", sizeof(rvmMonsterZombieSawyer), rvmMonsterZombieSawyer::typeInfo }, + { "rvmMonsterZombieCommandoTentacle", "rvmMonsterBase", sizeof(rvmMonsterZombieCommandoTentacle), rvmMonsterZombieCommandoTentacle::typeInfo }, + { "rvmMonsterZombieCommandoCGun", "rvmMonsterBase", sizeof(rvmMonsterZombieCommandoCGun), rvmMonsterZombieCommandoCGun::typeInfo }, + { "rvmMonsterZombieSecurityPistol", "rvmMonsterZombieBase", sizeof(rvmMonsterZombieSecurityPistol), rvmMonsterZombieSecurityPistol::typeInfo }, + { "rvmCharacter", "rvmAIObject", sizeof(rvmCharacter), rvmCharacter::typeInfo }, + { "rvmAICharacterProne", "rvmAIObject", sizeof(rvmAICharacterProne), rvmAICharacterProne::typeInfo }, + { "rvmFollower", "rvmAIObject", sizeof(rvmFollower), rvmFollower::typeInfo }, + { "rvmCharSentry", "rvmCharacter", sizeof(rvmCharSentry), rvmCharSentry::typeInfo }, + { "rvmAIAlphaLabs2Scientist1", "rvmAIObject", sizeof(rvmAIAlphaLabs2Scientist1), rvmAIAlphaLabs2Scientist1::typeInfo }, + { "rvmMonsterDemonPinky", "rvmMonsterBase", sizeof(rvmMonsterDemonPinky), rvmMonsterDemonPinky::typeInfo }, + { "rvmMonsterDemonImp", "rvmMonsterBase", sizeof(rvmMonsterDemonImp), rvmMonsterDemonImp::typeInfo }, + { "rvmMonsterDemonVulgar", "rvmMonsterBase", sizeof(rvmMonsterDemonVulgar), rvmMonsterDemonVulgar::typeInfo }, + { "rvmMonsterDemonRevenant", "rvmMonsterBase", sizeof(rvmMonsterDemonRevenant), rvmMonsterDemonRevenant::typeInfo }, + { "rvmMonsterDemonHellknight", "rvmMonsterBase", sizeof(rvmMonsterDemonHellknight), rvmMonsterDemonHellknight::typeInfo }, + { "rvmMonsterDemonMaggot", "rvmMonsterBase", sizeof(rvmMonsterDemonMaggot), rvmMonsterDemonMaggot::typeInfo }, + { "rvmMonsterDemonCherub", "rvmMonsterBase", sizeof(rvmMonsterDemonCherub), rvmMonsterDemonCherub::typeInfo }, + { "rvmMonsterDemonTrite", "rvmMonsterBase", sizeof(rvmMonsterDemonTrite), rvmMonsterDemonTrite::typeInfo }, + { "rvmMonsterDemonWraith", "rvmMonsterBase", sizeof(rvmMonsterDemonWraith), rvmMonsterDemonWraith::typeInfo }, + { "rvmMonsterDemonMancubus", "rvmMonsterBase", sizeof(rvmMonsterDemonMancubus), rvmMonsterDemonMancubus::typeInfo }, + { "rvmMonsterDemonArchvile", "rvmMonsterBase", sizeof(rvmMonsterDemonArchvile), rvmMonsterDemonArchvile::typeInfo }, + { "rvmMonsterFlyingCacodemon", "rvmMonsterBase", sizeof(rvmMonsterFlyingCacodemon), rvmMonsterFlyingCacodemon::typeInfo }, + { "rvmMonsterFlyingLostsoul", "rvmMonsterBase", sizeof(rvmMonsterFlyingLostsoul), rvmMonsterFlyingLostsoul::typeInfo }, + { "rvmMonsterTurret", "rvmMonsterBase", sizeof(rvmMonsterTurret), rvmMonsterTurret::typeInfo }, + { "rvmMonsterBossCyberdemon", "rvmMonsterBase", sizeof(rvmMonsterBossCyberdemon), rvmMonsterBossCyberdemon::typeInfo }, + { "rvmMonsterBossVagary", "rvmMonsterBase", sizeof(rvmMonsterBossVagary), rvmMonsterBossVagary::typeInfo }, + { "rvmMonsterBossSabaoth", "rvmMonsterBase", sizeof(rvmMonsterBossSabaoth), rvmMonsterBossSabaoth::typeInfo }, + { "rvmSeekerBase", "rvmMonsterBase", sizeof(rvmSeekerBase), rvmSeekerBase::typeInfo }, + { "rvmMonsterBossGuardianSpawner", "rvmMonsterBase", sizeof(rvmMonsterBossGuardianSpawner), rvmMonsterBossGuardianSpawner::typeInfo }, + { "rvmMonsterBossGuardian", "rvmMonsterBase", sizeof(rvmMonsterBossGuardian), rvmMonsterBossGuardian::typeInfo }, + { "rvmMonsterBossGuardianSeeker", "rvmSeekerBase", sizeof(rvmMonsterBossGuardianSeeker), rvmMonsterBossGuardianSeeker::typeInfo }, + { "idTestModel", "idAnimatedEntity", sizeof(idTestModel), idTestModel::typeInfo }, { "opcode_t", "", sizeof(opcode_t), opcode_t_typeInfo }, { "idCompiler", "", sizeof(idCompiler), idCompiler_typeInfo }, { "prstack_t", "", sizeof(prstack_t), prstack_t_typeInfo }, { "idInterpreter", "", sizeof(idInterpreter), idInterpreter_typeInfo }, - { "idThread", "idClass", sizeof(idThread), idThread_typeInfo }, - { "rvmWeaponFist", "rvmWeaponObject", sizeof(rvmWeaponFist), rvmWeaponFist_typeInfo }, - { "rvmWeaponPistol", "rvmWeaponObject", sizeof(rvmWeaponPistol), rvmWeaponPistol_typeInfo }, - { "rvmWeaponFlashlight", "rvmWeaponObject", sizeof(rvmWeaponFlashlight), rvmWeaponFlashlight_typeInfo }, - { "rvmWeaponPDA", "rvmWeaponObject", sizeof(rvmWeaponPDA), rvmWeaponPDA_typeInfo }, - { "rvmWeaponShotgun", "rvmWeaponObject", sizeof(rvmWeaponShotgun), rvmWeaponShotgun_typeInfo }, - { "rvmWeaponDoubleShotgun", "rvmWeaponObject", sizeof(rvmWeaponDoubleShotgun), rvmWeaponDoubleShotgun_typeInfo }, - { "rvmWeaponMachineGun", "rvmWeaponObject", sizeof(rvmWeaponMachineGun), rvmWeaponMachineGun_typeInfo }, - { "rvmWeaponPlasmaGun", "rvmWeaponObject", sizeof(rvmWeaponPlasmaGun), rvmWeaponPlasmaGun_typeInfo }, - { "rvmWeaponChainGun", "rvmWeaponObject", sizeof(rvmWeaponChainGun), rvmWeaponChainGun_typeInfo }, - { "rvmWeaponRocketLauncher", "rvmWeaponObject", sizeof(rvmWeaponRocketLauncher), rvmWeaponRocketLauncher_typeInfo }, - { "rvmWeaponBFG", "rvmWeaponObject", sizeof(rvmWeaponBFG), rvmWeaponBFG_typeInfo }, - { "rvmWeaponHandgrenade", "rvmWeaponObject", sizeof(rvmWeaponHandgrenade), rvmWeaponHandgrenade_typeInfo }, - { "rvmWeaponChainsaw", "rvmWeaponObject", sizeof(rvmWeaponChainsaw), rvmWeaponChainsaw_typeInfo }, - { "rvmWeaponGrabber", "rvmWeaponObject", sizeof(rvmWeaponGrabber), rvmWeaponGrabber_typeInfo }, + { "idThread", "idClass", sizeof(idThread), idThread::typeInfo }, + { "rvmWeaponFist", "rvmWeaponObject", sizeof(rvmWeaponFist), rvmWeaponFist::typeInfo }, + { "rvmWeaponPistol", "rvmWeaponObject", sizeof(rvmWeaponPistol), rvmWeaponPistol::typeInfo }, + { "rvmWeaponFlashlight", "rvmWeaponObject", sizeof(rvmWeaponFlashlight), rvmWeaponFlashlight::typeInfo }, + { "rvmWeaponPDA", "rvmWeaponObject", sizeof(rvmWeaponPDA), rvmWeaponPDA::typeInfo }, + { "rvmWeaponShotgun", "rvmWeaponObject", sizeof(rvmWeaponShotgun), rvmWeaponShotgun::typeInfo }, + { "rvmWeaponDoubleShotgun", "rvmWeaponObject", sizeof(rvmWeaponDoubleShotgun), rvmWeaponDoubleShotgun::typeInfo }, + { "rvmWeaponMachineGun", "rvmWeaponObject", sizeof(rvmWeaponMachineGun), rvmWeaponMachineGun::typeInfo }, + { "rvmWeaponPlasmaGun", "rvmWeaponObject", sizeof(rvmWeaponPlasmaGun), rvmWeaponPlasmaGun::typeInfo }, + { "rvmWeaponChainGun", "rvmWeaponObject", sizeof(rvmWeaponChainGun), rvmWeaponChainGun::typeInfo }, + { "rvmWeaponRocketLauncher", "rvmWeaponObject", sizeof(rvmWeaponRocketLauncher), rvmWeaponRocketLauncher::typeInfo }, + { "rvmWeaponBFG", "rvmWeaponObject", sizeof(rvmWeaponBFG), rvmWeaponBFG::typeInfo }, + { "rvmWeaponHandgrenade", "rvmWeaponObject", sizeof(rvmWeaponHandgrenade), rvmWeaponHandgrenade::typeInfo }, + { "rvmWeaponChainsaw", "rvmWeaponObject", sizeof(rvmWeaponChainsaw), rvmWeaponChainsaw::typeInfo }, + { "rvmWeaponGrabber", "rvmWeaponObject", sizeof(rvmWeaponGrabber), rvmWeaponGrabber::typeInfo }, { "fuzzyseperator_t", "", sizeof(fuzzyseperator_t), fuzzyseperator_t_typeInfo }, { "weight_t", "", sizeof(weight_t), weight_t_typeInfo }, { "weightconfig_t", "", sizeof(weightconfig_t), weightconfig_t_typeInfo }, @@ -9613,8 +9613,8 @@ static classTypeInfo_t classTypeInfo[] = { { "bot_goalstate_t", "", sizeof(bot_goalstate_t), bot_goalstate_t_typeInfo }, { "idBotGoalManager", "", sizeof(idBotGoalManager), idBotGoalManager_typeInfo }, { "bot_state_t", "", sizeof(bot_state_t), bot_state_t_typeInfo }, - { "rvmBot", "idPlayer", sizeof(rvmBot), rvmBot_typeInfo }, + { "rvmBot", "idPlayer", sizeof(rvmBot), rvmBot::typeInfo }, { NULL, NULL, 0, NULL } }; -#endif /* !__GAMETYPEINFO_H__ */ +#endif /* !__TYPEINFOGEN_H__ */ diff --git a/neo/doom3/game/gamesys/TypeInfoGen_Events.h b/neo/doom3/game/gamesys/TypeInfoGen_Events.h new file mode 100644 index 00000000..f6f63192 --- /dev/null +++ b/neo/doom3/game/gamesys/TypeInfoGen_Events.h @@ -0,0 +1,555 @@ +/* +=================================================================================== + + AUTO-GENERATED FILE. DO NOT EDIT. + Generated by TypeInfoGen (script events) + +=================================================================================== +*/ + +// -------------------- +// Script EventDefs +// -------------------- + +extern const idEventDef EV_GetName; +extern const idEventDef EV_SetName; +extern const idEventDef EV_FindTargets; +extern const idEventDef EV_ActivateTargets; +extern const idEventDef EV_NumTargets; +extern const idEventDef EV_GetTarget; +extern const idEventDef EV_RandomTarget; +extern const idEventDef EV_Bind; +extern const idEventDef EV_BindPosition; +extern const idEventDef EV_BindToJoint; +extern const idEventDef EV_Unbind; +extern const idEventDef EV_RemoveBinds; +extern const idEventDef EV_Spawnbind; +extern const idEventDef EV_SetOwner; +extern const idEventDef EV_SetModel; +extern const idEventDef EV_SetSkin; +extern const idEventDef EV_GetShaderParm; +extern const idEventDef EV_SetShaderParm; +extern const idEventDef EV_SetShaderParms; +extern const idEventDef EV_SetColor; +extern const idEventDef EV_GetColor; +extern const idEventDef EV_IsHidden; +extern const idEventDef EV_Hide; +extern const idEventDef EV_Show; +extern const idEventDef EV_CacheSoundShader; +extern const idEventDef EV_StartSoundShader; +extern const idEventDef EV_StopSound; +extern const idEventDef EV_StartSound; +extern const idEventDef EV_FadeSound; +extern const idEventDef EV_GetWorldOrigin; +extern const idEventDef EV_SetWorldOrigin; +extern const idEventDef EV_GetOrigin; +extern const idEventDef EV_SetOrigin; +extern const idEventDef EV_GetAngles; +extern const idEventDef EV_SetAngles; +extern const idEventDef EV_SetLinearVelocity; +extern const idEventDef EV_GetLinearVelocity; +extern const idEventDef EV_SetAngularVelocity; +extern const idEventDef EV_GetAngularVelocity; +extern const idEventDef EV_SetSize; +extern const idEventDef EV_GetSize; +extern const idEventDef EV_GetMins; +extern const idEventDef EV_GetMaxs; +extern const idEventDef EV_Touches; +extern const idEventDef EV_SetGuiParm; +extern const idEventDef EV_SetGuiFloat; +extern const idEventDef EV_GetNextKey; +extern const idEventDef EV_SetKey; +extern const idEventDef EV_GetKey; +extern const idEventDef EV_GetIntKey; +extern const idEventDef EV_GetFloatKey; +extern const idEventDef EV_GetVectorKey; +extern const idEventDef EV_GetEntityKey; +extern const idEventDef EV_RestorePosition; +extern const idEventDef EV_UpdateCameraTarget; +extern const idEventDef EV_DistanceTo; +extern const idEventDef EV_DistanceToPoint; +extern const idEventDef EV_StartFx; +extern const idEventDef EV_WaitFrame; +extern const idEventDef EV_Wait; +extern const idEventDef EV_HasFunction; +extern const idEventDef EV_CallFunction; +extern const idEventDef EV_SetNeverDormant; +extern const idEventDef EV_idAnimatedEntity_GetJointHandle; +extern const idEventDef EV_idAnimatedEntity_ClearAllJoints; +extern const idEventDef EV_idAnimatedEntity_ClearJoint; +extern const idEventDef EV_idAnimatedEntity_SetJointPos; +extern const idEventDef EV_idAnimatedEntity_SetJointAngle; +extern const idEventDef EV_idAnimatedEntity_GetJointPos; +extern const idEventDef EV_idAnimatedEntity_GetJointAngle; +extern const idEventDef EV_idAFEntity_Base_SetConstraintPosition; +extern const idEventDef EV_Gib; +extern const idEventDef EV_idAFEntity_Generic_Activate; +extern const idEventDef EV_idAFEntity_WithAttachedHead_Activate; +extern const idEventDef EV_idAFEntity_ClawFourFingers_SetFingerAngle; +extern const idEventDef EV_idAFEntity_ClawFourFingers_StopFingers; +extern const idEventDef EV_idPlayerStart_Activate; +extern const idEventDef EV_idPlayerStart_TeleportStage; +extern const idEventDef EV_idActivator_Activate; +extern const idEventDef EV_idPathCorner_RandomPath; +extern const idEventDef EV_idDamagable_Activate; +extern const idEventDef EV_idDamagable_RestoreDamagable; +extern const idEventDef EV_idExplodable_Activate; +extern const idEventDef EV_PostSpawn; +extern const idEventDef EV_idForceField_Activate; +extern const idEventDef EV_idForceField_Toggle; +extern const idEventDef EV_idAnimated_Activate; +extern const idEventDef EV_idAnimated_Start; +extern const idEventDef EV_idAnimated_StartRagdoll; +extern const idEventDef EV_idAnimated_AnimDone; +extern const idEventDef EV_idAnimated_RightFoot; +extern const idEventDef EV_idAnimated_LaunchMissiles; +extern const idEventDef EV_idAnimated_LaunchMissilesUpdate; +extern const idEventDef EV_idStaticEntity_Activate; +extern const idEventDef EV_idFuncSmoke_Activate; +extern const idEventDef EV_idFuncSplat_Splat; +extern const idEventDef EV_idVacuumSeparatorEntity_Activate; +extern const idEventDef EV_idBeam_Activate; +extern const idEventDef EV_idLiquid_Touch; +extern const idEventDef EV_idShaking_Activate; +extern const idEventDef EV_idEarthQuake_Activate; +extern const idEventDef EV_idFuncPortal_Activate; +extern const idEventDef EV_idFuncAASPortal_Activate; +extern const idEventDef EV_idFuncAASObstacle_Activate; +extern const idEventDef EV_idFuncRadioChatter_Activate; +extern const idEventDef EV_idFuncRadioChatter_Resetradiohud; +extern const idEventDef EV_idPhantomObjects_Activate; +extern const idEventDef EV_idActor_EnableEyeFocus; +extern const idEventDef EV_idActor_DisableEyeFocus; +extern const idEventDef EV_idActor_RightFoot; +extern const idEventDef EV_idActor_EnableWalkIK; +extern const idEventDef EV_idActor_DisableWalkIK; +extern const idEventDef EV_idActor_EnableLegIK; +extern const idEventDef EV_idActor_DisableLegIK; +extern const idEventDef EV_idActor_SetAnimPrefix; +extern const idEventDef EV_idActor_PreventPain; +extern const idEventDef EV_idActor_DisablePain; +extern const idEventDef EV_idActor_EnablePain; +extern const idEventDef EV_idActor_GetPainAnim; +extern const idEventDef EV_idActor_StopAnim; +extern const idEventDef EV_idActor_PlayAnim; +extern const idEventDef EV_idActor_PlayCycle; +extern const idEventDef EV_idActor_IdleAnim; +extern const idEventDef EV_idActor_SetSyncedAnimWeight; +extern const idEventDef EV_idActor_OverrideAnim; +extern const idEventDef EV_idActor_EnableAnim; +extern const idEventDef EV_idActor_SetBlendFrames; +extern const idEventDef EV_idActor_GetBlendFrames; +extern const idEventDef EV_idActor_AnimState; +extern const idEventDef EV_idActor_GetAnimState; +extern const idEventDef EV_idActor_InAnimState; +extern const idEventDef EV_idActor_FinishAction; +extern const idEventDef EV_idActor_AnimDone; +extern const idEventDef EV_idActor_HasAnim; +extern const idEventDef EV_idActor_CheckAnim; +extern const idEventDef EV_idActor_ChooseAnim; +extern const idEventDef EV_idActor_AnimLength; +extern const idEventDef EV_idActor_AnimDistance; +extern const idEventDef EV_idActor_HasEnemies; +extern const idEventDef EV_idActor_NextEnemy; +extern const idEventDef EV_idActor_ClosestEnemyToPoint; +extern const idEventDef EV_idActor_SetNextState; +extern const idEventDef EV_idActor_SetState; +extern const idEventDef EV_idActor_GetState; +extern const idEventDef EV_idActor_GetHead; +extern const idEventDef EV_Explode; +extern const idEventDef EV_idProjectile_Fizzle; +extern const idEventDef EV_idProjectile_Radiusdmg; +extern const idEventDef EV_idProjectile_Touch; +extern const idEventDef EV_idProjectile_GetProjectileState; +extern const idEventDef EV_idBFGProjectile_RemoveBeams; +extern const idEventDef EV_idDebris_Fizzle; +extern const idEventDef EV_idWeapon_GrabberGrabDistance; +extern const idEventDef EV_idLight_SetShader; +extern const idEventDef EV_idLight_GetLightParm; +extern const idEventDef EV_idLight_SetLightParm; +extern const idEventDef EV_idLight_SetLightParms; +extern const idEventDef EV_idLight_SetRadiusXYZ; +extern const idEventDef EV_idLight_SetRadius; +extern const idEventDef EV_idLight_On; +extern const idEventDef EV_idLight_Off; +extern const idEventDef EV_idLight_Activate; +extern const idEventDef EV_idLight_FadeOutLight; +extern const idEventDef EV_idLight_FadeInLight; +extern const idEventDef EV_idWorldspawn_Remove; +extern const idEventDef EV_idItem_DropToFloor; +extern const idEventDef EV_idItem_Touch; +extern const idEventDef EV_idItem_Activate; +extern const idEventDef EV_idItem_Respawn; +extern const idEventDef EV_idItem_RespawnFx; +extern const idEventDef EV_idObjective_Hideobjective; +extern const idEventDef EV_idObjective_Getplayerpos; +extern const idEventDef EV_idObjective_Camshot; +extern const idEventDef EV_idItemRemover_Activate; +extern const idEventDef EV_idObjectiveComplete_Hideobjective; +extern const idEventDef EV_idObjectiveComplete_Getplayerpos; +extern const idEventDef EV_idPlayer_StopAudioLog; +extern const idEventDef EV_idPlayer_GetButtons; +extern const idEventDef EV_idPlayer_GetMove; +extern const idEventDef EV_idPlayer_GetViewAngles; +extern const idEventDef EV_idPlayer_StopFxFov; +extern const idEventDef EV_idPlayer_EnableWeapon; +extern const idEventDef EV_idPlayer_DisableWeapon; +extern const idEventDef EV_idPlayer_GetCurrentWeapon; +extern const idEventDef EV_idPlayer_GetPreviousWeapon; +extern const idEventDef EV_idPlayer_SelectWeapon; +extern const idEventDef EV_idPlayer_GetWeaponEntity; +extern const idEventDef EV_idPlayer_OpenPDA; +extern const idEventDef EV_idPlayer_InPDA; +extern const idEventDef EV_idPlayer_ExitTeleporter; +extern const idEventDef EV_idPlayer_HideTip; +extern const idEventDef EV_idPlayer_LevelTrigger; +extern const idEventDef EV_Gibbed; +extern const idEventDef EV_idPlayer_GetIdealWeapon; +extern const idEventDef EV_idMover_OpenPortal; +extern const idEventDef EV_idMover_ClosePortal; +extern const idEventDef EV_Partblocked; +extern const idEventDef EV_Thread_SetCallback; +extern const idEventDef EV_Teamblocked; +extern const idEventDef EV_idMover_StopMoving; +extern const idEventDef EV_idMover_StopRotating; +extern const idEventDef EV_ReachedPos; +extern const idEventDef EV_Reachedang; +extern const idEventDef EV_idMover_Speed; +extern const idEventDef EV_idMover_Time; +extern const idEventDef EV_idMover_DecelTime; +extern const idEventDef EV_idMover_AccelTime; +extern const idEventDef EV_idMover_MoveTo; +extern const idEventDef EV_idMover_MoveToPos; +extern const idEventDef EV_idMover_Move; +extern const idEventDef EV_idMover_AccelTo; +extern const idEventDef EV_idMover_DecelTo; +extern const idEventDef EV_idMover_RotateDownTo; +extern const idEventDef EV_idMover_RotateUpTo; +extern const idEventDef EV_idMover_RotateTo; +extern const idEventDef EV_idMover_Rotate; +extern const idEventDef EV_idMover_RotateOnce; +extern const idEventDef EV_idMover_Bob; +extern const idEventDef EV_idMover_Sway; +extern const idEventDef EV_idMover_AccelSound; +extern const idEventDef EV_idMover_DecelSound; +extern const idEventDef EV_idMover_MoveSound; +extern const idEventDef EV_idMover_FindGuiTargets; +extern const idEventDef EV_idMover_Initguitargets; +extern const idEventDef EV_idMover_EnableSplineAngles; +extern const idEventDef EV_idMover_DisableSplineAngles; +extern const idEventDef EV_idMover_RemoveInitialSplineAngles; +extern const idEventDef EV_idMover_StartSpline; +extern const idEventDef EV_idMover_StopSpline; +extern const idEventDef EV_idMover_Activate; +extern const idEventDef EV_idMover_Postrestore; +extern const idEventDef EV_idMover_IsMoving; +extern const idEventDef EV_idMover_IsRotating; +extern const idEventDef EV_idElevator_GotoFloor; +extern const idEventDef EV_idElevator_Touch; +extern const idEventDef EV_idElevator_PostArrival; +extern const idEventDef EV_idMover_Binary_Returntopos1; +extern const idEventDef EV_idMover_Binary_Activate; +extern const idEventDef EV_idMover_Binary_Matchteam; +extern const idEventDef EV_idMover_Binary_Enable; +extern const idEventDef EV_idMover_Binary_Disable; +extern const idEventDef EV_idMover_Binary_OpenPortal; +extern const idEventDef EV_idMover_Binary_ClosePortal; +extern const idEventDef EV_idMover_Binary_FindGuiTargets; +extern const idEventDef EV_idMover_Binary_Initguitargets; +extern const idEventDef EV_idDoor_Touch; +extern const idEventDef EV_idDoor_StartOpen; +extern const idEventDef EV_idDoor_SpawnDoorTrigger; +extern const idEventDef EV_idDoor_SpawnSoundTrigger; +extern const idEventDef EV_idDoor_Close; +extern const idEventDef EV_idDoor_Open; +extern const idEventDef EV_idDoor_Lock; +extern const idEventDef EV_idDoor_IsOpen; +extern const idEventDef EV_idDoor_IsLocked; +extern const idEventDef EV_idDoor_SpectatorTouch; +extern const idEventDef EV_idPlat_Touch; +extern const idEventDef EV_idRotater_Activate; +extern const idEventDef EV_idRiser_Activate; +extern const idEventDef EV_idCameraView_Activate; +extern const idEventDef EV_idCameraView_Getattachments; +extern const idEventDef EV_idCameraAnim_Start; +extern const idEventDef EV_idCameraAnim_Stop; +extern const idEventDef EV_idCameraAnim_SetAnim; +extern const idEventDef EV_idCameraAnim_Activate; +extern const idEventDef EV_idMoveable_Activate; +extern const idEventDef EV_idMoveable_BecomeNonSolid; +extern const idEventDef EV_idMoveable_SetOwnerFromSpawnArgs; +extern const idEventDef EV_idMoveable_IsAtRest; +extern const idEventDef EV_idMoveable_EnableDamage; +extern const idEventDef EV_idExplodingBarrel_Respawn; +extern const idEventDef EV_idExplodingBarrel_Triggertargets; +extern const idEventDef EV_idTarget_Remove_Activate; +extern const idEventDef EV_idTarget_Show_Activate; +extern const idEventDef EV_idTarget_Damage_Activate; +extern const idEventDef EV_idTarget_SessionCommand_Activate; +extern const idEventDef EV_idTarget_EndLevel_Activate; +extern const idEventDef EV_idTarget_WaitForButton_Activate; +extern const idEventDef EV_idTarget_SetGlobalShaderTime_Activate; +extern const idEventDef EV_idTarget_SetShaderParm_Activate; +extern const idEventDef EV_idTarget_SetShaderTime_Activate; +extern const idEventDef EV_idTarget_FadeEntity_Activate; +extern const idEventDef EV_idTarget_LightFadeIn_Activate; +extern const idEventDef EV_idTarget_LightFadeOut_Activate; +extern const idEventDef EV_idTarget_Give_Activate; +extern const idEventDef EV_idTarget_GiveEmail_Activate; +extern const idEventDef EV_idTarget_SetModel_Activate; +extern const idEventDef EV_idTarget_SetInfluence_Activate; +extern const idEventDef EV_idTarget_SetInfluence_RestoreInfluece; +extern const idEventDef EV_idTarget_SetInfluence_GatherEntities; +extern const idEventDef EV_idTarget_SetInfluence_Flash; +extern const idEventDef EV_idTarget_SetInfluence_ClearFlash; +extern const idEventDef EV_idTarget_SetKeyVal_Activate; +extern const idEventDef EV_idTarget_SetFov_Activate; +extern const idEventDef EV_idTarget_SetPrimaryObjective_Activate; +extern const idEventDef EV_idTarget_LockDoor_Activate; +extern const idEventDef EV_idTarget_CallObjectFunction_Activate; +extern const idEventDef EV_idTarget_EnableLevelWeapons_Activate; +extern const idEventDef EV_idTarget_Tip_Activate; +extern const idEventDef EV_idTarget_Tip_TipOff; +extern const idEventDef EV_idTarget_Tip_Getplayerpos; +extern const idEventDef EV_idTarget_GiveSecurity_Activate; +extern const idEventDef EV_idTarget_RemoveWeapons_Activate; +extern const idEventDef EV_idTarget_LevelTrigger_Activate; +extern const idEventDef EV_idTarget_EnableStamina_Activate; +extern const idEventDef EV_idTarget_FadeSoundClass_Activate; +extern const idEventDef EV_idTarget_FadeSoundClass_RestoreVolume; +extern const idEventDef EV_idTrigger_Enable; +extern const idEventDef EV_idTrigger_Disable; +extern const idEventDef EV_TriggerAction; +extern const idEventDef EV_idTrigger_Multi_Activate; +extern const idEventDef EV_idTrigger_Multi_Touch; +extern const idEventDef EV_idTrigger_EntityName_Activate; +extern const idEventDef EV_idTrigger_EntityName_Touch; +extern const idEventDef EV_Timer; +extern const idEventDef EV_idTrigger_Timer_Activate; +extern const idEventDef EV_idTrigger_Count_Activate; +extern const idEventDef EV_idTrigger_Hurt_Touch; +extern const idEventDef EV_idTrigger_Hurt_Activate; +extern const idEventDef EV_idTrigger_Fade_Activate; +extern const idEventDef EV_idTrigger_Touch_Activate; +extern const idEventDef EV_idSound_Activate; +extern const idEventDef EV_idSound_On; +extern const idEventDef EV_idSound_Off; +extern const idEventDef EV_idEntityFx_Activate; +extern const idEventDef EV_idEntityFx_Killfx; +extern const idEventDef EV_idTeleporter_FxAction; +extern const idEventDef EV_idSecurityCamera_ReverseSweep; +extern const idEventDef EV_idSecurityCamera_ContinueSweep; +extern const idEventDef EV_idSecurityCamera_Pause; +extern const idEventDef EV_idSecurityCamera_Alert; +extern const idEventDef EV_idSecurityCamera_AddLight; +extern const idEventDef EV_idBrittleFracture_Activate; +extern const idEventDef EV_idBrittleFracture_Touch; +extern const idEventDef EV_idAI_Activate; +extern const idEventDef EV_idAI_Touch; +extern const idEventDef EV_idAI_FindEnemy; +extern const idEventDef EV_idAI_FindEnemyAI; +extern const idEventDef EV_idAI_FindEnemyInCombatNodes; +extern const idEventDef EV_idAI_ClosestReachableEnemyOfEntity; +extern const idEventDef EV_idAI_HeardSound; +extern const idEventDef EV_idAI_SetEnemy; +extern const idEventDef EV_idAI_ClearEnemy; +extern const idEventDef EV_idAI_MuzzleFlash; +extern const idEventDef EV_idAI_CreateMissile; +extern const idEventDef EV_idAI_AttackMissile; +extern const idEventDef EV_idAI_FireMissileAtTarget; +extern const idEventDef EV_idAI_LaunchMissile; +extern const idEventDef EV_idAI_AttackMelee; +extern const idEventDef EV_idAI_DirectDamage; +extern const idEventDef EV_idAI_RadiusDamageFromJoint; +extern const idEventDef EV_idAI_AttackBegin; +extern const idEventDef EV_idAI_AttackEnd; +extern const idEventDef EV_idAI_MeleeAttackToJoint; +extern const idEventDef EV_idAI_RandomPath; +extern const idEventDef EV_idAI_CanBecomeSolid; +extern const idEventDef EV_idAI_BecomeSolid; +extern const idEventDef EV_idAI_BecomeNonSolid; +extern const idEventDef EV_idAI_BecomeRagdoll; +extern const idEventDef EV_idAI_StopRagdoll; +extern const idEventDef EV_idAI_SetHealth; +extern const idEventDef EV_idAI_GetHealth; +extern const idEventDef EV_idAI_AllowDamage; +extern const idEventDef EV_idAI_IgnoreDamage; +extern const idEventDef EV_idAI_GetCurrentYaw; +extern const idEventDef EV_idAI_TurnTo; +extern const idEventDef EV_idAI_TurnToPos; +extern const idEventDef EV_idAI_TurnToEntity; +extern const idEventDef EV_idAI_MoveStatus; +extern const idEventDef EV_idAI_StopMove; +extern const idEventDef EV_idAI_MoveToCover; +extern const idEventDef EV_idAI_MoveToEnemy; +extern const idEventDef EV_idAI_MoveToEnemyHeight; +extern const idEventDef EV_idAI_MoveOutOfRange; +extern const idEventDef EV_idAI_MoveToAttackPosition; +extern const idEventDef EV_idAI_MoveToEntity; +extern const idEventDef EV_idAI_MoveToPosition; +extern const idEventDef EV_idAI_SlideTo; +extern const idEventDef EV_idAI_Wander; +extern const idEventDef EV_idAI_FacingIdeal; +extern const idEventDef EV_idAI_FaceEnemy; +extern const idEventDef EV_idAI_FaceEntity; +extern const idEventDef EV_idAI_WaitAction; +extern const idEventDef EV_idAI_GetCombatNode; +extern const idEventDef EV_idAI_EnemyInCombatCone; +extern const idEventDef EV_idAI_WaitMove; +extern const idEventDef EV_idAI_GetJumpVelocity; +extern const idEventDef EV_idAI_EntityInAttackCone; +extern const idEventDef EV_idAI_CanSee; +extern const idEventDef EV_idAI_SetTalkTarget; +extern const idEventDef EV_idAI_GetTalkTarget; +extern const idEventDef EV_idAI_SetTalkState; +extern const idEventDef EV_idAI_EnemyRange; +extern const idEventDef EV_idAI_EnemyRange2D; +extern const idEventDef EV_idAI_GetEnemy; +extern const idEventDef EV_idAI_GetEnemyPos; +extern const idEventDef EV_idAI_GetEnemyEyePos; +extern const idEventDef EV_idAI_PredictEnemyPos; +extern const idEventDef EV_idAI_CanHitEnemy; +extern const idEventDef EV_idAI_CanHitEnemyFromAnim; +extern const idEventDef EV_idAI_CanHitEnemyFromJoint; +extern const idEventDef EV_idAI_EnemyPositionValid; +extern const idEventDef EV_idAI_ChargeAttack; +extern const idEventDef EV_idAI_TestChargeAttack; +extern const idEventDef EV_idAI_TestAnimMoveTowardEnemy; +extern const idEventDef EV_idAI_TestAnimMove; +extern const idEventDef EV_idAI_TestMoveToPosition; +extern const idEventDef EV_idAI_TestMeleeAttack; +extern const idEventDef EV_idAI_TestAnimAttack; +extern const idEventDef EV_idAI_Shrivel; +extern const idEventDef EV_idAI_Burn; +extern const idEventDef EV_idAI_PreBurn; +extern const idEventDef EV_idAI_ClearBurn; +extern const idEventDef EV_idAI_SetSmokeVisibility; +extern const idEventDef EV_idAI_NumSmokeEmitters; +extern const idEventDef EV_idAI_StopThinking; +extern const idEventDef EV_idAI_GetTurnDelta; +extern const idEventDef EV_idAI_GetMoveType; +extern const idEventDef EV_idAI_SetMoveType; +extern const idEventDef EV_idAI_SaveMove; +extern const idEventDef EV_idAI_RestoreMove; +extern const idEventDef EV_idAI_AllowMovement; +extern const idEventDef EV_idAI_Jumpframe; +extern const idEventDef EV_idAI_EnableClip; +extern const idEventDef EV_idAI_DisableClip; +extern const idEventDef EV_idAI_EnableGravity; +extern const idEventDef EV_idAI_DisableGravity; +extern const idEventDef EV_idAI_EnableAFPush; +extern const idEventDef EV_idAI_DisableAFPush; +extern const idEventDef EV_idAI_SetFlySpeed; +extern const idEventDef EV_idAI_SetFlyOffset; +extern const idEventDef EV_idAI_ClearFlyOffset; +extern const idEventDef EV_idAI_GetClosestHiddenTarget; +extern const idEventDef EV_idAI_GetRandomTarget; +extern const idEventDef EV_idAI_TravelDistanceToPoint; +extern const idEventDef EV_idAI_TravelDistanceToEntity; +extern const idEventDef EV_idAI_TravelDistanceBetweenPoints; +extern const idEventDef EV_idAI_TravelDistanceBetweenEntities; +extern const idEventDef EV_idAI_LookAt; +extern const idEventDef EV_idAI_LookAtEnemy; +extern const idEventDef EV_idAI_SetBoneMod; +extern const idEventDef EV_idAI_ThrowMoveable; +extern const idEventDef EV_idAI_ThrowAF; +extern const idEventDef EV_idAI_Kill_real; +extern const idEventDef EV_idAI_Kill; +extern const idEventDef EV_idAI_WakeOnFlashlight; +extern const idEventDef EV_idAI_LocateEnemy; +extern const idEventDef EV_idAI_KickObstacles; +extern const idEventDef EV_idAI_GetObstacle; +extern const idEventDef EV_idAI_PushPointIntoAAS; +extern const idEventDef EV_idAI_GetTurnRate; +extern const idEventDef EV_idAI_SetTurnRate; +extern const idEventDef EV_idAI_AnimTurn; +extern const idEventDef EV_idAI_AllowHiddenMovement; +extern const idEventDef EV_idAI_TriggerParticles; +extern const idEventDef EV_idAI_FindActorsInBounds; +extern const idEventDef EV_idAI_CanReachPosition; +extern const idEventDef EV_idAI_CanReachEntity; +extern const idEventDef EV_idAI_CanReachEnemy; +extern const idEventDef EV_idAI_GetReachableEntityPosition; +extern const idEventDef EV_idCombatNode_Activate; +extern const idEventDef EV_idCombatNode_MarkUsed; +extern const idEventDef EV_idAI_Vagary_Vagary_ChooseObjectToThrow; +extern const idEventDef EV_idAI_Vagary_Vagary_ThrowObjectAtEnemy; +extern const idEventDef EV_idTestModel_RightFoot; +extern const idEventDef EV_idThread_Execute; +extern const idEventDef EV_idThread_Threadname; +extern const idEventDef EV_idThread_Terminate; +extern const idEventDef EV_idThread_Pause; +extern const idEventDef EV_idThread_Wait; +extern const idEventDef EV_idThread_WaitFrame; +extern const idEventDef EV_idThread_WaitFor; +extern const idEventDef EV_idThread_WaitForThread; +extern const idEventDef EV_idThread_Print; +extern const idEventDef EV_idThread_Println; +extern const idEventDef EV_idThread_Say; +extern const idEventDef EV_idThread_Assert; +extern const idEventDef EV_idThread_Trigger; +extern const idEventDef EV_idThread_Setcvar; +extern const idEventDef EV_idThread_Getcvar; +extern const idEventDef EV_idThread_Random; +extern const idEventDef EV_idThread_GetTime; +extern const idEventDef EV_idThread_Killthread; +extern const idEventDef EV_idThread_GetEntity; +extern const idEventDef EV_idThread_Spawn; +extern const idEventDef EV_idThread_CopySpawnArgs; +extern const idEventDef EV_idThread_SetSpawnArg; +extern const idEventDef EV_idThread_SpawnString; +extern const idEventDef EV_idThread_SpawnFloat; +extern const idEventDef EV_idThread_SpawnVector; +extern const idEventDef EV_idThread_ClearPersistantArgs; +extern const idEventDef EV_idThread_SetPersistantArg; +extern const idEventDef EV_idThread_GetPersistantString; +extern const idEventDef EV_idThread_GetPersistantFloat; +extern const idEventDef EV_idThread_GetPersistantVector; +extern const idEventDef EV_idThread_AngToForward; +extern const idEventDef EV_idThread_AngToRight; +extern const idEventDef EV_idThread_AngToUp; +extern const idEventDef EV_idThread_Sin; +extern const idEventDef EV_idThread_Cos; +extern const idEventDef EV_idThread_Sqrt; +extern const idEventDef EV_idThread_VecNormalize; +extern const idEventDef EV_idThread_VecLength; +extern const idEventDef EV_idThread_DotProduct; +extern const idEventDef EV_idThread_CrossProduct; +extern const idEventDef EV_idThread_VecToAngles; +extern const idEventDef EV_idThread_OnSignal; +extern const idEventDef EV_idThread_ClearSignalThread; +extern const idEventDef EV_idThread_SetCamera; +extern const idEventDef EV_idThread_FirstPerson; +extern const idEventDef EV_idThread_Trace; +extern const idEventDef EV_idThread_TracePoint; +extern const idEventDef EV_idThread_GetTraceFraction; +extern const idEventDef EV_idThread_GetTraceEndPos; +extern const idEventDef EV_idThread_GetTraceNormal; +extern const idEventDef EV_idThread_GetTraceEntity; +extern const idEventDef EV_idThread_GetTraceJoint; +extern const idEventDef EV_idThread_GetTraceBody; +extern const idEventDef EV_idThread_FadeIn; +extern const idEventDef EV_idThread_FadeOut; +extern const idEventDef EV_idThread_FadeTo; +extern const idEventDef EV_idThread_SetShaderParm; +extern const idEventDef EV_idThread_Music; +extern const idEventDef EV_idThread_Warning; +extern const idEventDef EV_idThread_Error; +extern const idEventDef EV_idThread_StrLength; +extern const idEventDef EV_idThread_StrLeft; +extern const idEventDef EV_idThread_StrRight; +extern const idEventDef EV_idThread_StrSkip; +extern const idEventDef EV_idThread_StrMid; +extern const idEventDef EV_idThread_StrToFloat; +extern const idEventDef EV_idThread_RadiusDamage; +extern const idEventDef EV_idThread_IsClient; +extern const idEventDef EV_idThread_IsMultiplayer; +extern const idEventDef EV_idThread_GetFrameTime; +extern const idEventDef EV_idThread_GetTicsPerSecond; +extern const idEventDef EV_idThread_CacheSoundShader; +extern const idEventDef EV_idThread_DebugLine; +extern const idEventDef EV_idThread_DebugArrow; +extern const idEventDef EV_idThread_DebugCircle; +extern const idEventDef EV_idThread_DebugBounds; +extern const idEventDef EV_idThread_DrawText; +extern const idEventDef EV_idThread_InfluenceActive; diff --git a/neo/doom3/game/gamesys/TypeInfoGen_Events_local.h b/neo/doom3/game/gamesys/TypeInfoGen_Events_local.h new file mode 100644 index 00000000..2e1c3957 --- /dev/null +++ b/neo/doom3/game/gamesys/TypeInfoGen_Events_local.h @@ -0,0 +1,1726 @@ +/* +=================================================================================== + + AUTO-GENERATED FILE. DO NOT EDIT. + Generated by TypeInfoGen (script events) + +=================================================================================== +*/ + +// -------------------- +// Script EventDefs +// -------------------- + +const idEventDef EV_GetName( "getName", NULL, 's' ); +const idEventDef EV_SetName( "setName", "s", NULL ); +const idEventDef EV_FindTargets( "", NULL, NULL ); +const idEventDef EV_ActivateTargets( "activateTargets", "e", NULL ); +const idEventDef EV_NumTargets( "numTargets", NULL, 'f' ); +const idEventDef EV_GetTarget( "getTarget", "f", 'e' ); +const idEventDef EV_RandomTarget( "randomTarget", "s", 'e' ); +const idEventDef EV_Bind( "bind", "e", NULL ); +const idEventDef EV_BindPosition( "bindPosition", "e", NULL ); +const idEventDef EV_BindToJoint( "bindToJoint", "esf", NULL ); +const idEventDef EV_Unbind( "unbind", NULL, NULL ); +const idEventDef EV_RemoveBinds( "removeBinds", NULL, NULL ); +const idEventDef EV_Spawnbind( "", NULL, NULL ); +const idEventDef EV_SetOwner( "setOwner", "e", NULL ); +const idEventDef EV_SetModel( "setModel", "s", NULL ); +const idEventDef EV_SetSkin( "setSkin", "s", NULL ); +const idEventDef EV_GetShaderParm( "getShaderParm", "d", 'f' ); +const idEventDef EV_SetShaderParm( "setShaderParm", "df", NULL ); +const idEventDef EV_SetShaderParms( "setShaderParms", "ffff", NULL ); +const idEventDef EV_SetColor( "setColor", "fff", NULL ); +const idEventDef EV_GetColor( "getColor", NULL, 'v' ); +const idEventDef EV_IsHidden( "isHidden", NULL, 'd' ); +const idEventDef EV_Hide( "hide", NULL, NULL ); +const idEventDef EV_Show( "show", NULL, NULL ); +const idEventDef EV_CacheSoundShader( "cacheSoundShader", "s", NULL ); +const idEventDef EV_StartSoundShader( "startSoundShader", "sd", 'f' ); +const idEventDef EV_StopSound( "stopSound", "dd", NULL ); +const idEventDef EV_StartSound( "startSound", "sdd", 'f' ); +const idEventDef EV_FadeSound( "fadeSound", "dff", NULL ); +const idEventDef EV_GetWorldOrigin( "getWorldOrigin", NULL, 'v' ); +const idEventDef EV_SetWorldOrigin( "setWorldOrigin", "v", NULL ); +const idEventDef EV_GetOrigin( "getOrigin", NULL, 'v' ); +const idEventDef EV_SetOrigin( "setOrigin", "v", NULL ); +const idEventDef EV_GetAngles( "getAngles", NULL, 'v' ); +const idEventDef EV_SetAngles( "setAngles", "v", NULL ); +const idEventDef EV_SetLinearVelocity( "setLinearVelocity", "v", NULL ); +const idEventDef EV_GetLinearVelocity( "getLinearVelocity", NULL, 'v' ); +const idEventDef EV_SetAngularVelocity( "setAngularVelocity", "v", NULL ); +const idEventDef EV_GetAngularVelocity( "getAngularVelocity", NULL, 'v' ); +const idEventDef EV_SetSize( "setSize", "vv", NULL ); +const idEventDef EV_GetSize( "getSize", NULL, 'v' ); +const idEventDef EV_GetMins( "getMins", NULL, 'v' ); +const idEventDef EV_GetMaxs( "getMaxs", NULL, 'v' ); +const idEventDef EV_Touches( "touches", "e", 'd' ); +const idEventDef EV_SetGuiParm( "setGuiParm", "ss", NULL ); +const idEventDef EV_SetGuiFloat( "setGuiFloat", "sf", NULL ); +const idEventDef EV_GetNextKey( "getNextKey", "ss", 's' ); +const idEventDef EV_SetKey( "setKey", "ss", NULL ); +const idEventDef EV_GetKey( "getKey", "s", 's' ); +const idEventDef EV_GetIntKey( "getIntKey", "s", 'f' ); +const idEventDef EV_GetFloatKey( "getFloatKey", "s", 'f' ); +const idEventDef EV_GetVectorKey( "getVectorKey", "s", 'v' ); +const idEventDef EV_GetEntityKey( "getEntityKey", "s", 'e' ); +const idEventDef EV_RestorePosition( "restorePosition", NULL, NULL ); +const idEventDef EV_UpdateCameraTarget( "", NULL, NULL ); +const idEventDef EV_DistanceTo( "distanceTo", "e", 'f' ); +const idEventDef EV_DistanceToPoint( "distanceToPoint", "v", 'f' ); +const idEventDef EV_StartFx( "startFx", "s", NULL ); +const idEventDef EV_WaitFrame( "waitFrame", NULL, NULL ); +const idEventDef EV_Wait( "wait", "f", NULL ); +const idEventDef EV_HasFunction( "hasFunction", "s", 'd' ); +const idEventDef EV_CallFunction( "callFunction", "s", NULL ); +const idEventDef EV_SetNeverDormant( "setNeverDormant", "d", NULL ); +const idEventDef EV_idAnimatedEntity_GetJointHandle( "getJointHandle", "s", 'd' ); +const idEventDef EV_idAnimatedEntity_ClearAllJoints( "clearAllJoints", NULL, NULL ); +const idEventDef EV_idAnimatedEntity_ClearJoint( "clearJoint", "d", NULL ); +const idEventDef EV_idAnimatedEntity_SetJointPos( "setJointPos", "ddv", NULL ); +const idEventDef EV_idAnimatedEntity_SetJointAngle( "setJointAngle", "ddv", NULL ); +const idEventDef EV_idAnimatedEntity_GetJointPos( "getJointPos", "d", 'v' ); +const idEventDef EV_idAnimatedEntity_GetJointAngle( "getJointAngle", "d", 'v' ); +const idEventDef EV_idAFEntity_Base_SetConstraintPosition( "SetConstraintPosition", "sv", NULL ); +const idEventDef EV_Gib( "gib", "s", NULL ); +const idEventDef EV_idAFEntity_Generic_Activate( "activate", "e", NULL ); +const idEventDef EV_idAFEntity_WithAttachedHead_Activate( "activate", "e", NULL ); +const idEventDef EV_idAFEntity_ClawFourFingers_SetFingerAngle( "setFingerAngle", "f", NULL ); +const idEventDef EV_idAFEntity_ClawFourFingers_StopFingers( "stopFingers", NULL, NULL ); +const idEventDef EV_idPlayerStart_Activate( "activate", "e", NULL ); +const idEventDef EV_idPlayerStart_TeleportStage( "", "e", NULL ); +const idEventDef EV_idActivator_Activate( "activate", "e", NULL ); +const idEventDef EV_idPathCorner_RandomPath( "randomPath", NULL, 'e' ); +const idEventDef EV_idDamagable_Activate( "activate", "e", NULL ); +const idEventDef EV_idDamagable_RestoreDamagable( "", NULL, NULL ); +const idEventDef EV_idExplodable_Activate( "activate", "e", NULL ); +const idEventDef EV_PostSpawn( "", NULL, NULL ); +const idEventDef EV_idForceField_Activate( "activate", "e", NULL ); +const idEventDef EV_idForceField_Toggle( "Toggle", NULL, NULL ); +const idEventDef EV_idAnimated_Activate( "activate", "e", NULL ); +const idEventDef EV_idAnimated_Start( "", NULL, NULL ); +const idEventDef EV_idAnimated_StartRagdoll( "startRagdoll", NULL, NULL ); +const idEventDef EV_idAnimated_AnimDone( "", "d", NULL ); +const idEventDef EV_idAnimated_RightFoot( "rightFoot", NULL, NULL ); +const idEventDef EV_idAnimated_LaunchMissiles( "launchMissiles", "ssssdd", NULL ); +const idEventDef EV_idAnimated_LaunchMissilesUpdate( "", "dddd", NULL ); +const idEventDef EV_idStaticEntity_Activate( "activate", "e", NULL ); +const idEventDef EV_idFuncSmoke_Activate( "activate", "e", NULL ); +const idEventDef EV_idFuncSplat_Splat( "", NULL, NULL ); +const idEventDef EV_idVacuumSeparatorEntity_Activate( "activate", "e", NULL ); +const idEventDef EV_idBeam_Activate( "activate", "e", NULL ); +const idEventDef EV_idLiquid_Touch( "", "et", NULL ); +const idEventDef EV_idShaking_Activate( "activate", "e", NULL ); +const idEventDef EV_idEarthQuake_Activate( "activate", "e", NULL ); +const idEventDef EV_idFuncPortal_Activate( "activate", "e", NULL ); +const idEventDef EV_idFuncAASPortal_Activate( "activate", "e", NULL ); +const idEventDef EV_idFuncAASObstacle_Activate( "activate", "e", NULL ); +const idEventDef EV_idFuncRadioChatter_Activate( "activate", "e", NULL ); +const idEventDef EV_idFuncRadioChatter_Resetradiohud( "", "e", NULL ); +const idEventDef EV_idPhantomObjects_Activate( "activate", "e", NULL ); +const idEventDef EV_idActor_EnableEyeFocus( "enableEyeFocus", NULL, NULL ); +const idEventDef EV_idActor_DisableEyeFocus( "disableEyeFocus", NULL, NULL ); +const idEventDef EV_idActor_RightFoot( "rightFoot", NULL, NULL ); +const idEventDef EV_idActor_EnableWalkIK( "EnableWalkIK", NULL, NULL ); +const idEventDef EV_idActor_DisableWalkIK( "DisableWalkIK", NULL, NULL ); +const idEventDef EV_idActor_EnableLegIK( "EnableLegIK", "d", NULL ); +const idEventDef EV_idActor_DisableLegIK( "DisableLegIK", "d", NULL ); +const idEventDef EV_idActor_SetAnimPrefix( "setAnimPrefix", "s", NULL ); +const idEventDef EV_idActor_PreventPain( "preventPain", "f", NULL ); +const idEventDef EV_idActor_DisablePain( "disablePain", NULL, NULL ); +const idEventDef EV_idActor_EnablePain( "enablePain", NULL, NULL ); +const idEventDef EV_idActor_GetPainAnim( "getPainAnim", NULL, 's' ); +const idEventDef EV_idActor_StopAnim( "stopAnim", "dd", NULL ); +const idEventDef EV_idActor_PlayAnim( "playAnim", "ds", 'd' ); +const idEventDef EV_idActor_PlayCycle( "playCycle", "ds", 'd' ); +const idEventDef EV_idActor_IdleAnim( "idleAnim", "ds", 'd' ); +const idEventDef EV_idActor_SetSyncedAnimWeight( "setSyncedAnimWeight", "ddf", NULL ); +const idEventDef EV_idActor_OverrideAnim( "overrideAnim", "d", NULL ); +const idEventDef EV_idActor_EnableAnim( "enableAnim", "dd", NULL ); +const idEventDef EV_idActor_SetBlendFrames( "setBlendFrames", "dd", NULL ); +const idEventDef EV_idActor_GetBlendFrames( "getBlendFrames", "d", 'd' ); +const idEventDef EV_idActor_AnimState( "animState", "dsd", NULL ); +const idEventDef EV_idActor_GetAnimState( "getAnimState", "d", 's' ); +const idEventDef EV_idActor_InAnimState( "inAnimState", "ds", 'd' ); +const idEventDef EV_idActor_FinishAction( "finishAction", "s", NULL ); +const idEventDef EV_idActor_AnimDone( "animDone", "dd", 'd' ); +const idEventDef EV_idActor_HasAnim( "hasAnim", "ds", 'f' ); +const idEventDef EV_idActor_CheckAnim( "checkAnim", "ds", NULL ); +const idEventDef EV_idActor_ChooseAnim( "chooseAnim", "ds", 's' ); +const idEventDef EV_idActor_AnimLength( "animLength", "ds", 'f' ); +const idEventDef EV_idActor_AnimDistance( "animDistance", "ds", 'f' ); +const idEventDef EV_idActor_HasEnemies( "hasEnemies", NULL, 'd' ); +const idEventDef EV_idActor_NextEnemy( "nextEnemy", "e", 'e' ); +const idEventDef EV_idActor_ClosestEnemyToPoint( "closestEnemyToPoint", "v", 'e' ); +const idEventDef EV_idActor_SetNextState( "setNextState", "s", NULL ); +const idEventDef EV_idActor_SetState( "setState", "s", NULL ); +const idEventDef EV_idActor_GetState( "getState", NULL, 's' ); +const idEventDef EV_idActor_GetHead( "getHead", NULL, 'e' ); +const idEventDef EV_Explode( "", NULL, NULL ); +const idEventDef EV_idProjectile_Fizzle( "", NULL, NULL ); +const idEventDef EV_idProjectile_Radiusdmg( "", "e", NULL ); +const idEventDef EV_idProjectile_Touch( "", "et", NULL ); +const idEventDef EV_idProjectile_GetProjectileState( "getProjectileState", NULL, 'd' ); +const idEventDef EV_idBFGProjectile_RemoveBeams( "", NULL, NULL ); +const idEventDef EV_idDebris_Fizzle( "", NULL, NULL ); +const idEventDef EV_idWeapon_GrabberGrabDistance( "grabberGrabDistance", "f", NULL ); +const idEventDef EV_idLight_SetShader( "setShader", "s", NULL ); +const idEventDef EV_idLight_GetLightParm( "getLightParm", "d", 'f' ); +const idEventDef EV_idLight_SetLightParm( "setLightParm", "df", NULL ); +const idEventDef EV_idLight_SetLightParms( "setLightParms", "ffff", NULL ); +const idEventDef EV_idLight_SetRadiusXYZ( "setRadiusXYZ", "fff", NULL ); +const idEventDef EV_idLight_SetRadius( "setRadius", "f", NULL ); +const idEventDef EV_idLight_On( "On", NULL, NULL ); +const idEventDef EV_idLight_Off( "Off", NULL, NULL ); +const idEventDef EV_idLight_Activate( "activate", "e", NULL ); +const idEventDef EV_idLight_FadeOutLight( "fadeOutLight", "f", NULL ); +const idEventDef EV_idLight_FadeInLight( "fadeInLight", "f", NULL ); +const idEventDef EV_idWorldspawn_Remove( "remove", NULL, NULL ); +const idEventDef EV_idItem_DropToFloor( "", NULL, NULL ); +const idEventDef EV_idItem_Touch( "", "et", NULL ); +const idEventDef EV_idItem_Activate( "activate", "e", NULL ); +const idEventDef EV_idItem_Respawn( "respawn", NULL, NULL ); +const idEventDef EV_idItem_RespawnFx( "", NULL, NULL ); +const idEventDef EV_idObjective_Hideobjective( "", "e", NULL ); +const idEventDef EV_idObjective_Getplayerpos( "", NULL, NULL ); +const idEventDef EV_idObjective_Camshot( "", NULL, NULL ); +const idEventDef EV_idItemRemover_Activate( "activate", "e", NULL ); +const idEventDef EV_idObjectiveComplete_Hideobjective( "", "e", NULL ); +const idEventDef EV_idObjectiveComplete_Getplayerpos( "", NULL, NULL ); +const idEventDef EV_idPlayer_StopAudioLog( "stopAudioLog", NULL, NULL ); +const idEventDef EV_idPlayer_GetButtons( "getButtons", NULL, 'd' ); +const idEventDef EV_idPlayer_GetMove( "getMove", NULL, 'v' ); +const idEventDef EV_idPlayer_GetViewAngles( "getViewAngles", NULL, 'v' ); +const idEventDef EV_idPlayer_StopFxFov( "stopFxFov", NULL, NULL ); +const idEventDef EV_idPlayer_EnableWeapon( "enableWeapon", NULL, NULL ); +const idEventDef EV_idPlayer_DisableWeapon( "disableWeapon", NULL, NULL ); +const idEventDef EV_idPlayer_GetCurrentWeapon( "getCurrentWeapon", NULL, 's' ); +const idEventDef EV_idPlayer_GetPreviousWeapon( "getPreviousWeapon", NULL, 's' ); +const idEventDef EV_idPlayer_SelectWeapon( "selectWeapon", "s", NULL ); +const idEventDef EV_idPlayer_GetWeaponEntity( "getWeaponEntity", NULL, 'e' ); +const idEventDef EV_idPlayer_OpenPDA( "openPDA", NULL, NULL ); +const idEventDef EV_idPlayer_InPDA( "inPDA", NULL, 'd' ); +const idEventDef EV_idPlayer_ExitTeleporter( "exitTeleporter", NULL, NULL ); +const idEventDef EV_idPlayer_HideTip( "hideTip", NULL, NULL ); +const idEventDef EV_idPlayer_LevelTrigger( "levelTrigger", NULL, NULL ); +const idEventDef EV_Gibbed( "", NULL, NULL ); +const idEventDef EV_idPlayer_GetIdealWeapon( "getIdealWeapon", NULL, 's' ); +const idEventDef EV_idMover_OpenPortal( "openPortal", NULL, NULL ); +const idEventDef EV_idMover_ClosePortal( "closePortal", NULL, NULL ); +const idEventDef EV_Partblocked( "", "e", NULL ); +const idEventDef EV_Thread_SetCallback( "", NULL, 'd' ); +const idEventDef EV_Teamblocked( "", "ee", NULL ); +const idEventDef EV_idMover_StopMoving( "stopMoving", NULL, NULL ); +const idEventDef EV_idMover_StopRotating( "stopRotating", NULL, NULL ); +const idEventDef EV_ReachedPos( "", NULL, NULL ); +const idEventDef EV_Reachedang( "", NULL, NULL ); +const idEventDef EV_idMover_Speed( "speed", "f", NULL ); +const idEventDef EV_idMover_Time( "time", "f", NULL ); +const idEventDef EV_idMover_DecelTime( "decelTime", "f", NULL ); +const idEventDef EV_idMover_AccelTime( "accelTime", "f", NULL ); +const idEventDef EV_idMover_MoveTo( "moveTo", "e", NULL ); +const idEventDef EV_idMover_MoveToPos( "moveToPos", "v", NULL ); +const idEventDef EV_idMover_Move( "move", "ff", NULL ); +const idEventDef EV_idMover_AccelTo( "accelTo", "ff", NULL ); +const idEventDef EV_idMover_DecelTo( "decelTo", "ff", NULL ); +const idEventDef EV_idMover_RotateDownTo( "rotateDownTo", "df", NULL ); +const idEventDef EV_idMover_RotateUpTo( "rotateUpTo", "df", NULL ); +const idEventDef EV_idMover_RotateTo( "rotateTo", "v", NULL ); +const idEventDef EV_idMover_Rotate( "rotate", "v", NULL ); +const idEventDef EV_idMover_RotateOnce( "rotateOnce", "v", NULL ); +const idEventDef EV_idMover_Bob( "bob", "ffv", NULL ); +const idEventDef EV_idMover_Sway( "sway", "ffv", NULL ); +const idEventDef EV_idMover_AccelSound( "accelSound", "s", NULL ); +const idEventDef EV_idMover_DecelSound( "decelSound", "s", NULL ); +const idEventDef EV_idMover_MoveSound( "moveSound", "s", NULL ); +const idEventDef EV_idMover_FindGuiTargets( "", NULL, NULL ); +const idEventDef EV_idMover_Initguitargets( "", NULL, NULL ); +const idEventDef EV_idMover_EnableSplineAngles( "enableSplineAngles", NULL, NULL ); +const idEventDef EV_idMover_DisableSplineAngles( "disableSplineAngles", NULL, NULL ); +const idEventDef EV_idMover_RemoveInitialSplineAngles( "removeInitialSplineAngles", NULL, NULL ); +const idEventDef EV_idMover_StartSpline( "startSpline", "e", NULL ); +const idEventDef EV_idMover_StopSpline( "stopSpline", NULL, NULL ); +const idEventDef EV_idMover_Activate( "activate", "e", NULL ); +const idEventDef EV_idMover_Postrestore( "", "ddddd", NULL ); +const idEventDef EV_idMover_IsMoving( "isMoving", NULL, 'd' ); +const idEventDef EV_idMover_IsRotating( "isRotating", NULL, 'd' ); +const idEventDef EV_idElevator_GotoFloor( "gotoFloor", "d", NULL ); +const idEventDef EV_idElevator_Touch( "", "et", NULL ); +const idEventDef EV_idElevator_PostArrival( "postArrival", NULL, NULL ); +const idEventDef EV_idMover_Binary_Returntopos1( "", NULL, NULL ); +const idEventDef EV_idMover_Binary_Activate( "activate", "e", NULL ); +const idEventDef EV_idMover_Binary_Matchteam( "", "dd", NULL ); +const idEventDef EV_idMover_Binary_Enable( "enable", NULL, NULL ); +const idEventDef EV_idMover_Binary_Disable( "disable", NULL, NULL ); +const idEventDef EV_idMover_Binary_OpenPortal( "openPortal", NULL, NULL ); +const idEventDef EV_idMover_Binary_ClosePortal( "closePortal", NULL, NULL ); +const idEventDef EV_idMover_Binary_FindGuiTargets( "", NULL, NULL ); +const idEventDef EV_idMover_Binary_Initguitargets( "", NULL, NULL ); +const idEventDef EV_idDoor_Touch( "", "et", NULL ); +const idEventDef EV_idDoor_StartOpen( "", NULL, NULL ); +const idEventDef EV_idDoor_SpawnDoorTrigger( "", NULL, NULL ); +const idEventDef EV_idDoor_SpawnSoundTrigger( "", NULL, NULL ); +const idEventDef EV_idDoor_Close( "close", NULL, NULL ); +const idEventDef EV_idDoor_Open( "open", NULL, NULL ); +const idEventDef EV_idDoor_Lock( "lock", "d", NULL ); +const idEventDef EV_idDoor_IsOpen( "isOpen", NULL, 'f' ); +const idEventDef EV_idDoor_IsLocked( "isLocked", NULL, 'f' ); +const idEventDef EV_idDoor_SpectatorTouch( "", "et", NULL ); +const idEventDef EV_idPlat_Touch( "", "et", NULL ); +const idEventDef EV_idRotater_Activate( "activate", "e", NULL ); +const idEventDef EV_idRiser_Activate( "activate", "e", NULL ); +const idEventDef EV_idCameraView_Activate( "activate", "e", NULL ); +const idEventDef EV_idCameraView_Getattachments( "", NULL, NULL ); +const idEventDef EV_idCameraAnim_Start( "start", NULL, NULL ); +const idEventDef EV_idCameraAnim_Stop( "stop", NULL, NULL ); +const idEventDef EV_idCameraAnim_SetAnim( "setAnim", "s", NULL ); +const idEventDef EV_idCameraAnim_Activate( "activate", "e", NULL ); +const idEventDef EV_idMoveable_Activate( "activate", "e", NULL ); +const idEventDef EV_idMoveable_BecomeNonSolid( "becomeNonSolid", NULL, NULL ); +const idEventDef EV_idMoveable_SetOwnerFromSpawnArgs( "", NULL, NULL ); +const idEventDef EV_idMoveable_IsAtRest( "isAtRest", NULL, 'd' ); +const idEventDef EV_idMoveable_EnableDamage( "enableDamage", "f", NULL ); +const idEventDef EV_idExplodingBarrel_Respawn( "", NULL, NULL ); +const idEventDef EV_idExplodingBarrel_Triggertargets( "", NULL, NULL ); +const idEventDef EV_idTarget_Remove_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_Show_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_Damage_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_SessionCommand_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_EndLevel_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_WaitForButton_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_SetGlobalShaderTime_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_SetShaderParm_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_SetShaderTime_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_FadeEntity_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_LightFadeIn_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_LightFadeOut_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_Give_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_GiveEmail_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_SetModel_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_SetInfluence_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_SetInfluence_RestoreInfluece( "", NULL, NULL ); +const idEventDef EV_idTarget_SetInfluence_GatherEntities( "", NULL, NULL ); +const idEventDef EV_idTarget_SetInfluence_Flash( "", "fd", NULL ); +const idEventDef EV_idTarget_SetInfluence_ClearFlash( "", "f", NULL ); +const idEventDef EV_idTarget_SetKeyVal_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_SetFov_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_SetPrimaryObjective_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_LockDoor_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_CallObjectFunction_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_EnableLevelWeapons_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_Tip_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_Tip_TipOff( "", NULL, NULL ); +const idEventDef EV_idTarget_Tip_Getplayerpos( "", NULL, NULL ); +const idEventDef EV_idTarget_GiveSecurity_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_RemoveWeapons_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_LevelTrigger_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_EnableStamina_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_FadeSoundClass_Activate( "activate", "e", NULL ); +const idEventDef EV_idTarget_FadeSoundClass_RestoreVolume( "", NULL, NULL ); +const idEventDef EV_idTrigger_Enable( "enable", NULL, NULL ); +const idEventDef EV_idTrigger_Disable( "disable", NULL, NULL ); +const idEventDef EV_TriggerAction( "", "e", NULL ); +const idEventDef EV_idTrigger_Multi_Activate( "activate", "e", NULL ); +const idEventDef EV_idTrigger_Multi_Touch( "", "et", NULL ); +const idEventDef EV_idTrigger_EntityName_Activate( "activate", "e", NULL ); +const idEventDef EV_idTrigger_EntityName_Touch( "", "et", NULL ); +const idEventDef EV_Timer( "", NULL, NULL ); +const idEventDef EV_idTrigger_Timer_Activate( "activate", "e", NULL ); +const idEventDef EV_idTrigger_Count_Activate( "activate", "e", NULL ); +const idEventDef EV_idTrigger_Hurt_Touch( "", "et", NULL ); +const idEventDef EV_idTrigger_Hurt_Activate( "activate", "e", NULL ); +const idEventDef EV_idTrigger_Fade_Activate( "activate", "e", NULL ); +const idEventDef EV_idTrigger_Touch_Activate( "activate", "e", NULL ); +const idEventDef EV_idSound_Activate( "activate", "e", NULL ); +const idEventDef EV_idSound_On( "On", NULL, NULL ); +const idEventDef EV_idSound_Off( "Off", NULL, NULL ); +const idEventDef EV_idEntityFx_Activate( "activate", "e", NULL ); +const idEventDef EV_idEntityFx_Killfx( "_killfx", NULL, NULL ); +const idEventDef EV_idTeleporter_FxAction( "_fxAction", "e", NULL ); +const idEventDef EV_idSecurityCamera_ReverseSweep( "", NULL, NULL ); +const idEventDef EV_idSecurityCamera_ContinueSweep( "", NULL, NULL ); +const idEventDef EV_idSecurityCamera_Pause( "", NULL, NULL ); +const idEventDef EV_idSecurityCamera_Alert( "", NULL, NULL ); +const idEventDef EV_idSecurityCamera_AddLight( "", NULL, NULL ); +const idEventDef EV_idBrittleFracture_Activate( "activate", "e", NULL ); +const idEventDef EV_idBrittleFracture_Touch( "", "et", NULL ); +const idEventDef EV_idAI_Activate( "activate", "e", NULL ); +const idEventDef EV_idAI_Touch( "", "et", NULL ); +const idEventDef EV_idAI_FindEnemy( "findEnemy", "d", 'e' ); +const idEventDef EV_idAI_FindEnemyAI( "findEnemyAI", "d", 'e' ); +const idEventDef EV_idAI_FindEnemyInCombatNodes( "findEnemyInCombatNodes", NULL, 'e' ); +const idEventDef EV_idAI_ClosestReachableEnemyOfEntity( "closestReachableEnemyOfEntity", "e", 'e' ); +const idEventDef EV_idAI_HeardSound( "heardSound", "d", 'e' ); +const idEventDef EV_idAI_SetEnemy( "setEnemy", "e", NULL ); +const idEventDef EV_idAI_ClearEnemy( "clearEnemy", NULL, NULL ); +const idEventDef EV_idAI_MuzzleFlash( "muzzleFlash", "s", NULL ); +const idEventDef EV_idAI_CreateMissile( "createMissile", "s", 'e' ); +const idEventDef EV_idAI_AttackMissile( "attackMissile", "s", 'e' ); +const idEventDef EV_idAI_FireMissileAtTarget( "fireMissileAtTarget", "ss", 'e' ); +const idEventDef EV_idAI_LaunchMissile( "launchMissile", "vv", 'e' ); +const idEventDef EV_idAI_AttackMelee( "attackMelee", "s", 'd' ); +const idEventDef EV_idAI_DirectDamage( "directDamage", "es", NULL ); +const idEventDef EV_idAI_RadiusDamageFromJoint( "radiusDamageFromJoint", "ss", NULL ); +const idEventDef EV_idAI_AttackBegin( "attackBegin", "s", NULL ); +const idEventDef EV_idAI_AttackEnd( "attackEnd", NULL, NULL ); +const idEventDef EV_idAI_MeleeAttackToJoint( "meleeAttackToJoint", "ss", 'd' ); +const idEventDef EV_idAI_RandomPath( "randomPath", NULL, 'e' ); +const idEventDef EV_idAI_CanBecomeSolid( "canBecomeSolid", NULL, 'f' ); +const idEventDef EV_idAI_BecomeSolid( "becomeSolid", NULL, NULL ); +const idEventDef EV_idAI_BecomeNonSolid( "becomeNonSolid", NULL, NULL ); +const idEventDef EV_idAI_BecomeRagdoll( "becomeRagdoll", NULL, 'd' ); +const idEventDef EV_idAI_StopRagdoll( "stopRagdoll", NULL, NULL ); +const idEventDef EV_idAI_SetHealth( "setHealth", "f", NULL ); +const idEventDef EV_idAI_GetHealth( "getHealth", NULL, 'f' ); +const idEventDef EV_idAI_AllowDamage( "allowDamage", NULL, NULL ); +const idEventDef EV_idAI_IgnoreDamage( "ignoreDamage", NULL, NULL ); +const idEventDef EV_idAI_GetCurrentYaw( "getCurrentYaw", NULL, 'f' ); +const idEventDef EV_idAI_TurnTo( "turnTo", "f", NULL ); +const idEventDef EV_idAI_TurnToPos( "turnToPos", "v", NULL ); +const idEventDef EV_idAI_TurnToEntity( "turnToEntity", "e", NULL ); +const idEventDef EV_idAI_MoveStatus( "moveStatus", NULL, 'd' ); +const idEventDef EV_idAI_StopMove( "stopMove", NULL, NULL ); +const idEventDef EV_idAI_MoveToCover( "moveToCover", NULL, NULL ); +const idEventDef EV_idAI_MoveToEnemy( "moveToEnemy", NULL, NULL ); +const idEventDef EV_idAI_MoveToEnemyHeight( "moveToEnemyHeight", NULL, NULL ); +const idEventDef EV_idAI_MoveOutOfRange( "moveOutOfRange", "ef", NULL ); +const idEventDef EV_idAI_MoveToAttackPosition( "moveToAttackPosition", "es", NULL ); +const idEventDef EV_idAI_MoveToEntity( "moveToEntity", "e", NULL ); +const idEventDef EV_idAI_MoveToPosition( "moveToPosition", "v", NULL ); +const idEventDef EV_idAI_SlideTo( "slideTo", "vf", NULL ); +const idEventDef EV_idAI_Wander( "wander", NULL, NULL ); +const idEventDef EV_idAI_FacingIdeal( "facingIdeal", NULL, 'd' ); +const idEventDef EV_idAI_FaceEnemy( "faceEnemy", NULL, NULL ); +const idEventDef EV_idAI_FaceEntity( "faceEntity", "e", NULL ); +const idEventDef EV_idAI_WaitAction( "waitAction", "s", NULL ); +const idEventDef EV_idAI_GetCombatNode( "getCombatNode", NULL, 'e' ); +const idEventDef EV_idAI_EnemyInCombatCone( "enemyInCombatCone", "ed", 'd' ); +const idEventDef EV_idAI_WaitMove( "waitMove", NULL, NULL ); +const idEventDef EV_idAI_GetJumpVelocity( "getJumpVelocity", "vff", 'v' ); +const idEventDef EV_idAI_EntityInAttackCone( "entityInAttackCone", "e", 'd' ); +const idEventDef EV_idAI_CanSee( "canSee", "e", 'd' ); +const idEventDef EV_idAI_SetTalkTarget( "setTalkTarget", "e", NULL ); +const idEventDef EV_idAI_GetTalkTarget( "getTalkTarget", NULL, 'e' ); +const idEventDef EV_idAI_SetTalkState( "setTalkState", "d", NULL ); +const idEventDef EV_idAI_EnemyRange( "enemyRange", NULL, 'f' ); +const idEventDef EV_idAI_EnemyRange2D( "enemyRange2D", NULL, 'f' ); +const idEventDef EV_idAI_GetEnemy( "getEnemy", NULL, 'e' ); +const idEventDef EV_idAI_GetEnemyPos( "getEnemyPos", NULL, 'v' ); +const idEventDef EV_idAI_GetEnemyEyePos( "getEnemyEyePos", NULL, 'v' ); +const idEventDef EV_idAI_PredictEnemyPos( "predictEnemyPos", "f", 'v' ); +const idEventDef EV_idAI_CanHitEnemy( "canHitEnemy", NULL, 'd' ); +const idEventDef EV_idAI_CanHitEnemyFromAnim( "canHitEnemyFromAnim", "s", 'd' ); +const idEventDef EV_idAI_CanHitEnemyFromJoint( "canHitEnemyFromJoint", "s", 'd' ); +const idEventDef EV_idAI_EnemyPositionValid( "enemyPositionValid", NULL, 'd' ); +const idEventDef EV_idAI_ChargeAttack( "chargeAttack", "s", NULL ); +const idEventDef EV_idAI_TestChargeAttack( "testChargeAttack", NULL, 'f' ); +const idEventDef EV_idAI_TestAnimMoveTowardEnemy( "testAnimMoveTowardEnemy", "s", 'd' ); +const idEventDef EV_idAI_TestAnimMove( "testAnimMove", "s", 'd' ); +const idEventDef EV_idAI_TestMoveToPosition( "testMoveToPosition", "v", 'd' ); +const idEventDef EV_idAI_TestMeleeAttack( "testMeleeAttack", NULL, 'd' ); +const idEventDef EV_idAI_TestAnimAttack( "testAnimAttack", "s", 'd' ); +const idEventDef EV_idAI_Shrivel( "shrivel", "f", NULL ); +const idEventDef EV_idAI_Burn( "burn", NULL, NULL ); +const idEventDef EV_idAI_PreBurn( "preBurn", NULL, NULL ); +const idEventDef EV_idAI_ClearBurn( "clearBurn", NULL, NULL ); +const idEventDef EV_idAI_SetSmokeVisibility( "setSmokeVisibility", "dd", NULL ); +const idEventDef EV_idAI_NumSmokeEmitters( "numSmokeEmitters", NULL, 'd' ); +const idEventDef EV_idAI_StopThinking( "stopThinking", NULL, NULL ); +const idEventDef EV_idAI_GetTurnDelta( "getTurnDelta", NULL, 'f' ); +const idEventDef EV_idAI_GetMoveType( "getMoveType", NULL, 'd' ); +const idEventDef EV_idAI_SetMoveType( "setMoveType", "d", NULL ); +const idEventDef EV_idAI_SaveMove( "saveMove", NULL, NULL ); +const idEventDef EV_idAI_RestoreMove( "restoreMove", NULL, NULL ); +const idEventDef EV_idAI_AllowMovement( "allowMovement", "f", NULL ); +const idEventDef EV_idAI_Jumpframe( "", NULL, NULL ); +const idEventDef EV_idAI_EnableClip( "enableClip", NULL, NULL ); +const idEventDef EV_idAI_DisableClip( "disableClip", NULL, NULL ); +const idEventDef EV_idAI_EnableGravity( "enableGravity", NULL, NULL ); +const idEventDef EV_idAI_DisableGravity( "disableGravity", NULL, NULL ); +const idEventDef EV_idAI_EnableAFPush( "enableAFPush", NULL, NULL ); +const idEventDef EV_idAI_DisableAFPush( "disableAFPush", NULL, NULL ); +const idEventDef EV_idAI_SetFlySpeed( "setFlySpeed", "f", NULL ); +const idEventDef EV_idAI_SetFlyOffset( "setFlyOffset", "d", NULL ); +const idEventDef EV_idAI_ClearFlyOffset( "clearFlyOffset", NULL, NULL ); +const idEventDef EV_idAI_GetClosestHiddenTarget( "getClosestHiddenTarget", "s", 'e' ); +const idEventDef EV_idAI_GetRandomTarget( "getRandomTarget", "s", 'e' ); +const idEventDef EV_idAI_TravelDistanceToPoint( "travelDistanceToPoint", "v", 'f' ); +const idEventDef EV_idAI_TravelDistanceToEntity( "travelDistanceToEntity", "e", 'f' ); +const idEventDef EV_idAI_TravelDistanceBetweenPoints( "travelDistanceBetweenPoints", "vv", 'f' ); +const idEventDef EV_idAI_TravelDistanceBetweenEntities( "travelDistanceBetweenEntities", "ee", 'f' ); +const idEventDef EV_idAI_LookAt( "lookAt", "ef", NULL ); +const idEventDef EV_idAI_LookAtEnemy( "lookAtEnemy", "f", NULL ); +const idEventDef EV_idAI_SetBoneMod( "setBoneMod", "d", NULL ); +const idEventDef EV_idAI_ThrowMoveable( "throwMoveable", NULL, NULL ); +const idEventDef EV_idAI_ThrowAF( "throwAF", NULL, NULL ); +const idEventDef EV_idAI_Kill_real( "", NULL, NULL ); +const idEventDef EV_idAI_Kill( "kill", NULL, NULL ); +const idEventDef EV_idAI_WakeOnFlashlight( "wakeOnFlashlight", "d", NULL ); +const idEventDef EV_idAI_LocateEnemy( "locateEnemy", NULL, NULL ); +const idEventDef EV_idAI_KickObstacles( "kickObstacles", "ef", NULL ); +const idEventDef EV_idAI_GetObstacle( "getObstacle", NULL, 'e' ); +const idEventDef EV_idAI_PushPointIntoAAS( "pushPointIntoAAS", "v", 'v' ); +const idEventDef EV_idAI_GetTurnRate( "getTurnRate", NULL, 'f' ); +const idEventDef EV_idAI_SetTurnRate( "setTurnRate", "f", NULL ); +const idEventDef EV_idAI_AnimTurn( "animTurn", "f", NULL ); +const idEventDef EV_idAI_AllowHiddenMovement( "allowHiddenMovement", "d", NULL ); +const idEventDef EV_idAI_TriggerParticles( "triggerParticles", "s", NULL ); +const idEventDef EV_idAI_FindActorsInBounds( "findActorsInBounds", "vv", 'e' ); +const idEventDef EV_idAI_CanReachPosition( "canReachPosition", "v", 'd' ); +const idEventDef EV_idAI_CanReachEntity( "canReachEntity", "e", 'd' ); +const idEventDef EV_idAI_CanReachEnemy( "canReachEnemy", NULL, 'd' ); +const idEventDef EV_idAI_GetReachableEntityPosition( "getReachableEntityPosition", "e", 'v' ); +const idEventDef EV_idCombatNode_Activate( "activate", "e", NULL ); +const idEventDef EV_idCombatNode_MarkUsed( "markUsed", NULL, NULL ); +const idEventDef EV_idAI_Vagary_Vagary_ChooseObjectToThrow( "vagary_ChooseObjectToThrow", "vvfff", 'e' ); +const idEventDef EV_idAI_Vagary_Vagary_ThrowObjectAtEnemy( "vagary_ThrowObjectAtEnemy", "ef", NULL ); +const idEventDef EV_idTestModel_RightFoot( "rightFoot", NULL, NULL ); +const idEventDef EV_idThread_Execute( "", NULL, NULL ); +const idEventDef EV_idThread_Threadname( "threadname", "s", NULL ); +const idEventDef EV_idThread_Terminate( "terminate", "d", NULL ); +const idEventDef EV_idThread_Pause( "pause", NULL, NULL ); +const idEventDef EV_idThread_Wait( "wait", "f", NULL ); +const idEventDef EV_idThread_WaitFrame( "waitFrame", NULL, NULL ); +const idEventDef EV_idThread_WaitFor( "waitFor", "e", NULL ); +const idEventDef EV_idThread_WaitForThread( "waitForThread", "d", NULL ); +const idEventDef EV_idThread_Print( "print", "s", NULL ); +const idEventDef EV_idThread_Println( "println", "s", NULL ); +const idEventDef EV_idThread_Say( "say", "s", NULL ); +const idEventDef EV_idThread_Assert( "assert", "f", NULL ); +const idEventDef EV_idThread_Trigger( "trigger", "e", NULL ); +const idEventDef EV_idThread_Setcvar( "setcvar", "ss", NULL ); +const idEventDef EV_idThread_Getcvar( "getcvar", "s", 's' ); +const idEventDef EV_idThread_Random( "random", "f", 'f' ); +const idEventDef EV_idThread_GetTime( "getTime", NULL, 'f' ); +const idEventDef EV_idThread_Killthread( "killthread", "s", NULL ); +const idEventDef EV_idThread_GetEntity( "getEntity", "s", 'e' ); +const idEventDef EV_idThread_Spawn( "spawn", "s", 'e' ); +const idEventDef EV_idThread_CopySpawnArgs( "copySpawnArgs", "e", NULL ); +const idEventDef EV_idThread_SetSpawnArg( "setSpawnArg", "ss", NULL ); +const idEventDef EV_idThread_SpawnString( "SpawnString", "ss", 's' ); +const idEventDef EV_idThread_SpawnFloat( "SpawnFloat", "sf", 'f' ); +const idEventDef EV_idThread_SpawnVector( "SpawnVector", "sv", 'v' ); +const idEventDef EV_idThread_ClearPersistantArgs( "clearPersistantArgs", NULL, NULL ); +const idEventDef EV_idThread_SetPersistantArg( "setPersistantArg", "ss", NULL ); +const idEventDef EV_idThread_GetPersistantString( "getPersistantString", "s", 's' ); +const idEventDef EV_idThread_GetPersistantFloat( "getPersistantFloat", "s", 'f' ); +const idEventDef EV_idThread_GetPersistantVector( "getPersistantVector", "s", 'v' ); +const idEventDef EV_idThread_AngToForward( "angToForward", "v", 'v' ); +const idEventDef EV_idThread_AngToRight( "angToRight", "v", 'v' ); +const idEventDef EV_idThread_AngToUp( "angToUp", "v", 'v' ); +const idEventDef EV_idThread_Sin( "sin", "f", 'f' ); +const idEventDef EV_idThread_Cos( "cos", "f", 'f' ); +const idEventDef EV_idThread_Sqrt( "sqrt", "f", 'f' ); +const idEventDef EV_idThread_VecNormalize( "vecNormalize", "v", 'v' ); +const idEventDef EV_idThread_VecLength( "vecLength", "v", 'f' ); +const idEventDef EV_idThread_DotProduct( "DotProduct", "vv", 'f' ); +const idEventDef EV_idThread_CrossProduct( "CrossProduct", "vv", 'v' ); +const idEventDef EV_idThread_VecToAngles( "VecToAngles", "v", 'v' ); +const idEventDef EV_idThread_OnSignal( "onSignal", "des", NULL ); +const idEventDef EV_idThread_ClearSignalThread( "clearSignalThread", "de", NULL ); +const idEventDef EV_idThread_SetCamera( "setCamera", "e", NULL ); +const idEventDef EV_idThread_FirstPerson( "firstPerson", NULL, NULL ); +const idEventDef EV_idThread_Trace( "trace", "vvvvde", 'f' ); +const idEventDef EV_idThread_TracePoint( "tracePoint", "vvde", 'f' ); +const idEventDef EV_idThread_GetTraceFraction( "getTraceFraction", NULL, 'f' ); +const idEventDef EV_idThread_GetTraceEndPos( "getTraceEndPos", NULL, 'v' ); +const idEventDef EV_idThread_GetTraceNormal( "getTraceNormal", NULL, 'v' ); +const idEventDef EV_idThread_GetTraceEntity( "getTraceEntity", NULL, 'e' ); +const idEventDef EV_idThread_GetTraceJoint( "getTraceJoint", NULL, 's' ); +const idEventDef EV_idThread_GetTraceBody( "getTraceBody", NULL, 's' ); +const idEventDef EV_idThread_FadeIn( "fadeIn", "vf", NULL ); +const idEventDef EV_idThread_FadeOut( "fadeOut", "vf", NULL ); +const idEventDef EV_idThread_FadeTo( "fadeTo", "vff", NULL ); +const idEventDef EV_idThread_SetShaderParm( "setShaderParm", "df", NULL ); +const idEventDef EV_idThread_Music( "music", "s", NULL ); +const idEventDef EV_idThread_Warning( "warning", "s", NULL ); +const idEventDef EV_idThread_Error( "error", "s", NULL ); +const idEventDef EV_idThread_StrLength( "strLength", "s", 'd' ); +const idEventDef EV_idThread_StrLeft( "strLeft", "sd", 's' ); +const idEventDef EV_idThread_StrRight( "strRight", "sd", 's' ); +const idEventDef EV_idThread_StrSkip( "strSkip", "sd", 's' ); +const idEventDef EV_idThread_StrMid( "strMid", "sdd", 's' ); +const idEventDef EV_idThread_StrToFloat( "strToFloat", "s", 'f' ); +const idEventDef EV_idThread_RadiusDamage( "radiusDamage", "veeesf", NULL ); +const idEventDef EV_idThread_IsClient( "isClient", NULL, 'f' ); +const idEventDef EV_idThread_IsMultiplayer( "isMultiplayer", NULL, 'f' ); +const idEventDef EV_idThread_GetFrameTime( "getFrameTime", NULL, 'f' ); +const idEventDef EV_idThread_GetTicsPerSecond( "getTicsPerSecond", NULL, 'f' ); +const idEventDef EV_idThread_CacheSoundShader( "cacheSoundShader", "s", NULL ); +const idEventDef EV_idThread_DebugLine( "debugLine", "vvvf", NULL ); +const idEventDef EV_idThread_DebugArrow( "debugArrow", "vvvdf", NULL ); +const idEventDef EV_idThread_DebugCircle( "debugCircle", "vvvfdf", NULL ); +const idEventDef EV_idThread_DebugBounds( "debugBounds", "vvvf", NULL ); +const idEventDef EV_idThread_DrawText( "drawText", "svfvdf", NULL ); +const idEventDef EV_idThread_InfluenceActive( "influenceActive", NULL, 'd' ); + + +// -------------------- +// CLASS_STATES_DECLARATION blocks +// -------------------- + + + +// -------------------- +// CLASS_DECLARATION blocks +// -------------------- + +// Skipping idClass: no superType found. + +CLASS_DECLARATION( idClass, idForce ) +END_CLASS + +CLASS_DECLARATION( idForce, idForce_Constant ) +END_CLASS + +CLASS_DECLARATION( idForce, idForce_Drag ) +END_CLASS + +CLASS_DECLARATION( idForce, idForce_Field ) +END_CLASS + +CLASS_DECLARATION( idForce, idForce_Spring ) +END_CLASS + +ABSTRACT_DECLARATION( idClass, idPhysics ) +END_CLASS + +CLASS_DECLARATION( idPhysics, idPhysics_Static ) +END_CLASS + +CLASS_DECLARATION( idPhysics, idPhysics_StaticMulti ) +END_CLASS + +CLASS_DECLARATION( idPhysics, idPhysics_Base ) +END_CLASS + +CLASS_DECLARATION( idPhysics_Base, idPhysics_Actor ) +END_CLASS + +CLASS_DECLARATION( idPhysics_Actor, idPhysics_Monster ) +END_CLASS + +CLASS_DECLARATION( idPhysics_Actor, idPhysics_Player ) +END_CLASS + +CLASS_DECLARATION( idPhysics_Base, idPhysics_Parametric ) +END_CLASS + +CLASS_DECLARATION( idPhysics_Base, idPhysics_RigidBody ) +END_CLASS + +CLASS_DECLARATION( idPhysics_Base, idPhysics_AF ) +END_CLASS + +ABSTRACT_DECLARATION( idClass, idEntity ) + EVENT( EV_GetName, idEntity::Event_GetName ) + EVENT( EV_SetName, idEntity::Event_SetName ) + EVENT( EV_FindTargets, idEntity::Event_FindTargets ) + EVENT( EV_ActivateTargets, idEntity::Event_ActivateTargets ) + EVENT( EV_NumTargets, idEntity::Event_NumTargets ) + EVENT( EV_GetTarget, idEntity::Event_GetTarget ) + EVENT( EV_RandomTarget, idEntity::Event_RandomTarget ) + EVENT( EV_Bind, idEntity::Event_Bind ) + EVENT( EV_BindPosition, idEntity::Event_BindPosition ) + EVENT( EV_BindToJoint, idEntity::Event_BindToJoint ) + EVENT( EV_Unbind, idEntity::Event_Unbind ) + EVENT( EV_RemoveBinds, idEntity::Event_RemoveBinds ) + EVENT( EV_Spawnbind, idEntity::Event_SpawnBind ) + EVENT( EV_SetOwner, idEntity::Event_SetOwner ) + EVENT( EV_SetModel, idEntity::Event_SetModel ) + EVENT( EV_SetSkin, idEntity::Event_SetSkin ) + EVENT( EV_GetShaderParm, idEntity::Event_GetShaderParm ) + EVENT( EV_SetShaderParm, idEntity::Event_SetShaderParm ) + EVENT( EV_SetShaderParms, idEntity::Event_SetShaderParms ) + EVENT( EV_SetColor, idEntity::Event_SetColor ) + EVENT( EV_GetColor, idEntity::Event_GetColor ) + EVENT( EV_IsHidden, idEntity::Event_IsHidden ) + EVENT( EV_Hide, idEntity::Event_Hide ) + EVENT( EV_Show, idEntity::Event_Show ) + EVENT( EV_CacheSoundShader, idEntity::Event_CacheSoundShader ) + EVENT( EV_StartSoundShader, idEntity::Event_StartSoundShader ) + EVENT( EV_StopSound, idEntity::Event_StopSound ) + EVENT( EV_StartSound, idEntity::Event_StartSound ) + EVENT( EV_FadeSound, idEntity::Event_FadeSound ) + EVENT( EV_GetWorldOrigin, idEntity::Event_GetWorldOrigin ) + EVENT( EV_SetWorldOrigin, idEntity::Event_SetWorldOrigin ) + EVENT( EV_GetOrigin, idEntity::Event_GetOrigin ) + EVENT( EV_SetOrigin, idEntity::Event_SetOrigin ) + EVENT( EV_GetAngles, idEntity::Event_GetAngles ) + EVENT( EV_SetAngles, idEntity::Event_SetAngles ) + EVENT( EV_SetLinearVelocity, idEntity::Event_SetLinearVelocity ) + EVENT( EV_GetLinearVelocity, idEntity::Event_GetLinearVelocity ) + EVENT( EV_SetAngularVelocity, idEntity::Event_SetAngularVelocity ) + EVENT( EV_GetAngularVelocity, idEntity::Event_GetAngularVelocity ) + EVENT( EV_SetSize, idEntity::Event_SetSize ) + EVENT( EV_GetSize, idEntity::Event_GetSize ) + EVENT( EV_GetMins, idEntity::Event_GetMins ) + EVENT( EV_GetMaxs, idEntity::Event_GetMaxs ) + EVENT( EV_Touches, idEntity::Event_Touches ) + EVENT( EV_SetGuiParm, idEntity::Event_SetGuiParm ) + EVENT( EV_SetGuiFloat, idEntity::Event_SetGuiFloat ) + EVENT( EV_GetNextKey, idEntity::Event_GetNextKey ) + EVENT( EV_SetKey, idEntity::Event_SetKey ) + EVENT( EV_GetKey, idEntity::Event_GetKey ) + EVENT( EV_GetIntKey, idEntity::Event_GetIntKey ) + EVENT( EV_GetFloatKey, idEntity::Event_GetFloatKey ) + EVENT( EV_GetVectorKey, idEntity::Event_GetVectorKey ) + EVENT( EV_GetEntityKey, idEntity::Event_GetEntityKey ) + EVENT( EV_RestorePosition, idEntity::Event_RestorePosition ) + EVENT( EV_UpdateCameraTarget, idEntity::Event_UpdateCameraTarget ) + EVENT( EV_DistanceTo, idEntity::Event_DistanceTo ) + EVENT( EV_DistanceToPoint, idEntity::Event_DistanceToPoint ) + EVENT( EV_StartFx, idEntity::Event_StartFx ) + EVENT( EV_WaitFrame, idEntity::Event_WaitFrame ) + EVENT( EV_Wait, idEntity::Event_Wait ) + EVENT( EV_HasFunction, idEntity::Event_HasFunction ) + EVENT( EV_CallFunction, idEntity::Event_CallFunction ) + EVENT( EV_SetNeverDormant, idEntity::Event_SetNeverDormant ) +END_CLASS + +CLASS_DECLARATION( idEntity, idAnimatedEntity ) + EVENT( EV_idAnimatedEntity_GetJointHandle, idAnimatedEntity::Event_GetJointHandle ) + EVENT( EV_idAnimatedEntity_ClearAllJoints, idAnimatedEntity::Event_ClearAllJoints ) + EVENT( EV_idAnimatedEntity_ClearJoint, idAnimatedEntity::Event_ClearJoint ) + EVENT( EV_idAnimatedEntity_SetJointPos, idAnimatedEntity::Event_SetJointPos ) + EVENT( EV_idAnimatedEntity_SetJointAngle, idAnimatedEntity::Event_SetJointAngle ) + EVENT( EV_idAnimatedEntity_GetJointPos, idAnimatedEntity::Event_GetJointPos ) + EVENT( EV_idAnimatedEntity_GetJointAngle, idAnimatedEntity::Event_GetJointAngle ) +END_CLASS + +CLASS_DECLARATION( idEntity, idCursor3D ) +END_CLASS + +CLASS_DECLARATION( idEntity, idMultiModelAF ) +END_CLASS + +CLASS_DECLARATION( idMultiModelAF, idChain ) +END_CLASS + +CLASS_DECLARATION( idAnimatedEntity, idAFAttachment ) +END_CLASS + +CLASS_DECLARATION( idAnimatedEntity, idAFEntity_Base ) + EVENT( EV_idAFEntity_Base_SetConstraintPosition, idAFEntity_Base::Event_SetConstraintPosition ) +END_CLASS + +CLASS_DECLARATION( idAFEntity_Base, idAFEntity_Gibbable ) + EVENT( EV_Gib, idAFEntity_Gibbable::Event_Gib ) +END_CLASS + +CLASS_DECLARATION( idAFEntity_Gibbable, idAFEntity_Generic ) + EVENT( EV_idAFEntity_Generic_Activate, idAFEntity_Generic::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idAFEntity_Gibbable, idAFEntity_WithAttachedHead ) + EVENT( EV_Gib, idAFEntity_WithAttachedHead::Event_Gib ) + EVENT( EV_idAFEntity_WithAttachedHead_Activate, idAFEntity_WithAttachedHead::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idAFEntity_Base, idAFEntity_Vehicle ) +END_CLASS + +CLASS_DECLARATION( idAFEntity_Vehicle, idAFEntity_VehicleSimple ) +END_CLASS + +CLASS_DECLARATION( idAFEntity_Vehicle, idAFEntity_VehicleFourWheels ) +END_CLASS + +CLASS_DECLARATION( idAFEntity_Vehicle, idAFEntity_VehicleSixWheels ) +END_CLASS + +CLASS_DECLARATION( idAFEntity_Base, idAFEntity_SteamPipe ) +END_CLASS + +CLASS_DECLARATION( idAFEntity_Base, idAFEntity_ClawFourFingers ) + EVENT( EV_idAFEntity_ClawFourFingers_SetFingerAngle, idAFEntity_ClawFourFingers::Event_SetFingerAngle ) + EVENT( EV_idAFEntity_ClawFourFingers_StopFingers, idAFEntity_ClawFourFingers::Event_StopFingers ) +END_CLASS + +CLASS_DECLARATION( idEntity, idSpawnableEntity ) +END_CLASS + +CLASS_DECLARATION( idEntity, idPlayerStart ) + EVENT( EV_idPlayerStart_Activate, idPlayerStart::Event_TeleportPlayer ) + EVENT( EV_idPlayerStart_TeleportStage, idPlayerStart::Event_TeleportStage ) +END_CLASS + +CLASS_DECLARATION( idEntity, idActivator ) + EVENT( EV_idActivator_Activate, idActivator::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idEntity, idPathCorner ) + EVENT( EV_idPathCorner_RandomPath, idPathCorner::Event_RandomPath ) +END_CLASS + +CLASS_DECLARATION( idEntity, idDamagable ) + EVENT( EV_idDamagable_Activate, idDamagable::Event_BecomeBroken ) + EVENT( EV_idDamagable_RestoreDamagable, idDamagable::Event_RestoreDamagable ) +END_CLASS + +CLASS_DECLARATION( idEntity, idExplodable ) + EVENT( EV_idExplodable_Activate, idExplodable::Event_Explode ) +END_CLASS + +CLASS_DECLARATION( idEntity, idSpring ) + EVENT( EV_PostSpawn, idSpring::Event_LinkSpring ) +END_CLASS + +CLASS_DECLARATION( idEntity, idForceField ) + EVENT( EV_idForceField_Activate, idForceField::Event_Activate ) + EVENT( EV_idForceField_Toggle, idForceField::Event_Toggle ) + EVENT( EV_FindTargets, idForceField::Event_FindTargets ) +END_CLASS + +CLASS_DECLARATION( idAFEntity_Gibbable, idAnimated ) + EVENT( EV_idAnimated_Activate, idAnimated::Event_Activate ) + EVENT( EV_idAnimated_Start, idAnimated::Event_Start ) + EVENT( EV_idAnimated_StartRagdoll, idAnimated::Event_StartRagdoll ) + EVENT( EV_idAnimated_AnimDone, idAnimated::Event_AnimDone ) + EVENT( EV_idAnimated_RightFoot, idAnimated::Event_Footstep ) + EVENT( EV_idAnimated_LaunchMissiles, idAnimated::Event_LaunchMissiles ) + EVENT( EV_idAnimated_LaunchMissilesUpdate, idAnimated::Event_LaunchMissilesUpdate ) +END_CLASS + +CLASS_DECLARATION( idEntity, idStaticEntity ) + EVENT( EV_idStaticEntity_Activate, idStaticEntity::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idStaticEntity, idFuncEmitter ) + EVENT( EV_idStaticEntity_Activate, idFuncEmitter::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idEntity, idFuncSmoke ) + EVENT( EV_idFuncSmoke_Activate, idFuncSmoke::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idFuncEmitter, idFuncSplat ) + EVENT( EV_idStaticEntity_Activate, idFuncSplat::Event_Activate ) + EVENT( EV_idFuncSplat_Splat, idFuncSplat::Event_Splat ) +END_CLASS + +CLASS_DECLARATION( idEntity, idTextEntity ) +END_CLASS + +CLASS_DECLARATION( idEntity, idLocationEntity ) +END_CLASS + +CLASS_DECLARATION( idEntity, idLocationSeparatorEntity ) +END_CLASS + +CLASS_DECLARATION( idEntity, idVacuumSeparatorEntity ) + EVENT( EV_idVacuumSeparatorEntity_Activate, idVacuumSeparatorEntity::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idEntity, idVacuumEntity ) +END_CLASS + +CLASS_DECLARATION( idEntity, idBeam ) + EVENT( EV_PostSpawn, idBeam::Event_MatchTarget ) + EVENT( EV_idBeam_Activate, idBeam::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idEntity, idLiquid ) + EVENT( EV_idLiquid_Touch, idLiquid::Event_Touch ) +END_CLASS + +CLASS_DECLARATION( idEntity, idShaking ) + EVENT( EV_idShaking_Activate, idShaking::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idEntity, idEarthQuake ) + EVENT( EV_idEarthQuake_Activate, idEarthQuake::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idEntity, idFuncPortal ) + EVENT( EV_idFuncPortal_Activate, idFuncPortal::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idEntity, idFuncAASPortal ) + EVENT( EV_idFuncAASPortal_Activate, idFuncAASPortal::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idEntity, idFuncAASObstacle ) + EVENT( EV_idFuncAASObstacle_Activate, idFuncAASObstacle::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idEntity, idFuncRadioChatter ) + EVENT( EV_idFuncRadioChatter_Activate, idFuncRadioChatter::Event_Activate ) + EVENT( EV_idFuncRadioChatter_Resetradiohud, idFuncRadioChatter::Event_ResetRadioHud ) +END_CLASS + +CLASS_DECLARATION( idEntity, idPhantomObjects ) + EVENT( EV_idPhantomObjects_Activate, idPhantomObjects::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idAFEntity_Gibbable, idActor ) + EVENT( EV_idActor_EnableEyeFocus, idActor::Event_EnableEyeFocus ) + EVENT( EV_idActor_DisableEyeFocus, idActor::Event_DisableEyeFocus ) + EVENT( EV_idActor_RightFoot, idActor::Event_Footstep ) + EVENT( EV_idActor_EnableWalkIK, idActor::Event_EnableWalkIK ) + EVENT( EV_idActor_DisableWalkIK, idActor::Event_DisableWalkIK ) + EVENT( EV_idActor_EnableLegIK, idActor::Event_EnableLegIK ) + EVENT( EV_idActor_DisableLegIK, idActor::Event_DisableLegIK ) + EVENT( EV_idActor_SetAnimPrefix, idActor::Event_SetAnimPrefix ) + EVENT( EV_idActor_PreventPain, idActor::Event_PreventPain ) + EVENT( EV_idActor_DisablePain, idActor::Event_DisablePain ) + EVENT( EV_idActor_EnablePain, idActor::Event_EnablePain ) + EVENT( EV_idActor_GetPainAnim, idActor::Event_GetPainAnim ) + EVENT( EV_idActor_StopAnim, idActor::Event_StopAnim ) + EVENT( EV_idActor_PlayAnim, idActor::Event_PlayAnimScript ) + EVENT( EV_idActor_PlayCycle, idActor::Event_PlayCycleScript ) + EVENT( EV_idActor_IdleAnim, idActor::Event_IdleAnim ) + EVENT( EV_idActor_SetSyncedAnimWeight, idActor::Event_SetSyncedAnimWeight ) + EVENT( EV_idActor_OverrideAnim, idActor::Event_OverrideAnim ) + EVENT( EV_idActor_EnableAnim, idActor::Event_EnableAnim ) + EVENT( EV_idActor_SetBlendFrames, idActor::Event_SetBlendFrames ) + EVENT( EV_idActor_GetBlendFrames, idActor::Event_GetBlendFrames ) + EVENT( EV_idActor_AnimState, idActor::Event_AnimState ) + EVENT( EV_idActor_GetAnimState, idActor::Event_GetAnimState ) + EVENT( EV_idActor_InAnimState, idActor::Event_InAnimState ) + EVENT( EV_idActor_FinishAction, idActor::Event_FinishAction ) + EVENT( EV_idActor_AnimDone, idActor::Event_AnimDone ) + EVENT( EV_idActor_HasAnim, idActor::Event_HasAnim ) + EVENT( EV_idActor_CheckAnim, idActor::Event_CheckAnim ) + EVENT( EV_idActor_ChooseAnim, idActor::Event_ChooseAnim ) + EVENT( EV_idActor_AnimLength, idActor::Event_AnimLength ) + EVENT( EV_idActor_AnimDistance, idActor::Event_AnimDistance ) + EVENT( EV_idActor_HasEnemies, idActor::Event_HasEnemies ) + EVENT( EV_idActor_NextEnemy, idActor::Event_NextEnemy ) + EVENT( EV_idActor_ClosestEnemyToPoint, idActor::Event_ClosestEnemyToPoint ) + EVENT( EV_StopSound, idActor::Event_StopSound ) + EVENT( EV_idActor_SetNextState, idActor::Event_SetNextState ) + EVENT( EV_idActor_SetState, idActor::Event_SetState ) + EVENT( EV_idActor_GetState, idActor::Event_GetState ) + EVENT( EV_idActor_GetHead, idActor::Event_GetHead ) +END_CLASS + +CLASS_DECLARATION( idEntity, idProjectile ) + EVENT( EV_Explode, idProjectile::Event_Explode ) + EVENT( EV_idProjectile_Fizzle, idProjectile::Event_Fizzle ) + EVENT( EV_idProjectile_Radiusdmg, idProjectile::Event_RadiusDamage ) + EVENT( EV_idProjectile_Touch, idProjectile::Event_Touch ) + EVENT( EV_idProjectile_GetProjectileState, idProjectile::Event_GetProjectileState ) +END_CLASS + +CLASS_DECLARATION( idProjectile, idGuidedProjectile ) +END_CLASS + +CLASS_DECLARATION( idGuidedProjectile, idSoulCubeMissile ) +END_CLASS + +CLASS_DECLARATION( idProjectile, idBFGProjectile ) + EVENT( EV_idBFGProjectile_RemoveBeams, idBFGProjectile::Event_RemoveBeams ) +END_CLASS + +CLASS_DECLARATION( idEntity, idDebris ) + EVENT( EV_Explode, idDebris::Event_Explode ) + EVENT( EV_idDebris_Fizzle, idDebris::Event_Fizzle ) +END_CLASS + +CLASS_DECLARATION( idClass, rvmWeaponObject ) +END_CLASS + +CLASS_DECLARATION( idAnimatedEntity, idWeapon ) + EVENT( EV_idWeapon_GrabberGrabDistance, idWeapon::Event_GrabberSetGrabDistance ) +END_CLASS + +CLASS_DECLARATION( idEntity, idLight ) + EVENT( EV_idLight_SetShader, idLight::Event_SetShader ) + EVENT( EV_idLight_GetLightParm, idLight::Event_GetLightParm ) + EVENT( EV_idLight_SetLightParm, idLight::Event_SetLightParm ) + EVENT( EV_idLight_SetLightParms, idLight::Event_SetLightParms ) + EVENT( EV_idLight_SetRadiusXYZ, idLight::Event_SetRadiusXYZ ) + EVENT( EV_idLight_SetRadius, idLight::Event_SetRadius ) + EVENT( EV_Hide, idLight::Event_Hide ) + EVENT( EV_Show, idLight::Event_Show ) + EVENT( EV_idLight_On, idLight::Event_On ) + EVENT( EV_idLight_Off, idLight::Event_Off ) + EVENT( EV_idLight_Activate, idLight::Event_ToggleOnOff ) + EVENT( EV_PostSpawn, idLight::Event_SetSoundHandles ) + EVENT( EV_idLight_FadeOutLight, idLight::Event_FadeOut ) + EVENT( EV_idLight_FadeInLight, idLight::Event_FadeIn ) +END_CLASS + +CLASS_DECLARATION( idEntity, idWorldspawn ) + EVENT( EV_idWorldspawn_Remove, idWorldspawn::Event_Remove ) +END_CLASS + +CLASS_DECLARATION( idEntity, idItem ) + EVENT( EV_idItem_DropToFloor, idItem::Event_DropToFloor ) + EVENT( EV_idItem_Touch, idItem::Event_Touch ) + EVENT( EV_idItem_Activate, idItem::Event_Trigger ) + EVENT( EV_idItem_Respawn, idItem::Event_Respawn ) + EVENT( EV_idItem_RespawnFx, idItem::Event_RespawnFx ) +END_CLASS + +CLASS_DECLARATION( idItem, idItemPowerup ) +END_CLASS + +CLASS_DECLARATION( idItem, idObjective ) + EVENT( EV_idItem_Activate, idObjective::Event_Trigger ) + EVENT( EV_idObjective_Hideobjective, idObjective::Event_HideObjective ) + EVENT( EV_idObjective_Getplayerpos, idObjective::Event_GetPlayerPos ) + EVENT( EV_idObjective_Camshot, idObjective::Event_CamShot ) +END_CLASS + +CLASS_DECLARATION( idItem, idVideoCDItem ) +END_CLASS + +CLASS_DECLARATION( idItem, idPDAItem ) +END_CLASS + +CLASS_DECLARATION( idItem, idMoveableItem ) + EVENT( EV_idItem_DropToFloor, idMoveableItem::Event_DropToFloor ) + EVENT( EV_Gib, idMoveableItem::Event_Gib ) +END_CLASS + +CLASS_DECLARATION( idMoveableItem, idMoveablePDAItem ) +END_CLASS + +CLASS_DECLARATION( idEntity, idItemRemover ) + EVENT( EV_idItemRemover_Activate, idItemRemover::Event_Trigger ) +END_CLASS + +CLASS_DECLARATION( idItemRemover, idObjectiveComplete ) + EVENT( EV_idItemRemover_Activate, idObjectiveComplete::Event_Trigger ) + EVENT( EV_idObjectiveComplete_Hideobjective, idObjectiveComplete::Event_HideObjective ) + EVENT( EV_idObjectiveComplete_Getplayerpos, idObjectiveComplete::Event_GetPlayerPos ) +END_CLASS + +CLASS_DECLARATION( idActor, idPlayer ) + EVENT( EV_idPlayer_StopAudioLog, idPlayer::Event_StopAudioLog ) + EVENT( EV_idPlayer_GetButtons, idPlayer::Event_GetButtons ) + EVENT( EV_idPlayer_GetMove, idPlayer::Event_GetMove ) + EVENT( EV_idPlayer_GetViewAngles, idPlayer::Event_GetViewAngles ) + EVENT( EV_idPlayer_StopFxFov, idPlayer::Event_StopFxFov ) + EVENT( EV_idPlayer_EnableWeapon, idPlayer::Event_EnableWeapon ) + EVENT( EV_idPlayer_DisableWeapon, idPlayer::Event_DisableWeapon ) + EVENT( EV_idPlayer_GetCurrentWeapon, idPlayer::Event_GetCurrentWeapon ) + EVENT( EV_idPlayer_GetPreviousWeapon, idPlayer::Event_GetPreviousWeapon ) + EVENT( EV_idPlayer_SelectWeapon, idPlayer::Event_SelectWeapon ) + EVENT( EV_idPlayer_GetWeaponEntity, idPlayer::Event_GetWeaponEntity ) + EVENT( EV_idPlayer_OpenPDA, idPlayer::Event_OpenPDA ) + EVENT( EV_idPlayer_InPDA, idPlayer::Event_InPDA ) + EVENT( EV_idPlayer_ExitTeleporter, idPlayer::Event_ExitTeleporter ) + EVENT( EV_idPlayer_HideTip, idPlayer::Event_HideTip ) + EVENT( EV_idPlayer_LevelTrigger, idPlayer::Event_LevelTrigger ) + EVENT( EV_Gibbed, idPlayer::Event_Gibbed ) + EVENT( EV_idPlayer_GetIdealWeapon, idPlayer::Event_GetIdealWeapon ) +END_CLASS + +CLASS_DECLARATION( idEntity, idMover ) + EVENT( EV_idMover_OpenPortal, idMover::Event_OpenPortal ) + EVENT( EV_idMover_ClosePortal, idMover::Event_ClosePortal ) + EVENT( EV_Partblocked, idMover::Event_PartBlocked ) + EVENT( EV_Thread_SetCallback, idMover::Event_SetCallback ) + EVENT( EV_Teamblocked, idMover::Event_TeamBlocked ) + EVENT( EV_idMover_StopMoving, idMover::Event_StopMoving ) + EVENT( EV_idMover_StopRotating, idMover::Event_StopRotating ) + EVENT( EV_ReachedPos, idMover::Event_UpdateMove ) + EVENT( EV_Reachedang, idMover::Event_UpdateRotation ) + EVENT( EV_idMover_Speed, idMover::Event_SetMoveSpeed ) + EVENT( EV_idMover_Time, idMover::Event_SetMoveTime ) + EVENT( EV_idMover_DecelTime, idMover::Event_SetDecelerationTime ) + EVENT( EV_idMover_AccelTime, idMover::Event_SetAccellerationTime ) + EVENT( EV_idMover_MoveTo, idMover::Event_MoveTo ) + EVENT( EV_idMover_MoveToPos, idMover::Event_MoveToPos ) + EVENT( EV_idMover_Move, idMover::Event_MoveDir ) + EVENT( EV_idMover_AccelTo, idMover::Event_MoveAccelerateTo ) + EVENT( EV_idMover_DecelTo, idMover::Event_MoveDecelerateTo ) + EVENT( EV_idMover_RotateDownTo, idMover::Event_RotateDownTo ) + EVENT( EV_idMover_RotateUpTo, idMover::Event_RotateUpTo ) + EVENT( EV_idMover_RotateTo, idMover::Event_RotateTo ) + EVENT( EV_idMover_Rotate, idMover::Event_Rotate ) + EVENT( EV_idMover_RotateOnce, idMover::Event_RotateOnce ) + EVENT( EV_idMover_Bob, idMover::Event_Bob ) + EVENT( EV_idMover_Sway, idMover::Event_Sway ) + EVENT( EV_idMover_AccelSound, idMover::Event_SetAccelSound ) + EVENT( EV_idMover_DecelSound, idMover::Event_SetDecelSound ) + EVENT( EV_idMover_MoveSound, idMover::Event_SetMoveSound ) + EVENT( EV_idMover_FindGuiTargets, idMover::Event_FindGuiTargets ) + EVENT( EV_idMover_Initguitargets, idMover::Event_InitGuiTargets ) + EVENT( EV_idMover_EnableSplineAngles, idMover::Event_EnableSplineAngles ) + EVENT( EV_idMover_DisableSplineAngles, idMover::Event_DisableSplineAngles ) + EVENT( EV_idMover_RemoveInitialSplineAngles, idMover::Event_RemoveInitialSplineAngles ) + EVENT( EV_idMover_StartSpline, idMover::Event_StartSpline ) + EVENT( EV_idMover_StopSpline, idMover::Event_StopSpline ) + EVENT( EV_idMover_Activate, idMover::Event_Activate ) + EVENT( EV_idMover_Postrestore, idMover::Event_PostRestore ) + EVENT( EV_idMover_IsMoving, idMover::Event_IsMoving ) + EVENT( EV_idMover_IsRotating, idMover::Event_IsRotating ) +END_CLASS + +CLASS_DECLARATION( idEntity, idSplinePath ) +END_CLASS + +CLASS_DECLARATION( idMover, idElevator ) + EVENT( EV_idElevator_GotoFloor, idElevator::Event_GotoFloor ) + EVENT( EV_idElevator_Touch, idElevator::Event_Touch ) + EVENT( EV_Teamblocked, idElevator::Event_TeamBlocked ) + EVENT( EV_idMover_Activate, idElevator::Event_Activate ) + EVENT( EV_idElevator_PostArrival, idElevator::Event_PostFloorArrival ) +END_CLASS + +CLASS_DECLARATION( idEntity, idMover_Binary ) + EVENT( EV_Thread_SetCallback, idMover_Binary::Event_SetCallback ) + EVENT( EV_idMover_Binary_Returntopos1, idMover_Binary::Event_ReturnToPos1 ) + EVENT( EV_idMover_Binary_Activate, idMover_Binary::Event_Use_BinaryMover ) + EVENT( EV_ReachedPos, idMover_Binary::Event_Reached_BinaryMover ) + EVENT( EV_idMover_Binary_Matchteam, idMover_Binary::Event_MatchActivateTeam ) + EVENT( EV_idMover_Binary_Enable, idMover_Binary::Event_Enable ) + EVENT( EV_idMover_Binary_Disable, idMover_Binary::Event_Disable ) + EVENT( EV_idMover_Binary_OpenPortal, idMover_Binary::Event_OpenPortal ) + EVENT( EV_idMover_Binary_ClosePortal, idMover_Binary::Event_ClosePortal ) + EVENT( EV_idMover_Binary_FindGuiTargets, idMover_Binary::Event_FindGuiTargets ) + EVENT( EV_idMover_Binary_Initguitargets, idMover_Binary::Event_InitGuiTargets ) +END_CLASS + +CLASS_DECLARATION( idMover_Binary, idDoor ) + EVENT( EV_ReachedPos, idDoor::Event_Reached_BinaryMover ) + EVENT( EV_Teamblocked, idDoor::Event_TeamBlocked ) + EVENT( EV_Partblocked, idDoor::Event_PartBlocked ) + EVENT( EV_idDoor_Touch, idDoor::Event_Touch ) + EVENT( EV_idMover_Binary_Activate, idDoor::Event_Activate ) + EVENT( EV_idDoor_StartOpen, idDoor::Event_StartOpen ) + EVENT( EV_idDoor_SpawnDoorTrigger, idDoor::Event_SpawnDoorTrigger ) + EVENT( EV_idDoor_SpawnSoundTrigger, idDoor::Event_SpawnSoundTrigger ) + EVENT( EV_idDoor_Close, idDoor::Event_Close ) + EVENT( EV_idDoor_Open, idDoor::Event_Open ) + EVENT( EV_idDoor_Lock, idDoor::Event_Lock ) + EVENT( EV_idDoor_IsOpen, idDoor::Event_IsOpen ) + EVENT( EV_idDoor_IsLocked, idDoor::Event_Locked ) + EVENT( EV_idDoor_SpectatorTouch, idDoor::Event_SpectatorTouch ) + EVENT( EV_idMover_Binary_OpenPortal, idDoor::Event_OpenPortal ) + EVENT( EV_idMover_Binary_ClosePortal, idDoor::Event_ClosePortal ) +END_CLASS + +CLASS_DECLARATION( idMover_Binary, idPlat ) + EVENT( EV_Teamblocked, idPlat::Event_TeamBlocked ) + EVENT( EV_Partblocked, idPlat::Event_PartBlocked ) + EVENT( EV_idPlat_Touch, idPlat::Event_Touch ) +END_CLASS + +CLASS_DECLARATION( idEntity, idMover_Periodic ) + EVENT( EV_Teamblocked, idMover_Periodic::Event_TeamBlocked ) + EVENT( EV_Partblocked, idMover_Periodic::Event_PartBlocked ) +END_CLASS + +CLASS_DECLARATION( idMover_Periodic, idRotater ) + EVENT( EV_idRotater_Activate, idRotater::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idMover_Periodic, idBobber ) +END_CLASS + +CLASS_DECLARATION( idMover_Periodic, idPendulum ) +END_CLASS + +CLASS_DECLARATION( idMover_Periodic, idRiser ) + EVENT( EV_idRiser_Activate, idRiser::Event_Activate ) +END_CLASS + +ABSTRACT_DECLARATION( idEntity, idCamera ) +END_CLASS + +CLASS_DECLARATION( idCamera, idCameraView ) + EVENT( EV_idCameraView_Activate, idCameraView::Event_Activate ) + EVENT( EV_idCameraView_Getattachments, idCameraView::Event_SetAttachments ) +END_CLASS + +CLASS_DECLARATION( idCamera, idCameraAnim ) + EVENT( EV_idCameraAnim_Start, idCameraAnim::Event_Start ) + EVENT( EV_idCameraAnim_Stop, idCameraAnim::Event_Stop ) + EVENT( EV_idCameraAnim_SetAnim, idCameraAnim::Event_SetAnim ) + EVENT( EV_Thread_SetCallback, idCameraAnim::Event_SetCallback ) + EVENT( EV_idCameraAnim_Activate, idCameraAnim::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idEntity, idMoveable ) + EVENT( EV_idMoveable_Activate, idMoveable::Event_Activate ) + EVENT( EV_idMoveable_BecomeNonSolid, idMoveable::Event_BecomeNonSolid ) + EVENT( EV_idMoveable_SetOwnerFromSpawnArgs, idMoveable::Event_SetOwnerFromSpawnArgs ) + EVENT( EV_idMoveable_IsAtRest, idMoveable::Event_IsAtRest ) + EVENT( EV_idMoveable_EnableDamage, idMoveable::Event_EnableDamage ) +END_CLASS + +CLASS_DECLARATION( idMoveable, idBarrel ) +END_CLASS + +CLASS_DECLARATION( idBarrel, idExplodingBarrel ) + EVENT( EV_idMoveable_Activate, idExplodingBarrel::Event_Activate ) + EVENT( EV_idExplodingBarrel_Respawn, idExplodingBarrel::Event_Respawn ) + EVENT( EV_Explode, idExplodingBarrel::Event_Explode ) + EVENT( EV_idExplodingBarrel_Triggertargets, idExplodingBarrel::Event_TriggerTargets ) +END_CLASS + +CLASS_DECLARATION( idEntity, idTarget ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_Remove ) + EVENT( EV_idTarget_Remove_Activate, idTarget_Remove::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_Show ) + EVENT( EV_idTarget_Show_Activate, idTarget_Show::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_Damage ) + EVENT( EV_idTarget_Damage_Activate, idTarget_Damage::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_SessionCommand ) + EVENT( EV_idTarget_SessionCommand_Activate, idTarget_SessionCommand::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_EndLevel ) + EVENT( EV_idTarget_EndLevel_Activate, idTarget_EndLevel::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_WaitForButton ) + EVENT( EV_idTarget_WaitForButton_Activate, idTarget_WaitForButton::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_SetGlobalShaderTime ) + EVENT( EV_idTarget_SetGlobalShaderTime_Activate, idTarget_SetGlobalShaderTime::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_SetShaderParm ) + EVENT( EV_idTarget_SetShaderParm_Activate, idTarget_SetShaderParm::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_SetShaderTime ) + EVENT( EV_idTarget_SetShaderTime_Activate, idTarget_SetShaderTime::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_FadeEntity ) + EVENT( EV_idTarget_FadeEntity_Activate, idTarget_FadeEntity::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_LightFadeIn ) + EVENT( EV_idTarget_LightFadeIn_Activate, idTarget_LightFadeIn::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_LightFadeOut ) + EVENT( EV_idTarget_LightFadeOut_Activate, idTarget_LightFadeOut::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_Give ) + EVENT( EV_idTarget_Give_Activate, idTarget_Give::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_GiveEmail ) + EVENT( EV_idTarget_GiveEmail_Activate, idTarget_GiveEmail::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_SetModel ) + EVENT( EV_idTarget_SetModel_Activate, idTarget_SetModel::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_SetInfluence ) + EVENT( EV_idTarget_SetInfluence_Activate, idTarget_SetInfluence::Event_Activate ) + EVENT( EV_idTarget_SetInfluence_RestoreInfluece, idTarget_SetInfluence::Event_RestoreInfluence ) + EVENT( EV_idTarget_SetInfluence_GatherEntities, idTarget_SetInfluence::Event_GatherEntities ) + EVENT( EV_idTarget_SetInfluence_Flash, idTarget_SetInfluence::Event_Flash ) + EVENT( EV_idTarget_SetInfluence_ClearFlash, idTarget_SetInfluence::Event_ClearFlash ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_SetKeyVal ) + EVENT( EV_idTarget_SetKeyVal_Activate, idTarget_SetKeyVal::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_SetFov ) + EVENT( EV_idTarget_SetFov_Activate, idTarget_SetFov::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_SetPrimaryObjective ) + EVENT( EV_idTarget_SetPrimaryObjective_Activate, idTarget_SetPrimaryObjective::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_LockDoor ) + EVENT( EV_idTarget_LockDoor_Activate, idTarget_LockDoor::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_CallObjectFunction ) + EVENT( EV_idTarget_CallObjectFunction_Activate, idTarget_CallObjectFunction::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_EnableLevelWeapons ) + EVENT( EV_idTarget_EnableLevelWeapons_Activate, idTarget_EnableLevelWeapons::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_Tip ) + EVENT( EV_idTarget_Tip_Activate, idTarget_Tip::Event_Activate ) + EVENT( EV_idTarget_Tip_TipOff, idTarget_Tip::Event_TipOff ) + EVENT( EV_idTarget_Tip_Getplayerpos, idTarget_Tip::Event_GetPlayerPos ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_GiveSecurity ) + EVENT( EV_idTarget_GiveSecurity_Activate, idTarget_GiveSecurity::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_RemoveWeapons ) + EVENT( EV_idTarget_RemoveWeapons_Activate, idTarget_RemoveWeapons::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_LevelTrigger ) + EVENT( EV_idTarget_LevelTrigger_Activate, idTarget_LevelTrigger::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_EnableStamina ) + EVENT( EV_idTarget_EnableStamina_Activate, idTarget_EnableStamina::Event_Activate ) +END_CLASS + +CLASS_DECLARATION( idTarget, idTarget_FadeSoundClass ) + EVENT( EV_idTarget_FadeSoundClass_Activate, idTarget_FadeSoundClass::Event_Activate ) + EVENT( EV_idTarget_FadeSoundClass_RestoreVolume, idTarget_FadeSoundClass::Event_RestoreVolume ) +END_CLASS + +CLASS_DECLARATION( idEntity, idTrigger ) + EVENT( EV_idTrigger_Enable, idTrigger::Event_Enable ) + EVENT( EV_idTrigger_Disable, idTrigger::Event_Disable ) +END_CLASS + +CLASS_DECLARATION( idTrigger, idTrigger_Multi ) + EVENT( EV_TriggerAction, idTrigger_Multi::Event_TriggerAction ) + EVENT( EV_idTrigger_Multi_Activate, idTrigger_Multi::Event_Trigger ) + EVENT( EV_idTrigger_Multi_Touch, idTrigger_Multi::Event_Touch ) +END_CLASS + +CLASS_DECLARATION( idTrigger, idTrigger_EntityName ) + EVENT( EV_TriggerAction, idTrigger_EntityName::Event_TriggerAction ) + EVENT( EV_idTrigger_EntityName_Activate, idTrigger_EntityName::Event_Trigger ) + EVENT( EV_idTrigger_EntityName_Touch, idTrigger_EntityName::Event_Touch ) +END_CLASS + +CLASS_DECLARATION( idTrigger, idTrigger_Timer ) + EVENT( EV_Timer, idTrigger_Timer::Event_Timer ) + EVENT( EV_idTrigger_Timer_Activate, idTrigger_Timer::Event_Use ) +END_CLASS + +CLASS_DECLARATION( idTrigger, idTrigger_Count ) + EVENT( EV_idTrigger_Count_Activate, idTrigger_Count::Event_Trigger ) + EVENT( EV_TriggerAction, idTrigger_Count::Event_TriggerAction ) +END_CLASS + +CLASS_DECLARATION( idTrigger, idTrigger_Hurt ) + EVENT( EV_idTrigger_Hurt_Touch, idTrigger_Hurt::Event_Touch ) + EVENT( EV_idTrigger_Hurt_Activate, idTrigger_Hurt::Event_Toggle ) +END_CLASS + +CLASS_DECLARATION( idTrigger, idTrigger_Fade ) + EVENT( EV_idTrigger_Fade_Activate, idTrigger_Fade::Event_Trigger ) +END_CLASS + +CLASS_DECLARATION( idTrigger, idTrigger_Touch ) + EVENT( EV_idTrigger_Touch_Activate, idTrigger_Touch::Event_Trigger ) +END_CLASS + +CLASS_DECLARATION( idEntity, idSound ) + EVENT( EV_idSound_Activate, idSound::Event_Trigger ) + EVENT( EV_Timer, idSound::Event_Timer ) + EVENT( EV_idSound_On, idSound::Event_On ) + EVENT( EV_idSound_Off, idSound::Event_Off ) +END_CLASS + +CLASS_DECLARATION( idEntity, idEntityFx ) + EVENT( EV_idEntityFx_Activate, idEntityFx::Event_Trigger ) + EVENT( EV_idEntityFx_Killfx, idEntityFx::Event_ClearFx ) +END_CLASS + +CLASS_DECLARATION( idEntityFx, idTeleporter ) + EVENT( EV_idTeleporter_FxAction, idTeleporter::Event_DoAction ) +END_CLASS + +CLASS_DECLARATION( idEntity, idSecurityCamera ) + EVENT( EV_idSecurityCamera_ReverseSweep, idSecurityCamera::Event_ReverseSweep ) + EVENT( EV_idSecurityCamera_ContinueSweep, idSecurityCamera::Event_ContinueSweep ) + EVENT( EV_idSecurityCamera_Pause, idSecurityCamera::Event_Pause ) + EVENT( EV_idSecurityCamera_Alert, idSecurityCamera::Event_Alert ) + EVENT( EV_idSecurityCamera_AddLight, idSecurityCamera::Event_AddLight ) +END_CLASS + +CLASS_DECLARATION( idEntity, idBrittleFracture ) + EVENT( EV_idBrittleFracture_Activate, idBrittleFracture::Event_Activate ) + EVENT( EV_idBrittleFracture_Touch, idBrittleFracture::Event_Touch ) +END_CLASS + +CLASS_DECLARATION( idActor, idAI ) + EVENT( EV_idAI_Activate, idAI::Event_Activate ) + EVENT( EV_idAI_Touch, idAI::Event_Touch ) + EVENT( EV_idAI_FindEnemy, idAI::Event_FindEnemy ) + EVENT( EV_idAI_FindEnemyAI, idAI::Event_FindEnemyAI ) + EVENT( EV_idAI_FindEnemyInCombatNodes, idAI::Event_FindEnemyInCombatNodes ) + EVENT( EV_idAI_ClosestReachableEnemyOfEntity, idAI::Event_ClosestReachableEnemyOfEntity ) + EVENT( EV_idAI_HeardSound, idAI::Event_HeardSound ) + EVENT( EV_idAI_SetEnemy, idAI::Event_SetEnemy ) + EVENT( EV_idAI_ClearEnemy, idAI::Event_ClearEnemy ) + EVENT( EV_idAI_MuzzleFlash, idAI::Event_MuzzleFlash ) + EVENT( EV_idAI_CreateMissile, idAI::Event_CreateMissile ) + EVENT( EV_idAI_AttackMissile, idAI::Event_AttackMissile ) + EVENT( EV_idAI_FireMissileAtTarget, idAI::Event_FireMissileAtTarget ) + EVENT( EV_idAI_LaunchMissile, idAI::Event_LaunchMissile ) + EVENT( EV_idAI_AttackMelee, idAI::Event_AttackMelee ) + EVENT( EV_idAI_DirectDamage, idAI::Event_DirectDamage ) + EVENT( EV_idAI_RadiusDamageFromJoint, idAI::Event_RadiusDamageFromJoint ) + EVENT( EV_idAI_AttackBegin, idAI::Event_BeginAttack ) + EVENT( EV_idAI_AttackEnd, idAI::Event_EndAttack ) + EVENT( EV_idAI_MeleeAttackToJoint, idAI::Event_MeleeAttackToJoint ) + EVENT( EV_idAI_RandomPath, idAI::Event_RandomPath ) + EVENT( EV_idAI_CanBecomeSolid, idAI::Event_CanBecomeSolid ) + EVENT( EV_idAI_BecomeSolid, idAI::Event_BecomeSolid ) + EVENT( EV_idAI_BecomeNonSolid, idAI::Event_BecomeNonSolid ) + EVENT( EV_idAI_BecomeRagdoll, idAI::Event_BecomeRagdoll ) + EVENT( EV_idAI_StopRagdoll, idAI::Event_StopRagdoll ) + EVENT( EV_idAI_SetHealth, idAI::Event_SetHealth ) + EVENT( EV_idAI_GetHealth, idAI::Event_GetHealth ) + EVENT( EV_idAI_AllowDamage, idAI::Event_AllowDamage ) + EVENT( EV_idAI_IgnoreDamage, idAI::Event_IgnoreDamage ) + EVENT( EV_idAI_GetCurrentYaw, idAI::Event_GetCurrentYaw ) + EVENT( EV_idAI_TurnTo, idAI::Event_TurnTo ) + EVENT( EV_idAI_TurnToPos, idAI::Event_TurnToPos ) + EVENT( EV_idAI_TurnToEntity, idAI::Event_TurnToEntity ) + EVENT( EV_idAI_MoveStatus, idAI::Event_MoveStatus ) + EVENT( EV_idAI_StopMove, idAI::Event_StopMove ) + EVENT( EV_idAI_MoveToCover, idAI::Event_MoveToCover ) + EVENT( EV_idAI_MoveToEnemy, idAI::Event_MoveToEnemy ) + EVENT( EV_idAI_MoveToEnemyHeight, idAI::Event_MoveToEnemyHeight ) + EVENT( EV_idAI_MoveOutOfRange, idAI::Event_MoveOutOfRange ) + EVENT( EV_idAI_MoveToAttackPosition, idAI::Event_MoveToAttackPosition ) + EVENT( EV_idAI_MoveToEntity, idAI::Event_MoveToEntity ) + EVENT( EV_idAI_MoveToPosition, idAI::Event_MoveToPosition ) + EVENT( EV_idAI_SlideTo, idAI::Event_SlideTo ) + EVENT( EV_idAI_Wander, idAI::Event_Wander ) + EVENT( EV_idAI_FacingIdeal, idAI::Event_FacingIdeal ) + EVENT( EV_idAI_FaceEnemy, idAI::Event_FaceEnemy ) + EVENT( EV_idAI_FaceEntity, idAI::Event_FaceEntity ) + EVENT( EV_idAI_WaitAction, idAI::Event_WaitAction ) + EVENT( EV_idAI_GetCombatNode, idAI::Event_GetCombatNode ) + EVENT( EV_idAI_EnemyInCombatCone, idAI::Event_EnemyInCombatCone ) + EVENT( EV_idAI_WaitMove, idAI::Event_WaitMove ) + EVENT( EV_idAI_GetJumpVelocity, idAI::Event_GetJumpVelocity ) + EVENT( EV_idAI_EntityInAttackCone, idAI::Event_EntityInAttackCone ) + EVENT( EV_idAI_CanSee, idAI::Event_CanSeeEntity ) + EVENT( EV_idAI_SetTalkTarget, idAI::Event_SetTalkTarget ) + EVENT( EV_idAI_GetTalkTarget, idAI::Event_GetTalkTarget ) + EVENT( EV_idAI_SetTalkState, idAI::Event_SetTalkState ) + EVENT( EV_idAI_EnemyRange, idAI::Event_EnemyRange ) + EVENT( EV_idAI_EnemyRange2D, idAI::Event_EnemyRange2D ) + EVENT( EV_idAI_GetEnemy, idAI::Event_GetEnemy ) + EVENT( EV_idAI_GetEnemyPos, idAI::Event_GetEnemyPos ) + EVENT( EV_idAI_GetEnemyEyePos, idAI::Event_GetEnemyEyePos ) + EVENT( EV_idAI_PredictEnemyPos, idAI::Event_PredictEnemyPos ) + EVENT( EV_idAI_CanHitEnemy, idAI::Event_CanHitEnemy ) + EVENT( EV_idAI_CanHitEnemyFromAnim, idAI::Event_CanHitEnemyFromAnim ) + EVENT( EV_idAI_CanHitEnemyFromJoint, idAI::Event_CanHitEnemyFromJoint ) + EVENT( EV_idAI_EnemyPositionValid, idAI::Event_EnemyPositionValid ) + EVENT( EV_idAI_ChargeAttack, idAI::Event_ChargeAttack ) + EVENT( EV_idAI_TestChargeAttack, idAI::Event_TestChargeAttack ) + EVENT( EV_idAI_TestAnimMoveTowardEnemy, idAI::Event_TestAnimMoveTowardEnemy ) + EVENT( EV_idAI_TestAnimMove, idAI::Event_TestAnimMove ) + EVENT( EV_idAI_TestMoveToPosition, idAI::Event_TestMoveToPosition ) + EVENT( EV_idAI_TestMeleeAttack, idAI::Event_TestMeleeAttack ) + EVENT( EV_idAI_TestAnimAttack, idAI::Event_TestAnimAttack ) + EVENT( EV_idAI_Shrivel, idAI::Event_Shrivel ) + EVENT( EV_idAI_Burn, idAI::Event_Burn ) + EVENT( EV_idAI_PreBurn, idAI::Event_PreBurn ) + EVENT( EV_idAI_ClearBurn, idAI::Event_ClearBurn ) + EVENT( EV_idAI_SetSmokeVisibility, idAI::Event_SetSmokeVisibility ) + EVENT( EV_idAI_NumSmokeEmitters, idAI::Event_NumSmokeEmitters ) + EVENT( EV_idAI_StopThinking, idAI::Event_StopThinking ) + EVENT( EV_idAI_GetTurnDelta, idAI::Event_GetTurnDelta ) + EVENT( EV_idAI_GetMoveType, idAI::Event_GetMoveType ) + EVENT( EV_idAI_SetMoveType, idAI::Event_SetMoveType ) + EVENT( EV_idAI_SaveMove, idAI::Event_SaveMove ) + EVENT( EV_idAI_RestoreMove, idAI::Event_RestoreMove ) + EVENT( EV_idAI_AllowMovement, idAI::Event_AllowMovement ) + EVENT( EV_idAI_Jumpframe, idAI::Event_JumpFrame ) + EVENT( EV_idAI_EnableClip, idAI::Event_EnableClip ) + EVENT( EV_idAI_DisableClip, idAI::Event_DisableClip ) + EVENT( EV_idAI_EnableGravity, idAI::Event_EnableGravity ) + EVENT( EV_idAI_DisableGravity, idAI::Event_DisableGravity ) + EVENT( EV_idAI_EnableAFPush, idAI::Event_EnableAFPush ) + EVENT( EV_idAI_DisableAFPush, idAI::Event_DisableAFPush ) + EVENT( EV_idAI_SetFlySpeed, idAI::Event_SetFlySpeed ) + EVENT( EV_idAI_SetFlyOffset, idAI::Event_SetFlyOffset ) + EVENT( EV_idAI_ClearFlyOffset, idAI::Event_ClearFlyOffset ) + EVENT( EV_idAI_GetClosestHiddenTarget, idAI::Event_GetClosestHiddenTarget ) + EVENT( EV_idAI_GetRandomTarget, idAI::Event_GetRandomTarget ) + EVENT( EV_idAI_TravelDistanceToPoint, idAI::Event_TravelDistanceToPoint ) + EVENT( EV_idAI_TravelDistanceToEntity, idAI::Event_TravelDistanceToEntity ) + EVENT( EV_idAI_TravelDistanceBetweenPoints, idAI::Event_TravelDistanceBetweenPoints ) + EVENT( EV_idAI_TravelDistanceBetweenEntities, idAI::Event_TravelDistanceBetweenEntities ) + EVENT( EV_idAI_LookAt, idAI::Event_LookAtEntity ) + EVENT( EV_idAI_LookAtEnemy, idAI::Event_LookAtEnemy ) + EVENT( EV_idAI_SetBoneMod, idAI::Event_SetJointMod ) + EVENT( EV_idAI_ThrowMoveable, idAI::Event_ThrowMoveable ) + EVENT( EV_idAI_ThrowAF, idAI::Event_ThrowAF ) + EVENT( EV_SetAngles, idAI::Event_SetAngles ) + EVENT( EV_GetAngles, idAI::Event_GetAngles ) + EVENT( EV_idAI_Kill_real, idAI::Event_RealKill ) + EVENT( EV_idAI_Kill, idAI::Event_Kill ) + EVENT( EV_idAI_WakeOnFlashlight, idAI::Event_WakeOnFlashlight ) + EVENT( EV_idAI_LocateEnemy, idAI::Event_LocateEnemy ) + EVENT( EV_idAI_KickObstacles, idAI::Event_KickObstacles ) + EVENT( EV_idAI_GetObstacle, idAI::Event_GetObstacle ) + EVENT( EV_idAI_PushPointIntoAAS, idAI::Event_PushPointIntoNAV ) + EVENT( EV_idAI_GetTurnRate, idAI::Event_GetTurnRate ) + EVENT( EV_idAI_SetTurnRate, idAI::Event_SetTurnRate ) + EVENT( EV_idAI_AnimTurn, idAI::Event_AnimTurn ) + EVENT( EV_idAI_AllowHiddenMovement, idAI::Event_AllowHiddenMovement ) + EVENT( EV_idAI_TriggerParticles, idAI::Event_TriggerParticles ) + EVENT( EV_idAI_FindActorsInBounds, idAI::Event_FindActorsInBounds ) + EVENT( EV_idAI_CanReachPosition, idAI::Event_CanReachPosition ) + EVENT( EV_idAI_CanReachEntity, idAI::Event_CanReachEntity ) + EVENT( EV_idAI_CanReachEnemy, idAI::Event_CanReachEnemy ) + EVENT( EV_idAI_GetReachableEntityPosition, idAI::Event_GetReachableEntityPosition ) +END_CLASS + +CLASS_DECLARATION( idEntity, idCombatNode ) + EVENT( EV_idCombatNode_Activate, idCombatNode::Event_Activate ) + EVENT( EV_idCombatNode_MarkUsed, idCombatNode::Event_MarkUsed ) +END_CLASS + +CLASS_DECLARATION( idAI, idAI_Vagary ) + EVENT( EV_idAI_Vagary_Vagary_ChooseObjectToThrow, idAI_Vagary::Event_ChooseObjectToThrow ) + EVENT( EV_idAI_Vagary_Vagary_ThrowObjectAtEnemy, idAI_Vagary::Event_ThrowObjectAtEnemy ) +END_CLASS + +CLASS_DECLARATION( idClass, rvmAIObject ) +END_CLASS + +CLASS_DECLARATION( rvmAIObject, rvmMonsterBase ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterZombieBase ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterZombieBase, rvmMonsterZombie ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterZombieBase, rvmMonsterZombieBernie ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterZombieBase, rvmMonsterZombieMorgue ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterZombieBase, rvmMonsterZombieSawyer ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterZombieCommandoTentacle ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterZombieCommandoCGun ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterZombieBase, rvmMonsterZombieSecurityPistol ) +END_CLASS + +CLASS_DECLARATION( rvmAIObject, rvmCharacter ) +END_CLASS + +CLASS_DECLARATION( rvmAIObject, rvmAICharacterProne ) +END_CLASS + +CLASS_DECLARATION( rvmAIObject, rvmFollower ) +END_CLASS + +CLASS_DECLARATION( rvmCharacter, rvmCharSentry ) +END_CLASS + +CLASS_DECLARATION( rvmAIObject, rvmAIAlphaLabs2Scientist1 ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonPinky ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonImp ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonVulgar ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonRevenant ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonHellknight ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonMaggot ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonCherub ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonTrite ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonWraith ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonMancubus ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterDemonArchvile ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterFlyingCacodemon ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterFlyingLostsoul ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterTurret ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterBossCyberdemon ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterBossVagary ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterBossSabaoth ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmSeekerBase ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterBossGuardianSpawner ) +END_CLASS + +CLASS_DECLARATION( rvmMonsterBase, rvmMonsterBossGuardian ) +END_CLASS + +CLASS_DECLARATION( rvmSeekerBase, rvmMonsterBossGuardianSeeker ) +END_CLASS + +CLASS_DECLARATION( idAnimatedEntity, idTestModel ) + EVENT( EV_idTestModel_RightFoot, idTestModel::Event_Footstep ) +END_CLASS + +CLASS_DECLARATION( idClass, idThread ) + EVENT( EV_idThread_Execute, idThread::Event_Execute ) + EVENT( EV_idThread_Threadname, idThread::Event_SetThreadName ) + EVENT( EV_idThread_Terminate, idThread::Event_TerminateThread ) + EVENT( EV_idThread_Pause, idThread::Event_Pause ) + EVENT( EV_idThread_Wait, idThread::Event_Wait ) + EVENT( EV_idThread_WaitFrame, idThread::Event_WaitFrame ) + EVENT( EV_idThread_WaitFor, idThread::Event_WaitFor ) + EVENT( EV_idThread_WaitForThread, idThread::Event_WaitForThread ) + EVENT( EV_idThread_Print, idThread::Event_Print ) + EVENT( EV_idThread_Println, idThread::Event_PrintLn ) + EVENT( EV_idThread_Say, idThread::Event_Say ) + EVENT( EV_idThread_Assert, idThread::Event_Assert ) + EVENT( EV_idThread_Trigger, idThread::Event_Trigger ) + EVENT( EV_idThread_Setcvar, idThread::Event_SetCvar ) + EVENT( EV_idThread_Getcvar, idThread::Event_GetCvar ) + EVENT( EV_idThread_Random, idThread::Event_Random ) + EVENT( EV_idThread_GetTime, idThread::Event_GetTime ) + EVENT( EV_idThread_Killthread, idThread::Event_KillThread ) + EVENT( EV_idThread_GetEntity, idThread::Event_GetEntity ) + EVENT( EV_idThread_Spawn, idThread::Event_Spawn ) + EVENT( EV_idThread_CopySpawnArgs, idThread::Event_CopySpawnArgs ) + EVENT( EV_idThread_SetSpawnArg, idThread::Event_SetSpawnArg ) + EVENT( EV_idThread_SpawnString, idThread::Event_SpawnString ) + EVENT( EV_idThread_SpawnFloat, idThread::Event_SpawnFloat ) + EVENT( EV_idThread_SpawnVector, idThread::Event_SpawnVector ) + EVENT( EV_idThread_ClearPersistantArgs, idThread::Event_ClearPersistantArgs ) + EVENT( EV_idThread_SetPersistantArg, idThread::Event_SetPersistantArg ) + EVENT( EV_idThread_GetPersistantString, idThread::Event_GetPersistantString ) + EVENT( EV_idThread_GetPersistantFloat, idThread::Event_GetPersistantFloat ) + EVENT( EV_idThread_GetPersistantVector, idThread::Event_GetPersistantVector ) + EVENT( EV_idThread_AngToForward, idThread::Event_AngToForward ) + EVENT( EV_idThread_AngToRight, idThread::Event_AngToRight ) + EVENT( EV_idThread_AngToUp, idThread::Event_AngToUp ) + EVENT( EV_idThread_Sin, idThread::Event_GetSine ) + EVENT( EV_idThread_Cos, idThread::Event_GetCosine ) + EVENT( EV_idThread_Sqrt, idThread::Event_GetSquareRoot ) + EVENT( EV_idThread_VecNormalize, idThread::Event_VecNormalize ) + EVENT( EV_idThread_VecLength, idThread::Event_VecLength ) + EVENT( EV_idThread_DotProduct, idThread::Event_VecDotProduct ) + EVENT( EV_idThread_CrossProduct, idThread::Event_VecCrossProduct ) + EVENT( EV_idThread_VecToAngles, idThread::Event_VecToAngles ) + EVENT( EV_idThread_OnSignal, idThread::Event_OnSignal ) + EVENT( EV_idThread_ClearSignalThread, idThread::Event_ClearSignalThread ) + EVENT( EV_idThread_SetCamera, idThread::Event_SetCamera ) + EVENT( EV_idThread_FirstPerson, idThread::Event_FirstPerson ) + EVENT( EV_idThread_Trace, idThread::Event_Trace ) + EVENT( EV_idThread_TracePoint, idThread::Event_TracePoint ) + EVENT( EV_idThread_GetTraceFraction, idThread::Event_GetTraceFraction ) + EVENT( EV_idThread_GetTraceEndPos, idThread::Event_GetTraceEndPos ) + EVENT( EV_idThread_GetTraceNormal, idThread::Event_GetTraceNormal ) + EVENT( EV_idThread_GetTraceEntity, idThread::Event_GetTraceEntity ) + EVENT( EV_idThread_GetTraceJoint, idThread::Event_GetTraceJoint ) + EVENT( EV_idThread_GetTraceBody, idThread::Event_GetTraceBody ) + EVENT( EV_idThread_FadeIn, idThread::Event_FadeIn ) + EVENT( EV_idThread_FadeOut, idThread::Event_FadeOut ) + EVENT( EV_idThread_FadeTo, idThread::Event_FadeTo ) + EVENT( EV_idThread_SetShaderParm, idThread::Event_SetShaderParm ) + EVENT( EV_idThread_Music, idThread::Event_StartMusic ) + EVENT( EV_idThread_Warning, idThread::Event_Warning ) + EVENT( EV_idThread_Error, idThread::Event_Error ) + EVENT( EV_idThread_StrLength, idThread::Event_StrLen ) + EVENT( EV_idThread_StrLeft, idThread::Event_StrLeft ) + EVENT( EV_idThread_StrRight, idThread::Event_StrRight ) + EVENT( EV_idThread_StrSkip, idThread::Event_StrSkip ) + EVENT( EV_idThread_StrMid, idThread::Event_StrMid ) + EVENT( EV_idThread_StrToFloat, idThread::Event_StrToFloat ) + EVENT( EV_idThread_RadiusDamage, idThread::Event_RadiusDamage ) + EVENT( EV_idThread_IsClient, idThread::Event_IsClient ) + EVENT( EV_idThread_IsMultiplayer, idThread::Event_IsMultiplayer ) + EVENT( EV_idThread_GetFrameTime, idThread::Event_GetFrameTime ) + EVENT( EV_idThread_GetTicsPerSecond, idThread::Event_GetTicsPerSecond ) + EVENT( EV_idThread_CacheSoundShader, idThread::Event_CacheSoundShader ) + EVENT( EV_idThread_DebugLine, idThread::Event_DebugLine ) + EVENT( EV_idThread_DebugArrow, idThread::Event_DebugArrow ) + EVENT( EV_idThread_DebugCircle, idThread::Event_DebugCircle ) + EVENT( EV_idThread_DebugBounds, idThread::Event_DebugBounds ) + EVENT( EV_idThread_DrawText, idThread::Event_DrawText ) + EVENT( EV_idThread_InfluenceActive, idThread::Event_InfluenceActive ) +END_CLASS + +CLASS_DECLARATION( rvmWeaponObject, rvmWeaponFist ) +END_CLASS + +CLASS_DECLARATION( rvmWeaponObject, rvmWeaponPistol ) +END_CLASS + +CLASS_DECLARATION( rvmWeaponObject, rvmWeaponFlashlight ) +END_CLASS + +CLASS_DECLARATION( rvmWeaponObject, rvmWeaponPDA ) +END_CLASS + +CLASS_DECLARATION( rvmWeaponObject, rvmWeaponShotgun ) +END_CLASS + +CLASS_DECLARATION( rvmWeaponObject, rvmWeaponDoubleShotgun ) +END_CLASS + +CLASS_DECLARATION( rvmWeaponObject, rvmWeaponMachineGun ) +END_CLASS + +CLASS_DECLARATION( rvmWeaponObject, rvmWeaponPlasmaGun ) +END_CLASS + +CLASS_DECLARATION( rvmWeaponObject, rvmWeaponChainGun ) +END_CLASS + +CLASS_DECLARATION( rvmWeaponObject, rvmWeaponRocketLauncher ) +END_CLASS + +CLASS_DECLARATION( rvmWeaponObject, rvmWeaponBFG ) +END_CLASS + +CLASS_DECLARATION( rvmWeaponObject, rvmWeaponHandgrenade ) +END_CLASS + +CLASS_DECLARATION( rvmWeaponObject, rvmWeaponChainsaw ) +END_CLASS + +CLASS_DECLARATION( rvmWeaponObject, rvmWeaponGrabber ) +END_CLASS + +CLASS_DECLARATION( idPlayer, rvmBot ) +END_CLASS + diff --git a/neo/doom3/game/gamesys/TypeInfoGen_RegisterClasses.h b/neo/doom3/game/gamesys/TypeInfoGen_RegisterClasses.h new file mode 100644 index 00000000..69ab0710 --- /dev/null +++ b/neo/doom3/game/gamesys/TypeInfoGen_RegisterClasses.h @@ -0,0 +1,214 @@ +/* +=================================================================================== + + AUTO-GENERATED FILE. DO NOT EDIT. + Generated by TypeInfoGen (class registration) + +=================================================================================== +*/ + +#pragma hdrstop + +/* +================ +idClass::RegisterClasses +================ +*/ +void idClass::RegisterClasses( void ) { + #define REGISTER(name) void Register_##name(void); Register_##name(); + REGISTER(idActivator); + REGISTER(idActor); + REGISTER(idAFAttachment); + REGISTER(idAFEntity_Base); + REGISTER(idAFEntity_ClawFourFingers); + REGISTER(idAFEntity_Generic); + REGISTER(idAFEntity_Gibbable); + REGISTER(idAFEntity_SteamPipe); + REGISTER(idAFEntity_Vehicle); + REGISTER(idAFEntity_VehicleFourWheels); + REGISTER(idAFEntity_VehicleSimple); + REGISTER(idAFEntity_VehicleSixWheels); + REGISTER(idAFEntity_WithAttachedHead); + REGISTER(idAI); + REGISTER(idAI_Vagary); + REGISTER(idAnimated); + REGISTER(idAnimatedEntity); + REGISTER(idBarrel); + REGISTER(idBeam); + REGISTER(idBFGProjectile); + REGISTER(idBobber); + REGISTER(idBrittleFracture); + REGISTER(idCamera); + REGISTER(idCameraAnim); + REGISTER(idCameraView); + REGISTER(idChain); + REGISTER(idClass); + REGISTER(idCombatNode); + REGISTER(idCursor3D); + REGISTER(idDamagable); + REGISTER(idDebris); + REGISTER(idDoor); + REGISTER(idEarthQuake); + REGISTER(idElevator); + REGISTER(idEntity); + REGISTER(idEntityFx); + REGISTER(idExplodable); + REGISTER(idExplodingBarrel); + REGISTER(idForce); + REGISTER(idForce_Constant); + REGISTER(idForce_Drag); + REGISTER(idForce_Field); + REGISTER(idForce_Spring); + REGISTER(idForceField); + REGISTER(idFuncAASObstacle); + REGISTER(idFuncAASPortal); + REGISTER(idFuncEmitter); + REGISTER(idFuncPortal); + REGISTER(idFuncRadioChatter); + REGISTER(idFuncSmoke); + REGISTER(idFuncSplat); + REGISTER(idGuidedProjectile); + REGISTER(idItem); + REGISTER(idItemPowerup); + REGISTER(idItemRemover); + REGISTER(idLight); + REGISTER(idLiquid); + REGISTER(idLocationEntity); + REGISTER(idLocationSeparatorEntity); + REGISTER(idMoveable); + REGISTER(idMoveableItem); + REGISTER(idMoveablePDAItem); + REGISTER(idMover); + REGISTER(idMover_Binary); + REGISTER(idMover_Periodic); + REGISTER(idMultiModelAF); + REGISTER(idObjective); + REGISTER(idObjectiveComplete); + REGISTER(idPathCorner); + REGISTER(idPDAItem); + REGISTER(idPendulum); + REGISTER(idPhantomObjects); + REGISTER(idPhysics); + REGISTER(idPhysics_Actor); + REGISTER(idPhysics_AF); + REGISTER(idPhysics_Base); + REGISTER(idPhysics_Monster); + REGISTER(idPhysics_Parametric); + REGISTER(idPhysics_Player); + REGISTER(idPhysics_RigidBody); + REGISTER(idPhysics_Static); + REGISTER(idPhysics_StaticMulti); + REGISTER(idPlat); + REGISTER(idPlayer); + REGISTER(idPlayerStart); + REGISTER(idProjectile); + REGISTER(idRiser); + REGISTER(idRotater); + REGISTER(idSecurityCamera); + REGISTER(idShaking); + REGISTER(idSoulCubeMissile); + REGISTER(idSound); + REGISTER(idSpawnableEntity); + REGISTER(idSplinePath); + REGISTER(idSpring); + REGISTER(idStaticEntity); + REGISTER(idTarget); + REGISTER(idTarget_CallObjectFunction); + REGISTER(idTarget_Damage); + REGISTER(idTarget_EnableLevelWeapons); + REGISTER(idTarget_EnableStamina); + REGISTER(idTarget_EndLevel); + REGISTER(idTarget_FadeEntity); + REGISTER(idTarget_FadeSoundClass); + REGISTER(idTarget_Give); + REGISTER(idTarget_GiveEmail); + REGISTER(idTarget_GiveSecurity); + REGISTER(idTarget_LevelTrigger); + REGISTER(idTarget_LightFadeIn); + REGISTER(idTarget_LightFadeOut); + REGISTER(idTarget_LockDoor); + REGISTER(idTarget_Remove); + REGISTER(idTarget_RemoveWeapons); + REGISTER(idTarget_SessionCommand); + REGISTER(idTarget_SetFov); + REGISTER(idTarget_SetGlobalShaderTime); + REGISTER(idTarget_SetInfluence); + REGISTER(idTarget_SetKeyVal); + REGISTER(idTarget_SetModel); + REGISTER(idTarget_SetPrimaryObjective); + REGISTER(idTarget_SetShaderParm); + REGISTER(idTarget_SetShaderTime); + REGISTER(idTarget_Show); + REGISTER(idTarget_Tip); + REGISTER(idTarget_WaitForButton); + REGISTER(idTeleporter); + REGISTER(idTestModel); + REGISTER(idTextEntity); + REGISTER(idThread); + REGISTER(idTrigger); + REGISTER(idTrigger_Count); + REGISTER(idTrigger_EntityName); + REGISTER(idTrigger_Fade); + REGISTER(idTrigger_Hurt); + REGISTER(idTrigger_Multi); + REGISTER(idTrigger_Timer); + REGISTER(idTrigger_Touch); + REGISTER(idVacuumEntity); + REGISTER(idVacuumSeparatorEntity); + REGISTER(idVideoCDItem); + REGISTER(idWeapon); + REGISTER(idWorldspawn); + REGISTER(rvmAIAlphaLabs2Scientist1); + REGISTER(rvmAICharacterProne); + REGISTER(rvmAIObject); + REGISTER(rvmBot); + REGISTER(rvmCharacter); + REGISTER(rvmCharSentry); + REGISTER(rvmFollower); + REGISTER(rvmMonsterBase); + REGISTER(rvmMonsterBossCyberdemon); + REGISTER(rvmMonsterBossGuardian); + REGISTER(rvmMonsterBossGuardianSeeker); + REGISTER(rvmMonsterBossGuardianSpawner); + REGISTER(rvmMonsterBossSabaoth); + REGISTER(rvmMonsterBossVagary); + REGISTER(rvmMonsterDemonArchvile); + REGISTER(rvmMonsterDemonCherub); + REGISTER(rvmMonsterDemonHellknight); + REGISTER(rvmMonsterDemonImp); + REGISTER(rvmMonsterDemonMaggot); + REGISTER(rvmMonsterDemonMancubus); + REGISTER(rvmMonsterDemonPinky); + REGISTER(rvmMonsterDemonRevenant); + REGISTER(rvmMonsterDemonTrite); + REGISTER(rvmMonsterDemonVulgar); + REGISTER(rvmMonsterDemonWraith); + REGISTER(rvmMonsterFlyingCacodemon); + REGISTER(rvmMonsterFlyingLostsoul); + REGISTER(rvmMonsterTurret); + REGISTER(rvmMonsterZombie); + REGISTER(rvmMonsterZombieBase); + REGISTER(rvmMonsterZombieBernie); + REGISTER(rvmMonsterZombieCommandoCGun); + REGISTER(rvmMonsterZombieCommandoTentacle); + REGISTER(rvmMonsterZombieMorgue); + REGISTER(rvmMonsterZombieSawyer); + REGISTER(rvmMonsterZombieSecurityPistol); + REGISTER(rvmSeekerBase); + REGISTER(rvmWeaponBFG); + REGISTER(rvmWeaponChainGun); + REGISTER(rvmWeaponChainsaw); + REGISTER(rvmWeaponDoubleShotgun); + REGISTER(rvmWeaponFist); + REGISTER(rvmWeaponFlashlight); + REGISTER(rvmWeaponGrabber); + REGISTER(rvmWeaponHandgrenade); + REGISTER(rvmWeaponMachineGun); + REGISTER(rvmWeaponObject); + REGISTER(rvmWeaponPDA); + REGISTER(rvmWeaponPistol); + REGISTER(rvmWeaponPlasmaGun); + REGISTER(rvmWeaponRocketLauncher); + REGISTER(rvmWeaponShotgun); + #undef REGISTER +} diff --git a/neo/doom3/game/physics/Force.cpp b/neo/doom3/game/physics/Force.cpp index 86d59ea0..9bdcd693 100644 --- a/neo/doom3/game/physics/Force.cpp +++ b/neo/doom3/game/physics/Force.cpp @@ -31,8 +31,6 @@ If you have questions concerning this license or the applicable additional terms #include "../Game_local.h" -CLASS_DECLARATION( idClass, idForce ) -END_CLASS idList idForce::forceList; diff --git a/neo/doom3/game/physics/Force_Constant.cpp b/neo/doom3/game/physics/Force_Constant.cpp index 47920ae2..c1545c82 100644 --- a/neo/doom3/game/physics/Force_Constant.cpp +++ b/neo/doom3/game/physics/Force_Constant.cpp @@ -31,8 +31,6 @@ If you have questions concerning this license or the applicable additional terms #include "../Game_local.h" -CLASS_DECLARATION( idForce, idForce_Constant ) -END_CLASS /* ================ diff --git a/neo/doom3/game/physics/Force_Drag.cpp b/neo/doom3/game/physics/Force_Drag.cpp index 9e3d8d9d..0766a1e5 100644 --- a/neo/doom3/game/physics/Force_Drag.cpp +++ b/neo/doom3/game/physics/Force_Drag.cpp @@ -31,8 +31,6 @@ If you have questions concerning this license or the applicable additional terms #include "../Game_local.h" -CLASS_DECLARATION( idForce, idForce_Drag ) -END_CLASS /* ================ diff --git a/neo/doom3/game/physics/Force_Field.cpp b/neo/doom3/game/physics/Force_Field.cpp index 1413932f..7734f6fb 100644 --- a/neo/doom3/game/physics/Force_Field.cpp +++ b/neo/doom3/game/physics/Force_Field.cpp @@ -31,8 +31,6 @@ If you have questions concerning this license or the applicable additional terms #include "../Game_local.h" -CLASS_DECLARATION( idForce, idForce_Field ) -END_CLASS /* ================ diff --git a/neo/doom3/game/physics/Force_Spring.cpp b/neo/doom3/game/physics/Force_Spring.cpp index 1ad57182..ffaf2d1f 100644 --- a/neo/doom3/game/physics/Force_Spring.cpp +++ b/neo/doom3/game/physics/Force_Spring.cpp @@ -31,8 +31,6 @@ If you have questions concerning this license or the applicable additional terms #include "../Game_local.h" -CLASS_DECLARATION( idForce, idForce_Spring ) -END_CLASS /* ================ diff --git a/neo/doom3/game/physics/Physics.cpp b/neo/doom3/game/physics/Physics.cpp index a71a13da..d2eb17fa 100644 --- a/neo/doom3/game/physics/Physics.cpp +++ b/neo/doom3/game/physics/Physics.cpp @@ -31,8 +31,6 @@ If you have questions concerning this license or the applicable additional terms #include "../Game_local.h" -ABSTRACT_DECLARATION( idClass, idPhysics ) -END_CLASS /* diff --git a/neo/doom3/game/physics/Physics_AF.cpp b/neo/doom3/game/physics/Physics_AF.cpp index 5b310591..34282c01 100644 --- a/neo/doom3/game/physics/Physics_AF.cpp +++ b/neo/doom3/game/physics/Physics_AF.cpp @@ -31,8 +31,6 @@ If you have questions concerning this license or the applicable additional terms #include "../Game_local.h" -CLASS_DECLARATION(idPhysics_Base, idPhysics_AF) -END_CLASS const float ERROR_REDUCTION = 0.5f; const float ERROR_REDUCTION_MAX = 256.0f; diff --git a/neo/doom3/game/physics/Physics_Actor.cpp b/neo/doom3/game/physics/Physics_Actor.cpp index 51bfe2ca..368235fd 100644 --- a/neo/doom3/game/physics/Physics_Actor.cpp +++ b/neo/doom3/game/physics/Physics_Actor.cpp @@ -31,8 +31,6 @@ If you have questions concerning this license or the applicable additional terms #include "../Game_local.h" -CLASS_DECLARATION( idPhysics_Base, idPhysics_Actor ) -END_CLASS /* ================ diff --git a/neo/doom3/game/physics/Physics_Base.cpp b/neo/doom3/game/physics/Physics_Base.cpp index f0d5e73c..2faea4dd 100644 --- a/neo/doom3/game/physics/Physics_Base.cpp +++ b/neo/doom3/game/physics/Physics_Base.cpp @@ -31,8 +31,6 @@ If you have questions concerning this license or the applicable additional terms #include "../Game_local.h" -CLASS_DECLARATION( idPhysics, idPhysics_Base ) -END_CLASS /* ================ diff --git a/neo/doom3/game/physics/Physics_Monster.cpp b/neo/doom3/game/physics/Physics_Monster.cpp index cd774790..ea1f69f2 100644 --- a/neo/doom3/game/physics/Physics_Monster.cpp +++ b/neo/doom3/game/physics/Physics_Monster.cpp @@ -31,8 +31,6 @@ If you have questions concerning this license or the applicable additional terms #include "../Game_local.h" -CLASS_DECLARATION(idPhysics_Actor, idPhysics_Monster) -END_CLASS const float OVERCLIP = 1.001f; diff --git a/neo/doom3/game/physics/Physics_Parametric.cpp b/neo/doom3/game/physics/Physics_Parametric.cpp index 01749225..472ce57a 100644 --- a/neo/doom3/game/physics/Physics_Parametric.cpp +++ b/neo/doom3/game/physics/Physics_Parametric.cpp @@ -31,8 +31,6 @@ If you have questions concerning this license or the applicable additional terms #include "../Game_local.h" -CLASS_DECLARATION( idPhysics_Base, idPhysics_Parametric ) -END_CLASS /* diff --git a/neo/doom3/game/physics/Physics_Player.cpp b/neo/doom3/game/physics/Physics_Player.cpp index 355ce06b..536e48c1 100644 --- a/neo/doom3/game/physics/Physics_Player.cpp +++ b/neo/doom3/game/physics/Physics_Player.cpp @@ -31,8 +31,6 @@ If you have questions concerning this license or the applicable additional terms #include "../Game_local.h" -CLASS_DECLARATION(idPhysics_Actor, idPhysics_Player) -END_CLASS // movement parameters const float PM_STOPSPEED = 100.0f; diff --git a/neo/doom3/game/physics/Physics_RigidBody.cpp b/neo/doom3/game/physics/Physics_RigidBody.cpp index 5c79df7c..a9955570 100644 --- a/neo/doom3/game/physics/Physics_RigidBody.cpp +++ b/neo/doom3/game/physics/Physics_RigidBody.cpp @@ -31,8 +31,6 @@ If you have questions concerning this license or the applicable additional terms #include "../Game_local.h" -CLASS_DECLARATION(idPhysics_Base, idPhysics_RigidBody) -END_CLASS const float STOP_SPEED = 10.0f; diff --git a/neo/doom3/game/physics/Physics_Static.cpp b/neo/doom3/game/physics/Physics_Static.cpp index 4db064e7..319bb476 100644 --- a/neo/doom3/game/physics/Physics_Static.cpp +++ b/neo/doom3/game/physics/Physics_Static.cpp @@ -31,8 +31,6 @@ If you have questions concerning this license or the applicable additional terms #include "../Game_local.h" -CLASS_DECLARATION( idPhysics, idPhysics_Static ) -END_CLASS /* ================ diff --git a/neo/doom3/game/physics/Physics_StaticMulti.cpp b/neo/doom3/game/physics/Physics_StaticMulti.cpp index 9771bf99..13a40e44 100644 --- a/neo/doom3/game/physics/Physics_StaticMulti.cpp +++ b/neo/doom3/game/physics/Physics_StaticMulti.cpp @@ -31,8 +31,6 @@ If you have questions concerning this license or the applicable additional terms #include "../Game_local.h" -CLASS_DECLARATION( idPhysics, idPhysics_StaticMulti ) -END_CLASS staticPState_t defaultState; diff --git a/neo/doom3/game/script/Script_Thread.cpp b/neo/doom3/game/script/Script_Thread.cpp index 83ec7702..97dfad7b 100644 --- a/neo/doom3/game/script/Script_Thread.cpp +++ b/neo/doom3/game/script/Script_Thread.cpp @@ -29,166 +29,9 @@ If you have questions concerning this license or the applicable additional terms #include "precompiled.h" #include "../Game_local.h" -const idEventDef EV_Thread_Execute( "", NULL ); -const idEventDef EV_Thread_SetCallback( "", NULL ); // script callable events -const idEventDef EV_Thread_TerminateThread( "terminate", "d" ); -const idEventDef EV_Thread_Pause( "pause", NULL ); -const idEventDef EV_Thread_Wait( "wait", "f" ); -const idEventDef EV_Thread_WaitFrame( "waitFrame" ); -const idEventDef EV_Thread_WaitFor( "waitFor", "e" ); -const idEventDef EV_Thread_WaitForThread( "waitForThread", "d" ); -const idEventDef EV_Thread_Print( "print", "s" ); -const idEventDef EV_Thread_PrintLn( "println", "s" ); -const idEventDef EV_Thread_Say( "say", "s" ); -const idEventDef EV_Thread_Assert( "assert", "f" ); -const idEventDef EV_Thread_Trigger( "trigger", "e" ); -const idEventDef EV_Thread_SetCvar( "setcvar", "ss" ); -const idEventDef EV_Thread_GetCvar( "getcvar", "s", 's' ); -const idEventDef EV_Thread_Random( "random", "f", 'f' ); -const idEventDef EV_Thread_GetTime( "getTime", NULL, 'f' ); -const idEventDef EV_Thread_KillThread( "killthread", "s" ); -const idEventDef EV_Thread_SetThreadName( "threadname", "s" ); -const idEventDef EV_Thread_GetEntity( "getEntity", "s", 'e' ); -const idEventDef EV_Thread_Spawn( "spawn", "s", 'e' ); -const idEventDef EV_Thread_CopySpawnArgs( "copySpawnArgs", "e" ); -const idEventDef EV_Thread_SetSpawnArg( "setSpawnArg", "ss" ); -const idEventDef EV_Thread_SpawnString( "SpawnString", "ss", 's' ); -const idEventDef EV_Thread_SpawnFloat( "SpawnFloat", "sf", 'f' ); -const idEventDef EV_Thread_SpawnVector( "SpawnVector", "sv", 'v' ); -const idEventDef EV_Thread_ClearPersistantArgs( "clearPersistantArgs" ); -const idEventDef EV_Thread_SetPersistantArg( "setPersistantArg", "ss" ); -const idEventDef EV_Thread_GetPersistantString( "getPersistantString", "s", 's' ); -const idEventDef EV_Thread_GetPersistantFloat( "getPersistantFloat", "s", 'f' ); -const idEventDef EV_Thread_GetPersistantVector( "getPersistantVector", "s", 'v' ); -const idEventDef EV_Thread_AngToForward( "angToForward", "v", 'v' ); -const idEventDef EV_Thread_AngToRight( "angToRight", "v", 'v' ); -const idEventDef EV_Thread_AngToUp( "angToUp", "v", 'v' ); -const idEventDef EV_Thread_Sine( "sin", "f", 'f' ); -const idEventDef EV_Thread_Cosine( "cos", "f", 'f' ); -const idEventDef EV_Thread_SquareRoot( "sqrt", "f", 'f' ); -const idEventDef EV_Thread_Normalize( "vecNormalize", "v", 'v' ); -const idEventDef EV_Thread_VecLength( "vecLength", "v", 'f' ); -const idEventDef EV_Thread_VecDotProduct( "DotProduct", "vv", 'f' ); -const idEventDef EV_Thread_VecCrossProduct( "CrossProduct", "vv", 'v' ); -const idEventDef EV_Thread_VecToAngles( "VecToAngles", "v", 'v' ); -const idEventDef EV_Thread_OnSignal( "onSignal", "des" ); -const idEventDef EV_Thread_ClearSignal( "clearSignalThread", "de" ); -const idEventDef EV_Thread_SetCamera( "setCamera", "e" ); -const idEventDef EV_Thread_FirstPerson( "firstPerson", NULL ); -const idEventDef EV_Thread_Trace( "trace", "vvvvde", 'f' ); -const idEventDef EV_Thread_TracePoint( "tracePoint", "vvde", 'f' ); -const idEventDef EV_Thread_GetTraceFraction( "getTraceFraction", NULL, 'f' ); -const idEventDef EV_Thread_GetTraceEndPos( "getTraceEndPos", NULL, 'v' ); -const idEventDef EV_Thread_GetTraceNormal( "getTraceNormal", NULL, 'v' ); -const idEventDef EV_Thread_GetTraceEntity( "getTraceEntity", NULL, 'e' ); -const idEventDef EV_Thread_GetTraceJoint( "getTraceJoint", NULL, 's' ); -const idEventDef EV_Thread_GetTraceBody( "getTraceBody", NULL, 's' ); -const idEventDef EV_Thread_FadeIn( "fadeIn", "vf" ); -const idEventDef EV_Thread_FadeOut( "fadeOut", "vf" ); -const idEventDef EV_Thread_FadeTo( "fadeTo", "vff" ); -const idEventDef EV_Thread_StartMusic( "music", "s" ); -const idEventDef EV_Thread_Error( "error", "s" ); -const idEventDef EV_Thread_Warning( "warning", "s" ); -const idEventDef EV_Thread_StrLen( "strLength", "s", 'd' ); -const idEventDef EV_Thread_StrLeft( "strLeft", "sd", 's' ); -const idEventDef EV_Thread_StrRight( "strRight", "sd", 's' ); -const idEventDef EV_Thread_StrSkip( "strSkip", "sd", 's' ); -const idEventDef EV_Thread_StrMid( "strMid", "sdd", 's' ); -const idEventDef EV_Thread_StrToFloat( "strToFloat", "s", 'f' ); -const idEventDef EV_Thread_RadiusDamage( "radiusDamage", "vEEEsf" ); -const idEventDef EV_Thread_IsClient( "isClient", NULL, 'f' ); -const idEventDef EV_Thread_IsMultiplayer( "isMultiplayer", NULL, 'f' ); -const idEventDef EV_Thread_GetFrameTime( "getFrameTime", NULL, 'f' ); -const idEventDef EV_Thread_GetTicsPerSecond( "getTicsPerSecond", NULL, 'f' ); -const idEventDef EV_Thread_DebugLine( "debugLine", "vvvf" ); -const idEventDef EV_Thread_DebugArrow( "debugArrow", "vvvdf" ); -const idEventDef EV_Thread_DebugCircle( "debugCircle", "vvvfdf" ); -const idEventDef EV_Thread_DebugBounds( "debugBounds", "vvvf" ); -const idEventDef EV_Thread_DrawText( "drawText", "svfvdf" ); -const idEventDef EV_Thread_InfluenceActive( "influenceActive", NULL, 'd' ); -CLASS_DECLARATION( idClass, idThread ) - EVENT( EV_Thread_Execute, idThread::Event_Execute ) - EVENT( EV_Thread_TerminateThread, idThread::Event_TerminateThread ) - EVENT( EV_Thread_Pause, idThread::Event_Pause ) - EVENT( EV_Thread_Wait, idThread::Event_Wait ) - EVENT( EV_Thread_WaitFrame, idThread::Event_WaitFrame ) - EVENT( EV_Thread_WaitFor, idThread::Event_WaitFor ) - EVENT( EV_Thread_WaitForThread, idThread::Event_WaitForThread ) - EVENT( EV_Thread_Print, idThread::Event_Print ) - EVENT( EV_Thread_PrintLn, idThread::Event_PrintLn ) - EVENT( EV_Thread_Say, idThread::Event_Say ) - EVENT( EV_Thread_Assert, idThread::Event_Assert ) - EVENT( EV_Thread_Trigger, idThread::Event_Trigger ) - EVENT( EV_Thread_SetCvar, idThread::Event_SetCvar ) - EVENT( EV_Thread_GetCvar, idThread::Event_GetCvar ) - EVENT( EV_Thread_Random, idThread::Event_Random ) - EVENT( EV_Thread_GetTime, idThread::Event_GetTime ) - EVENT( EV_Thread_KillThread, idThread::Event_KillThread ) - EVENT( EV_Thread_SetThreadName, idThread::Event_SetThreadName ) - EVENT( EV_Thread_GetEntity, idThread::Event_GetEntity ) - EVENT( EV_Thread_Spawn, idThread::Event_Spawn ) - EVENT( EV_Thread_CopySpawnArgs, idThread::Event_CopySpawnArgs ) - EVENT( EV_Thread_SetSpawnArg, idThread::Event_SetSpawnArg ) - EVENT( EV_Thread_SpawnString, idThread::Event_SpawnString ) - EVENT( EV_Thread_SpawnFloat, idThread::Event_SpawnFloat ) - EVENT( EV_Thread_SpawnVector, idThread::Event_SpawnVector ) - EVENT( EV_Thread_ClearPersistantArgs, idThread::Event_ClearPersistantArgs ) - EVENT( EV_Thread_SetPersistantArg, idThread::Event_SetPersistantArg ) - EVENT( EV_Thread_GetPersistantString, idThread::Event_GetPersistantString ) - EVENT( EV_Thread_GetPersistantFloat, idThread::Event_GetPersistantFloat ) - EVENT( EV_Thread_GetPersistantVector, idThread::Event_GetPersistantVector ) - EVENT( EV_Thread_AngToForward, idThread::Event_AngToForward ) - EVENT( EV_Thread_AngToRight, idThread::Event_AngToRight ) - EVENT( EV_Thread_AngToUp, idThread::Event_AngToUp ) - EVENT( EV_Thread_Sine, idThread::Event_GetSine ) - EVENT( EV_Thread_Cosine, idThread::Event_GetCosine ) - EVENT( EV_Thread_SquareRoot, idThread::Event_GetSquareRoot ) - EVENT( EV_Thread_Normalize, idThread::Event_VecNormalize ) - EVENT( EV_Thread_VecLength, idThread::Event_VecLength ) - EVENT( EV_Thread_VecDotProduct, idThread::Event_VecDotProduct ) - EVENT( EV_Thread_VecCrossProduct, idThread::Event_VecCrossProduct ) - EVENT( EV_Thread_VecToAngles, idThread::Event_VecToAngles ) - EVENT( EV_Thread_OnSignal, idThread::Event_OnSignal ) - EVENT( EV_Thread_ClearSignal, idThread::Event_ClearSignalThread ) - EVENT( EV_Thread_SetCamera, idThread::Event_SetCamera ) - EVENT( EV_Thread_FirstPerson, idThread::Event_FirstPerson ) - EVENT( EV_Thread_Trace, idThread::Event_Trace ) - EVENT( EV_Thread_TracePoint, idThread::Event_TracePoint ) - EVENT( EV_Thread_GetTraceFraction, idThread::Event_GetTraceFraction ) - EVENT( EV_Thread_GetTraceEndPos, idThread::Event_GetTraceEndPos ) - EVENT( EV_Thread_GetTraceNormal, idThread::Event_GetTraceNormal ) - EVENT( EV_Thread_GetTraceEntity, idThread::Event_GetTraceEntity ) - EVENT( EV_Thread_GetTraceJoint, idThread::Event_GetTraceJoint ) - EVENT( EV_Thread_GetTraceBody, idThread::Event_GetTraceBody ) - EVENT( EV_Thread_FadeIn, idThread::Event_FadeIn ) - EVENT( EV_Thread_FadeOut, idThread::Event_FadeOut ) - EVENT( EV_Thread_FadeTo, idThread::Event_FadeTo ) - EVENT( EV_SetShaderParm, idThread::Event_SetShaderParm ) - EVENT( EV_Thread_StartMusic, idThread::Event_StartMusic ) - EVENT( EV_Thread_Warning, idThread::Event_Warning ) - EVENT( EV_Thread_Error, idThread::Event_Error ) - EVENT( EV_Thread_StrLen, idThread::Event_StrLen ) - EVENT( EV_Thread_StrLeft, idThread::Event_StrLeft ) - EVENT( EV_Thread_StrRight, idThread::Event_StrRight ) - EVENT( EV_Thread_StrSkip, idThread::Event_StrSkip ) - EVENT( EV_Thread_StrMid, idThread::Event_StrMid ) - EVENT( EV_Thread_StrToFloat, idThread::Event_StrToFloat ) - EVENT( EV_Thread_RadiusDamage, idThread::Event_RadiusDamage ) - EVENT( EV_Thread_IsClient, idThread::Event_IsClient ) - EVENT( EV_Thread_IsMultiplayer, idThread::Event_IsMultiplayer ) - EVENT( EV_Thread_GetFrameTime, idThread::Event_GetFrameTime ) - EVENT( EV_Thread_GetTicsPerSecond, idThread::Event_GetTicsPerSecond ) - EVENT( EV_CacheSoundShader, idThread::Event_CacheSoundShader ) - EVENT( EV_Thread_DebugLine, idThread::Event_DebugLine ) - EVENT( EV_Thread_DebugArrow, idThread::Event_DebugArrow ) - EVENT( EV_Thread_DebugCircle, idThread::Event_DebugCircle ) - EVENT( EV_Thread_DebugBounds, idThread::Event_DebugBounds ) - EVENT( EV_Thread_DrawText, idThread::Event_DrawText ) - EVENT( EV_Thread_InfluenceActive, idThread::Event_InfluenceActive ) -END_CLASS idThread *idThread::currentThread = NULL; int idThread::threadIndex = 0; @@ -532,11 +375,11 @@ idThread::DelayedStart ================ */ void idThread::DelayedStart( int delay ) { - CancelEvents( &EV_Thread_Execute ); + CancelEvents( &EV_idThread_Execute ); if ( gameLocal.time <= 0 ) { delay++; } - PostEventMS( &EV_Thread_Execute, delay ); + PostEventMS( &EV_idThread_Execute, delay ); } /* @@ -547,7 +390,7 @@ idThread::Start bool idThread::Start( void ) { bool result; - CancelEvents( &EV_Thread_Execute ); + CancelEvents( &EV_idThread_Execute ); result = Execute(); return result; @@ -662,9 +505,9 @@ bool idThread::Execute( void ) { } } else if ( !manualControl ) { if ( waitingUntil > lastExecuteTime ) { - PostEventMS( &EV_Thread_Execute, waitingUntil - lastExecuteTime ); + PostEventMS( &EV_idThread_Execute, waitingUntil - lastExecuteTime ); } else if ( interpreter.MultiFrameEventInProgress() ) { - PostEventMS( &EV_Thread_Execute, gameLocal.msec ); + PostEventMS( &EV_idThread_Execute, gameLocal.msec ); } } @@ -1029,8 +872,11 @@ idThread::Event_Trigger */ void idThread::Event_Trigger( idEntity *ent ) { if ( ent ) { + const idEventDef *activateEvent = ent->FindEventDef( "activate", "e" ); ent->Signal( SIG_TRIGGER ); - ent->ProcessEvent( &EV_Activate, gameLocal.GetLocalPlayer() ); + if ( activateEvent ) { + ent->ProcessEvent( activateEvent, gameLocal.GetLocalPlayer() ); + } ent->TriggerGuis(); } } diff --git a/neo/doom3/game/script/Script_Thread.h b/neo/doom3/game/script/Script_Thread.h index 254027bb..de401960 100644 --- a/neo/doom3/game/script/Script_Thread.h +++ b/neo/doom3/game/script/Script_Thread.h @@ -33,50 +33,6 @@ If you have questions concerning this license or the applicable additional terms #include "gamesys/Class.h" #include "gamesys/Event.h" -extern const idEventDef EV_Thread_Execute; -extern const idEventDef EV_Thread_SetCallback; -extern const idEventDef EV_Thread_TerminateThread; -extern const idEventDef EV_Thread_Pause; -extern const idEventDef EV_Thread_Wait; -extern const idEventDef EV_Thread_WaitFrame; -extern const idEventDef EV_Thread_WaitFor; -extern const idEventDef EV_Thread_WaitForThread; -extern const idEventDef EV_Thread_Print; -extern const idEventDef EV_Thread_PrintLn; -extern const idEventDef EV_Thread_Say; -extern const idEventDef EV_Thread_Assert; -extern const idEventDef EV_Thread_Trigger; -extern const idEventDef EV_Thread_SetCvar; -extern const idEventDef EV_Thread_GetCvar; -extern const idEventDef EV_Thread_Random; -extern const idEventDef EV_Thread_GetTime; -extern const idEventDef EV_Thread_KillThread; -extern const idEventDef EV_Thread_SetThreadName; -extern const idEventDef EV_Thread_GetEntity; -extern const idEventDef EV_Thread_Spawn; -extern const idEventDef EV_Thread_SetSpawnArg; -extern const idEventDef EV_Thread_SpawnString; -extern const idEventDef EV_Thread_SpawnFloat; -extern const idEventDef EV_Thread_SpawnVector; -extern const idEventDef EV_Thread_AngToForward; -extern const idEventDef EV_Thread_AngToRight; -extern const idEventDef EV_Thread_AngToUp; -extern const idEventDef EV_Thread_Sine; -extern const idEventDef EV_Thread_Cosine; -extern const idEventDef EV_Thread_Normalize; -extern const idEventDef EV_Thread_VecLength; -extern const idEventDef EV_Thread_VecDotProduct; -extern const idEventDef EV_Thread_VecCrossProduct; -extern const idEventDef EV_Thread_OnSignal; -extern const idEventDef EV_Thread_ClearSignal; -extern const idEventDef EV_Thread_SetCamera; -extern const idEventDef EV_Thread_FirstPerson; -extern const idEventDef EV_Thread_TraceFraction; -extern const idEventDef EV_Thread_TracePos; -extern const idEventDef EV_Thread_FadeIn; -extern const idEventDef EV_Thread_FadeOut; -extern const idEventDef EV_Thread_FadeTo; -extern const idEventDef EV_Thread_Restart; class idThread : public idClass { private: @@ -105,87 +61,165 @@ private: void Init( void ); void Pause( void ); + ID_SCRIPT_EVENT( "", 0 ) void Event_Execute( void ); + ID_SCRIPT_EVENT( "threadname", 0 ) void Event_SetThreadName( const char *name ); // // script callable Events // + ID_SCRIPT_EVENT( "terminate", 0 ) void Event_TerminateThread( int num ); + ID_SCRIPT_EVENT( "pause", 0 ) void Event_Pause( void ); + ID_SCRIPT_EVENT( "wait", 0 ) void Event_Wait( float time ); + ID_SCRIPT_EVENT( "waitFrame", 0 ) void Event_WaitFrame( void ); + ID_SCRIPT_EVENT( "waitFor", 0 ) void Event_WaitFor( idEntity *ent ); + ID_SCRIPT_EVENT( "waitForThread", 0 ) void Event_WaitForThread( int num ); + ID_SCRIPT_EVENT( "print", 0 ) void Event_Print( const char *text ); + ID_SCRIPT_EVENT( "println", 0 ) void Event_PrintLn( const char *text ); + ID_SCRIPT_EVENT( "say", 0 ) void Event_Say( const char *text ); + ID_SCRIPT_EVENT( "assert", 0 ) void Event_Assert( float value ); + ID_SCRIPT_EVENT( "trigger", 0 ) void Event_Trigger( idEntity *ent ); + ID_SCRIPT_EVENT( "setcvar", 0 ) void Event_SetCvar( const char *name, const char *value ) const; + ID_SCRIPT_EVENT( "getcvar", 's' ) void Event_GetCvar( const char *name ) const; + ID_SCRIPT_EVENT( "random", 'f' ) void Event_Random( float range ) const; + ID_SCRIPT_EVENT( "getTime", 'f' ) void Event_GetTime( void ); + ID_SCRIPT_EVENT( "killthread", 0 ) void Event_KillThread( const char *name ); + ID_SCRIPT_EVENT( "getEntity", 'e' ) void Event_GetEntity( const char *name ); + ID_SCRIPT_EVENT( "spawn", 'e' ) void Event_Spawn( const char *classname ); + ID_SCRIPT_EVENT( "copySpawnArgs", 0 ) void Event_CopySpawnArgs( idEntity *ent ); + ID_SCRIPT_EVENT( "setSpawnArg", 0 ) void Event_SetSpawnArg( const char *key, const char *value ); + ID_SCRIPT_EVENT( "SpawnString", 's' ) void Event_SpawnString( const char *key, const char *defaultvalue ); + ID_SCRIPT_EVENT( "SpawnFloat", 'f' ) void Event_SpawnFloat( const char *key, float defaultvalue ); + ID_SCRIPT_EVENT( "SpawnVector", 'v' ) void Event_SpawnVector( const char *key, idVec3 &defaultvalue ); + ID_SCRIPT_EVENT( "clearPersistantArgs", 0 ) void Event_ClearPersistantArgs( void ); + ID_SCRIPT_EVENT( "setPersistantArg", 0 ) void Event_SetPersistantArg( const char *key, const char *value ); + ID_SCRIPT_EVENT( "getPersistantString", 's' ) void Event_GetPersistantString( const char *key ); + ID_SCRIPT_EVENT( "getPersistantFloat", 'f' ) void Event_GetPersistantFloat( const char *key ); + ID_SCRIPT_EVENT( "getPersistantVector", 'v' ) void Event_GetPersistantVector( const char *key ); + ID_SCRIPT_EVENT( "angToForward", 'v' ) void Event_AngToForward( idAngles &ang ); + ID_SCRIPT_EVENT( "angToRight", 'v' ) void Event_AngToRight( idAngles &ang ); + ID_SCRIPT_EVENT( "angToUp", 'v' ) void Event_AngToUp( idAngles &ang ); + ID_SCRIPT_EVENT( "sin", 'f' ) void Event_GetSine( float angle ); + ID_SCRIPT_EVENT( "cos", 'f' ) void Event_GetCosine( float angle ); + ID_SCRIPT_EVENT( "sqrt", 'f' ) void Event_GetSquareRoot( float theSquare ); + ID_SCRIPT_EVENT( "vecNormalize", 'v' ) void Event_VecNormalize( idVec3 &vec ); + ID_SCRIPT_EVENT( "vecLength", 'f' ) void Event_VecLength( idVec3 &vec ); + ID_SCRIPT_EVENT( "DotProduct", 'f' ) void Event_VecDotProduct( idVec3 &vec1, idVec3 &vec2 ); + ID_SCRIPT_EVENT( "CrossProduct", 'v' ) void Event_VecCrossProduct( idVec3 &vec1, idVec3 &vec2 ); + ID_SCRIPT_EVENT( "VecToAngles", 'v' ) void Event_VecToAngles( idVec3 &vec ); + ID_SCRIPT_EVENT( "onSignal", 0 ) void Event_OnSignal( int signal, idEntity *ent, const char *func ); + ID_SCRIPT_EVENT( "clearSignalThread", 0 ) void Event_ClearSignalThread( int signal, idEntity *ent ); + ID_SCRIPT_EVENT( "setCamera", 0 ) void Event_SetCamera( idEntity *ent ); + ID_SCRIPT_EVENT( "firstPerson", 0 ) void Event_FirstPerson( void ); + ID_SCRIPT_EVENT( "trace", 'f' ) void Event_Trace( const idVec3 &start, const idVec3 &end, const idVec3 &mins, const idVec3 &maxs, int contents_mask, idEntity *passEntity ); + ID_SCRIPT_EVENT( "tracePoint", 'f' ) void Event_TracePoint( const idVec3 &start, const idVec3 &end, int contents_mask, idEntity *passEntity ); + ID_SCRIPT_EVENT( "getTraceFraction", 'f' ) void Event_GetTraceFraction( void ); + ID_SCRIPT_EVENT( "getTraceEndPos", 'v' ) void Event_GetTraceEndPos( void ); + ID_SCRIPT_EVENT( "getTraceNormal", 'v' ) void Event_GetTraceNormal( void ); + ID_SCRIPT_EVENT( "getTraceEntity", 'e' ) void Event_GetTraceEntity( void ); + ID_SCRIPT_EVENT( "getTraceJoint", 's' ) void Event_GetTraceJoint( void ); + ID_SCRIPT_EVENT( "getTraceBody", 's' ) void Event_GetTraceBody( void ); + ID_SCRIPT_EVENT( "fadeIn", 0 ) void Event_FadeIn( idVec3 &color, float time ); + ID_SCRIPT_EVENT( "fadeOut", 0 ) void Event_FadeOut( idVec3 &color, float time ); + ID_SCRIPT_EVENT( "fadeTo", 0 ) void Event_FadeTo( idVec3 &color, float alpha, float time ); + ID_SCRIPT_EVENT( "setShaderParm", 0 ) void Event_SetShaderParm( int parmnum, float value ); + ID_SCRIPT_EVENT( "music", 0 ) void Event_StartMusic( const char *name ); + ID_SCRIPT_EVENT( "warning", 0 ) void Event_Warning( const char *text ); + ID_SCRIPT_EVENT( "error", 0 ) void Event_Error( const char *text ); + ID_SCRIPT_EVENT( "strLength", 'd' ) void Event_StrLen( const char *string ); + ID_SCRIPT_EVENT( "strLeft", 's' ) void Event_StrLeft( const char *string, int num ); + ID_SCRIPT_EVENT( "strRight", 's' ) void Event_StrRight( const char *string, int num ); + ID_SCRIPT_EVENT( "strSkip", 's' ) void Event_StrSkip( const char *string, int num ); + ID_SCRIPT_EVENT( "strMid", 's' ) void Event_StrMid( const char *string, int start, int num ); + ID_SCRIPT_EVENT( "strToFloat", 'f' ) void Event_StrToFloat( const char *string ); + ID_SCRIPT_EVENT( "radiusDamage", 0 ) void Event_RadiusDamage( const idVec3 &origin, idEntity *inflictor, idEntity *attacker, idEntity *ignore, const char *damageDefName, float dmgPower ); + ID_SCRIPT_EVENT( "isClient", 'f' ) void Event_IsClient( void ); + ID_SCRIPT_EVENT( "isMultiplayer", 'f' ) void Event_IsMultiplayer( void ); + ID_SCRIPT_EVENT( "getFrameTime", 'f' ) void Event_GetFrameTime( void ); + ID_SCRIPT_EVENT( "getTicsPerSecond", 'f' ) void Event_GetTicsPerSecond( void ); + ID_SCRIPT_EVENT( "cacheSoundShader", 0 ) void Event_CacheSoundShader( const char *soundName ); + ID_SCRIPT_EVENT( "debugLine", 0 ) void Event_DebugLine( const idVec3 &color, const idVec3 &start, const idVec3 &end, const float lifetime ); + ID_SCRIPT_EVENT( "debugArrow", 0 ) void Event_DebugArrow( const idVec3 &color, const idVec3 &start, const idVec3 &end, const int size, const float lifetime ); + ID_SCRIPT_EVENT( "debugCircle", 0 ) void Event_DebugCircle( const idVec3 &color, const idVec3 &origin, const idVec3 &dir, const float radius, const int numSteps, const float lifetime ); + ID_SCRIPT_EVENT( "debugBounds", 0 ) void Event_DebugBounds( const idVec3 &color, const idVec3 &mins, const idVec3 &maxs, const float lifetime ); + ID_SCRIPT_EVENT( "drawText", 0 ) void Event_DrawText( const char *text, const idVec3 &origin, float scale, const idVec3 &color, const int align, const float lifetime ); + ID_SCRIPT_EVENT( "influenceActive", 'd' ) void Event_InfluenceActive( void ); public: @@ -234,7 +268,7 @@ public: static void KillThread( const char *name ); static void KillThread( int num ); bool Execute( void ); - void ManualControl( void ) { manualControl = true; CancelEvents( &EV_Thread_Execute ); }; + void ManualControl( void ) { manualControl = true; CancelEvents( &EV_idThread_Execute); }; void DoneProcessing( void ) { interpreter.doneProcessing = true; }; void ContinueProcessing( void ) { interpreter.doneProcessing = false; }; bool ThreadDying( void ) { return interpreter.threadDying; }; diff --git a/neo/doom3/game/weapons/Weapon_bfg.cpp b/neo/doom3/game/weapons/Weapon_bfg.cpp index ef12b3fb..3201a740 100644 --- a/neo/doom3/game/weapons/Weapon_bfg.cpp +++ b/neo/doom3/game/weapons/Weapon_bfg.cpp @@ -5,8 +5,6 @@ #include "precompiled.h" #include "../Game_local.h" -CLASS_DECLARATION( rvmWeaponObject, rvmWeaponBFG ) -END_CLASS #define BFG_MINRELEASETIME 0.05 #define BFG_FUSE 2.0 diff --git a/neo/doom3/game/weapons/Weapon_chaingun.cpp b/neo/doom3/game/weapons/Weapon_chaingun.cpp index 60f63583..b5b9f7bf 100644 --- a/neo/doom3/game/weapons/Weapon_chaingun.cpp +++ b/neo/doom3/game/weapons/Weapon_chaingun.cpp @@ -5,8 +5,6 @@ #include "precompiled.h" #include "../Game_local.h" -CLASS_DECLARATION( rvmWeaponObject, rvmWeaponChainGun ) -END_CLASS #define CHAINGUN_FIRE_SKIPFRAMES 7 // 6 shots per second #define CHAINGUN_LOWAMMO 10 diff --git a/neo/doom3/game/weapons/Weapon_chainsaw.cpp b/neo/doom3/game/weapons/Weapon_chainsaw.cpp index 504c1adc..e20dba0d 100644 --- a/neo/doom3/game/weapons/Weapon_chainsaw.cpp +++ b/neo/doom3/game/weapons/Weapon_chainsaw.cpp @@ -5,8 +5,6 @@ #include "precompiled.h" #include "../Game_local.h" -CLASS_DECLARATION( rvmWeaponObject, rvmWeaponChainsaw ) -END_CLASS #define CHAINSAW_FIRERATE 0.1 diff --git a/neo/doom3/game/weapons/Weapon_double_shotgun.cpp b/neo/doom3/game/weapons/Weapon_double_shotgun.cpp index 2b5038c8..aab80134 100644 --- a/neo/doom3/game/weapons/Weapon_double_shotgun.cpp +++ b/neo/doom3/game/weapons/Weapon_double_shotgun.cpp @@ -5,8 +5,6 @@ #include "precompiled.h" #include "../Game_local.h" -CLASS_DECLARATION( rvmWeaponObject, rvmWeaponDoubleShotgun ) -END_CLASS //#define SHOTGUN_DOUBLE_FIRERATE 1.333 diff --git a/neo/doom3/game/weapons/Weapon_fist.cpp b/neo/doom3/game/weapons/Weapon_fist.cpp index f345e497..388053e9 100644 --- a/neo/doom3/game/weapons/Weapon_fist.cpp +++ b/neo/doom3/game/weapons/Weapon_fist.cpp @@ -5,8 +5,6 @@ #include "precompiled.h" #include "../Game_local.h" -CLASS_DECLARATION( rvmWeaponObject, rvmWeaponFist ) -END_CLASS #define RIFLE_NUMPROJECTILES 1 diff --git a/neo/doom3/game/weapons/Weapon_flashlight.cpp b/neo/doom3/game/weapons/Weapon_flashlight.cpp index 584145c6..05ab7014 100644 --- a/neo/doom3/game/weapons/Weapon_flashlight.cpp +++ b/neo/doom3/game/weapons/Weapon_flashlight.cpp @@ -5,8 +5,6 @@ #include "precompiled.h" #include "../Game_local.h" -CLASS_DECLARATION( rvmWeaponObject, rvmWeaponFlashlight ) -END_CLASS // blend times #define FLASHLIGHT_IDLE_TO_LOWER 4 diff --git a/neo/doom3/game/weapons/Weapon_grabber.cpp b/neo/doom3/game/weapons/Weapon_grabber.cpp index 73332226..77fbe827 100644 --- a/neo/doom3/game/weapons/Weapon_grabber.cpp +++ b/neo/doom3/game/weapons/Weapon_grabber.cpp @@ -6,8 +6,6 @@ #include "precompiled.h" #include "../Game_local.h" -CLASS_DECLARATION( rvmWeaponObject, rvmWeaponGrabber ) -END_CLASS // blend times #define GRABBER_IDLE_TO_LOWER 4 diff --git a/neo/doom3/game/weapons/Weapon_handgrenade.cpp b/neo/doom3/game/weapons/Weapon_handgrenade.cpp index 26a9678a..00785c8e 100644 --- a/neo/doom3/game/weapons/Weapon_handgrenade.cpp +++ b/neo/doom3/game/weapons/Weapon_handgrenade.cpp @@ -5,8 +5,6 @@ #include "precompiled.h" #include "../Game_local.h" -CLASS_DECLARATION( rvmWeaponObject, rvmWeaponHandgrenade ) -END_CLASS #define HANDGRENADE_MINRELEASETIME 0.05 #define HANDGRENADE_FUSE 3 diff --git a/neo/doom3/game/weapons/Weapon_machinegun.cpp b/neo/doom3/game/weapons/Weapon_machinegun.cpp index fc92d236..8f84c61d 100644 --- a/neo/doom3/game/weapons/Weapon_machinegun.cpp +++ b/neo/doom3/game/weapons/Weapon_machinegun.cpp @@ -5,8 +5,6 @@ #include "precompiled.h" #include "../Game_local.h" -CLASS_DECLARATION( rvmWeaponObject, rvmWeaponMachineGun ) -END_CLASS #define MACHINEGUN_FIRERATE 0.1 // ~10 per second #define MACHINEGUN_LOWAMMO 10 diff --git a/neo/doom3/game/weapons/Weapon_pda.cpp b/neo/doom3/game/weapons/Weapon_pda.cpp index d9c39fd4..55e991a3 100644 --- a/neo/doom3/game/weapons/Weapon_pda.cpp +++ b/neo/doom3/game/weapons/Weapon_pda.cpp @@ -5,8 +5,6 @@ #include "precompiled.h" #include "../Game_local.h" -CLASS_DECLARATION( rvmWeaponObject, rvmWeaponPDA ) -END_CLASS /* ================ diff --git a/neo/doom3/game/weapons/Weapon_pistol.cpp b/neo/doom3/game/weapons/Weapon_pistol.cpp index 96c15f12..ae31b24e 100644 --- a/neo/doom3/game/weapons/Weapon_pistol.cpp +++ b/neo/doom3/game/weapons/Weapon_pistol.cpp @@ -5,8 +5,6 @@ #include "precompiled.h" #include "../Game_local.h" -CLASS_DECLARATION( rvmWeaponObject, rvmWeaponPistol ) -END_CLASS #define PISTOL_FIRERATE 0.4 #define PISTOL_LOWAMMO 4 diff --git a/neo/doom3/game/weapons/Weapon_plasmagun.cpp b/neo/doom3/game/weapons/Weapon_plasmagun.cpp index a9ef92fc..8f407fe6 100644 --- a/neo/doom3/game/weapons/Weapon_plasmagun.cpp +++ b/neo/doom3/game/weapons/Weapon_plasmagun.cpp @@ -5,8 +5,6 @@ #include "precompiled.h" #include "../Game_local.h" -CLASS_DECLARATION( rvmWeaponObject, rvmWeaponPlasmaGun ) -END_CLASS #define PLASMAGUN_FIRERATE 0.125 //changed by Tim #define PLASMAGUN_LOWAMMO 10 diff --git a/neo/doom3/game/weapons/Weapon_rocketlauncher.cpp b/neo/doom3/game/weapons/Weapon_rocketlauncher.cpp index e667b3d8..f14bf4f3 100644 --- a/neo/doom3/game/weapons/Weapon_rocketlauncher.cpp +++ b/neo/doom3/game/weapons/Weapon_rocketlauncher.cpp @@ -5,8 +5,6 @@ #include "precompiled.h" #include "../Game_local.h" -CLASS_DECLARATION( rvmWeaponObject, rvmWeaponRocketLauncher ) -END_CLASS #define ROCKETLAUNCHER_LOWAMMO 1 #define ROCKETLAUNCHER_NUMPROJECTILES 1 diff --git a/neo/doom3/game/weapons/Weapon_shotgun.cpp b/neo/doom3/game/weapons/Weapon_shotgun.cpp index 7626cacd..d99e1592 100644 --- a/neo/doom3/game/weapons/Weapon_shotgun.cpp +++ b/neo/doom3/game/weapons/Weapon_shotgun.cpp @@ -5,8 +5,6 @@ #include "precompiled.h" #include "../Game_local.h" -CLASS_DECLARATION( rvmWeaponObject, rvmWeaponShotgun ) -END_CLASS #define SHOTGUN_FIRERATE 1.333 #define SHOTGUN_LOWAMMO 2 diff --git a/neo/engine/typeinfo/TypeInfoGen.cpp b/neo/engine/typeinfo/TypeInfoGen.cpp index c1d650c7..e73a9bdc 100644 --- a/neo/engine/typeinfo/TypeInfoGen.cpp +++ b/neo/engine/typeinfo/TypeInfoGen.cpp @@ -32,6 +32,94 @@ If you have questions concerning this license or the applicable additional terms #define TYPE_INFO_GEN_VERSION "1.1" +static void BuildChildrenMap( + const idList& classes, + idHashIndex& hash, + idList>& children, + idList& names +) { + // Map typeName -> index + names.SetNum(classes.Num()); + for (int i = 0; i < classes.Num(); i++) { + names[i] = classes[i]->typeName; + hash.Add(hash.GenerateKey(names[i].c_str(), false), i); + } + + children.SetNum(classes.Num()); + for (int i = 0; i < children.Num(); i++) children[i].Clear(); + + // Add child edges + for (int i = 0; i < classes.Num(); i++) { + const idStr& base = classes[i]->superType; + if (base.Length() == 0) continue; + + int key = hash.GenerateKey(base.c_str(), false); + for (int j = hash.First(key); j != -1; j = hash.Next(j)) { + if (names[j] == base) { + children[j].Append(i); + break; + } + } + } +} + +static const idList* g_sortClasses = NULL; + +static int CmpChildClassName(const int* a, const int* b) { + const idClassTypeInfo* ca = (*g_sortClasses)[*a]; + const idClassTypeInfo* cb = (*g_sortClasses)[*b]; + return ca->typeName.Icmp(cb->typeName); +} + +static void SortChildrenByName(const idList& classes, idList& arr) { + g_sortClasses = &classes; + arr.Sort(CmpChildClassName); + g_sortClasses = NULL; +} + +static void EmitTree( + const idList& classes, + idList>& children, + int node, + const char* prefix, + bool isLast, + idStr& out +) { + // Root uses "+-" + if (prefix[0] == '\0') { + out += "+- "; + out += classes[node]->typeName; + out += "\n"; + } + else { + out += prefix; + out += (isLast ? "+- " : "|- "); + out += classes[node]->typeName; + out += "\n"; + } + + // children + idList ch = children[node]; + SortChildrenByName(classes, ch); + + for (int i = 0; i < ch.Num(); i++) { + const bool last = (i == ch.Num() - 1); + + idStr nextPrefix = prefix; + if (prefix[0] != '\0') { + nextPrefix += (isLast ? " " : "| "); + } + else { + nextPrefix = " "; + } + + EmitTree(classes, children, ch[i], nextPrefix.c_str(), last, out); + } +} + + + + /* ================ idTypeInfoGen::idTypeInfoGen @@ -467,6 +555,46 @@ idClassTypeInfo* idTypeInfoGen::ParseClassType( const char* scope, const char* t return typeInfo; } +/* +================ +idTypeInfoGen::ParseIdStateFunctionTag +================ +*/ +bool idTypeInfoGen::ParseIdStateFunctionTag(idParser& src, idStr& outStateName) { + idToken t; + outStateName = ""; + + if (!src.ExpectTokenString("(")) return false; + + // Common case: ID_STATE_FUNCTION("Raise") + if (!src.ExpectTokenType(TT_STRING, 0, &t)) return false; + outStateName = t; + + if (!src.ExpectTokenString(")")) return false; + return outStateName.Length() > 0; +} + + +static void AppendCapturedMethodParam( idClassMethodInfo& method, const idStr& currentParam ) +{ + idStr p = currentParam; + idTypeInfoGen::NormalizeTypeString( p ); + if( p.Length() > 0 ) + { + if( p != "void" ) + { + method.paramDecls.Append( p ); + } + + idTypeInfoGen::StripTrailingParamName( p ); + idTypeInfoGen::NormalizeTypeString( p ); + if( p != "void" ) + { + method.paramTypes.Append( p ); + } + } +} + /* ================ idTypeInfoGen::ParseScope @@ -484,6 +612,17 @@ void idTypeInfoGen::ParseScope( const char* scope, bool isTemplate, idParser& sr bool classValid = false; bool forceIgnore = false; + bool hasPendingStateFunction = false; + idStr pendingStateName; + idStr pendingStateDoc; + + bool hasPendingScriptEvent = false; + idStr pendingScriptName; + idStr pendingScriptReturnType; + + idStr lastDocComment; + idStr pendingScriptDoc; + indent = 1; while( indent ) { @@ -496,6 +635,7 @@ void idTypeInfoGen::ParseScope( const char* scope, bool isTemplate, idParser& sr { classValid = true; } + if( token == "{" ) { @@ -514,7 +654,8 @@ void idTypeInfoGen::ParseScope( const char* scope, bool isTemplate, idParser& sr while( indent > 1 && src.ReadToken( &token ) ); } - else if (token == "TYPEINFO_IGNORE") { + else if( token == "TYPEINFO_IGNORE" ) + { forceIgnore = true; } else if( token == "}" ) @@ -553,13 +694,84 @@ void idTypeInfoGen::ParseScope( const char* scope, bool isTemplate, idParser& sr else if( token == "public" || token == "protected" || token == "private" ) { - //if ( !src.ExpectTokenString( ":" ) ) { - // break; - //} + // Only an access label if followed by ':'. Otherwise keep the token as part of the declaration. + if( src.CheckTokenString( ":" ) ) + { + varType = ""; + isConst = false; + isStatic = false; + } + else + { + varType += token + " "; + } + + } + else if( token == "__typeinfogen_has_states_prototype" ) + { + if( typeInfo != NULL && typeInfo->typeName.Length() > 0 ) + { + typeInfo->hasStatesPrototype = true; + } + while( src.ReadToken( &token ) ) + { + if( token == ";" ) + { + break; + } + if( token == "}" ) + { + src.UnreadToken( &token ); + break; + } + } + varType = ""; + isConst = false; + isStatic = false; + } + else if( token == "__typeinfogen_has_class_prototype" ) + { + if( typeInfo != NULL && typeInfo->typeName.Length() > 0 ) + { + typeInfo->hasClassPrototype = true; + } + while( src.ReadToken( &token ) ) + { + if( token == ";" ) + { + break; + } + if( token == "}" ) + { + src.UnreadToken( &token ); + break; + } + } + varType = ""; + isConst = false; + isStatic = false; + } + else if( token == "__typeinfogen_has_abstract_prototype" ) + { + if( typeInfo != NULL && typeInfo->typeName.Length() > 0 ) + { + typeInfo->hasAbstractPrototype = true; + } + while( src.ReadToken( &token ) ) + { + if( token == ";" ) + { + break; + } + if( token == "}" ) + { + src.UnreadToken( &token ); + break; + } + } varType = ""; isConst = false; isStatic = false; - } else if( token == "friend" ) { @@ -801,6 +1013,45 @@ void idTypeInfoGen::ParseScope( const char* scope, bool isTemplate, idParser& sr isStatic = true; } + else if( token == "ID_STATE_FUNCTION" ) + { + if( ParseIdStateFunctionTag( src, pendingStateName ) ) + { + hasPendingStateFunction = true; + pendingStateDoc = lastDocComment; + } + else + { + src.Warning( "failed to parse ID_STATE_FUNCTION tag at scope '%s'", scope ); + hasPendingStateFunction = false; + pendingStateName = ""; + pendingStateDoc = ""; + } + + varType = ""; + isConst = false; + isStatic = false; + } + else if( token == "ID_SCRIPT_EVENT" ) + { + if( ParseIdScriptEventTag( src, pendingScriptName, pendingScriptReturnType ) ) + { + hasPendingScriptEvent = true; + pendingScriptDoc = lastDocComment; + } + else + { + src.Warning( "failed to parse ID_SCRIPT_EVENT tag at scope '%s'", scope ); + hasPendingScriptEvent = false; + pendingScriptName = ""; + pendingScriptReturnType = ""; + pendingScriptDoc = ""; + } + + varType = ""; + isConst = false; + isStatic = false; + } else if( token.type == TT_NAME ) { @@ -822,6 +1073,15 @@ void idTypeInfoGen::ParseScope( const char* scope, bool isTemplate, idParser& sr // if this is a class method if( src.CheckTokenString( "(" ) ) { + idClassMethodInfo method; + method.name = token; + method.returnType = varType; + method.returnType.StripTrailing( ' ' ); + NormalizeTypeString( method.returnType ); + method.isConst = isConst; + method.isStatic = isStatic; + method.paramDecls.Clear(); + method.paramTypes.Clear(); rvmClassFunctionInfo function = { }; function.returnType = varType; @@ -834,60 +1094,142 @@ void idTypeInfoGen::ParseScope( const char* scope, bool isTemplate, idParser& sr function.returnType = function.returnType.c_str() + 1; } - if( classValid == false ) - { - function.isValidFunction = false; - } - else - { - function.isValidFunction = true; - } - indent++; + function.isValidFunction = classValid; - //rvmClassFunctionParamInfo paramInfo = { }; - //idStr lastToken; - while( indent > 1 && src.ReadToken( &token ) ) - { - if( token == "(" ) - { - indent++; - } - else if( token == ")" ) - { - indent--; - } - else if( token == "void" ) - { + idToken t; + int parenIndent = 1; + int angleIndent = 0; + idStr currentParam; - } - else if( token == "stateParms_t" ) + bool rvmSawParam = false; + bool rvmSawVoid = false; + int rvmStateParamStep = 0; + + while( parenIndent > 0 && src.ReadToken( &t ) ) + { + if( t == "(" ) { - function.paramStateInput = "stateParms_t"; - if( !src.ReadToken( &token ) ) + parenIndent++; + currentParam += t + " "; + continue; + } + if( t == ")" ) + { + parenIndent--; + if( parenIndent == 0 ) { - function.isValidFunction = false; + AppendCapturedMethodParam( method, currentParam ); + currentParam = ""; + break; } - else if( token == "&" ) + currentParam += t + " "; + continue; + } + + if( t == "<" ) + { + angleIndent++; + currentParam += t + " "; + continue; + } + if( t == ">" ) + { + angleIndent--; + currentParam += t + " "; + continue; + } + + if( t == "," && parenIndent == 1 && angleIndent == 0 ) + { + AppendCapturedMethodParam( method, currentParam ); + currentParam = ""; + function.isValidFunction = false; + continue; + } + + if( parenIndent == 1 && angleIndent == 0 ) + { + if( t == "void" ) { - function.paramStateInputIsReference = true; - src.ReadToken( &token ); // variable name + if( rvmSawParam || rvmStateParamStep != 0 ) + { + function.isValidFunction = false; + } + rvmSawVoid = true; } - else if( token == "*" ) + else if( t == "stateParms_t" ) { - function.paramStateInputIsReference = false; - src.ReadToken( &token ); // variable name + if( rvmSawParam || rvmSawVoid || rvmStateParamStep != 0 ) + { + function.isValidFunction = false; + } + rvmSawParam = true; + rvmStateParamStep = 1; + function.paramStateInput = "stateParms_t"; + } + else if( rvmStateParamStep == 1 && ( t == "&" || t == "*" ) ) + { + function.paramStateInputIsReference = ( t == "&" ); + rvmStateParamStep = 2; + } + else if( rvmStateParamStep == 2 && t.type == TT_NAME ) + { + rvmStateParamStep = 3; } else { function.isValidFunction = false; } } - else - { - function.isValidFunction = false; - } + + currentParam += t + " "; } + if( rvmStateParamStep == 1 || rvmStateParamStep == 2 ) + { + function.isValidFunction = false; + } + + if( hasPendingStateFunction ) + { + idStateFunctionInfo st; + st.stateName = pendingStateName; + st.methodName = method.name; + st.doc = pendingStateDoc; + + typeInfo->stateFunctions.Append( st ); + + hasPendingStateFunction = false; + pendingStateName = ""; + pendingStateDoc = ""; + } + + if( hasPendingScriptEvent ) + { + idScriptEventInfo se; + se.scriptName = pendingScriptName; + se.scriptReturnType = pendingScriptReturnType; + se.methodName = method.name; + se.methodReturnType = method.returnType; + se.inheritedFromBase = ""; + se.paramTypes = method.paramTypes; + se.paramDecls = method.paramDecls; + se.doc = pendingScriptDoc; + + typeInfo->scriptEvents.Append( se ); + + hasPendingScriptEvent = false; + pendingScriptName = ""; + pendingScriptReturnType = ""; + pendingScriptDoc = ""; + } + + if( typeInfo != NULL ) + { + typeInfo->methods.Append( method ); + } + + // Possible second "( ... )" (function returning function pointer, operator(), etc) if( src.CheckTokenString( "(" ) ) { indent++; @@ -930,7 +1272,7 @@ void idTypeInfoGen::ParseScope( const char* scope, bool isTemplate, idParser& sr } } - if( classValid && !forceIgnore) + if( classValid && !forceIgnore ) { typeInfo->functions.Append( function ); } @@ -1055,6 +1397,59 @@ void idTypeInfoGen::ParseScope( const char* scope, bool isTemplate, idParser& sr } } +static idClassTypeInfo* FindClassByTypeName(const idList& classes, const idStr& typeName) { + for (int i = 0; i < classes.Num(); i++) { + if (classes[i]->typeName.Cmp(typeName) == 0) { + return classes[i]; + } + } + return NULL; +} + +static bool ClassDefinesScriptEventName(const idClassTypeInfo* c, const idStr& scriptName) { + for (int i = 0; i < c->scriptEvents.Num(); i++) { + if (c->scriptEvents[i].scriptName.Cmp(scriptName) == 0) { + return true; + } + } + return false; +} + +// Returns the closest ancestor (lowest base) that defines scriptName, or "" if none. +idStr idTypeInfoGen::FindLowestBaseWithScriptEvent(const char *base, const idClassTypeInfo* derived, const idStr& scriptName) const { + if (!derived) return base; + + // Walk super chain: first match is the *closest* base. + idStr cur = derived->superType; + while (cur.Length() > 0) { + idClassTypeInfo* base = FindClassByTypeName(classes, cur); + if (!base) { + // Unknown base type (external/forward decl/etc). Stop. + break; + } + + if (ClassDefinesScriptEventName(base, scriptName)) { + return FindLowestBaseWithScriptEvent(base->typeName, base, scriptName); // store just typeName; change to (base->scope + base->typeName) if you want fully qualified. + } + + cur = base->superType; + } + + return base; +} + +void idTypeInfoGen::ResolveScriptEventBaseOverlaps() { + for (int i = 0; i < classes.Num(); i++) { + idClassTypeInfo* c = classes[i]; + if (c->scriptEvents.Num() == 0) continue; + + for (int j = 0; j < c->scriptEvents.Num(); j++) { + idScriptEventInfo& se = c->scriptEvents[j]; + se.inheritedFromBase = FindLowestBaseWithScriptEvent("", c, se.scriptName); + } + } +} + /* ================ idTypeInfoGen::AddDefine @@ -1106,6 +1501,8 @@ void idTypeInfoGen::CreateTypeInfo( const char* path ) src.FreeSource(); } + ResolveScriptEventBaseOverlaps(); + numTemplates = 0; for( i = 0; i < classes.Num(); i++ ) { @@ -1523,7 +1920,14 @@ void idTypeInfoGen::WriteTypeInfo( const char* fileName ) const filecpp->WriteFloatString( "};\n\n" ); } - file->WriteFloatString( "static classVariableInfo_t %s_typeInfo[] = {\n", typeInfoName.c_str() ); + if( info->hasClassPrototype || info->hasAbstractPrototype ) + { + file->WriteFloatString( "classVariableInfo_t %s::typeInfo[] = {\n", typeName.c_str() ); + } + else + { + file->WriteFloatString( "static classVariableInfo_t %s_typeInfo[] = {\n", typeInfoName.c_str() ); + } for( j = 0; j < info->variables.Num(); j++ ) { @@ -1558,12 +1962,22 @@ void idTypeInfoGen::WriteTypeInfo( const char* fileName ) const idStr typeInfoName = typeName; CleanName( typeInfoName ); + idStr typeInfoRef; + if( info->hasClassPrototype || info->hasAbstractPrototype ) + { + typeInfoRef = typeName + "::typeInfo"; + } + else + { + typeInfoRef = typeInfoName + "_typeInfo"; + } + if( info->unnamed || info->isTemplate ) { file->WriteFloatString( "//" ); } - file->WriteFloatString( "\t{ \"%s\", \"%s\", sizeof(%s), %s_typeInfo },\n", - typeName.c_str(), info->superType.c_str(), typeName.c_str(), typeInfoName.c_str() ); + file->WriteFloatString( "\t{ \"%s\", \"%s\", sizeof(%s), %s },\n", + typeName.c_str(), info->superType.c_str(), typeName.c_str(), typeInfoRef.c_str() ); } file->WriteFloatString( "\t{ NULL, NULL, 0, NULL }\n" ); @@ -1572,4 +1986,1435 @@ void idTypeInfoGen::WriteTypeInfo( const char* fileName ) const file->WriteFloatString( "#endif /* !__%s__ */\n", define.c_str() ); fileSystem->CloseFile( file ); + fileSystem->CloseFile( filecpp ); +} + + +static bool IsIdentChar(int c) { + return (c == '_') || (c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'); +} + +void idTypeInfoGen::NormalizeTypeString(idStr& t) { + t.Replace("\t", " "); + while (t.Find(" ") != -1) { + t.Replace(" ", " "); + } + t.StripLeading(' '); + t.StripTrailing(' '); + + // compact common spacing + t.Replace(" *", "*"); + t.Replace("* ", "*"); + t.Replace(" &", "&"); + t.Replace("& ", "&"); + t.Replace(" ,", ","); + t.Replace(", ", ","); + + // remove trailing spaces again + t.StripLeading(' '); + t.StripTrailing(' '); +} + +bool idTypeInfoGen::StripTrailingParamName(idStr& param) { + // Heuristic: if the param ends with an identifier token, drop it as the variable name. + // Examples: + // "int x" -> "int" + // "const idVec3 &outPos" -> "const idVec3 &" + // "idEntity* ent" -> "idEntity*" + // If it already ends in '*' or '&' or ']' or ')' etc, keep as-is. + + NormalizeTypeString(param); + + if (param.Length() == 0) { + return false; + } + + // Remove default value: split on '=' (top-level only is hard; we do a simple cut). + int eq = param.Find("="); + if (eq != -1) { + param = param.Left(eq); + NormalizeTypeString(param); + } + + // If it ends with these, it's probably already "type-only". + char last = param[param.Length() - 1]; + if (last == '*' || last == '&' || last == ']' || last == ')') { + return false; + } + + // Walk backwards to find last identifier + int i = param.Length() - 1; + while (i >= 0 && param[i] == ' ') i--; + int end = i; + + while (i >= 0 && IsIdentChar(param[i])) i--; + int start = i + 1; + + if (start <= end) { + // check if this identifier is preceded by space (so it's likely a name) + int before = start - 1; + if (before >= 0 && param[before] == ' ') { + // Drop trailing identifier + param = param.Left(before); + NormalizeTypeString(param); + return true; + } + } + + return false; +} + +bool idTypeInfoGen::ParseIdScriptEventTag(idParser& src, idStr& outName, idStr& outReturnType) { + idToken t; + + outName = ""; + outReturnType = ""; + + if (!src.ExpectTokenString("(")) { + return false; + } + + if (!src.ExpectTokenType(TT_STRING, 0, &t)) { + return false; + } + outName = t; + + if (!src.ExpectTokenString(",")) { + return false; + } + + // returnType tokens until ')' + idStr rt; + while (src.ReadToken(&t)) { + if (t == ")") { + break; + } + rt += t + " "; + } + rt.StripTrailing(' '); + NormalizeTypeString(rt); + + outReturnType = rt; + return (outName.Length() > 0 && outReturnType.Length() > 0); +} + +void idTypeInfoGen::ParseMethodParamTypes_AlreadyAteOpenParen(idParser& src, idList& outParamTypes) { + outParamTypes.Clear(); + + idToken t; + int parenDepth = 1; + int angleDepth = 0; + + idStr current; + + while (src.ReadToken(&t)) { + if (t == "(") { + parenDepth++; + current += t + " "; + continue; + } + if (t == ")") { + parenDepth--; + if (parenDepth == 0) { + // flush last param + idStr p = current; + NormalizeTypeString(p); + if (p.Length() > 0) { + StripTrailingParamName(p); + NormalizeTypeString(p); + if (p != "void") { + outParamTypes.Append(p); + } + } + break; + } + current += t + " "; + continue; + } + if (t == "<") { + angleDepth++; + current += t + " "; + continue; + } + if (t == ">") { + angleDepth--; + current += t + " "; + continue; + } + + if (t == "," && parenDepth == 1 && angleDepth == 0) { + idStr p = current; + NormalizeTypeString(p); + if (p.Length() > 0) { + StripTrailingParamName(p); + NormalizeTypeString(p); + if (p != "void") { + outParamTypes.Append(p); + } + } + current = ""; + continue; + } + + current += t + " "; + } +} + +char idTypeInfoGen::EventCodeForType(const idStr& inT) { + idStr t = inT; + NormalizeTypeString(t); + + // strip leading const (common) + if (t.Find("const ") == 0) { + t = t.Mid(6, t.Length() - 6); + NormalizeTypeString(t); + } + if (t == "0") return 0; + if (t == "void") return 0; + if (t.Length() == 3 && t[0] == '\'' && t[2] == '\'') return t[1]; + + if (t == "int" || t == "bool" || t == "unsigned" || t == "unsigned int" || t == "moverState_t" || t == "jointHandle_t" || t == "jointModTransform_t") return 'd'; + if (t == "float" || t == "double") return 'f'; + + // entity pointers (treat any idEntity* as entity) + if (t.Find("idEntity") != -1) return 'e'; + if (t.Find("trace_t") != -1) return 't'; + + if (t.Find("char *") != -1) return 's'; + if (t.Find("char*") != -1) return 's'; + + if (t.Find("idVec3") != -1) return 'v'; + if (t.Find("idAngles") != -1) return 'v'; + + if (t.Length() == 1) + return t[0]; + return '?'; +} + +bool idTypeInfoGen::IsSupportedEventType(const idStr& t) { + return EventCodeForType(t) != '?'; +} + +void idTypeInfoGen::MakeEventDefSymbol(idStr& outSym, const idStr& className, const idStr& scriptName) { + idStr classNameFixed = className; + + int startingPoint = 0; + + idStr scriptNameFixed = scriptName.c_str(); + bool dupeHack = false; + bool localHack = false; + if (scriptNameFixed == "") { + dupeHack = true; + } + if (scriptNameFixed[0] == '<') + { + localHack = true; + } + scriptNameFixed.Replace("<", "_"); + + if (dupeHack) { + scriptNameFixed.Replace(">", "_real"); + } + else { + scriptNameFixed.Replace(">", ""); + } + + if (scriptNameFixed[0] == '_') { + startingPoint = 1; + } + + scriptNameFixed = scriptNameFixed.c_str() + startingPoint; + scriptNameFixed[0] = toupper(scriptNameFixed[0]); + + if (scriptName == "") { + outSym = "EV_Timer"; + } + else if (scriptName == "") { + outSym = "EV_" + classNameFixed + "_LaunchMissilesUpdate"; + } + else if (scriptName == "") { + outSym = "EV_ReachedPos"; + } + else if (scriptName == "") { + outSym = "EV_Partblocked"; + } + else if (scriptName == "") { + outSym = "EV_Reachedang"; + } + else if (scriptName == "") { + outSym = "EV_Teamblocked"; + } + else if (scriptName == "gib") { + outSym = "EV_Gib"; + } + else if (scriptName == "") { + outSym = "EV_Gibbed"; + } + else if (scriptName == "") + { + outSym = "EV_TriggerAction"; + } + else if (scriptName == "") + { + outSym = "EV_Explode"; + } + else if (scriptName == "") + { + outSym = "EV_Thread_SetCallback"; + } + else if (scriptName == "") + { + outSym = "EV_PostSpawn"; + } + else if (className == "idEntity") + { + outSym = "EV_" + scriptNameFixed; + } + else { + // EV__ with safe chars + outSym = "EV_" + className + "_" + scriptNameFixed; + outSym.Replace("::", "_"); + outSym.Replace(" ", "_"); + outSym.Replace("-", "_"); + outSym.Replace(".", "_"); + } + + outSym.Replace("__", "_"); +} + +// --------------------------------------------- +// Helper: build a deterministic snapshot string +// --------------------------------------------- +static void AppendEscaped(idStr& out, const idStr& s) { + // Minimal escaping so delimiters/newlines don't break the snapshot format + // (Keep deterministic; no locale stuff.) + for (int i = 0; i < s.Length(); i++) { + const char c = s[i]; + if (c == '\\') out += "\\\\"; + else if (c == '\n') out += "\\n"; + else if (c == '\r') out += "\\r"; + else if (c == '\t') out += "\\t"; + else out += c; + } +} + +static int CmpClassPtrByName(const idClassTypeInfo* const* a, const idClassTypeInfo* const* b) { + return (*a)->typeName.Icmp((*b)->typeName); +} + +static int CmpScriptEventByName(const idScriptEventInfo* const* a, const idScriptEventInfo* const* b) { + int c = (*a)->scriptName.Icmp((*b)->scriptName); + if (c != 0) return c; + // tie-breakers + c = (*a)->methodName.Icmp((*b)->methodName); + if (c != 0) return c; + return (*a)->scriptReturnType.Icmp((*b)->scriptReturnType); +} + +static int CmpStateFnByName(const idStateFunctionInfo* const* a, const idStateFunctionInfo* const* b) { + int c = (*a)->stateName.Icmp((*b)->stateName); + if (c != 0) return c; + return (*a)->methodName.Icmp((*b)->methodName); +} + + +idStr idTypeInfoGen::BuildScriptEventsSnapshot() const { + idStr snap; + + // Optional header/version marker in case you change format later + snap += "TypeInfoGenSnapshot v1\n"; + + // Total count first (helps catch truncation) + int totalEvents = 0; + for (int i = 0; i < classes.Num(); i++) { + totalEvents += classes[i]->scriptEvents.Num(); + } + snap += va("classes=%d scriptEvents=%d\n", classes.Num(), totalEvents); + + for (int i = 0; i < classes.Num(); i++) { + const idClassTypeInfo* c = classes[i]; + + // Class header + snap += "CLASS|"; + AppendEscaped(snap, c->scope); + snap += "|"; + AppendEscaped(snap, c->typeName); + snap += "|"; + AppendEscaped(snap, c->superType); + snap += va("|unnamed=%d|tmpl=%d|proto=%d|abstract=%d\n", + c->unnamed ? 1 : 0, + c->isTemplate ? 1 : 0, + c->hasClassPrototype ? 1 : 0, + c->hasAbstractPrototype ? 1 : 0 + ); + + // Script events (in existing order) + for (int j = 0; j < c->scriptEvents.Num(); j++) { + const idScriptEventInfo& se = c->scriptEvents[j]; + + snap += " EV|"; + AppendEscaped(snap, se.scriptName); + snap += "|ret="; + AppendEscaped(snap, se.scriptReturnType); + snap += "|method="; + AppendEscaped(snap, se.methodName); + snap += "|mret="; + AppendEscaped(snap, se.methodReturnType); + snap += "|argc="; + snap += va("%d", se.paramTypes.Num()); + snap += "|args="; + + for (int a = 0; a < se.paramTypes.Num(); a++) { + if (a > 0) snap += ","; + AppendEscaped(snap, se.paramTypes[a]); + } + snap += "\n"; + } + + // ---- Script events (deterministic order) ---- + if (c->scriptEvents.Num() > 0) { + idList ev; + ev.SetNum(c->scriptEvents.Num()); + for (int k = 0; k < c->scriptEvents.Num(); k++) ev[k] = &c->scriptEvents[k]; + ev.Sort(CmpScriptEventByName); + + for (int k = 0; k < ev.Num(); k++) { + const idScriptEventInfo& se = *ev[k]; + + snap += " EV|"; + AppendEscaped(snap, se.scriptName); + snap += "|ret="; + AppendEscaped(snap, se.scriptReturnType); + snap += "|method="; + AppendEscaped(snap, se.methodName); + snap += "|mret="; + AppendEscaped(snap, se.methodReturnType); + snap += "|argc="; + snap += va("%d", se.paramTypes.Num()); + snap += "|args="; + + for (int a = 0; a < se.paramTypes.Num(); a++) { + if (a > 0) snap += ","; + AppendEscaped(snap, se.paramTypes[a]); + } + snap += "\n"; + } + } + } + + return snap; +} + +// --------------------------------------------- +// Helper: read whole file into idStr (explicit path) +// --------------------------------------------- +static bool ReadWholeFileExplicit(idFileSystem* fs, const idStr& osPath, idStr& out) { + out.Clear(); + + idFile* f = fs->OpenExplicitFileRead(osPath); + if (!f) { + return false; + } + + const int len = f->Length(); + if (len <= 0) { + fs->CloseFile(f); + return true; // empty file is valid + } + + char* buf = (char*)_alloca(len + 1); + f->Read(buf, len); + buf[len] = '\0'; + + out = buf; + fs->CloseFile(f); + return true; +} + +static bool WriteWholeFileExplicit(idFileSystem* fs, const idStr& osPath, const idStr& text) { + idFile* f = fs->OpenExplicitFileWrite(osPath); + if (!f) { + return false; + } + f->Write(text.c_str(), text.Length()); + fs->CloseFile(f); + return true; +} + +bool idTypeInfoGen::WriteScriptEvents(const char* fileName2) const { + int i, j; + + const idStr newSnap = BuildScriptEventsSnapshot(); + const idStr tempRel = "typeinfogen.temp"; + const idStr tempPath = fileSystem->RelativePathToOSPath(tempRel); + + idStr oldSnap; + const bool hadOld = ReadWholeFileExplicit(fileSystem, tempPath, oldSnap); + + if (hadOld && oldSnap == newSnap) { + common->Printf("TypeInfoGen: script events unchanged, skipping generation (%s)\n", tempPath.c_str()); + return false; // abort + } + + idStr fileName = fileName2; + fileName += "_local.h"; + + idStr publicFileName = fileName2; + publicFileName += ".h"; + + idStr path = fileSystem->RelativePathToOSPath(fileName); + idFile* file = fileSystem->OpenExplicitFileWrite(path); + if (!file) { + common->Warning("couldn't open %s", path.c_str()); + return false; + } + + idStr path2 = fileSystem->RelativePathToOSPath(publicFileName); + idFile* file2 = fileSystem->OpenExplicitFileWrite(path2); + if (!file2) { + common->Warning("couldn't open %s", path.c_str()); + return false; + } + + common->Printf("writing %s...\n", path.c_str()); + + file->WriteFloatString( + "/*\n" + "===================================================================================\n" + "\n" + "\tAUTO-GENERATED FILE. DO NOT EDIT.\n" + "\tGenerated by TypeInfoGen (script events)\n" + "\n" + "===================================================================================\n" + "*/\n" + ); + + file2->WriteFloatString( + "/*\n" + "===================================================================================\n" + "\n" + "\tAUTO-GENERATED FILE. DO NOT EDIT.\n" + "\tGenerated by TypeInfoGen (script events)\n" + "\n" + "===================================================================================\n" + "*/\n" + ); + + // Emit idEventDef declarations + file->WriteFloatString("\n// --------------------\n// Script EventDefs\n// --------------------\n\n"); + file2->WriteFloatString("\n// --------------------\n// Script EventDefs\n// --------------------\n\n"); + + int numScriptEvents = 0; + idList entityBaseClassEvents; + + for (i = 0; i < classes.Num(); i++) { + const idClassTypeInfo* c = classes[i]; + numScriptEvents += c->scriptEvents.Num(); + } + + idList scriptEventNames; + for (i = 0; i < classes.Num(); i++) { + const idClassTypeInfo* c = classes[i]; + if (c->scriptEvents.Num() == 0) { + continue; + } + + idStr className = c->typeName; // scope is already tracked separately + // If you need fully qualified, you can do: idStr fq = c->scope + c->typeName; + + for (j = 0; j < c->scriptEvents.Num(); j++) { + const idScriptEventInfo& se = c->scriptEvents[j]; + + idStr evSym; + + if (se.inheritedFromBase.Length() > 0) + continue; + + MakeEventDefSymbol(evSym, className, se.scriptName); + + char retCode = EventCodeForType(se.scriptReturnType); + + // Build arg string (or NULL) + idStr argSig; + bool ok = true; + + for (int a = 0; a < se.paramTypes.Num(); a++) { + char ac = EventCodeForType(se.paramTypes[a]); + if (ac == '?') { + ok = false; + break; + } + argSig += ac; + } + + if (retCode == '?') { + ok = false; + } + + if (!ok) { + file->WriteFloatString( + "// UNSUPPORTED signature for %s::%s -> script \"%s\" (ret \"%s\")\n", + className.c_str(), + se.methodName.c_str(), + se.scriptName.c_str(), + se.scriptReturnType.c_str() + ); + file->WriteFloatString( + "// Params:\n" + ); + for (int a = 0; a < se.paramTypes.Num(); a++) { + file->WriteFloatString("// %s\n", se.paramTypes[a].c_str()); + } + file->WriteFloatString("\n"); + continue; + } + + bool found = false; + for (int i = 0; i < scriptEventNames.Num(); i++) + { + if (scriptEventNames[i] == evSym) + { + found = true; + } + } + + if(found) + continue; + + idStr ret = "NULL"; + if (retCode != 0) { + ret = va("'%c'", retCode); + } + + if (argSig.Length() == 0) { + file->WriteFloatString( + "const idEventDef %s( \"%s\", NULL, %s );\n", + evSym.c_str(), + se.scriptName.c_str(), + ret.c_str() + ); + } + else { + file->WriteFloatString( + "const idEventDef %s( \"%s\", \"%s\", %s );\n", + evSym.c_str(), + se.scriptName.c_str(), + argSig.c_str(), + ret.c_str() + ); + } + + scriptEventNames.Append(evSym.c_str()); + + file2->WriteFloatString("extern const idEventDef %s;\n", evSym.c_str()); + } + } + + file->WriteFloatString("\n\n// --------------------\n// CLASS_STATES_DECLARATION blocks\n// --------------------\n\n"); + + for (int i = 0; i < classes.Num(); i++) { + const idClassTypeInfo* c = classes[i]; + + if (!c->hasStatesPrototype) continue; + if (c->unnamed || c->isTemplate) continue; + if (c->stateFunctions.Num() == 0) continue; + + file->WriteFloatString("CLASS_STATES_DECLARATION ( %s )\n", c->typeName.c_str()); + + for (int j = 0; j < c->stateFunctions.Num(); j++) { + const idStateFunctionInfo& st = c->stateFunctions[j]; + + // optional doc: + // WriteDocAsLineComments(file, st.doc); + + file->WriteFloatString( + "\tSTATE ( \"%s\",\t\t\t\t\t%s::%s )\n", + st.stateName.c_str(), + c->typeName.c_str(), + st.methodName.c_str() + ); + } + + file->WriteFloatString("END_CLASS_STATES\n\n"); + } + + // Emit CLASS_DECLARATION blocks + file->WriteFloatString("\n\n// --------------------\n// CLASS_DECLARATION blocks\n// --------------------\n\n"); + + for (i = 0; i < classes.Num(); i++) { + const idClassTypeInfo* c = classes[i]; + if (!c->hasClassPrototype && !c->hasAbstractPrototype) { + continue; + } + if (c->unnamed || c->isTemplate) { + continue; + } + if (c->superType.Length() == 0) { + // Can't form a proper CLASS_DECLARATION without a base; skip + file->WriteFloatString("// Skipping %s: no superType found.\n\n", c->typeName.c_str()); + continue; + } + + if (c->hasAbstractPrototype) + { + file->WriteFloatString( + "ABSTRACT_DECLARATION( %s, %s )\n", + c->superType.c_str(), + c->typeName.c_str() + ); + } + else if (c->hasClassPrototype) + { + file->WriteFloatString( + "CLASS_DECLARATION( %s, %s )\n", + c->superType.c_str(), + c->typeName.c_str() + ); + } + + for (j = 0; j < c->scriptEvents.Num(); j++) { + const idScriptEventInfo& se = c->scriptEvents[j]; + + idStr evSym; + if (se.inheritedFromBase.Length() > 0) + { + MakeEventDefSymbol(evSym, se.inheritedFromBase, se.scriptName); + } + else + { + MakeEventDefSymbol(evSym, c->typeName, se.scriptName); + } + + // If signature unsupported, it was commented out above; also comment out the EVENT line. + char retCode = EventCodeForType(se.scriptReturnType); + bool ok = (retCode != '?'); + for (int a = 0; a < se.paramTypes.Num(); a++) { + if (EventCodeForType(se.paramTypes[a]) == '?') { + ok = false; + break; + } + } + + if (!ok) { + file->WriteFloatString("\t// EVENT( %s, %s::%s )\n", evSym.c_str(), c->typeName.c_str(), se.methodName.c_str()); + } + else { + file->WriteFloatString("\tEVENT( %s, %s::%s )\n", evSym.c_str(), c->typeName.c_str(), se.methodName.c_str()); + } + } + + file->WriteFloatString("END_CLASS\n\n"); + } + + fileSystem->CloseFile(file); + fileSystem->CloseFile(file2); + + common->Printf("generated %d script event(s)\n", numScriptEvents); + + if (!WriteWholeFileExplicit(fileSystem, tempPath, newSnap)) { + common->Warning("TypeInfoGen: couldn't write %s (change cache not updated)", tempPath.c_str()); + } + + return true; +} + +static void StripCommentMarkers(idStr& c) { + // Turn /* ... */ and // ... into plain text lines suitable for // output + c.Replace("\r", ""); + c.Replace("/*", ""); + c.Replace("*/", ""); + // For // comments, just leave as-is; we’ll normalize later +} + +static void WriteDocAsLineComments(idFile* f, const idStr& docRaw) { + idStr doc = docRaw; + if (doc.Length() == 0) return; + + StripCommentMarkers(doc); + doc.StripLeading(' '); + doc.StripTrailing(' '); + + // Split on '\n' and emit each as "// ..." + int start = 0; + while (start < doc.Length()) { + int nl = doc.Find('\n', start); + idStr line; + if (nl == -1) { + line = doc.Mid(start, doc.Length() - start); + start = doc.Length(); + } + else { + line = doc.Mid(start, nl - start); + start = nl + 1; + } + line.StripLeading(' '); + line.StripTrailing(' '); + if (line.Length() == 0) continue; + + // Avoid double slashes if the lexer already included them + if (line.Find("//") == 0) { + line = line.Mid(2, line.Length() - 2); + line.StripLeading(' '); + } + + f->WriteFloatString("// %s\n", line.c_str()); + } +} + +static bool ParamDeclHasName(const idStr& decl) { + // same heuristic as StripTrailingParamName but non-destructive: + // if last token is an identifier preceded by a space, treat as a name present + idStr p = decl; + idTypeInfoGen::NormalizeTypeString(p); + int eq = p.Find("="); + if (eq != -1) { + p = p.Left(eq); + idTypeInfoGen::NormalizeTypeString(p); + } + if (p.Length() == 0) return false; + char last = p[p.Length() - 1]; + if (last == '*' || last == '&' || last == ']' || last == ')') return false; + + int i = p.Length() - 1; + while (i >= 0 && p[i] == ' ') i--; + int end = i; + while (i >= 0 && IsIdentChar(p[i])) i--; + int start = i + 1; + if (start <= end) { + int before = start - 1; + return (before >= 0 && p[before] == ' '); + } + return false; +} + +static const char* ScriptTypeFromEventCode(char c) { + switch (c) { + case 0: return "void"; // your "0" / no return + case 'v': return "vector"; + case 'd': return "float"; + case 'f': return "float"; + case 's': return "string"; + case 'e': return "entity"; + case 't': return "trace"; + default: return NULL; + } +} + +// Take the macro returnType token string, and produce script type +// Accepts things like "0", "void", "d", "v", "int", "idVec3", "jointHandle_t", etc. +const char* idTypeInfoGen::ScriptTypeForCppType(const idStr& inT) const { + idStr t = inT; + NormalizeTypeString(t); + + // If the tag used "0" to mean "no return" + if (t == "0") { + return "void"; + } + + // If they already passed an event code letter (d/f/v/s/e/t) + if (t.Length() == 1) { + const char* s = ScriptTypeFromEventCode(t[0]); + if (s) return s; + } + + // Otherwise map via your existing C++ type -> event code + char code = EventCodeForType(t); + return ScriptTypeFromEventCode(code); +} + +static bool ExtractTrailingName(const idStr& declIn, idStr& outName) { + idStr decl = declIn; + decl.Replace("\t", " "); + decl.StripLeading(' '); + decl.StripTrailing(' '); + + // cut default value + int eq = decl.Find("="); + if (eq != -1) { + decl = decl.Left(eq); + decl.StripTrailing(' '); + } + + if (decl.Length() == 0) return false; + + // if ends with * & ] ) it's probably type-only + char last = decl[decl.Length() - 1]; + if (last == '*' || last == '&' || last == ']' || last == ')') { + return false; + } + + // scan last identifier + int i = decl.Length() - 1; + while (i >= 0 && decl[i] == ' ') i--; + int end = i; + while (i >= 0 && ((decl[i] == '_') || (decl[i] >= '0' && decl[i] <= '9') || + (decl[i] >= 'A' && decl[i] <= 'Z') || (decl[i] >= 'a' && decl[i] <= 'z'))) { + i--; + } + int start = i + 1; + + if (start <= end) { + // must have a space before it to treat as name + int before = start - 1; + if (before >= 0 && decl[before] == ' ') { + outName = decl.Mid(start, end - start + 1); + return true; + } + } + return false; +} + +void idTypeInfoGen::WriteScriptEventsScript(const char* outRelOrOsPath) const { + idStr osPath = fileSystem->RelativePathToOSPath(outRelOrOsPath); + idFile* f = fileSystem->OpenExplicitFileWrite(osPath); + if (!f) { + common->Warning("couldn't open %s", osPath.c_str()); + return; + } + + // Header + f->WriteFloatString( + "/*\n" + "================================================================================================\n\n" + "\tScript Events\n\n" + "================================================================================================\n" + "*/\n\n" + ); + + // --- Build & emit inheritance tree (starting at idEntity if present) --- + { + idHashIndex hash(1024, 1024); + idList> children; + idList names; + + BuildChildrenMap(classes, hash, children, names); + + int root = -1; + for (int i = 0; i < classes.Num(); i++) { + if (classes[i]->typeName == "idEntity") { root = i; break; } + } + + f->WriteFloatString("/*\n"); + if (root != -1) { + idStr tree; + EmitTree(classes, children, root, "", true, tree); + f->Write(tree.c_str(), tree.Length()); + } + else { + f->WriteFloatString("+- \n"); + } + f->WriteFloatString("*/\n\n"); + } + + // --- Emit per-class scriptEvent declarations --- + for (int i = 0; i < classes.Num(); i++) { + const idClassTypeInfo* c = classes[i]; + if (c->scriptEvents.Num() == 0) continue; + + f->WriteFloatString( + "/*\n" + "================================================\n" + "\t%s\n" + "================================================\n" + "*/\n\n", + c->typeName.c_str() + ); + + for (int j = 0; j < c->scriptEvents.Num(); j++) { + const idScriptEventInfo& se = c->scriptEvents[j]; + + // If you only want declarations at the class that defines them: + if (se.inheritedFromBase.Length() > 0) { + continue; + } + + // Doc comment (if captured) + WriteDocAsLineComments(f, se.doc); + + const char* retScript = ScriptTypeForCppType(se.scriptReturnType); + if (!retScript) { + // fallback so generation never dies + retScript = "void"; + } + + // Build params from paramTypes + optional names from paramDecls + idStr params; + for (int a = 0; a < se.paramTypes.Num(); a++) { + + const char* argScript = ScriptTypeForCppType(se.paramTypes[a]); + if (!argScript) { + argScript = "float"; // safest fallback + } + + // name: prefer extracting from decl; else argN + idStr argName; + if (a < se.paramDecls.Num() && ExtractTrailingName(se.paramDecls[a], argName)) { + // ok + } + else { + argName = va("arg%d", a); + } + + if (a > 0) params += ", "; + params += argScript; + params += " "; + params += argName; + } + + if (se.scriptName[0] == '<') + continue; + + f->WriteFloatString( + "scriptEvent %s %s( %s );\n", + retScript, + se.scriptName.c_str(), + params.c_str() + ); + } + } + + fileSystem->CloseFile(f); + common->Printf("wrote %s\n", osPath.c_str()); +} + +static idStr CsSanitizeIdent(const idStr& in) { + idStr s = in; + s.Replace("::", "_"); + s.Replace("<", ""); + s.Replace(">", ""); + s.Replace("-", "_"); + s.Replace(".", "_"); + s.Replace(" ", "_"); + s.Replace("\t", "_"); + + // Ensure starts with letter/_ for C# + if (s.Length() == 0) s = "Unnamed"; + char c0 = s[0]; + if (!((c0 >= 'A' && c0 <= 'Z') || (c0 >= 'a' && c0 <= 'z') || c0 == '_')) { + s = "_" + s; + } + return s; +} + +static idStr CsNiceTitleFromScriptName(const idStr& scriptName) { + // "setOrigin" -> "Set Origin" (light heuristic) + idStr s = scriptName; + if (s.Length() == 0) return "Unnamed"; + + // strip <...> already filtered elsewhere typically + s.Replace("<", ""); + s.Replace(">", ""); + + idStr out; + for (int i = 0; i < s.Length(); i++) { + char c = s[i]; + if (i == 0) { + out += (char)toupper(c); + continue; + } + // insert space before CamelCase bumps + if ((c >= 'A' && c <= 'Z') && (s[i - 1] >= 'a' && s[i - 1] <= 'z')) { + out += " "; + } + out += c; + } + return out; +} + +static idStr MenuRootForClass(const idStr& className) { + if (className == "idEntity") return "Entity"; + if (className.Find("idAI") == 0 || className == "idActor" || className == "idNPC") return "AI"; + if (className.Find("idWeapon") == 0) return "Weapon"; + return "Other"; +} + +static idStr VariableNodeTypeForScriptType(const char* scriptType) { + // scriptType is "void"/"float"/"string"/"vector"/"entity"/"trace" + if (!scriptType) return "VariableFloatNode"; + if (!idStr::Icmp(scriptType, "entity")) return "VariableEntityNode"; + if (!idStr::Icmp(scriptType, "string")) return "VariableStringNode"; + if (!idStr::Icmp(scriptType, "vector")) return "VariableVectorNode"; + if (!idStr::Icmp(scriptType, "trace")) return "VariableTraceNode"; + return "VariableFloatNode"; +} + +static idStr DefaultLiteralForScriptType(const char* scriptType) { + if (!scriptType) return "\"0\""; + if (!idStr::Icmp(scriptType, "entity")) return "\"self\""; // best-effort default + if (!idStr::Icmp(scriptType, "string")) return "\"\""; + if (!idStr::Icmp(scriptType, "vector")) return "\"vec3(0,0,0)\""; // if your script emitter supports it + if (!idStr::Icmp(scriptType, "trace")) return "\"trace\""; // placeholder + return "\"0\""; +} + +// Build "Entity/Remove" etc. +static idStr BuildNodeMenuPath(const idStr& className, const idStr& scriptName) { + idStr root = MenuRootForClass(className); + idStr leaf = CsNiceTitleFromScriptName(scriptName); + if (root == "Other") { + return root + "/" + className + "/" + leaf; + } + return root + "/" + leaf; +} + +static bool IsInternalScriptName(const idStr& scriptName) { + return scriptName.Length() > 0 && scriptName[0] == '<'; +} + +void idTypeInfoGen::WriteRadiantSharpNodesCS(const char* outRelOrOsPath) const { + idStr osPath = fileSystem->RelativePathToOSPath(outRelOrOsPath); + idFile* f = fileSystem->OpenExplicitFileWrite(osPath); + if (!f) { + common->Warning("couldn't open %s", osPath.c_str()); + return; + } + + // Header + usings + f->WriteFloatString( + "// AUTO-GENERATED. DO NOT EDIT.\n" + "using radiantsharp;\n" + "using ST.Library.UI.NodeEditor;\n" + "using System;\n" + "using System.ComponentModel;\n" + "using System.Drawing;\n" + "using System.Globalization;\n" + "using System.Windows.Forms;\n\n" + "namespace RadiantSharp.Nodes {\n\n" + ); + + int emitted = 0; + int order = 0; + + idList usedClasses; + + for (int i = 0; i < classes.Num(); i++) { + const idClassTypeInfo* c = classes[i]; + if (c->scriptEvents.Num() == 0) continue; + + const idStr className = c->typeName; + + for (int j = 0; j < c->scriptEvents.Num(); j++) { + const idScriptEventInfo& se = c->scriptEvents[j]; + + // Only generate for defining class (your existing preference) + if (se.inheritedFromBase.Length() > 0) continue; + if (IsInternalScriptName(se.scriptName)) continue; + + const char* retScript = ScriptTypeForCppType(se.scriptReturnType); + const bool isStatement = (!retScript || !idStr::Icmp(retScript, "void")); + + // Class name: _ (or your preference) + // Example wants "RemoveEntity" for idEntity.Remove => special-case. + idStr nice = CsSanitizeIdent(CsNiceTitleFromScriptName(se.scriptName)); + idStr csClassName; + + csClassName = nice + CsSanitizeIdent(className); + + bool has = false; + for (int a = 0; a < usedClasses.Num(); a++) + { + if (usedClasses[a] == se.scriptName) + { + has = true; + break;; + } + } + + if(has) + continue; + + usedClasses.Append(se.scriptName); + + idStr menuPath = BuildNodeMenuPath(className, se.scriptName); + + // Emit attribute + class signature + f->WriteFloatString( + "\t[NodeMenu(\"%s\", Order = %d)]\n", + menuPath.c_str(), order++ + ); + + if (isStatement) { + f->WriteFloatString( + "\tpublic sealed class %s : DoomNodeBase, IDoomStatementNode {\n", + csClassName.c_str() + ); + } + else { + f->WriteFloatString( + "\tpublic sealed class %s : DoomNodeBase, IDoomExpressionNode {\n", + csClassName.c_str() + ); + } + + // Op name (your sample uses "Remove") + // Use the DoomScript event name as the op, Title-case for display. + f->WriteFloatString("\t\tpublic override string Op => \"%s\";\n\n", nice.c_str()); + + // Pins: Exec + Target + args (+ return out for expr) + if (isStatement) { + f->WriteFloatString("\t\tpublic STNodeOption ExecIn { get; private set; } = null!;\n"); + f->WriteFloatString("\t\tpublic STNodeOption ExecOut { get; private set; } = null!;\n"); + } + + // Target pin for non-static style calls: always provide EntityIn for now + f->WriteFloatString("\t\tpublic STNodeOption Target { get; private set; } = null!;\n"); + + // Params + for (int a = 0; a < se.paramTypes.Num(); a++) { + const char* argScript = ScriptTypeForCppType(se.paramTypes[a]); + idStr varNode = VariableNodeTypeForScriptType(argScript); + + // Name: try use decl name else argN (you already have ExtractTrailingName in your code) + idStr argName; + if (a < se.paramDecls.Num()) { + idStr tmp; + if (ExtractTrailingName(se.paramDecls[a], tmp)) argName = tmp; + } + if (argName.Length() == 0) argName = va("arg%d", a); + + idStr propName = CsSanitizeIdent(argName); + propName[0] = toupper(propName[0]); + + f->WriteFloatString("\t\tpublic STNodeOption %s { get; private set; } = null!;\n", propName.c_str()); + } + + if (!isStatement) { + // Return output pin (typed) + // If you have typed variable outputs, swap this accordingly. + f->WriteFloatString("\t\tpublic STNodeOption Out { get; private set; } = null!;\n"); + } + + // OnCreate() + f->WriteFloatString("\n\t\tprotected override void OnCreate() {\n"); + f->WriteFloatString("\t\t\tbase.OnCreate();\n"); + f->WriteFloatString("\t\t\tTitle = \"%s\";\n\n", CsNiceTitleFromScriptName(se.scriptName).c_str()); + + if (isStatement) { + f->WriteFloatString("\t\t\tExecIn = AddExecIn(\"exec_in\", \"In\");\n"); + f->WriteFloatString("\t\t\tExecOut = AddExecOut(\"exec_out\", \"Out\");\n"); + } + + // Target pin as entity + f->WriteFloatString("\t\t\tTarget = AddIn(\"target\", \"Target\");\n"); + + // Param pins + for (int a = 0; a < se.paramTypes.Num(); a++) { + const char* argScript = ScriptTypeForCppType(se.paramTypes[a]); + idStr varNode = VariableNodeTypeForScriptType(argScript); + + idStr argName; + if (a < se.paramDecls.Num()) { + idStr tmp; + if (ExtractTrailingName(se.paramDecls[a], tmp)) argName = tmp; + } + if (argName.Length() == 0) argName = va("arg%d", a); + + idStr propName = CsSanitizeIdent(argName); + propName[0] = toupper(propName[0]); + + f->WriteFloatString("\t\t\t%s = AddIn<%s>(\"%s\", \"%s\");\n", + propName.c_str(), + varNode.c_str(), + argName.c_str(), + argName.c_str() + ); + } + + if (!isStatement) { + // Out pin: choose a Variable node matching ret type if that’s your convention, + // otherwise keep as a generic out. Here we assume you have AddOut. + idStr retVar = VariableNodeTypeForScriptType(retScript); + f->WriteFloatString("\t\t\tOut = AddOut<%s>(\"out\", \"Out\");\n", retVar.c_str()); + } + + f->WriteFloatString("\n\t\t\tWidth = 520;\n\t\t\tHeight = 140;\n\t\t\tAutoSize = true;\n"); + f->WriteFloatString("\t\t}\n\n"); + + // EmitStatement / EmitExpression + if (isStatement) { + f->WriteFloatString("\t\tpublic void EmitStatement(DoomEmitContext ctx) {\n"); + + // Resolve target expression: prefer connected, else self + f->WriteFloatString( + "\t\t\tstring targetExpr = \"self\";\n" + "\t\t\tvar tConn = Target.RealConnectedNode;\n" + "\t\t\tif (tConn != null && tConn.Count > 0 && tConn[0]?.Owner is IDoomExpressionNode tExpr) {\n" + "\t\t\t\ttargetExpr = tExpr.EmitExpression(ctx);\n" + "\t\t\t}\n\n" + ); + + // Args + f->WriteFloatString("\t\t\tvar args = \"\";\n"); + for (int a = 0; a < se.paramTypes.Num(); a++) { + const char* argScript = ScriptTypeForCppType(se.paramTypes[a]); + idStr defLit = DefaultLiteralForScriptType(argScript); + + idStr argName; + if (a < se.paramDecls.Num()) { + idStr tmp; + if (ExtractTrailingName(se.paramDecls[a], tmp)) argName = tmp; + } + if (argName.Length() == 0) argName = va("arg%d", a); + + idStr propName = CsSanitizeIdent(argName); + propName[0] = toupper(propName[0]); + + f->WriteFloatString("\t\t\t{\n"); + f->WriteFloatString("\t\t\t\tstring a%d = %s;\n", a, defLit.c_str()); + f->WriteFloatString("\t\t\t\tvar c%d = %s.RealConnectedNode;\n", a, propName.c_str()); + f->WriteFloatString("\t\t\t\tif (c%d != null && c%d.Count > 0) {\n", a, a); + f->WriteFloatString("\t\t\t\t\tvar owner = c%d[0]?.Owner;\n", a); + f->WriteFloatString("\t\t\t\t\tif (owner is IDoomExpressionNode expr) a%d = expr.EmitExpression(ctx);\n", a); + f->WriteFloatString("\t\t\t\t}\n"); + f->WriteFloatString("\t\t\t\targs += (args.Length == 0 ? \"\" : \", \") + a%d;\n", a); + f->WriteFloatString("\t\t\t}\n"); + } + + f->WriteFloatString( + "\n\t\t\tctx.Line($\"\\t{targetExpr}.%s( {args} );\");\n", + se.scriptName.c_str() + ); + f->WriteFloatString("\t\t}\n"); + } + else { + f->WriteFloatString("\t\tpublic string EmitExpression(DoomEmitContext ctx) {\n"); + + f->WriteFloatString( + "\t\t\tstring targetExpr = \"self\";\n" + "\t\t\tvar tConn = Target.RealConnectedNode;\n" + "\t\t\tif (tConn != null && tConn.Count > 0 && tConn[0]?.Owner is IDoomExpressionNode tExpr) {\n" + "\t\t\t\ttargetExpr = tExpr.EmitExpression(ctx);\n" + "\t\t\t}\n\n" + ); + + f->WriteFloatString("\t\t\tvar args = \"\";\n"); + for (int a = 0; a < se.paramTypes.Num(); a++) { + const char* argScript = ScriptTypeForCppType(se.paramTypes[a]); + idStr defLit = DefaultLiteralForScriptType(argScript); + + idStr argName; + if (a < se.paramDecls.Num()) { + idStr tmp; + if (ExtractTrailingName(se.paramDecls[a], tmp)) argName = tmp; + } + if (argName.Length() == 0) argName = va("arg%d", a); + + idStr propName = CsSanitizeIdent(argName); + propName[0] = toupper(propName[0]); + + f->WriteFloatString("\t\t\t{\n"); + f->WriteFloatString("\t\t\t\tstring a%d = %s;\n", a, defLit.c_str()); + f->WriteFloatString("\t\t\t\tvar c%d = %s.RealConnectedNode;\n", a, propName.c_str()); + f->WriteFloatString("\t\t\t\tif (c%d != null && c%d.Count > 0 && c%d[0]?.Owner is IDoomExpressionNode ex%d) {\n", a, a, a, a); + f->WriteFloatString("\t\t\t\t\ta%d = ex%d.EmitExpression(ctx);\n", a, a); + f->WriteFloatString("\t\t\t\t}\n"); + f->WriteFloatString("\t\t\t\targs += (args.Length == 0 ? \"\" : \", \") + a%d;\n", a); + f->WriteFloatString("\t\t\t}\n"); + } + + f->WriteFloatString( + "\n\t\t\treturn $\"{targetExpr}.%s( {args} )\";\n", + se.scriptName.c_str() + ); + f->WriteFloatString("\t\t}\n"); + } + + // close class + f->WriteFloatString("\t}\n\n"); + + emitted++; + } + } + + // close namespace + f->WriteFloatString("}\n"); + + fileSystem->CloseFile(f); + common->Printf("TypeInfoGen: wrote %d C# node(s) to %s\n", emitted, osPath.c_str()); +} + +static int CmpClassTypeNamePtr(const idClassTypeInfo* const* a, const idClassTypeInfo* const* b) { + return (*a)->typeName.Icmp((*b)->typeName); +} + +static idStr MakePrettyCommentPath(const idStr& osPath) { + // Convert to Doom-style backslashes and attempt to shorten to ..\..\code\... + // This is a best-effort heuristic, tweak to match your tree layout. + idStr p = osPath; + p.Replace("/", "\\"); + p.Replace("\\\\", "\\"); + + // Try to strip everything before "\code\" + int idx = p.Find("\\code\\"); + if (idx != -1) { + p = p.Mid(idx + 1, p.Length() - (idx + 1)); // "code\game\AFEntity.cpp" + p = "..\\..\\" + p; // "..\..\code\game\AFEntity.cpp" + } + return p; +} + +bool idTypeInfoGen::WriteRegisterClassesCPP(const char* outRelOrOsPath) const { + idStr osPath = fileSystem->RelativePathToOSPath(outRelOrOsPath); + idFile* f = fileSystem->OpenExplicitFileWrite(osPath); + if (!f) { + common->Warning("TypeInfoGen: couldn't open %s", osPath.c_str()); + return false; + } + + f->WriteFloatString( + "/*\n" + "===================================================================================\n" + "\n" + "\tAUTO-GENERATED FILE. DO NOT EDIT.\n" + "\tGenerated by TypeInfoGen (class registration)\n" + "\n" + "===================================================================================\n" + "*/\n\n" + ); + + // include whatever defines idClass and Register_() declarations live under in your fork + f->WriteFloatString("#pragma hdrstop\n\n"); + + // Build list of classes you want to register: + // You said: "for each class declaration" -> use the same filters as your CLASS_DECLARATION emission. + idList reg; + reg.Clear(); + + for (int i = 0; i < classes.Num(); i++) { + const idClassTypeInfo* c = classes[i]; + + // match your CLASS_DECLARATION generation constraints + if (!c->hasClassPrototype && !c->hasAbstractPrototype) continue; + if (c->unnamed || c->isTemplate) continue; + if (c->typeName.Length() == 0) continue; + + reg.Append(c); + } + + // Deterministic ordering + reg.Sort(CmpClassTypeNamePtr); + + f->WriteFloatString( + "/*\n" + "================\n" + "idClass::RegisterClasses\n" + "================\n" + "*/\n" + "void idClass::RegisterClasses( void ) {\n" + "\t#define REGISTER(name) void Register_##name(void); Register_##name();\n" + ); + + for (int i = 0; i < reg.Num(); i++) { + const idClassTypeInfo* c = reg[i]; + + f->WriteFloatString("\tREGISTER(%s);", c->typeName.c_str()); + f->WriteFloatString("\n"); + } + + f->WriteFloatString("\t#undef REGISTER\n"); + f->WriteFloatString("}\n"); + + fileSystem->CloseFile(f); + common->Printf("TypeInfoGen: wrote class registration to %s (%d classes)\n", osPath.c_str(), reg.Num()); + return true; } diff --git a/neo/engine/typeinfo/TypeInfoGen.h b/neo/engine/typeinfo/TypeInfoGen.h index 2d29e823..6878788f 100644 --- a/neo/engine/typeinfo/TypeInfoGen.h +++ b/neo/engine/typeinfo/TypeInfoGen.h @@ -74,7 +74,6 @@ public: int bits; }; - class rvmClassFunctionInfo { public: @@ -87,6 +86,40 @@ public: bool isValidFunction; }; +class idClassMethodInfo +{ +public: + idStr name; + idStr returnType; + idList paramTypes; + bool isConst = false; + bool isStatic = false; + + idList paramDecls; + idStr doc; +}; + +class idScriptEventInfo +{ +public: + idStr scriptName; + idStr scriptReturnType; + idStr methodName; + idStr methodReturnType; + idList paramTypes; + idStr inheritedFromBase; + + idList paramDecls; + idStr doc; +}; + +struct idStateFunctionInfo +{ + idStr stateName; + idStr methodName; + idStr doc; +}; + class idClassTypeInfo { public: @@ -96,7 +129,15 @@ public: bool unnamed; bool isTemplate; idList variables; - idList< rvmClassFunctionInfo> functions; + idList functions; + + idList methods; + idList scriptEvents; + idList stateFunctions; + + bool hasClassPrototype = false; + bool hasAbstractPrototype = false; + bool hasStatesPrototype = false; }; class idTypeInfoGen @@ -109,12 +150,17 @@ public: void CreateTypeInfo( const char* path ); void WriteTypeInfo( const char* fileName ) const; + bool WriteScriptEvents( const char* fileName ) const; + void WriteScriptEventsScript( const char* outRelOrOsPath ) const; + bool WriteRegisterClassesCPP( const char* outRelOrOsPath ) const; + void WriteRadiantSharpNodesCS( const char* outRelOrOsPath ) const; + private: idStrList defines; - idList constants; - idList enums; - idList classes; + idList constants; + idList enums; + idList classes; int numTemplates; int maxInheritance; @@ -123,14 +169,30 @@ private: int GetInheritance( const char* typeName ) const; int EvaluateIntegerString( const idStr& string ); float EvaluateFloatString( const idStr& string ); - idConstantInfo* FindConstant( const char* name ); + idConstantInfo* FindConstant( const char* name ); int GetIntegerConstant( const char* scope, const char* name, idParser& src ); float GetFloatConstant( const char* scope, const char* name, idParser& src ); int ParseArraySize( const char* scope, idParser& src ); void ParseConstantValue( const char* scope, idParser& src, idStr& value ); - idEnumTypeInfo* ParseEnumType( const char* scope, bool isTemplate, bool typeDef, idParser& src ); - idClassTypeInfo* ParseClassType( const char* scope, const char* templateArgs, bool isTemplate, bool typeDef, idParser& src ); + idEnumTypeInfo* ParseEnumType( const char* scope, bool isTemplate, bool typeDef, idParser& src ); + idClassTypeInfo* ParseClassType( const char* scope, const char* templateArgs, bool isTemplate, bool typeDef, idParser& src ); void ParseScope( const char* scope, bool isTemplate, idParser& src, idClassTypeInfo* typeInfo ); + + bool ParseIdScriptEventTag( idParser& src, idStr& outName, idStr& outReturnType ); + void ParseMethodParamTypes_AlreadyAteOpenParen( idParser& src, idList& outParamTypes ); + bool ParseIdStateFunctionTag( idParser& src, idStr& outStateName ); + + idStr BuildScriptEventsSnapshot() const; + const char* ScriptTypeForCppType( const idStr& inT ) const; + void ResolveScriptEventBaseOverlaps(); + idStr FindLowestBaseWithScriptEvent( const char* base, const idClassTypeInfo* derived, const idStr& scriptName ) const; + +public: + static void NormalizeTypeString( idStr& t ); + static bool StripTrailingParamName( idStr& param ); + static char EventCodeForType( const idStr& t ); + static bool IsSupportedEventType( const idStr& t ); + static void MakeEventDefSymbol( idStr& outSym, const idStr& className, const idStr& scriptName ); }; #endif /* !__TYPEINFOGEN_H__ */ diff --git a/neo/engine/typeinfo/main.cpp b/neo/engine/typeinfo/main.cpp index ee571dfa..c5fc47e1 100644 --- a/neo/engine/typeinfo/main.cpp +++ b/neo/engine/typeinfo/main.cpp @@ -46,7 +46,7 @@ idSession* session = NULL; int main( int argc, char** argv ) { - idStr fileName, sourcePath; + idStr fileName, sourcePath, fileNameScriptEvents; idTypeInfoGen* generator; idLib::common = common; @@ -65,7 +65,8 @@ int main( int argc, char** argv ) generator = new idTypeInfoGen; sourcePath = "doom3/game"; - fileName = "doom3/game/gamesys/GameTypeInfo"; + fileName = "doom3/game/gamesys/TypeInfoGen"; + fileNameScriptEvents = "doom3/game/gamesys/TypeInfoGen_Events"; generator->AddDefine( "__cplusplus" ); generator->AddDefine( "GAME_DLL" ); @@ -77,7 +78,12 @@ int main( int argc, char** argv ) generator->CreateTypeInfo( sourcePath ); generator->WriteTypeInfo( fileName ); - + if (generator->WriteScriptEvents(fileNameScriptEvents)) + { + generator->WriteScriptEventsScript("../base/script/doom_events.script"); + // generator->WriteRadiantSharpNodesCS("../" SOURCE_CODE_BASE_FOLDER "/tools/radiantsharp/nodes/generated/DoomNodes.generated.cs"); + generator->WriteRegisterClassesCPP("doom3/game/gamesys/TypeInfoGen_RegisterClasses.h"); + } delete generator; fileName.Clear();