Changeset 1916


Ignore:
Timestamp:
06/14/12 08:07:08 (11 months ago)
Author:
philmoz
Message:

Update for script '@range' parameter option to support signed and unsigned ranges.

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/core/gui.c

    r1901 r1916  
    13531353            if (script_range_values[n] != 0) 
    13541354            { 
    1355                 if (script_range_values[n] == MENU_MINMAX(0,1)) 
    1356                 { 
    1357                     script_submenu_items[p].type = MENUITEM_BOOL; 
    1358                 } 
    1359                 else 
    1360                 { 
    1361                     script_submenu_items[p].type |= MENUITEM_F_MINMAX; 
    1362                     script_submenu_items[p].arg = script_range_values[n]; 
    1363                 } 
     1355                script_submenu_items[p].type = script_range_types[n]; 
     1356                script_submenu_items[p].arg = script_range_values[n]; 
    13641357            } 
    13651358            else if (script_named_counts[n] != 0) 
  • trunk/core/script.c

    r1901 r1916  
    105105 
    106106char script_params[SCRIPT_NUM_PARAMS][28];                  // Parameter title 
    107 int script_param_order[SCRIPT_NUM_PARAMS];                  // Ordered as_in_script list of variables ( [idx] = id_of_var ) 
     107short script_param_order[SCRIPT_NUM_PARAMS];                // Ordered as_in_script list of variables ( [idx] = id_of_var ) 
    108108                                                            // to display in same order in script 
    109109int script_range_values[SCRIPT_NUM_PARAMS];                 // Min/Max values for param validation 
     110short script_range_types[SCRIPT_NUM_PARAMS];                // Specifies if range values is signed (-9999-32767) or unsigned (0-65535) 
     111                                                            // Note: -9999 limit on negative values is due to current gui_menu code (and because menu only displays chars) 
    110112const char **script_named_values[SCRIPT_NUM_PARAMS];        // Array of list values for named parameters 
    111113int script_named_counts[SCRIPT_NUM_PARAMS];                 // Count of # of entries in each script_list_values array 
     
    211213        if (!update || script_params_update[n]) 
    212214        { 
    213             short min = strtol(ptr,NULL,0); 
     215            int min = strtol(ptr,NULL,0); 
    214216            ptr = skip_whitespace(skip_token(ptr)); 
    215             short max = strtol(ptr,NULL,0); 
     217            int max = strtol(ptr,NULL,0); 
    216218            script_range_values[n] = MENU_MINMAX(min,max); 
     219            if ((min == 0) && (max == 1)) 
     220                script_range_types[n] = MENUITEM_BOOL; 
     221            else if ((min >= 0) && (max >= 0))  
     222                script_range_types[n] = MENUITEM_INT|MENUITEM_F_MINMAX|MENUITEM_F_UNSIGNED; 
     223            else 
     224                script_range_types[n] = MENUITEM_INT|MENUITEM_F_MINMAX; 
    217225        } 
    218226    } // ??? else produce error message 
  • trunk/include/script.h

    r1901 r1916  
    2020extern char script_params[SCRIPT_NUM_PARAMS][28]; 
    2121extern int script_range_values[SCRIPT_NUM_PARAMS]; 
    22 extern int script_param_order[SCRIPT_NUM_PARAMS]; 
     22extern short script_range_types[SCRIPT_NUM_PARAMS]; 
     23extern short script_param_order[SCRIPT_NUM_PARAMS]; 
    2324extern const char **script_named_values[SCRIPT_NUM_PARAMS]; 
    2425extern int script_named_counts[SCRIPT_NUM_PARAMS]; 
Note: See TracChangeset for help on using the changeset viewer.