]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - prvm_edict.c
don't upload the same ft2 font texture more than once
[xonotic/darkplaces.git] / prvm_edict.c
index d00023dd11ee68e2d101f0c93ce773e491f41dd0..e874eaae6602a9377fac137ddcfe98fc7aaa6e4d 100644 (file)
@@ -21,6 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 #include "quakedef.h"
 #include "progsvm.h"
+#include "csprogs.h"
 
 prvm_prog_t *prog;
 
@@ -648,7 +649,7 @@ void PRVM_ED_Print(prvm_edict_t *ed, const char *wildcard_fieldname)
        {
                d = &prog->fielddefs[i];
                name = PRVM_GetString(d->s_name);
-               if(strlen(name) > 1 && name[strlen(name)-2] == '_' && (name[strlen(name)-1] == 'x' || name[strlen(name)-1] == 'y' || name[strlen(name)-1] == 'z')
+               if(strlen(name) > 1 && name[strlen(name)-2] == '_' && (name[strlen(name)-1] == 'x' || name[strlen(name)-1] == 'y' || name[strlen(name)-1] == 'z'))
                        continue;       // skip _x, _y, _z vars
 
                // Check Field Name Wildcard
@@ -732,7 +733,7 @@ void PRVM_ED_Write (qfile_t *f, prvm_edict_t *ed)
                if(developer_entityparsing.integer)
                        Con_Printf("PRVM_ED_Write: at entity %d field %s\n", PRVM_NUM_FOR_EDICT(ed), name);
 
-               //if(strlen(name) > 1 && name[strlen(name)-2] == '_' && (name[strlen(name)-1] == 'x' || name[strlen(name)-1] == 'y' || name[strlen(name)-1] == 'z')
+               //if(strlen(name) > 1 && name[strlen(name)-2] == '_' && (name[strlen(name)-1] == 'x' || name[strlen(name)-1] == 'y' || name[strlen(name)-1] == 'z'))
                if(strlen(name) > 1 && name[strlen(name)-2] == '_')
                        continue;       // skip _x, _y, _z vars, and ALSO other _? vars as some mods expect them to be never saved (TODO: a gameplayfix for using the "more precise" condition above?)
 
@@ -2335,6 +2336,7 @@ void PRVM_LoadProgs (const char * filename, int numrequiredfunc, const char **re
        // later idea: include a list of authorized .po file checksums with the csprogs
        {
                qboolean deftrans = !!strcmp(PRVM_NAME, "client");
+               const char *realfilename = (strcmp(PRVM_NAME, "client") ? filename : csqc_progname.string);
                if(deftrans) // once we have dotranslate_ strings, ALWAYS use the opt-in method!
                {
                        for (i=0 ; i<prog->progs->numglobaldefs ; i++)
@@ -2351,8 +2353,8 @@ void PRVM_LoadProgs (const char * filename, int numrequiredfunc, const char **re
                }
                if(!strcmp(prvm_language.string, "dump"))
                {
-                       qfile_t *f = FS_OpenRealFile(va("%s.pot", filename), "w", false);
-                       Con_Printf("Dumping to %s.pot\n", filename);
+                       qfile_t *f = FS_OpenRealFile(va("%s.pot", realfilename), "w", false);
+                       Con_Printf("Dumping to %s.pot\n", realfilename);
                        if(f)
                        {
                                for (i=0 ; i<prog->progs->numglobaldefs ; i++)
@@ -2377,7 +2379,7 @@ void PRVM_LoadProgs (const char * filename, int numrequiredfunc, const char **re
                }
                else
                {
-                       po_t *po = PRVM_PO_Load(va("%s.%s.po", filename, prvm_language.string), prog->progs_mempool);
+                       po_t *po = PRVM_PO_Load(va("%s.%s.po", realfilename, prvm_language.string), prog->progs_mempool);
                        if(po)
                        {
                                for (i=0 ; i<prog->progs->numglobaldefs ; i++)