added DP_ASINACOSATANATAN2TAN extension which adds common trig functions missing...
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Thu, 23 Nov 2006 00:06:38 +0000 (00:06 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Thu, 23 Nov 2006 00:06:38 +0000 (00:06 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@6622 d7cf8633-e32d-0410-b094-e92efae38249

clvm_cmds.c
mvm_cmds.c
prvm_cmds.c
prvm_cmds.h
svvm_cmds.c

index 0e5a9e2..4e284d2 100644 (file)
@@ -49,6 +49,7 @@ char *vm_cl_extensions =
 "DP_MONSTERWALK "
 "DP_MOVETYPEBOUNCEMISSILE "
 "DP_MOVETYPEFOLLOW "
+"DP_QC_ASINACOSATANATAN2TAN "
 "DP_QC_CHANGEPITCH "
 "DP_QC_COPYENTITY "
 "DP_QC_CVAR_STRING "
@@ -2722,7 +2723,17 @@ VM_bufstr_get,                           // #466 string(float bufhandle, float string_index) bufstr_get
 VM_bufstr_set,                         // #467 void(float bufhandle, float string_index, string str) bufstr_set (DP_QC_STRINGBUFFERS)
 VM_bufstr_add,                         // #468 float(float bufhandle, string str, float order) bufstr_add (DP_QC_STRINGBUFFERS)
 VM_bufstr_free,                                // #469 void(float bufhandle, float string_index) bufstr_free (DP_QC_STRINGBUFFERS)
-e10, e10, e10                  // #470-499 (LordHavoc)
+NULL,                                          // #470
+VM_asin,                                       // #471 float(float s) VM_asin (DP_QC_ASINACOSATANATAN2TAN)
+VM_acos,                                       // #472 float(float c) VM_acos (DP_QC_ASINACOSATANATAN2TAN)
+VM_atan,                                       // #473 float(float t) VM_atan (DP_QC_ASINACOSATANATAN2TAN)
+VM_atan2,                                      // #474 float(float c, float s) VM_atan2 (DP_QC_ASINACOSATANATAN2TAN)
+VM_tan,                                                // #475 float(float a) VM_tan (DP_QC_ASINACOSATANATAN2TAN)
+NULL,                                          // #476
+NULL,                                          // #477
+NULL,                                          // #478
+NULL,                                          // #479
+e10, e10                       // #480-499 (LordHavoc)
 };
 
 const int vm_cl_numbuiltins = sizeof(vm_cl_builtins) / sizeof(prvm_builtin_t);
index 504760a..4391965 100644 (file)
@@ -4,7 +4,8 @@
 // Menu
 
 char *vm_m_extensions =
-"DP_CINEMATIC_DPV";
+"DP_CINEMATIC_DPV "
+"DP_QC_ASINACOSATANATAN2TAN";
 
 /*
 =========
@@ -910,7 +911,12 @@ prvm_builtin_t vm_m_builtins[] = {
        VM_cin_restart, // 465
        VM_drawline,    // 466
        0,0,0,0,        // 470
-       e10,                    // 480
+       VM_asin,                                        // #471 float(float s) VM_asin (DP_QC_ASINACOSATANATAN2TAN)
+       VM_acos,                                        // #472 float(float c) VM_acos (DP_QC_ASINACOSATANATAN2TAN)
+       VM_atan,                                        // #473 float(float t) VM_atan (DP_QC_ASINACOSATANATAN2TAN)
+       VM_atan2,                                       // #474 float(float c, float s) VM_atan2 (DP_QC_ASINACOSATANATAN2TAN)
+       VM_tan,                                         // #475 float(float a) VM_tan (DP_QC_ASINACOSATANATAN2TAN)
+       0,0,0,0,0,                      // 480
        e10,                    // 490
        e10,                    // 500
        e100,                   // 600
index 1f4baee..bca2573 100644 (file)
@@ -1279,6 +1279,67 @@ void VM_sqrt (void)
 }
 
 /*
+=========
+VM_asin
+
+float  asin(float)
+=========
+*/
+void VM_asin (void)
+{
+       VM_SAFEPARMCOUNT(1,VM_asin);
+       PRVM_G_FLOAT(OFS_RETURN) = asin(PRVM_G_FLOAT(OFS_PARM0));
+}
+
+/*
+=========
+VM_acos
+float  acos(float)
+=========
+*/
+void VM_acos (void)
+{
+       VM_SAFEPARMCOUNT(1,VM_acos);
+       PRVM_G_FLOAT(OFS_RETURN) = acos(PRVM_G_FLOAT(OFS_PARM0));
+}
+
+/*
+=========
+VM_atan
+float  atan(float)
+=========
+*/
+void VM_atan (void)
+{
+       VM_SAFEPARMCOUNT(1,VM_atan);
+       PRVM_G_FLOAT(OFS_RETURN) = atan(PRVM_G_FLOAT(OFS_PARM0));
+}
+
+/*
+=========
+VM_atan2
+float  atan2(float,float)
+=========
+*/
+void VM_atan2 (void)
+{
+       VM_SAFEPARMCOUNT(2,VM_atan2);
+       PRVM_G_FLOAT(OFS_RETURN) = atan2(PRVM_G_FLOAT(OFS_PARM0), PRVM_G_FLOAT(OFS_PARM1));
+}
+
+/*
+=========
+VM_tan
+float  tan(float)
+=========
+*/
+void VM_tan (void)
+{
+       VM_SAFEPARMCOUNT(1,VM_tan);
+       PRVM_G_FLOAT(OFS_RETURN) = tan(PRVM_G_FLOAT(OFS_PARM0));
+}
+
+/*
 =================
 VM_randomvec
 
index 0404e76..2cc2a89 100644 (file)
@@ -270,6 +270,11 @@ void VM_max (void);
 void VM_bound (void);
 void VM_pow (void);
 void VM_copyentity (void);
+void VM_asin (void);
+void VM_acos (void);
+void VM_atan (void);
+void VM_atan2 (void);
+void VM_tan (void);
 
 void VM_Files_Init(void);
 void VM_Files_CloseAll(void);
index f8bc0d8..1bf84cb 100644 (file)
@@ -48,6 +48,7 @@ char *vm_sv_extensions =
 "DP_MONSTERWALK "
 "DP_MOVETYPEBOUNCEMISSILE "
 "DP_MOVETYPEFOLLOW "
+"DP_QC_ASINACOSATANATAN2TAN "
 "DP_QC_CHANGEPITCH "
 "DP_QC_COPYENTITY "
 "DP_QC_CVAR_STRING "
@@ -2850,11 +2851,11 @@ VM_bufstr_set,                          // #467 void(float bufhandle, float string_index, string str)
 VM_bufstr_add,                         // #468 float(float bufhandle, string str, float order) bufstr_add (DP_QC_STRINGBUFFERS)
 VM_bufstr_free,                                // #469 void(float bufhandle, float string_index) bufstr_free (DP_QC_STRINGBUFFERS)
 PF_SV_AddStat,                         // #470 void(float index, float type, .void field) SV_AddStat (EXT_CSQC)
-NULL,                                          // #471
-NULL,                                          // #472
-NULL,                                          // #473
-NULL,                                          // #474
-NULL,                                          // #475
+VM_asin,                                       // #471 float(float s) VM_asin (DP_QC_ASINACOSATANATAN2TAN)
+VM_acos,                                       // #472 float(float c) VM_acos (DP_QC_ASINACOSATANATAN2TAN)
+VM_atan,                                       // #473 float(float t) VM_atan (DP_QC_ASINACOSATANATAN2TAN)
+VM_atan2,                                      // #474 float(float c, float s) VM_atan2 (DP_QC_ASINACOSATANATAN2TAN)
+VM_tan,                                                // #475 float(float a) VM_tan (DP_QC_ASINACOSATANATAN2TAN)
 NULL,                                          // #476
 NULL,                                          // #477
 NULL,                                          // #478