// This file is a part of Framsticks SDK. http://www.framsticks.com/ // Copyright (C) 1999-2015 Maciej Komosinski and Szymon Ulatowski. // See LICENSE.txt for details. #include "paramtabobj.h" int ParamTab::measureTab(const ParamEntry *pe) { int i = 0; while (pe->id) { i++; pe++; } return i; } void ParamTab::resize(int s) { if (s == siz) return; tab = (ParamEntry*)realloc(tab, sizeof(ParamEntry)*(s + 1)); siz = s; } int ParamTab::add(const ParamEntry* p, int count) { if (count < 0) count = measureTab(p); resize(siz + count); memmove(tab + siz - count, p, sizeof(ParamEntry)*count); memset(tab + siz, 0, sizeof(ParamEntry)); if (siz > 0) tab[0].flags = (paInt)(siz - tab[0].group); return siz - 1; } void ParamTab::remove(int i, int count) { memmove(tab + i, tab + i + count, sizeof(ParamEntry)*count); resize(siz - count); memset(tab + siz, 0, sizeof(ParamEntry)); if (siz > 0) tab[0].flags = (paInt)(siz - tab[0].group); }