diff --git a/ruamoko/cl_menu/CvarRange.h b/ruamoko/cl_menu/CvarRange.h index afd08ff04..ff0460279 100644 --- a/ruamoko/cl_menu/CvarRange.h +++ b/ruamoko/cl_menu/CvarRange.h @@ -14,4 +14,15 @@ -(int)percentage; @end +@interface CvarIntRange : CvarObject +{ + int min, max, step; +} +-(id)initWithCvar:(string)cvname min:(int)_min max:(int)_max step:(int)_step; +-(void)inc; +-(void)dec; +-(float)value; +-(int)percentage; +@end + #endif//__CvarRange_h diff --git a/ruamoko/cl_menu/CvarRange.r b/ruamoko/cl_menu/CvarRange.r index a6b7cdf22..14ae9ee4b 100644 --- a/ruamoko/cl_menu/CvarRange.r +++ b/ruamoko/cl_menu/CvarRange.r @@ -41,3 +41,42 @@ } @end + +@implementation CvarIntRange + +-(id)initWithCvar:(string)cvname min:(int)_min max:(int)_max step:(int)_step +{ + self = [super initWithCvar: cvname]; + + min = _min; + max = _max; + step = _step; + + return self; +} + +-(void)inc +{ + local int val = Cvar_GetInteger (name); + val = min_max_cnt (min, max, step, val, 1); + Cvar_SetInteger (name, val); +} + +-(void)dec +{ + local int val = Cvar_GetInteger (name); + val = min_max_cnt (min, max, step, val, 0); + Cvar_SetInteger (name, val); +} + +-(float)value +{ + return Cvar_GetInteger (name); +} + +-(int)percentage +{ + return to_percentage(min, max, Cvar_GetInteger (name)); +} + +@end diff --git a/ruamoko/cl_menu/menu.plist b/ruamoko/cl_menu/menu.plist index bec17b43f..a5c1bf214 100644 --- a/ruamoko/cl_menu/menu.plist +++ b/ruamoko/cl_menu/menu.plist @@ -282,10 +282,10 @@ ); rect = "[70, 110, 224, 8]"; range = { - Class = CvarRange; + Class = CvarIntRange; Messages = ( (initWithCvar:min:max:step:, - "\"viewsize\"", 30.0, 120.0, 10.0) + "\"viewsize\"", 30, 120, 10) ); }; }