]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - csprogs.c
some const fixes and type fixes found by gcc -combine
[xonotic/darkplaces.git] / csprogs.c
index 670ec099b19ae26743eb7c1bb95607e99d3d88aa..39dbc6ff664cd1adc5c4bf54dd76141cd107a4f6 100644 (file)
--- a/csprogs.c
+++ b/csprogs.c
@@ -130,7 +130,7 @@ qboolean CSQC_AddRenderEdict(prvm_edict_t *ed)
        float scale;
        prvm_eval_t *val;
        entity_render_t *entrender;
-       model_t *model;
+       dp_model_t *model;
        matrix4x4_t tagmatrix, matrix2;
 
        model = CL_GetModelFromEdict(ed);
@@ -243,6 +243,7 @@ qboolean CL_VM_InputEvent (qboolean down, int key, int ascii)
                else
                {
                        prog->globals.client->time = cl.time;
+                       prog->globals.client->self = cl.csqc_server2csqcentitynumber[cl.playerentity];
                        PRVM_G_FLOAT(OFS_PARM0) = !down; // 0 is down, 1 is up
                        PRVM_G_FLOAT(OFS_PARM1) = key;
                        PRVM_G_FLOAT(OFS_PARM2) = ascii;
@@ -265,6 +266,7 @@ qboolean CL_VM_UpdateView (void)
        CSQC_BEGIN
                //VectorCopy(cl.viewangles, oldangles);
                prog->globals.client->time = cl.time;
+               prog->globals.client->self = cl.csqc_server2csqcentitynumber[cl.playerentity];
                CSQC_SetGlobals();
                // clear renderable entity and light lists to prevent crashes if the
                // CSQC_UpdateView function does not call R_ClearScene as it should
@@ -289,6 +291,7 @@ qboolean CL_VM_ConsoleCommand (const char *cmd)
        if (prog->funcoffsets.CSQC_ConsoleCommand)
        {
                prog->globals.client->time = cl.time;
+               prog->globals.client->self = cl.csqc_server2csqcentitynumber[cl.playerentity];
                restorevm_tempstringsbuf_cursize = vm_tempstringsbuf.cursize;
                PRVM_G_INT(OFS_PARM0) = PRVM_SetTempString(cmd);
                PRVM_ExecuteProgram(prog->funcoffsets.CSQC_ConsoleCommand, "QC function CSQC_ConsoleCommand is missing");
@@ -310,6 +313,7 @@ qboolean CL_VM_Parse_TempEntity (void)
        {
                t = msg_readcount;
                prog->globals.client->time = cl.time;
+               prog->globals.client->self = cl.csqc_server2csqcentitynumber[cl.playerentity];
                PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Parse_TempEntity, "QC function CSQC_Parse_TempEntity is missing");
                r = CSQC_RETURNVAL;
                if(!r)
@@ -351,6 +355,7 @@ void CL_VM_Parse_StuffCmd (const char *msg)
        if(prog->funcoffsets.CSQC_Parse_StuffCmd)
        {
                prog->globals.client->time = cl.time;
+               prog->globals.client->self = cl.csqc_server2csqcentitynumber[cl.playerentity];
                restorevm_tempstringsbuf_cursize = vm_tempstringsbuf.cursize;
                PRVM_G_INT(OFS_PARM0) = PRVM_SetTempString(msg);
                PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Parse_StuffCmd, "QC function CSQC_Parse_StuffCmd is missing");
@@ -365,6 +370,7 @@ static void CL_VM_Parse_Print (const char *msg)
 {
        int restorevm_tempstringsbuf_cursize;
        prog->globals.client->time = cl.time;
+       prog->globals.client->self = cl.csqc_server2csqcentitynumber[cl.playerentity];
        restorevm_tempstringsbuf_cursize = vm_tempstringsbuf.cursize;
        PRVM_G_INT(OFS_PARM0) = PRVM_SetTempString(msg);
        PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Parse_Print, "QC function CSQC_Parse_Print is missing");
@@ -409,20 +415,21 @@ void CL_VM_Parse_CenterPrint (const char *msg)
        int restorevm_tempstringsbuf_cursize;
        if(!cl.csqc_loaded)
        {
-               SCR_CenterPrint((char*)msg);
+               SCR_CenterPrint(msg);
                return;
        }
        CSQC_BEGIN
        if(prog->funcoffsets.CSQC_Parse_CenterPrint)
        {
                prog->globals.client->time = cl.time;
+               prog->globals.client->self = cl.csqc_server2csqcentitynumber[cl.playerentity];
                restorevm_tempstringsbuf_cursize = vm_tempstringsbuf.cursize;
                PRVM_G_INT(OFS_PARM0) = PRVM_SetTempString(msg);
                PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Parse_CenterPrint, "QC function CSQC_Parse_CenterPrint is missing");
                vm_tempstringsbuf.cursize = restorevm_tempstringsbuf_cursize;
        }
        else
-               SCR_CenterPrint((char*)msg);
+               SCR_CenterPrint(msg);
        CSQC_END
 }
 
