void CGuildList::Remove(CGuild *a2) { CGuild *i; // [sp+14h] [bp-4h]@1 for(i = this->Unk0; i; i = this->Unk0) { if(i == a2) break; i->nextguild(); } if(i) { if(i->prevguild()) i->prevguild()->nextguild(i->nextguild()); if(i->nextguild()) i->nextguild()->prevguild(i->prevguild()); if(i == this->Unk0) this->Unk0 = i->nextguild(); i->prevguild(0); i->nextguild(0); --this->Unk4; if(i) delete i; } }
void CGuildList::Reset(void) { for(CGuild *i = this->Unk0; i; i = this->Unk0) { this->Unk0 = i->nextguild(); i->DeleteAllChild(); if(i) delete i; } this->Unk4 = 0; }
CGuildMember *CGuildList::findmember(int a2) { CGuildMember *v4; // [sp+14h] [bp-4h]@1 v4 = 0; for(CGuild *i = this->Unk0; i; i = i->nextguild()) { v4 = i->findmember(a2, 1); if(v4) return v4; } return v4; }
CGuild *CGuildList::findguild(int a2) { for(CGuild *i = this->Unk0; i; i = i->nextguild()) { if(i->index() == a2) return i; if(i->leftchild()) { if(i->leftchild()->index() == a2) return i->leftchild(); if(i->leftchild()->leftchild()) { if(i->leftchild()->leftchild()->index() == a2) return i->leftchild()->leftchild(); } if(i->leftchild()->rightchild()) { if(i->leftchild()->rightchild()->index() == a2) return i->leftchild()->rightchild(); } } if(i->rightchild()) { if(i->rightchild()->index() == a2) return i->rightchild(); if(i->rightchild()->leftchild()) { if(i->rightchild()->leftchild()->index() == a2) return i->rightchild()->leftchild(); } if(i->rightchild()->rightchild()) { if(i->rightchild()->rightchild()->index() == a2) return i->rightchild()->rightchild(); } } } return 0; }