]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - pr_execprogram.h
cleaned up pr_builtins array (now uses NULL instead of PF_fixme) and now reports...
[xonotic/darkplaces.git] / pr_execprogram.h
index 33dc3e0a7e27f4b9904683aee336660444d21bfa..10b4f7c20f2e742b8d679efc4806c2239d6d184d 100644 (file)
                                OPB->_int = OPA->_int;
                                break;
                        case OP_STORE_V:
-                               OPB->vector[0] = OPA->vector[0];
-                               OPB->vector[1] = OPA->vector[1];
-                               OPB->vector[2] = OPA->vector[2];
+                               OPB->ivector[0] = OPA->ivector[0];
+                               OPB->ivector[1] = OPA->ivector[1];
+                               OPB->ivector[2] = OPA->ivector[2];
                                break;
 
                        case OP_STOREP_F:
                                if (newf->first_statement < 0)
                                {
                                        // negative statements are built in functions
-                                       if ((-newf->first_statement) >= pr_numbuiltins)
-                                               Host_Error ("Bad builtin call number");
-                                       pr_builtins[-newf->first_statement] ();
+                                       int builtinnumber = -newf->first_statement;
+                                       pr_xfunction->builtinsprofile++;
+                                       if (builtinnumber < pr_numbuiltins && pr_builtins[builtinnumber])
+                                               pr_builtins[builtinnumber] ();
+                                       else
+                                               Host_Error ("No such builtin #%i", builtinnumber);
                                }
                                else
                                        st = pr_statements + PR_EnterFunction(newf);