template <class T> inline void Vector<T>::AddN(int n) { Chk(); ASSERT(n >= 0); if(items + n <= alloc) { ConstructArray(vector + items, vector + items + n); items += n; } else SetCountR(items + n); }
void Vector<T>::SetCount(int n) { Chk(); ASSERT(n >= 0); if(n == items) return; if(n < items) Trim(n); else { if(n > alloc) ReAllocF(n); ConstructArray(vector + items, vector + n); items = n; } }
struct Retinue* CreateRetinue(struct BigGuy* _Leader) { struct Retinue* _Retinue = malloc(sizeof(struct Retinue)); struct Settlement* _Home = PersonHome(_Leader->Person); _Retinue->Happiness = 50; _Retinue->Leader = _Leader; _Retinue->IsRecruiting = 0; _Retinue->FamilySz = 0; ConstructArray(&_Retinue->Warriors, 8); for(struct LnkLst_Node* _Itr = _Home->FreeWarriors.Front; _Itr != NULL; _Itr = _Itr->Next) { if(_Leader->Person == _Itr->Data) { LnkLstRemove(&_Home->FreeWarriors, _Itr); break; } } _Retinue->RecruitMod = 0; return _Retinue; }
void Vector<T>::InsertN(int q, int count) { ASSERT(count >= 0); ASSERT(q >= 0 && q <= items); RawInsert(q, count); ConstructArray(vector + q, vector + q + count); }