Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define gb_max_numbers_default 1000
- int gb_max_numbers;
- int gb_numbers_inst;
- char * gb_number_active;
- int * gb_number_value;
- int * gb_number_min;
- int * gb_number_max;
- //// -- Internals
- int _gb_CheckNumberBounds(int n) {
- if (gb_number_min[n] > gb_number_max[n]) {
- int u;
- u = gb_number_min[n];
- gb_number_min[n] = gb_number_max[n];
- gb_number_max[n] = u;
- }
- }
- int _gb_CheckNumberValue(int n) {
- gb_number_value[n] = gb_ClampInt(gb_number_value[n],gb_number_min[n],gb_number_max[n]);
- }
- //// -- Instancing
- int gb_NewNumber(int v, int l, int h) {
- int u = gb_CharArrayFind(gb_number_active,gb_false,gb_numbers_inst,gb_max_numbers);
- if (u >= 0) {
- gb_numbers_inst = u;
- gb_number_active[u] = gb_true;
- gb_number_value[u] = v;
- gb_number_min[u] = l;
- gb_number_max[u] = h;
- _gb_CheckNumberBounds(u);
- _gb_CheckNumberValue(u);
- }
- else {
- gb_numbers_inst = 0;
- }
- return u;
- }
- //// -- Manipulation
- int gb_NumberActive(int n) {
- return gb_number_active[n];
- }
- int gb_SetNumber(int n, int v) {
- if (gb_NumberActive(n)) {
- gb_number_value[n] = gb_ClampInt(gb_number_value[n],gb_number_min[n],gb_number_max[n]);
- }
- }
- int gb_NumberValue(int n) {
- return gb_number_value[n];
- }
- int gb_NumberMin(int n) {
- return gb_number_min[n];
- }
- int gb_NumberMax(int n) {
- return gb_number_max[n];
- }
- int gb_SetNumberBounds(int n, int l, int h) {
- if (gb_NumberActive(n)) {
- gb_number_min[n] = l;
- gb_number_max[n] = h;
- _gb_CheckNumberBounds(n);
- _gb_CheckNumberValue(n);
- }
- }
- //// -- PreMod
- int gb_SetMaxNumbers(int n) {
- if (gb_SizeLock() == gb_false) {
- gb_max_numbers = n;
- if (gb_max_numbers <= 0) {
- gb_max_numbers = gb_max_numbers_default;
- }
- }
- else {
- SDL_Log("Cannot set Max Numbers :: Size Lock");
- }
- }
- //// -- Mod Constructor
- int gb_BeginNumbers() {
- gb_number_active = gb_CharArray(gb_max_numbers,gb_false);
- gb_number_value = gb_IntArray(gb_max_numbers,0);
- gb_number_min = gb_IntArray(gb_max_numbers,0);
- gb_number_max = gb_IntArray(gb_max_numbers,-1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement