"""Execute production recruitment admission against native bracket adapters.""" from pathlib import Path import subprocess,tempfile root=Path(__file__).resolve().parents[2] s=(root/'src/server/game/World/AdventureGroupMgr.cpp').read_text();a=s.index('bool BattlegroundCompatible(');b=s.index('{',a);end=b+1;depth=1 while depth: depth+=(s[end]=='{')-(s[end]=='}');end+=1 c=s.index('bool BrowserOfferEnabled(');d=s.index('{',c);ce=d+1;depth=1 while depth: depth+=(s[ce]=='{')-(s[ce]=='}');ce+=1 code=r''' #include constexpr unsigned BATTLEGROUND_WS=2,BATTLEGROUND_RB=32; struct Player{unsigned level;unsigned getLevel(){return level;}}; struct BG{unsigned GetMapId(){return 489;}}; struct Mgr{bool available=true;unsigned selected=0;BG bg;BG*GetBattlegroundTemplate(unsigned id){selected=id;return available?&bg:nullptr;}}manager;auto sBattlegroundMgr=&manager; struct Bracket{unsigned id;unsigned GetBracketId()const{return id;}}; struct DB{Bracket brackets[5]={{0},{1},{2},{3},{4}};Bracket const*GetBattlegroundBracketByLevel(unsigned map,unsigned level){assert(map==489);if(level<10)return nullptr;return &brackets[level<18?0:level<30?1:level<45?2:level<85?3:4];}}sDBCManager; '''+s[a:end]+r''' namespace lfg{constexpr unsigned LFG_TYPE_RAID=2,LFG_OPTION_ENABLE_RAID_BROWSER=2,LFG_OPTION_ENABLE_DUNGEON_FINDER=1;struct LFGDungeonData{unsigned type;bool raidMap;};} struct LfgMgr{unsigned options=1;bool isOptionEnabled(unsigned value){return (options&value)!=0;}}lfgManager;auto sLFGMgr=&lfgManager; '''+s[c:ce]+r''' int main(){ lfg::LFGDungeonData dragonSoul{1,true},legacyRaid{2,true},dungeon{1,false}; assert(BrowserOfferEnabled(dragonSoul)&&BrowserOfferEnabled(dungeon)&&!BrowserOfferEnabled(legacyRaid)); lfgManager.options=2;assert(!BrowserOfferEnabled(dragonSoul)&&!BrowserOfferEnabled(dungeon)&&BrowserOfferEnabled(legacyRaid)); lfgManager.options=0;assert(!BrowserOfferEnabled(dragonSoul)&&!BrowserOfferEnabled(legacyRaid)); Player a{10},b{10};assert(BattlegroundCompatible(&a,&b)&&manager.selected==BATTLEGROUND_WS); a.level=9;assert(!BattlegroundCompatible(&a,&b)); a.level=17;b.level=18;assert(!BattlegroundCompatible(&a,&b)); // custom native boundary, not a hardcoded five-level formula a.level=30;b.level=34;assert(BattlegroundCompatible(&a,&b)); a.level=44;b.level=45;assert(!BattlegroundCompatible(&a,&b)); a.level=45;b.level=44;assert(!BattlegroundCompatible(&a,&b)); a.level=45;b.level=46;assert(BattlegroundCompatible(&a,&b)&&manager.selected==BATTLEGROUND_RB); a.level=85;b.level=84;assert(!BattlegroundCompatible(&a,&b)); b.level=85;assert(BattlegroundCompatible(&a,&b));manager.available=false;assert(!BattlegroundCompatible(&a,&b)); } ''' with tempfile.TemporaryDirectory() as directory: p=Path(directory);(p/'brackets.cpp').write_text(code) subprocess.run(['g++','-std=c++17',str(p/'brackets.cpp'),'-o',str(p/'brackets')],check=True) subprocess.run([str(p/'brackets')],check=True) print('Production BG recruitment uses native brackets, minimum levels, random eligibility and available templates; native Type1 LFR and legacy Type2 browser options.')