Beispiel #1
0
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);
}
Beispiel #2
0
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;
	}
}
Beispiel #3
0
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;
}
Beispiel #4
0
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);
}