UnitGroupManager::UnitGroupManager() { TheUnitGroupManager = this; for(std::set<BWAPI::Unit*>::iterator i=BWAPI::Broodwar->getAllUnits().begin();i!=BWAPI::Broodwar->getAllUnits().end(); ++i) { onUnitDiscover(*i); } neutral=NULL; for(std::set<BWAPI::Player*>::iterator i=BWAPI::Broodwar->getPlayers().begin();i!=BWAPI::Broodwar->getPlayers().end(); ++i) { if ((*i)->isNeutral()) neutral=*i; } }
void EventDispatcher::dispatchEvent(BWAPI::Event* e) { switch(e->type) { case BWAPI::EventType::MatchStart: onMatchStart(); break; case BWAPI::EventType::MatchEnd: onMatchEnd(e->isWinner); break; case BWAPI::EventType::MatchFrame: onMatchFrame(); break; case BWAPI::EventType::MenuFrame: onMenuFrame(); break; case BWAPI::EventType::SendText: onSendText(e->text); break; case BWAPI::EventType::ReceiveText: onReceiveText(e->player, e->text); break; case BWAPI::EventType::PlayerLeft: onPlayerLeft(e->player); break; case BWAPI::EventType::NukeDetect: onNukeDetect(e->position); break; case BWAPI::EventType::UnitDiscover: onUnitDiscover(e->unit); break; case BWAPI::EventType::UnitEvade: onUnitEvade(e->unit); break; case BWAPI::EventType::UnitShow: onUnitShow(e->unit); break; case BWAPI::EventType::UnitHide: onUnitHide(e->unit); break; case BWAPI::EventType::UnitCreate: onUnitCreate(e->unit); break; case BWAPI::EventType::UnitDestroy: onUnitDestroy(e->unit); break; case BWAPI::EventType::UnitMorph: onUnitMorph(e->unit); break; case BWAPI::EventType::UnitRenegade: onUnitRenegade(e->unit); break; case BWAPI::EventType::SaveGame: onSaveGame(e->text); break; case BWAPI::EventType::None: break; default: printf("error: Unknown event"); break; } }