- if (hitsound && (int)ent->fields.server->flags & FL_ONGROUND && sv_sound_land.string)
- SV_StartSound(ent, 0, sv_sound_land.string, 255, 1);
+ if (hitsound && (int)ent->fields.server->flags & FL_ONGROUND)
+ {
+ // DRESK - Check for Entity Land Event Function
+ movetypesteplandevent = PRVM_EDICTFIELDVALUE(ent, prog->fieldoffsets.movetypesteplandevent);
+
+ if(movetypesteplandevent->function)
+ { // Valid Function; Execute
+ // Prepare Parameters
+ // Assign Velocity at Impact
+ PRVM_G_VECTOR(OFS_PARM0)[0] = backupVelocity[0];
+ PRVM_G_VECTOR(OFS_PARM0)[1] = backupVelocity[1];
+ PRVM_G_VECTOR(OFS_PARM0)[2] = backupVelocity[2];
+ // Assign Self
+ prog->globals.server->self = PRVM_EDICT_TO_PROG(ent);
+ // Execute VM Function
+ PRVM_ExecuteProgram(movetypesteplandevent->function, "movetypesteplandevent: NULL function");
+ }
+ else
+ // Check for Engine Landing Sound
+ if(sv_sound_land.string)
+ SV_StartSound(ent, 0, sv_sound_land.string, 255, 1);
+ }