]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - csprogs.c
make csqc entity sounds follow their entity
[xonotic/darkplaces.git] / csprogs.c
index 2bf194178b004845dfa98f8a192d5ca041344deb..3961e6bf85f38f4cb072b47afd9a8cc079d45ff2 100644 (file)
--- a/csprogs.c
+++ b/csprogs.c
@@ -13,6 +13,7 @@
 #define CSQC_RETURNVAL prog->globals.generic[OFS_RETURN]
 #define CSQC_BEGIN             csqc_tmpprog=prog;prog=0;PRVM_SetProg(PRVM_CLIENTPROG);
 #define CSQC_END               prog=csqc_tmpprog;
+
 static prvm_prog_t *csqc_tmpprog;
 
 //[515]: these are required funcs
@@ -926,3 +927,27 @@ void CL_VM_ShutDown (void)
        Con_Print("CSQC ^1unloaded\n");
        cl.csqc_loaded = false;
 }
+
+qboolean CL_VM_GetEntitySoundOrigin(int entnum, vec3_t out)
+{
+       prvm_edict_t *ed;
+       dp_model_t *mod;
+       qboolean r = 0;
+
+       CSQC_BEGIN;
+
+       ed = PRVM_EDICT_NUM(entnum - 32768);
+
+       if(!ed->priv.required->free)
+       {
+               mod = CL_GetModelFromEdict(ed);
+               VectorCopy(ed->fields.client->origin, out);
+               if (mod && mod->soundfromcenter)
+                       VectorMAMAM(1.0f, out, 0.5f, mod->normalmins, 0.5f, mod->normalmaxs, out);
+               r = 1;
+       }
+
+       CSQC_END;
+
+       return r;
+}