]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - pr_cmds.c
moved some Con_PrintToHistory code into Con_Print and reenabled talk.wav in GAME_NEXUIZ
[xonotic/darkplaces.git] / pr_cmds.c
index 82737bfba497908a131321476a53e7ea5816389b..0ef9ba718433801c4fe1e5884db218922fb91834 100644 (file)
--- a/pr_cmds.c
+++ b/pr_cmds.c
@@ -23,8 +23,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 cvar_t sv_aim = {CVAR_SAVE, "sv_aim", "2"}; //"0.93"}; // LordHavoc: disabled autoaim by default
 cvar_t pr_zone_min_strings = {0, "pr_zone_min_strings", "64"};
 
-mempool_t *pr_strings_mempool;
-
 // LordHavoc: added this to semi-fix the problem of using many ftos calls in a print
 #define STRINGTEMP_BUFFERS 16
 #define STRINGTEMP_LENGTH 4096
@@ -99,6 +97,7 @@ char *ENGINE_EXTENSIONS =
 "DP_GFX_SKYBOX "
 "DP_HALFLIFE_MAP "
 "DP_HALFLIFE_MAP_CVAR "
+"DP_HALFLIFE_SPRITE "
 "DP_INPUTBUTTONS "
 "DP_LITSPRITES "
 "DP_LITSUPPORT "
@@ -128,6 +127,7 @@ char *ENGINE_EXTENSIONS =
 "DP_QC_TRACE_MOVETYPE_WORLDONLY "
 "DP_QC_VECTORVECTORS "
 "DP_QUAKE2_MODEL "
+"DP_QUAKE2_SPRITE "
 "DP_QUAKE3_MODEL "
 "DP_REGISTERCVAR "
 "DP_SND_DIRECTIONLESSATTNNONE "
@@ -2604,15 +2604,16 @@ static void clippointtosurface(msurface_t *surface, vec3_t p, vec3_t out)
 {
        int i, j, k;
        float *v[3], facenormal[3], edgenormal[3], sidenormal[3], temp[3], offsetdist, dist, bestdist;
+       const int *e;
        bestdist = 1000000000;
        VectorCopy(p, out);
-       for (i = 0;i < surface->num_triangles;i++)
+       for (i = 0, e = (surface->groupmesh->data_element3i + 3 * surface->num_firsttriangle);i < surface->num_triangles;i++, e += 3)
        {
                // clip original point to each triangle of the surface and find the
                // triangle that is closest
-               v[0] = (surface->groupmesh->data_vertex3f + 3 * surface->num_firstvertex) + (surface->groupmesh->data_element3i + 3 * surface->num_firsttriangle)[i * 3 + 0] * 3;
-               v[1] = (surface->groupmesh->data_vertex3f + 3 * surface->num_firstvertex) + (surface->groupmesh->data_element3i + 3 * surface->num_firsttriangle)[i * 3 + 1] * 3;
-               v[2] = (surface->groupmesh->data_vertex3f + 3 * surface->num_firstvertex) + (surface->groupmesh->data_element3i + 3 * surface->num_firsttriangle)[i * 3 + 2] * 3;
+               v[0] = surface->groupmesh->data_vertex3f + e[0] * 3;
+               v[1] = surface->groupmesh->data_vertex3f + e[1] * 3;
+               v[2] = surface->groupmesh->data_vertex3f + e[2] * 3;
                TriangleNormal(v[0], v[1], v[2], facenormal);
                VectorNormalize(facenormal);
                offsetdist = DotProduct(v[0], facenormal) - DotProduct(p, facenormal);
@@ -2982,7 +2983,7 @@ void PF_strzone(void)
 {
        char *in, *out;
        in = G_STRING(OFS_PARM0);
-       out = Mem_Alloc(pr_strings_mempool, strlen(in) + 1);
+       out = PR_Alloc(strlen(in) + 1);
        strcpy(out, in);
        G_INT(OFS_RETURN) = PR_SetString(out);
 }
@@ -2990,7 +2991,7 @@ void PF_strzone(void)
 //void(string s) strunzone = #119; // removes a copy of a string from the string zone (you can not use that string again or it may crash!!!)
 void PF_strunzone(void)
 {
-       Mem_Free(G_STRING(OFS_PARM0));
+       PR_Free(G_STRING(OFS_PARM0));
 }
 
 //void(entity e, string s) clientcommand = #440; // executes a command string as if it came from the specified client
@@ -3716,19 +3717,16 @@ int pr_numbuiltins = sizeof(pr_builtin)/sizeof(pr_builtin[0]);
 
 void PR_Cmd_Init(void)
 {
-       pr_strings_mempool = Mem_AllocPool("pr_stringszone", 0, NULL);
        PR_Files_Init();
        PR_Search_Init();
 }
 
 void PR_Cmd_Shutdown(void)
 {
-       Mem_FreePool (&pr_strings_mempool);
 }
 
 void PR_Cmd_Reset(void)
 {
-       Mem_EmptyPool(pr_strings_mempool);
        PR_Search_Reset();
        PR_Files_CloseAll();
 }