@@ -459,6 +466,7 @@ qboolean CL_VM_Event_Sound(int sound_num, int volume, int channel, float attenua
                if(prog->funcoffsets.CSQC_Event_Sound)
                {
                        prog->globals.client->time = cl.time;
+                       prog->globals.client->self = cl.csqc_server2csqcentitynumber[cl.playerentity];
                        PRVM_G_FLOAT(OFS_PARM0) = ent;
                        PRVM_G_FLOAT(OFS_PARM1) = channel;
                        PRVM_G_INT(OFS_PARM2) = PRVM_SetTempString(cl.sound_name[sound_num] );
@@ -519,6 +527,7 @@ float CL_VM_Event (float event)             //[515]: needed ? I'd say "YES", but don't know
        if(prog->funcoffsets.CSQC_Event)
        {
                prog->globals.client->time = cl.time;
+               prog->globals.client->self = cl.csqc_server2csqcentitynumber[cl.playerentity];
                PRVM_G_FLOAT(OFS_PARM0) = event;
                PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Event, "QC function CSQC_Event is missing");
                r = CSQC_RETURNVAL;
@@ -566,8 +575,6 @@ void CSQC_ReadEntities (void)
                                                ed = PRVM_ED_Alloc();
                                                ed->fields.client->entnum = realentnum;
                                                prog->globals.client->self = cl.csqc_server2csqcentitynumber[realentnum] = PRVM_EDICT_TO_PROG(ed);
-                                               PRVM_G_FLOAT(OFS_PARM0) = 1;
-                                               PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Ent_Update, "QC function CSQC_Ent_Update is missing");
                                        }
                                        else
                                        {
@@ -577,8 +584,10 @@ void CSQC_ReadEntities (void)
                                                // make sure no one gets wrong ideas
                                                prog->globals.client->self = 0;
                                                PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Ent_Spawn, "QC function CSQC_Ent_Spawn is missing");
-                                               cl.csqc_server2csqcentitynumber[realentnum] = PRVM_EDICT( PRVM_G_INT( OFS_RETURN ) );
+                                               prog->globals.client->self = cl.csqc_server2csqcentitynumber[realentnum] = PRVM_EDICT( PRVM_G_INT( OFS_RETURN ) );
                                        }
+                                       PRVM_G_FLOAT(OFS_PARM0) = 1;
+                                       PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Ent_Update, "QC function CSQC_Ent_Update is missing");
                                }
                                else {
                                        PRVM_G_FLOAT(OFS_PARM0) = 0;
@@ -755,6 +764,7 @@ void CL_VM_Init (void)
 
        // set time
        prog->globals.client->time = cl.time;
+       prog->globals.client->self = 0;
 
        prog->globals.client->mapname = cl.worldmodel ? PRVM_SetEngineString(cl.worldmodel->name) : PRVM_SetEngineString("");
        prog->globals.client->player_localentnum = cl.playerentity;
@@ -788,6 +798,7 @@ void CL_VM_ShutDown (void)
                return;
        CSQC_BEGIN
                prog->globals.client->time = cl.time;
+               prog->globals.client->self = 0;
                if (prog->funcoffsets.CSQC_Shutdown)
                        PRVM_ExecuteProgram(prog->funcoffsets.CSQC_Shutdown, "QC function CSQC_Shutdown is missing");
                PRVM_ResetProg();