home *** CD-ROM | disk | FTP | other *** search
-
- #import <gamekit/gamekit.h>
-
- static int _defaultBonusArray = 0;
-
- @implementation ArrayBonusTracker
-
- - init
- {
- return [self initForBonuses:&_defaultBonusArray count:1];
- }
-
- - initForBonuses:(int *)bonusArray count:(int)num
- { // we copy the array in...
- int i;
- // set up array before super init because it will call resetBonus,
- // which expects this data to be present already.
- if (valuesArray) free(valuesArray);
- valuesArray = (int *)NXZoneMalloc([self zone], sizeof(int) * num);
- for (i=0; i<num; i++) valuesArray[i] = bonusArray[i];
- count = num;
- [super init];
- return self;
- }
-
- - advanceBonus
- {
- bonusIndex++;
- if (bonusIndex >= count) bonusIndex = count - 1;
- value = valuesArray[bonusIndex];
- return self;
- }
-
- - retreatBonus
- {
- bonusIndex--;
- if (bonusIndex < 0) bonusIndex = 0;
- value = valuesArray[bonusIndex];
- return self;
- }
-
- - setMin:(int)newMin max:(int)newMax { return self; } // No-op
-
- - resetBonus
- {
- bonusIndex = 0;
- value = valuesArray[bonusIndex];
- return self;
- }
-
-
- @end
-