added DP_QC_STRFTIME extension
[xonotic/darkplaces.git] / prvm_cmds.c
index 568651c..4a5bcd0 100644 (file)
@@ -5,6 +5,7 @@
 // also applies here
 
 #include "prvm_cmds.h"
 // also applies here
 
 #include "prvm_cmds.h"
+#include <time.h>
 
 // LordHavoc: changed this to NOT use a return statement, so that it can be used in functions that must return a value
 void VM_Warning(const char *fmt, ...)
 
 // LordHavoc: changed this to NOT use a return statement, so that it can be used in functions that must return a value
 void VM_Warning(const char *fmt, ...)
@@ -688,6 +689,34 @@ void VM_ftoe(void)
 
 /*
 =========
 
 /*
 =========
+VM_strftime
+
+string strftime(float uselocaltime, string[, string ...])
+=========
+*/
+void VM_strftime(void)
+{
+       time_t t;
+       struct tm *tm;
+       char fmt[VM_STRINGTEMP_LENGTH];
+       char result[VM_STRINGTEMP_LENGTH];
+       VM_VarString(0, fmt, sizeof(fmt));
+       t = time(NULL);
+       if (PRVM_G_FLOAT(OFS_PARM0))
+               tm = localtime(&t);
+       else
+               tm = gmtime(&t);
+       if (!tm)
+       {
+               PRVM_G_FLOAT(OFS_RETURN) = 0;
+               return;
+       }
+       strftime(result, sizeof(result), fmt, tm);
+       PRVM_G_FLOAT(OFS_RETURN) = PRVM_SetTempString(result);
+}
+
+/*
+=========
 VM_spawn
 
 entity spawn()
 VM_spawn
 
 entity spawn()