Convert several files to pure Objective-C
FossilOrigin-Name: eac9e3d9480c641e752bce15f24de48bbb77705cd44ef2bb9a04603ca04c67e1
This commit is contained in:
parent
2085a651bd
commit
565a845aaf
13 changed files with 84 additions and 55 deletions
72
src/Variable.m
Normal file
72
src/Variable.m
Normal file
|
@ -0,0 +1,72 @@
|
|||
#import "Variable.h"
|
||||
|
||||
#include "cube.h"
|
||||
|
||||
@implementation Variable
|
||||
+ (instancetype)variableWithName:(OFString *)name
|
||||
min:(int)min
|
||||
max:(int)max
|
||||
storage:(int *)storage
|
||||
function:(void (*__cdecl)())function
|
||||
persisted:(bool)persisted
|
||||
{
|
||||
return [[self alloc] initWithName:name
|
||||
min:min
|
||||
max:max
|
||||
storage:storage
|
||||
function:function
|
||||
persisted:persisted];
|
||||
}
|
||||
|
||||
- (instancetype)initWithName:(OFString *)name
|
||||
min:(int)min
|
||||
max:(int)max
|
||||
storage:(int *)storage
|
||||
function:(void (*__cdecl)())function
|
||||
persisted:(bool)persisted
|
||||
{
|
||||
self = [super initWithName:name];
|
||||
|
||||
_min = min;
|
||||
_max = max;
|
||||
_storage = storage;
|
||||
_function = function;
|
||||
_persisted = persisted;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)printValue
|
||||
{
|
||||
conoutf(@"%@ = %d", self.name, *_storage);
|
||||
}
|
||||
|
||||
- (void)setValue:(int)value
|
||||
{
|
||||
bool outOfRange = false;
|
||||
|
||||
if (_min > _max) {
|
||||
conoutf(@"variable is read-only");
|
||||
return;
|
||||
}
|
||||
|
||||
if (value < _min) {
|
||||
value = _min;
|
||||
outOfRange = true;
|
||||
}
|
||||
|
||||
if (value > _max) {
|
||||
value = _max;
|
||||
outOfRange = true;
|
||||
}
|
||||
|
||||
if (outOfRange)
|
||||
conoutf(@"valid range for %@ is %d..%d", self.name, _min, _max);
|
||||
|
||||
*_storage = value;
|
||||
|
||||
if (_function != NULL)
|
||||
// call trigger function if available
|
||||
_function();
|
||||
}
|
||||
@end
|
Loading…
Add table
Add a link
Reference in a new issue