extern cvar_t v_flipped;
extern cvar_t r_equalize_entities_fullbright;
+r_refdef_view_t csqc_original_r_refdef_view;
+
sfx_t *S_FindName(const char *name);
int Sbar_GetSortedPlayerIndex (int index);
void Sbar_SortFrags (void);
}
org = PRVM_G_VECTOR(OFS_PARM1);
VectorCopy (org, PRVM_clientedictvector(e, origin));
+ if(e->priv.required->mark == PRVM_EDICT_MARK_WAIT_FOR_SETORIGIN)
+ e->priv.required->mark = PRVM_EDICT_MARK_SETORIGIN_CAUGHT;
CL_LinkEdict(e);
}
}
CL_VM_GetEntitySoundOrigin(MAX_EDICTS + PRVM_NUM_FOR_EDICT(entity), org);
- S_StartSound(MAX_EDICTS + PRVM_NUM_FOR_EDICT(entity), channel, S_FindName(sample), org, volume, attenuation);
+ S_StartSound_StartPosition_Flags(MAX_EDICTS + PRVM_NUM_FOR_EDICT(entity), channel, S_FindName(sample), org, volume, attenuation, 0, flags, pitchchange > 0.0f ? pitchchange * 0.01f : 1.0f);
}
// #483 void(vector origin, string sample, float volume, float attenuation) pointsound
// clear renderable entity and light lists
r_refdef.scene.numentities = 0;
r_refdef.scene.numlights = 0;
- // FIXME: restore these to the values from VM_CL_UpdateView
- r_refdef.view.x = 0;
- r_refdef.view.y = 0;
- r_refdef.view.z = 0;
- r_refdef.view.width = vid.width;
- r_refdef.view.height = vid.height;
- r_refdef.view.depth = 1;
- // FIXME: restore frustum_x/frustum_y
- r_refdef.view.useperspective = true;
- r_refdef.view.frustum_y = tan(scr_fov.value * M_PI / 360.0) * (3.0/4.0) * cl.viewzoom;
- r_refdef.view.frustum_x = r_refdef.view.frustum_y * (float)r_refdef.view.width / (float)r_refdef.view.height / vid_pixelheight.value;
- r_refdef.view.frustum_x *= r_refdef.frustumscale_x;
- r_refdef.view.frustum_y *= r_refdef.frustumscale_y;
- r_refdef.view.ortho_x = scr_fov.value * (3.0 / 4.0) * (float)r_refdef.view.width / (float)r_refdef.view.height / vid_pixelheight.value;
- r_refdef.view.ortho_y = scr_fov.value * (3.0 / 4.0);
- r_refdef.view.clear = true;
- r_refdef.view.isoverlay = false;
+ // restore the view settings to the values that VM_CL_UpdateView received from the client code
+ r_refdef.view = csqc_original_r_refdef_view;
VectorCopy(cl.csqc_vieworiginfromengine, cl.csqc_vieworigin);
VectorCopy(cl.csqc_viewanglesfromengine, cl.csqc_viewangles);
cl.csqc_vidvars.drawworld = r_drawworld.integer != 0;
rtexture_t *tex = polys->data_triangles[surfacelist[surfacelistindex]].texture;
int drawflag = polys->data_triangles[surfacelist[surfacelistindex]].drawflag;
DrawQ_ProcessDrawFlag(drawflag, polys->data_triangles[surfacelist[surfacelistindex]].hasalpha);
- R_SetupShader_Generic(tex, NULL, GL_MODULATE, 1, false, false);
+ R_SetupShader_Generic(tex, NULL, GL_MODULATE, 1, false, false, false);
numtriangles = 0;
for (;surfacelistindex < numsurfaces;surfacelistindex++)
{
NULL, // #636
NULL, // #637
VM_CL_RotateMoves, // #638
-NULL, // #639
+VM_digest_hex, // #639
+NULL, // #640
};
const int vm_cl_numbuiltins = sizeof(vm_cl_builtins) / sizeof(prvm_builtin_t);