MCPcopy Create free account
hub / github.com/alliedmodders/sourcemod / AddGroup

Method AddGroup

core/logic/AdminCache.cpp:454–498  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

452}
453
454GroupId AdminCache::AddGroup(const char *group_name)
455{
456 if (m_Groups.contains(group_name))
457 return INVALID_GROUP_ID;
458
459 GroupId id;
460 AdminGroup *pGroup;
461 if (m_FreeGroupList != INVALID_GROUP_ID)
462 {
463 pGroup = (AdminGroup *)m_pMemory->GetAddress(m_FreeGroupList);
464 assert(pGroup->magic == GRP_MAGIC_UNSET);
465 id = m_FreeGroupList;
466 m_FreeGroupList = pGroup->next_grp;
467 } else {
468 id = m_pMemory->CreateMem(sizeof(AdminGroup), (void **)&pGroup);
469 }
470
471 pGroup->immunity_level = 0;
472 pGroup->immune_table = -1;
473 pGroup->magic = GRP_MAGIC_SET;
474 pGroup->next_grp = INVALID_GROUP_ID;
475 pGroup->pCmdGrpTable = NULL;
476 pGroup->pCmdTable = NULL;
477 pGroup->addflags = 0;
478
479 if (m_FirstGroup == INVALID_GROUP_ID)
480 {
481 m_FirstGroup = id;
482 m_LastGroup = id;
483 pGroup->prev_grp = INVALID_GROUP_ID;
484 } else {
485 AdminGroup *pPrev = (AdminGroup *)m_pMemory->GetAddress(m_LastGroup);
486 assert(pPrev->magic == GRP_MAGIC_SET);
487 pPrev->next_grp = id;
488 pGroup->prev_grp = m_LastGroup;
489 m_LastGroup = id;
490 }
491
492 int nameidx = m_pStrings->AddString(group_name);
493 pGroup = (AdminGroup *)m_pMemory->GetAddress(id);
494 pGroup->nameidx = nameidx;
495
496 m_Groups.insert(group_name, id);
497 return id;
498}
499
500GroupId AdminCache::FindGroupByName(const char *group_name)
501{

Callers 1

CreateAdmGroupFunction · 0.80

Calls 5

containsMethod · 0.45
GetAddressMethod · 0.45
CreateMemMethod · 0.45
AddStringMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected