NSMonster: Add support for actions (used in e.g. HLMDL) to query which seq

to play. This will be expanded shortly in-engine to support more formats...
This commit is contained in:
Marco Cawthorne 2022-01-06 19:27:08 -08:00
parent 799f21305d
commit 749424aa84
Signed by: eukara
GPG key ID: C196CD8BA993248A
5 changed files with 3850 additions and 3696 deletions

View file

@ -27,7 +27,6 @@ UseWorkaround(entity eTarget)
self = eTarget;
self.PlayerUse();
self = eOldSelf;
print("pressed\n");
}
void
@ -39,7 +38,6 @@ UnUseWorkaround(entity eTarget)
if (self.PlayerUseUnpressed)
self.PlayerUseUnpressed();
self = eOldSelf;
print("unpressed\n");
}
/*

View file

@ -14,6 +14,86 @@
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
typedef enum {
ACT_RESET = 0,
ACT_IDLE = 1i,
ACT_GUARD,
ACT_WALK,
ACT_RUN,
ACT_FLY,
ACT_SWIM,
ACT_HOP,
ACT_LEAP,
ACT_FALL,
ACT_LAND,
ACT_STRAFE_LEFT,
ACT_STRAFE_RIGHT,
ACT_ROLL_LEFT,
ACT_ROLL_RIGHT,
ACT_TURN_LEFT,
ACT_TURN_RIGHT,
ACT_CROUCH,
ACT_CROUCHIDLE,
ACT_STAND,
ACT_USE,
ACT_SIGNAL1,
ACT_SIGNAL2,
ACT_SIGNAL3,
ACT_TWITCH,
ACT_COWER,
ACT_SMALL_FLINCH,
ACT_BIG_FLINCH,
ACT_RANGE_ATTACK1,
ACT_RANGE_ATTACK2,
ACT_MELEE_ATTACK1,
ACT_MELEE_ATTACK2,
ACT_RELOAD,
ACT_ARM,
ACT_DISARM,
ACT_EAT,
ACT_DIESIMPLE,
ACT_DIEBACKWARD,
ACT_DIEFORWARD,
ACT_DIEVIOLENT,
ACT_BARNACLE_HIT,
ACT_BARNACLE_PULL,
ACT_BARNACLE_CHOMP,
ACT_BARNACLE_CHEW,
ACT_SLEEP,
ACT_INSPECT_FLOOR,
ACT_INSPECT_WALL,
ACT_IDLE_ANGRY,
ACT_WALK_HURT,
ACT_RUN_HURT,
ACT_HOVER,
ACT_GLIDE,
ACT_FLY_LEFT,
ACT_FLY_RIGHT,
ACT_DETECT_SCENT,
ACT_SNIFF,
ACT_BITE,
ACT_THREAT_DISPLAY,
ACT_FEAR_DISPLAY,
ACT_EXCITED,
ACT_SPECIAL_ATTACK1,
ACT_SPECIAL_ATTACK2,
ACT_COMBAT_IDLE,
ACT_WALK_SCARED,
ACT_RUN_SCARED,
ACT_VICTORY_DANCE,
ACT_DIE_HEADSHOT,
ACT_DIE_CHESTSHOT,
ACT_DIE_GUTSHOT,
ACT_DIE_BACKSHOT,
ACT_FLINCH_HEAD,
ACT_FLINCH_CHEST,
ACT_FLINCH_STOMACH,
ACT_FLINCH_LEFTARM,
ACT_FLINCH_RIGHTARM,
ACT_FLINCH_LEFTLEG,
ACT_FLINCH_RIGHTLEG,
} monster_activity_e;
/* if this is changed, it needs to be changed in the engine (server/sv_move.c)
* as well. */
typedef struct

View file

@ -46,19 +46,19 @@ NSMonster::Restore(string strKey, string strValue)
int
NSMonster::AnimIdle(void)
{
return (0);
return frameforaction(modelindex, ACT_IDLE);
}
int
NSMonster::AnimWalk(void)
{
return (0);
return frameforaction(modelindex, ACT_WALK);
}
int
NSMonster::AnimRun(void)
{
return (0);
return frameforaction(modelindex, ACT_RUN);
}
void

View file

@ -655,7 +655,7 @@ SV_ShouldPause(float newstatus)
//#define REEDICT 0
void
SV_PerformLoad(float fh)
SV_PerformLoad(float fh, float entcount, float playerslots)
{
entity e;
entity eold;
@ -727,12 +727,12 @@ SV_PerformLoad(float fh)
}
void
SV_PerformSave(float fh, float numents)
SV_PerformSave(float fh, float entcount, float playerslots)
{
float i = 0;
entity e;
for (i = 0; i < numents; i++) {
for (i = 0; i < entcount; i++) {
NSEntity willsave;
e = edict_num(i);

File diff suppressed because it is too large Load diff