X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=svvm_cmds.c;h=acc1d184086680dbf371ad48f9262a26bae80342;hb=8cabb44fef43e034df597cf69427d444203f3719;hp=f5d3293b35977745f4db73c26f2e5fa0a306d453;hpb=d35a3da5c044ae514578d133eced5a9e8ee17bb0;p=xonotic%2Fdarkplaces.git diff --git a/svvm_cmds.c b/svvm_cmds.c index f5d3293b..acc1d184 100644 --- a/svvm_cmds.c +++ b/svvm_cmds.c @@ -21,7 +21,8 @@ const char *vm_sv_extensions = "DP_CON_STARTMAP " "DP_CRYPTO " "DP_CSQC_BINDMAPS " -"DP_CSQC_ENTITYNOCULL " +"DP_CSQC_ENTITYWORLDOBJECT " +"DP_CSQC_ENTITYMODELLIGHT " "DP_CSQC_ENTITYTRANSPARENTSORTING_OFFSET " "DP_CSQC_MULTIFRAME_INTERPOLATION " "DP_CSQC_BOXPARTICLES " @@ -53,7 +54,6 @@ const char *vm_sv_extensions = "DP_ENT_SCALE " "DP_ENT_TRAILEFFECTNUM " "DP_ENT_VIEWMODEL " -"DP_GECKO_SUPPORT " "DP_GFX_EXTERNALTEXTURES " "DP_GFX_EXTERNALTEXTURES_PERMAP " "DP_GFX_FOG " @@ -87,6 +87,8 @@ const char *vm_sv_extensions = "DP_QC_CVAR_DESCRIPTION " "DP_QC_CVAR_STRING " "DP_QC_CVAR_TYPE " +"DP_QC_DIGEST " +"DP_QC_DIGEST_SHA256 " "DP_QC_EDICT_NUM " "DP_QC_ENTITYDATA " "DP_QC_ENTITYSTRING " @@ -107,6 +109,7 @@ const char *vm_sv_extensions = "DP_QC_GETTAGINFO_BONEPROPERTIES " "DP_QC_GETTIME " "DP_QC_GETTIME_CDTRACK " +"DP_QC_I18N " "DP_QC_LOG " "DP_QC_MINMAXBOUND " "DP_QC_MULTIPLETEMPSTRINGS " @@ -142,6 +145,7 @@ const char *vm_sv_extensions = "DP_SND_DIRECTIONLESSATTNNONE " "DP_SND_FAKETRACKS " "DP_SND_SOUND7_WIP1 " +"DP_SND_SOUND7_WIP2 " "DP_SND_OGGVORBIS " "DP_SND_SETPARAMS " "DP_SND_STEREOWAV " @@ -532,7 +536,7 @@ static void VM_SV_sound (void) if (prog->argc < 6) pitchchange = 0; else - pitchchange = PRVM_G_FLOAT(OFS_PARM5); + pitchchange = PRVM_G_FLOAT(OFS_PARM5) * 0.01f; if (prog->argc < 7) { @@ -566,7 +570,7 @@ static void VM_SV_sound (void) return; } - SV_StartSound (entity, channel, sample, volume, attenuation, flags & CHANFLAG_RELIABLE); + SV_StartSound (entity, channel, sample, volume, attenuation, flags & CHANFLAG_RELIABLE, pitchchange); } /* @@ -584,14 +588,16 @@ static void VM_SV_pointsound(void) const char *sample; int volume; float attenuation; + float pitchchange; vec3_t org; - VM_SAFEPARMCOUNT(4, VM_SV_pointsound); + VM_SAFEPARMCOUNTRANGE(4, 5, VM_SV_pointsound); VectorCopy(PRVM_G_VECTOR(OFS_PARM0), org); sample = PRVM_G_STRING(OFS_PARM1); volume = (int)(PRVM_G_FLOAT(OFS_PARM2) * 255); attenuation = PRVM_G_FLOAT(OFS_PARM3); + pitchchange = prog->argc < 5 ? 0 : PRVM_G_FLOAT(OFS_PARM4) * 0.01f; if (volume < 0 || volume > 255) { @@ -605,7 +611,7 @@ static void VM_SV_pointsound(void) return; } - SV_StartPointSound (org, sample, volume, attenuation); + SV_StartPointSound (org, sample, volume, attenuation, pitchchange); } /* @@ -987,7 +993,7 @@ static void VM_SV_findradius (void) maxs[0] = org[0] + (radius + 1); maxs[1] = org[1] + (radius + 1); maxs[2] = org[2] + (radius + 1); - numtouchedicts = World_EntitiesInBox(&sv.world, mins, maxs, MAX_EDICTS, touchedicts); + numtouchedicts = SV_EntitiesInBox(mins, maxs, MAX_EDICTS, touchedicts); if (numtouchedicts > MAX_EDICTS) { // this never happens @@ -2309,7 +2315,7 @@ static void VM_SV_clientcommand (void) temp_client = host_client; host_client = svs.clients + i; - Cmd_ExecuteString (PRVM_G_STRING(OFS_PARM1), src_client); + Cmd_ExecuteString (PRVM_G_STRING(OFS_PARM1), src_client, true); host_client = temp_client; } @@ -3783,6 +3789,16 @@ VM_sprintf, // #627 string sprintf(string format, ...) VM_getsurfacenumtriangles, // #628 float(entity e, float s) getsurfacenumpoints (DP_QC_GETSURFACETRIANGLE) VM_getsurfacetriangle, // #629 vector(entity e, float s, float n) getsurfacepoint (DP_QC_GETSURFACETRIANGLE) NULL, // #630 +NULL, // #631 +NULL, // #632 +NULL, // #633 +NULL, // #634 +NULL, // #635 +NULL, // #636 +NULL, // #637 +NULL, // #638 +VM_digest_hex, // #639 +NULL, // #640 }; const int vm_sv_numbuiltins = sizeof(vm_sv_builtins) / sizeof(prvm_builtin_t);