]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/command/rpn.qc
Merge remote-tracking branch 'origin/mrbougo/killspree_bugfix'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / command / rpn.qc
index 837b991845d3dffd4159cf792836aa62bab38a7f..5cca2db1ce666145fb7f339925daacaf3ce8f756 100644 (file)
@@ -1,3 +1,8 @@
+// ========================================
+//  RPN command code, written by divVerent
+//  Last updated: December 28th, 2011
+// ========================================
+
 string rpn_pop() 
 {
        if(rpn_sp > 0) {
@@ -50,9 +55,9 @@ void GenericCommand_rpn(float request, float argc, string command)
        {
                case CMD_REQUEST_COMMAND:
                {
-                       float i, j, f, n, f2, f3, rpnpos;
-                       vector rgb;
-                       string s, s2, c, rpncmd;
+                       float i, j, f, f2, f3, rpnpos;
+                       //vector rgb;
+                       string s, s2, rpncmd;
                        
                        if(!rpn_db)
                        {
@@ -63,9 +68,6 @@ void GenericCommand_rpn(float request, float argc, string command)
                        
                        if(argc >= 2)
                        {
-                               float rpnpos;
-                               string rpncmd;
-                               float f2, f3;
                                rpn_sp = 0;
                                rpn_error = FALSE;
                                for(rpnpos = 1; rpnpos < argc; ++rpnpos)
@@ -234,9 +236,9 @@ void GenericCommand_rpn(float request, float argc, string command)
                                                        i = stof(db_get(rpn_db, "stack.pointer"));
                                                        db_put(rpn_db, "stack.pointer", ftos(i+1));
                                                        db_put(rpn_db, strcat("stack.", ftos(i)), s);
+                                                       if(!i)
+                                                               db_put(rpn_db, "stack.pos", "0");
                                                }
-                                               if(!i)
-                                                       db_put(rpn_db, "stack.pos", "0");
                                        } else if(rpncmd == "dbpop") {
                                                i = stof(db_get(rpn_db, "stack.pointer"));
                                                if(i)
@@ -519,7 +521,7 @@ void GenericCommand_rpn(float request, float argc, string command)
                default:
                case CMD_REQUEST_USAGE:
                {
-                       print("  rpn EXPRESSION... - a RPN calculator.\n");
+                       print(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " rpn EXPRESSION...\n"));
                        print("    Operator description (x: string, s: set, f: float):\n");
                        print("    x pop ----------------------------->     : removes the top\n");
                        print("    x dup -----------------------------> x x : duplicates the top\n");
@@ -555,57 +557,3 @@ void GenericCommand_rpn(float request, float argc, string command)
                }
        }
 }
-
-float GameCommand_Generic(string command)
-{
-       if(argv(0) == "help")
-       {
-               print("  rpn EXPRESSION... - a RPN calculator.\n");
-               print("    Operator description (x: string, s: set, f: float):\n");
-               print("    x pop ----------------------------->     : removes the top\n");
-               print("    x dup -----------------------------> x x : duplicates the top\n");
-               print("    x x exch --------------------------> x x : swap the top two\n");
-               print("    /cvarname load --------------------> x   : loads a cvar\n");
-               print("    /cvarname x def ------------------->     : writes to a cvar\n");
-               print("    f f add|sub|mul|div|mod|max|min ---> f   : adds/... two numbers\n");
-               print("    f f eq|ne|gt|ge|lt|le -------------> f   : compares two numbers\n");
-               print("    f neg|abs|sgn|rand|floor|ceil------> f   : negates/... a number\n");
-               print("    f f f bound -----------------------> f   : bounds the middle number\n");
-               print("    f1 f2 b when ----------------------> f   : f1 if b, f2 otherwise\n");
-               print("    s s union|intersection|difference -> s   : set operations\n");
-               print("    s shuffle -------------------------> s   : randomly arrange elements\n");
-               print("    /key /value put ------------------->     : set a database key\n");
-               print("    /key get --------------------------> s   : get a database value\n");
-               print("    x dbpush -------------------------->     : pushes the top onto the database\n");
-               print("    dbpop|dbget -----------------------> x   : removes/reads DB's top\n");
-               print("    dblen|dbat ------------------------> f   : gets the DB's size/cursor pos\n");
-               print("    dbclr ----------------------------->     : clear the DB\n");
-               print("    s dbsave|dbload-------------------->     : save/load the DB to/from a file\n");
-               print("    x dbins --------------------------->     : moves the top into the DB\n");
-               print("    dbext|dbread ----------------------> x   : extract/get from the DB's cursor\n");
-               print("    f dbmov|dbgoto -------------------->     : move or set the DB's cursor\n");
-               print("    s localtime -----------------------> s   : formats the current local time\n");
-               print("    s gmtime --------------------------> s   : formats the current UTC time\n");
-               print("    time ------------------------------> f   : seconds since VM start\n");
-               print("    s /MD4 digest ---------------------> s   : MD4 digest\n");
-               print("    s /SHA256 digest ------------------> s   : SHA256 digest\n");
-               print("    s /formatstring sprintf1s ---------> s   : sprintf with 1 string (pad, cut)\n");
-               print("    Set operations operate on 'such''strings'.\n");
-               print("    Unknown tokens insert their cvar value.\n");
-               print("  maplist add map\n");
-               print("  maplist remove map\n");
-               print("  maplist shuffle\n");
-               print("  maplist cleanup\n");
-               print("  maplist maplist\n");
-               print("  maplist lsmaps\n");
-               print("  maplist lsnewmaps\n");
-               print("  addtolist variable addedvalue\n");
-               print("  records\n");
-               print("  rankings (map argument optional)\n");
-               print("  settemp cvar value\n");
-               print("  settemp_restore\n");
-               return TRUE;
-       }
-
-       else if(argv(0) == "rpn")
-       {
\ No newline at end of file