// Evol functions. // Author: // 4144 // Jesusalva // Description: // Input utility functions // Variables: // none function script menuint { deletearray .@vals; .@menustr$ = ""; .@cnt = 0; for (.@f = 0; .@f < getargcount(); .@f = .@f + 2) { if (getarg(.@f) != "") { .@menustr$ = .@menustr$ + getarg(.@f) + ":"; .@vals[.@cnt] = getarg(.@f + 1); .@cnt ++; } } .@vals[.@cnt] = -1; @menu = 255; @menuret = -1; select(.@menustr$); if (@menu == 255) return -1; @menu --; if (@menu < 0 || @menu >= getarraysize(.@vals) - 1) return -1; @menuret = .@vals[@menu]; return @menuret; } function script menustr { deletearray .@vals$; .@menustr$ = ""; .@cnt = 0; for (.@f = 0; .@f < getargcount(); .@f = .@f + 2) { if (getarg(.@f) != "") { .@menustr$ = .@menustr$ + getarg(.@f) + ":"; .@vals$[.@cnt] = getarg(.@f + 1); .@cnt ++; } } @menu = 255; @menuret = -1; select(.@menustr$); if (@menu == 255) return ""; @menu --; if (@menu < 0 || @menu >= getarraysize(.@vals$)) return ""; @menuret$ = .@vals$[@menu]; return @menuret$; } // menuint2() function script menuint2 { .@ar$=getarg(0); .@vals=0; .@menustr$=""; if (getarraysize(.@ar$) % 2 != 0) Exception("Invalid array size", RB_DEFAULT|RB_ISFATAL); freeloop(true); for (.@f=0; .@f < getarraysize(.@ar$); .@f++) { // String vs Int if (.@f % 2 == 0) { .@menustr$+=getd(.@ar$+"["+.@f+"]")+":"; } else { array_push(.@vals, getd(.@ar$+"["+.@f+"]")); } } freeloop(false); // Do the request // We have: .@vals and .@menustr$ .@vals[.@cnt] = -1; @menu = 255; @menuret = -1; select(.@menustr$); if (@menu == 255) return -1; @menu --; if (@menu < 0 || @menu >= getarraysize(.@vals) - 1) return -1; @menuret = .@vals[@menu]; return @menuret; }