void tableSelectParaDialog::setOutputModel(QStringList outputList) { outputD = outputList; outputH = outputList; QStringList temp; for(int i = 0; i<outputD.count();i++) { temp = outputD[i].split(","); if(temp[1]=="SA"||temp[1]=="SO") { outputD[i] = temp[0]; outputH[i] = temp[0]; QString string = temp[1]; outputD[i].append(","+addUnit(string)); outputH[i].append("\n["+addUnit(string)+"]"); } else { outputD[i] = temp[0]+" - "+temp[1]; outputH[i] = temp[0]+"\n"+temp[1]; QString string = temp[2]; outputD[i].append(","+addUnit(string)); outputH[i].append("\n["+addUnit(string)+"]"); } } outputModel->setStringList(outputD); ui->outputList->setModel(outputModel); }
RepoWrapper::RepoWrapper(const char* repoSchema, const std::string& configFile) { if (setenv("HHVM_RUNTIME_REPO_SCHEMA", repoSchema, 1 /* overwrite */)) { fprintf(stderr, "Could not set repo schema"); exit(EXIT_FAILURE); } printf("# Config file: %s\n", configFile.c_str()); printf("# Repo schema: %s\n", repoSchemaId().begin()); register_process_init(); initialize_repo(); hphp_thread_init(); g_context.getCheck(); IniSetting::Map ini = IniSetting::Map::object; Hdf config; if (!configFile.empty()) { Config::ParseConfigFile(configFile, ini, config); // Disable logging to suppress harmless errors about setrlimit. config["Log"]["Level"] = "None"; } RuntimeOption::Load(ini, config); RuntimeOption::RepoCommit = false; compile_file(nullptr, 0, MD5(), nullptr); repo = &Repo::get(); RuntimeOption::AlwaysUseRelativePath = false; RuntimeOption::SafeFileAccess = false; RuntimeOption::EvalAllowHhas = true; Option::WholeProgram = false; LitstrTable::init(); LitstrTable::get().setWriting(); RuntimeOption::RepoAuthoritative = true; repo->loadGlobalData(true /* allowFailure */); std::string hhasLib; auto const phpLib = get_systemlib(&hhasLib); always_assert(!hhasLib.empty() && !phpLib.empty()); auto phpUnit = compile_string(phpLib.c_str(), phpLib.size(), "systemlib.php"); addUnit(phpUnit); auto hhasUnit = compile_string(hhasLib.c_str(), hhasLib.size(), "systemlib.hhas"); addUnit(hhasUnit); SystemLib::s_inited = true; LitstrTable::get().setReading(); }
// Returns TRUE if the constraint should be deleted. May set the 'ok' flag to false bool PbSolver::propagate(Linear& c) { //**/reportf("BEFORE propagate()\n"); //**/dump(c, sat_solver.assigns_ref()); reportf("\n"); // Remove assigned literals: Int sum = 0, true_sum = 0; int j = 0; for (int i = 0; i < c.size; i++){ assert(c(i) > 0); if (value(c[i]) == l_Undef){ sum += c(i); c(j) = c(i); c[j] = c[i]; j++; }else if (value(c[i]) == l_True) true_sum += c(i); } c.size = j; if (c.lo != Int_MIN) c.lo -= true_sum; if (c.hi != Int_MAX) c.hi -= true_sum; // Propagate: while (c.size > 0){ if (c(c.size-1) > c.hi){ addUnit(~c[c.size-1]); sum -= c(c.size-1); c.size--; }else if (sum - c(c.size-1) < c.lo){ addUnit(c[c.size-1]); sum -= c(c.size-1); if (c.lo != Int_MIN) c.lo -= c(c.size-1); if (c.hi != Int_MAX) c.hi -= c(c.size-1); c.size--; }else break; } if (c.lo <= 0) c.lo = Int_MIN; if (c.hi > sum) c.hi = Int_MAX; //**/reportf("AFTER propagate()\n"); //**/dump(c, sat_solver.assigns_ref()); reportf("\n\n"); if (c.size == 0){ if (c.lo > 0 || c.hi < 0) ok = false; return true; }else return c.lo == Int_MIN && c.hi == Int_MAX; }
void Message::parseRepeatGroup(MessageParser &parser, const Tag tag) { auto repeat_group = std::make_shared<RepeatGroup>(); auto count_field = parser.goNextFieldValue(kFieldType::kRepeatGroup); int count = std::static_pointer_cast<IntFieldValue>(count_field)->getValue(); //number of repeating units while (count-- > 0) { auto repeat_unit = std::make_shared<FieldValueContainer>(); Tag subtag = parser.goNextTag(); Tag last_tag = -1; while (last_tag < subtag) { auto field_value = parser.goNextFieldValue(FieldTypeMap::get(subtag)); repeat_unit->set(subtag, field_value); last_tag = subtag; // if there is available tag to be parsed, read and check whether it belongs to current repeating unit; // otherwise finish parsing current repeating unit by setting subtag to -1 subtag = parser.isDone() ? -1 : parser.goNextTag(); } parser.goLastStart(); repeat_group->addUnit(repeat_unit); } repeat_groups_.set(tag, repeat_group); }
bool CGameUnitsFormation::setDimension(core::dimension2di &newdim) { if ( (s32)Units.size() <= newdim.Width*newdim.Height ) { UnitsDim = newdim; MaxUnitsCount = UnitsDim.Width*UnitsDim.Height; _Units.clear(); _Units.set_used(UnitsDim.Width); for (s32 w=0; w<UnitsDim.Width; w++) { for (s32 h=0; h<UnitsDim.Height; h++) _Units[w].push_back(SUnitEntry()); } core::list<IGameNodeAI*>::iterator it = Units.begin(); for (; it!=Units.end(); ++it) { IGameNodeAI *gn = *it; if (gn) addUnit(gn); } return true; } return false; }
/** * checks if the peasant can produce * produce the unit and returns 0 if succesful and 1 if not * checks if the peasant can produce */ static int produceUnit(int x1, int y1, int x2, int y2, enum unitType type) { // only on the neighbouring field if(!isNeighbour(x1, y1, x2, y2)) return 1; // is it inside the board if(!insideBoard(x1, y1, globalBoardSize)) return 1; if(!insideBoard(x2, y2, globalBoardSize)) return 1; // no unit or it is not a peasant on (x1, y1) UnitsList peasant = findUnit(x1, y1); if (peasant == NULL || peasant->type != PEASANT) return 1; // has the unit moved last two turns if (actualTurnNumber - peasant->lastMove < 3) return 1; UnitsList secondUnit = findUnit(x2, y2); // is there any other unit on (x2, y2) if(secondUnit != NULL) return 1; addUnit(x2, y2, type); // updates the last move of the peasant peasant->lastMove = actualTurnNumber; return 0; }
void sbe::ModelManager::addUnit(int n) { for (auto i = 0; i < n; ++i) { addUnit(); } }
void tableSelectParaDialog::setInputModel(QStringList inputList) { inputD = inputList; inputH = inputList; QStringList temp; for(int i = 0; i<inputD.count();i++) { temp = inputD[i].split(","); inputD[i] = temp[0]+" - "+temp[1]; inputH[i] = temp[0]+"\n"+temp[1]; QString string = temp[2]; inputD[i].append(","+addUnit(string)); inputH[i].append("\n["+addUnit(string)+"]"); } inputModel->setStringList(inputD); ui->inputList->setModel(inputModel); }
void SettingsUnitsView::setInterfaceController() { connect(boxUnits,SIGNAL(currentIndexChanged(QString)),controller,SLOT(showUnit())); connect(pushNew,SIGNAL(clicked()),controller,SLOT(addUnit())); connect(pushEdit,SIGNAL(clicked()),controller,SLOT(editUnit())); connect(pushDelete,SIGNAL(clicked()),controller,SLOT(deleteUnit())); connect(pushSave,SIGNAL(clicked()),controller,SLOT(saveUnit())); }
LuaScript::LuaScript(bool defineClasses){ lua.open_libraries(sol::lib::base, sol::lib::table, sol::lib::package, sol::lib::math, sol::lib::debug); if (defineClasses) { //Done this way because of number of sections addGame(); addChampion(); addItem(); addUnit(); } }
LayerId Network::addLayer(Layer* l) { LayerId nextId = layers.size(); layers[nextId] = l; for (int k = 0; k < l->units.size(); k++) { Unit* u = l->units[k]; addUnit(u); } return nextId; }
void lionheart::Game::start() { auto boxes = map->getBoxes(); std::array<Direction,2> facing = {{Direction::EAST,Direction::WEST}}; for(int i=0;i<2;++i) { // Create crowns crown[i] = createUnit<Crown>(0,player[i], map, units[i],boxes[i], facing[i]); if (!crown[i]) { // invalid crown placement, put in middle auto row = (boxes[i].minRow + boxes[i].maxRow) / 2; auto col = (boxes[i].minCol + boxes[i].maxCol) / 2; crown[i] = std::make_shared<Crown>(0,map->at(row, col), facing[i]); } units[i].push_back(crown[i]); // Create knights for (int j = 0; j < NUM_KNIGHTS; ++j) { auto knight = createUnit<Knight>(j+1,player[i], map,units[i], boxes[i], facing[i]); addUnit(units[i], knight); } // Create archers for (int j = 0; j < NUM_ARCHERS; ++j) { auto archer = createUnit<Archer>(NUM_KNIGHTS+j+1,player[i], map,units[i], boxes[i], facing[i]); addUnit(units[i], archer); } // Create infantry for (int j = 0; j < NUM_INFANTRY; ++j) { auto infantry = createUnit<Infantry>( NUM_KNIGHTS + NUM_ARCHERS + j + 1, player[i], map, units[i], boxes[i], facing[i]); addUnit(units[i], infantry); } } state = IN_PROGRESS; turns = 0; }
void BWCombatLayer::initCter() { UnitData unitData; unitData.nId = 1 ; BWUnitManager::shareBWUnitManager()->createHero(&unitData); BWUnit* pHero = BWUnitManager::shareBWUnitManager()->getHero(); if(!pHero) { return; } addUnit(pHero); ResManager::shareResManager()->loadLevelXml(1, &_levelData); }
/* - Bandpass-Filter */ unit *addFxBandpass(unitScope scope) { unit *newUnit = addUnit(scope); /* adding and setting up basics for new unit*/ int i, iMax = ((scope == usGLOBAL) ? 1 : voiceCount); newUnit->type = utFX_BANDPASS; newUnit->comp = (void (*)(void *))&compFxBandpass; /* setup computing function for unit */ newUnit->reinit = NULL; /* no reinit function for this unit */ for (i = 0; i < iMax; i++) { /* setup one inner unit for global unit or one for every voice for local unit */ newUnit->units[i] = ecMalloc(sizeof(fxBandpass)); /* allocate memory for every inner unit */ setupFxBandpass(newUnit->units[i]); /* specific setup for bandpass filter */ } return newUnit; }
/* - Mixers*/ unit *addMixer2ch(unitScope scope) { /* add 2 channel mixer unit */ unit *newUnit = addUnit(scope); /* adding and setting up basics for new unit*/ int i, iMax = ((scope == usGLOBAL) ? 1 : voiceCount); newUnit->type = utMIXER2CH; newUnit->comp = (void (*)(void *))&compMixer2ch; /* setup computing function for unit */ newUnit->reinit = NULL; /* no reinit function for this unit */ for (i = 0; i < iMax; i++) { /* setup one inner unit for global unit or one for every voice for local unit */ newUnit->units[i] = ecMalloc(sizeof(mixer2ch)); /* allocate memory for every inner unit */ setupMixer2ch(newUnit->units[i]); /* specific setup for 2 channel mixer */ } return newUnit; }
/* - Oscillators */ unit *addOsc(unitScope scope) { /* add oscillator unit */ unit *newUnit = addUnit(scope); /* adding and setting up basics for new unit*/ int i, iMax = ((scope == usGLOBAL) ? 1 : voiceCount); newUnit->type = utOSC; newUnit->comp = (void (*)(void *))&compOsc; /* setup computing function for unit */ newUnit->reinit = (void (*)(void *))&reinitOsc; /* reinit function for unit */ for (i = 0; i < iMax; i++) { /* setup one inner unit for global unit or one for every voice for local unit */ newUnit->units[i] = ecMalloc(sizeof(osc)); /* allocate memory for every inner unit */ setupOsc(newUnit->units[i]); /* specific setup for oscillator */ } return newUnit; }
void CCoverageHandler::update() { std::map<CCoverageCell::NType, std::list<CCoverageCell*> >::iterator itLayer; std::list<CCoverageCell*>::iterator itCell; std::list<CUnit*> uncovered; for (itLayer = layers.begin(); itLayer != layers.end(); ++itLayer) { uncovered.clear(); for (itCell = itLayer->second.begin(); itCell != itLayer->second.end(); ++itCell) (*itCell)->update(uncovered); if (!uncovered.empty()) { std::list<CUnit*>::iterator itUnit; std::map<int, CCoverageCell*>* coveredUnits = &unitsCoveredBy[itLayer->first]; for (itUnit = uncovered.begin(); itUnit != uncovered.end(); ++itUnit) { CUnit* unit = *itUnit; coveredUnits->erase(unit->key); assert(unitsCoveredCount[unit->key] > 0); if(--unitsCoveredCount[unit->key] == 0) { unit->unreg(*this); // no need to track this unit anymore } addUnit(unit); } // re-assign uncovered units to existing cores... for (itUnit = uncovered.begin(); itUnit != uncovered.end(); ++itUnit) { addUnit(*itUnit); } } } if (visualizationEnabled) { visualizeLayer(visualizationLayer); } }
Stage::Stage(GameRoom* gameroom, const int id) :gameroom(gameroom), oppositStage(nullptr), id(id), playerNum(0), enemyNum(0), bonusTimer(config::bonus_time_wait){ collisionDetector = new CollisionDetector(); trashPool = new TrashPool(this); spawner = new EnemySpawner(this); repairArea = new RepairArea(); for (int i = 0; i < ALLY_MAX; ++i) ally[i] = new Ally(); addUnit(repairArea); init(); }
void Slash::use( Unit *u, Vec2 pos){ auto stage = u->stage; auto bullet = new Bullet(); bullet->position = u->position; bullet->fire(pos - u->position, 800); bullet->attackData.user = u; bullet->attackData.radius = 10; bullet->attackData.damage = u->_ATTR(attack); bullet->range = u->_ATTR(range); bullet->ally = u->ally; stage->addUnit(bullet); }
FITSHeaderEditAddUnitDialog::FITSHeaderEditAddUnitDialog(const QString& unit, QWidget *parent) : KDialog(parent) { QWidget* mainWidget = new QWidget(this); ui.setupUi(mainWidget); setMainWidget( mainWidget ); setWindowTitle(i18n("Specify the new unit")); setButtons( KDialog::Ok | KDialog::Cancel ); setButtonText(KDialog::Ok, i18n("&Add unit")); KCompletion* keyCompletion = new KCompletion; keyCompletion->setItems(FITSFilter::units()); if (!unit.isEmpty()) { ui.kleUnit->setText(unit); } ui.kleUnit->setCompletionObject(keyCompletion); ui.kleUnit->setAutoDeleteCompletionObject(true); connect(this, SIGNAL(okClicked()), this, SLOT(addUnit())); setAttribute(Qt::WA_DeleteOnClose); }
std::vector<Fix42::MessagePtr> SecurityDefinitionHandler::accept(const Fix42::MessagePtr message) { std::vector<Fix42::MessagePtr> results; auto result = std::make_shared<Fix42::Message>(); //auto requests = message->getRepeatGroup(Fix42::kFieldName::kNoRelatedSym)->getUnits(); result->setType(Fix42::kMessageType::kSecurityDefinition); std::vector<SecurityStatus> securities; api_.securityQueryAll(securities); auto security_list = std::make_shared<Fix42::RepeatGroup>(); for (const auto &security:securities) { auto unit = std::make_shared<Fix42::FieldValueContainer>(); unit->setField<Fix42::kFieldName::kSymbol>(security.symbol); unit->setField<Fix42::kFieldName::kPrice>(Quote::toOriginalPrice(security.price)); security_list->addUnit(unit); } result->setRepeatGroup(Fix42::kFieldName::kNoRelatedSym, security_list); results.push_back(result); return results; }
Area::Area() : CustomCategory(AreaCategory, i18nc("Unit Category: two dimensional size of a surface", "Area"), i18nc("Unit Category: two dimensional size of a surface", "Area")) { // i18n: Used when converting to symbol string e.g. 2.34 m² KLocalizedString symbolString = ki18nc("%1 value, %2 unit symbol (area)", "%1 %2"); addUnit(CustomUnit(AreaCategory, SquareYottameter, 1e+48, // i18n: Used when unit symbol is needed. i18nc("area unit symbol", "Ym²"), // i18n: unit as it will be shown to user wherever units are to // be explicitly selected (listbox, radio buttons, checkboxes...). // E.g. an application may give option "Unit of wind speed: [unit-list-box]" i18nc("unit description in lists", "square yottameters"), // i18n: Messages such as this one provide synonyms for each unit, // in order to guess the unit from the text that the user inputs. // Synonyms are semicolon-separated, and you can add as many as // you need (either equal to, more, or less than in the original). // Note that any gramatical inflections of unit names // (such as plural and cases) should also be listed. i18nc("unit synonyms for matching user input", "square yottameter;square yottameters;Ym²;Ym/-2;Ym^2;Ym2"), symbolString, // i18n: This is used when a real-valued amount in units is given, // such as "0.37 miles". ki18nc("amount in units (real)", "%1 square yottameters"), // i18n: This is used when a integer-valued amount in units is given, // such as "1 mile" or "21 miles". ki18ncp("amount in units (integer)", "%1 square yottameter", "%1 square yottameters"))); addUnit(CustomUnit(AreaCategory, SquareZettameter, 1e+42, i18nc("area unit symbol", "Zm²"), i18nc("unit description in lists", "square zettameters"), i18nc("unit synonyms for matching user input", "square zettameter;square zettameters;Zm²;Zm/-2;Zm^2;Zm2"), symbolString, ki18nc("amount in units (real)", "%1 square zettameters"), ki18ncp("amount in units (integer)", "%1 square zettameter", "%1 square zettameters"))); addUnit(CustomUnit(AreaCategory, SquareExameter, 1e+36, i18nc("area unit symbol", "Em²"), i18nc("unit description in lists", "square exameters"), i18nc("unit synonyms for matching user input", "square exameter;square exameters;Em²;Em/-2;Em^2;Em2"), symbolString, ki18nc("amount in units (real)", "%1 square exameters"), ki18ncp("amount in units (integer)", "%1 square exameter", "%1 square exameters"))); addUnit(CustomUnit(AreaCategory, SquarePetameter, 1e+30, i18nc("area unit symbol", "Pm²"), i18nc("unit description in lists", "square petameters"), i18nc("unit synonyms for matching user input", "square petameter;square petameters;Pm²;Pm/-2;Pm^2;Pm2"), symbolString, ki18nc("amount in units (real)", "%1 square petameters"), ki18ncp("amount in units (integer)", "%1 square petameter", "%1 square petameters"))); addUnit(CustomUnit(AreaCategory, SquareTerameter, 1e+24, i18nc("area unit symbol", "Tm²"), i18nc("unit description in lists", "square terameters"), i18nc("unit synonyms for matching user input", "square terameter;square terameters;Tm²;Tm/-2;Tm^2;Tm2"), symbolString, ki18nc("amount in units (real)", "%1 square terameters"), ki18ncp("amount in units (integer)", "%1 square terameter", "%1 square terameters"))); addUnit(CustomUnit(AreaCategory, SquareGigameter, 1e+18, i18nc("area unit symbol", "Gm²"), i18nc("unit description in lists", "square gigameters"), i18nc("unit synonyms for matching user input", "square gigameter;square gigameters;Gm²;Gm/-2;Gm^2;Gm2"), symbolString, ki18nc("amount in units (real)", "%1 square gigameters"), ki18ncp("amount in units (integer)", "%1 square gigameter", "%1 square gigameters"))); addUnit(CustomUnit(AreaCategory, SquareMegameter, 1e+12, i18nc("area unit symbol", "Mm²"), i18nc("unit description in lists", "square megameters"), i18nc("unit synonyms for matching user input", "square megameter;square megameters;Mm²;Mm/-2;Mm^2;Mm2"), symbolString, ki18nc("amount in units (real)", "%1 square megameters"), ki18ncp("amount in units (integer)", "%1 square megameter", "%1 square megameters"))); addCommonUnit(CustomUnit(AreaCategory, SquareKilometer, 1e+06, i18nc("area unit symbol", "km²"), i18nc("unit description in lists", "square kilometers"), i18nc("unit synonyms for matching user input", "square kilometer;square kilometers;km²;km/-2;km^2;km2"), symbolString, ki18nc("amount in units (real)", "%1 square kilometers"), ki18ncp("amount in units (integer)", "%1 square kilometer", "%1 square kilometers"))); addCommonUnit(CustomUnit(AreaCategory, SquareHectometer, 10000, i18nc("area unit symbol", "hm²"), i18nc("unit description in lists", "square hectometers"), i18nc("unit synonyms for matching user input", "square hectometer;square hectometers;hm²;hm/-2;hm^2;hm2;hectare;hectares"), symbolString, ki18nc("amount in units (real)", "%1 square hectometers"), ki18ncp("amount in units (integer)", "%1 square hectometer", "%1 square hectometers"))); addUnit(CustomUnit(AreaCategory, SquareDecameter, 100, i18nc("area unit symbol", "dam²"), i18nc("unit description in lists", "square decameters"), i18nc("unit synonyms for matching user input", "square decameter;square decameters;dam²;dam/-2;dam^2;dam2"), symbolString, ki18nc("amount in units (real)", "%1 square decameters"), ki18ncp("amount in units (integer)", "%1 square decameter", "%1 square decameters"))); addDefaultUnit(CustomUnit(AreaCategory, SquareMeter, 1, i18nc("area unit symbol", "m²"), i18nc("unit description in lists", "square meters"), i18nc("unit synonyms for matching user input", "square meter;square meters;m²;m/-2;m^2;m2"), symbolString, ki18nc("amount in units (real)", "%1 square meters"), ki18ncp("amount in units (integer)", "%1 square meter", "%1 square meters"))); addUnit(CustomUnit(AreaCategory, SquareDecimeter, 0.01, i18nc("area unit symbol", "dm²"), i18nc("unit description in lists", "square decimeters"), i18nc("unit synonyms for matching user input", "square decimeter;square decimeters;dm²;dm/-2;dm^2;dm2"), symbolString, ki18nc("amount in units (real)", "%1 square decimeters"), ki18ncp("amount in units (integer)", "%1 square decimeter", "%1 square decimeters"))); addUnit(CustomUnit(AreaCategory, SquareCentimeter, 0.0001, i18nc("area unit symbol", "cm²"), i18nc("unit description in lists", "square centimeters"), i18nc("unit synonyms for matching user input", "square centimeter;square centimeters;cm²;cm/-2;cm^2;cm2"), symbolString, ki18nc("amount in units (real)", "%1 square centimeters"), ki18ncp("amount in units (integer)", "%1 square centimeter", "%1 square centimeters"))); addUnit(CustomUnit(AreaCategory, SquareMillimeter, 1e-06, i18nc("area unit symbol", "mm²"), i18nc("unit description in lists", "square millimeters"), i18nc("unit synonyms for matching user input", "square millimeter;square millimeters;mm²;mm/-2;mm^2;mm2"), symbolString, ki18nc("amount in units (real)", "%1 square millimeters"), ki18ncp("amount in units (integer)", "%1 square millimeter", "%1 square millimeters"))); addUnit(CustomUnit(AreaCategory, SquareMicrometer, 1e-12, i18nc("area unit symbol", "µm²"), i18nc("unit description in lists", "square micrometers"), i18nc("unit synonyms for matching user input", "square micrometer;square micrometers;µm²;um²;µm/-2;µm^2;µm2"), symbolString, ki18nc("amount in units (real)", "%1 square micrometers"), ki18ncp("amount in units (integer)", "%1 square micrometer", "%1 square micrometers"))); addUnit(CustomUnit(AreaCategory, SquareNanometer, 1e-18, i18nc("area unit symbol", "nm²"), i18nc("unit description in lists", "square nanometers"), i18nc("unit synonyms for matching user input", "square nanometer;square nanometers;nm²;nm/-2;nm^2;nm2"), symbolString, ki18nc("amount in units (real)", "%1 square nanometers"), ki18ncp("amount in units (integer)", "%1 square nanometer", "%1 square nanometers"))); addUnit(CustomUnit(AreaCategory, SquarePicometer, 1e-24, i18nc("area unit symbol", "pm²"), i18nc("unit description in lists", "square picometers"), i18nc("unit synonyms for matching user input", "square picometer;square picometers;pm²;pm/-2;pm^2;pm2"), symbolString, ki18nc("amount in units (real)", "%1 square picometers"), ki18ncp("amount in units (integer)", "%1 square picometer", "%1 square picometers"))); addUnit(CustomUnit(AreaCategory, SquareFemtometer, 1e-30, i18nc("area unit symbol", "fm²"), i18nc("unit description in lists", "square femtometers"), i18nc("unit synonyms for matching user input", "square femtometer;square femtometers;fm²;fm/-2;fm^2;fm2"), symbolString, ki18nc("amount in units (real)", "%1 square femtometers"), ki18ncp("amount in units (integer)", "%1 square femtometer", "%1 square femtometers"))); addUnit(CustomUnit(AreaCategory, SquareAttometer, 1e-36, i18nc("area unit symbol", "am²"), i18nc("unit description in lists", "square attometers"), i18nc("unit synonyms for matching user input", "square attometer;square attometers;am²;am/-2;am^2;am2"), symbolString, ki18nc("amount in units (real)", "%1 square attometers"), ki18ncp("amount in units (integer)", "%1 square attometer", "%1 square attometers"))); addUnit(CustomUnit(AreaCategory, SquareZeptometer, 1e-42, i18nc("area unit symbol", "zm²"), i18nc("unit description in lists", "square zeptometers"), i18nc("unit synonyms for matching user input", "square zeptometer;square zeptometers;zm²;zm/-2;zm^2;zm2"), symbolString, ki18nc("amount in units (real)", "%1 square zeptometers"), ki18ncp("amount in units (integer)", "%1 square zeptometer", "%1 square zeptometers"))); addUnit(CustomUnit(AreaCategory, SquareYoctometer, 1e-48, i18nc("area unit symbol", "ym²"), i18nc("unit description in lists", "square yoctometers"), i18nc("unit synonyms for matching user input", "square yoctometer;square yoctometers;ym²;ym/-2;ym^2;ym2"), symbolString, ki18nc("amount in units (real)", "%1 square yoctometers"), ki18ncp("amount in units (integer)", "%1 square yoctometer", "%1 square yoctometers"))); addCommonUnit(CustomUnit(AreaCategory, Acre, 4046.86, i18nc("area unit symbol", "acre"), i18nc("unit description in lists", "acres"), i18nc("unit synonyms for matching user input", "acre;acres"), symbolString, ki18nc("amount in units (real)", "%1 acres"), ki18ncp("amount in units (integer)", "%1 acre", "%1 acres"))); addCommonUnit(CustomUnit(AreaCategory, SquareFoot, 0.092903, i18nc("area unit symbol", "ft²"), i18nc("unit description in lists", "square feet"), i18nc("unit synonyms for matching user input", "square foot;square feet;ft²;square ft;sq foot;sq ft;sq feet;feet²"), symbolString, ki18nc("amount in units (real)", "%1 square feet"), ki18ncp("amount in units (integer)", "%1 square foot", "%1 square feet"))); addUnit(CustomUnit(AreaCategory, SquareInch, 0.00064516, i18nc("area unit symbol", "in²"), i18nc("unit description in lists", "square inches"), i18nc("unit synonyms for matching user input", "square inch;square inches;in²;square inch;square in;sq inches;sq inch;sq in;inch²"), symbolString, ki18nc("amount in units (real)", "%1 square inches"), ki18ncp("amount in units (integer)", "%1 square inch", "%1 square inches"))); addCommonUnit(CustomUnit(AreaCategory, SquareMile, 2.58999e+06, i18nc("area unit symbol", "mi²"), i18nc("unit description in lists", "square miles"), i18nc("unit synonyms for matching user input", "square mile;square miles;mi²;square mi;sq miles;sq mile;sq mi;mile²"), symbolString, ki18nc("amount in units (real)", "%1 square miles"), ki18ncp("amount in units (integer)", "%1 square mile", "%1 square miles"))); }
void UnitGroup::addUnits(std::vector<Unit*> units) { for (unsigned int i=0; i < units.size(); i++) { addUnit(units[i]); } }
UnitGroup::UnitGroup(Unit* unit) { mSide = unit->getSide(); mType = OBSERVED_GROUP; addUnit(unit); }
void CCataloguer::addUnit(CUnit* unit) { addUnit(unit->type, unit->key); }
/** \fn runVC1 \brief Index VC1 stream */ bool TsIndexer::runVC1(const char *file,ADM_TS_TRACK *videoTrac) { uint32_t temporal_ref,val; uint8_t buffer[50*1024]; bool seq_found=false; TSVideo video; indexerData data; dmxPacketInfo info; beginConsuming=0; listOfUnits.clear(); if(!videoTrac) return false; if(videoTrac[0].trackType!=ADM_TS_VC1) { printf("[Ts Indexer] Only VC1 video supported\n"); return false; } video.pid=videoTrac[0].trackPid; memset(&data,0,sizeof(data)); data.picStructure=pictureFrame; string indexName=string(file); indexName=indexName+string(".idx2"); index=qfopen(indexName,"wt"); if(!index) { printf("[PsIndex] Cannot create %s\n",indexName.c_str()); return false; } writeSystem(file,false); pkt=new tsPacketLinearTracker(videoTrac->trackPid, audioTracks); FP_TYPE append=FP_APPEND; pkt->open(file,append); data.pkt=pkt; fullSize=pkt->getSize(); int startCode; decodingImage=false; #define likely(x) x #define unlikely(x) x while(1) { startCode=pkt->findStartCode(); if(!pkt->stillOk()) break; switch(startCode) { case 0x0f: // sequence start if(seq_found) { pkt->getInfo(&thisUnit.packetInfo); thisUnit.consumedSoFar=pkt->getConsumed(); addUnit(data,unitTypeSps,thisUnit,4); decodingImage=false; break; } // Verify it is high/advanced profile { int seqSize=0; tsGetBits bits(pkt); if(!bits.peekBits(1)) continue; // simple/main profile if(!decodeVC1Seq(bits,video)) continue; seqSize=bits.getConsumed(); video.extraDataLength=seqSize+4+1; memcpy(video.extraData+4,bits.data,seqSize); // Add info so that ffmpeg is happy video.extraData[0]=0; video.extraData[1]=0; video.extraData[2]=1; video.extraData[3]=0xf; video.extraData[seqSize+4+0]=0; seq_found=1; // Hi Profile printf("[VC1] Found seq start with %d x %d video\n",(int)video.w,(int)video.h); printf("[VC1] FPS : %d\n",(int)video.fps); printf("[VC1] sequence header is %d bytes\n",(int)seqSize); writeVideo(&video,ADM_TS_VC1); writeAudio(); qfprintf(index,"[Data]"); pkt->getInfo(&thisUnit.packetInfo); thisUnit.consumedSoFar=pkt->getConsumed(); addUnit(data,unitTypeSps,thisUnit,seqSize+4); decodingImage=false; continue; } break; case 0x0D: // Picture start { int type; uint8_t buffer[4]; uint32_t fType,sType; if(!seq_found) { continue; printf("[TsIndexer]No sequence start yet, skipping..\n"); } pkt->getInfo(&thisUnit.packetInfo); thisUnit.consumedSoFar=pkt->getConsumed(); tsGetBits bits(pkt); if(!decodeVC1Pic(bits,fType,sType)) continue; thisUnit.imageType=fType; updatePicStructure(video,sType); addUnit(data,unitTypePic,thisUnit,4); decodingImage=true; data.nbPics++; } break; default: break; } } printf("\n"); // Mark(&data,&info,2); qfprintf(index,"\n[End]\n"); qfprintf(index,"\n# Found %"PRIu32" images \n",data.nbPics); // Size qfprintf(index,"# Found %"PRIu32" frame pictures\n",video.frameCount); // Size qfprintf(index,"# Found %"PRIu32" field pictures\n",video.fieldCount); // Size qfclose(index); index=NULL; audioTracks=NULL; delete pkt; pkt=NULL; return 1; }
std::shared_ptr<sbe::Unit> sbe::ModelManager::addUnit() { return addUnit(50, 50); }
vector<Squad*> SquadFileReader::readSquadList() { string filename = getFilename("squads"); //Read buildorder file ifstream inFile; stringstream ss; ss << getScriptPath(); ss << "squads\\"; ss << filename; string filePath = ss.str(); inFile.open(filePath.c_str()); if (!inFile) { Broodwar->printf("Unable to open file %s", filePath.c_str()); } else { string line; char buffer[256]; while (!inFile.eof()) { inFile.getline(buffer, 100); if (buffer[0] != ';') { stringstream ss; ss << buffer; line = ss.str(); Tokens token = split(line, "="); if (token.key == "Type") { type = token.value; } if (token.key == "Name") { name = token.value; } if (token.key == "MorphsTo") { morphsTo = getUnitType(token.value); //Broodwar->printf("FRU %s", morphsTo.getName().c_str()); } if (token.key == "Priority") { priority = toInt(token.value); activePriority = priority; } if (token.key == "ActivePriority") { activePriority = toInt(token.value); } if (token.key == "OffenseType") { offType = token.value; } if (line == "<setup>") { createSquad(); } if (token.key == "Unit") { addUnit(token.value); } } } inFile.close(); } Broodwar->printf("Squad file %s loaded. %d squads added.", filePath.c_str(), (int)squads.size()); return squads; }
/** \fn runH264 \brief Index H264 stream */ bool TsIndexer::runH264(const char *file,ADM_TS_TRACK *videoTrac) { bool seq_found=false; bool firstSps=true; TSVideo video; indexerData data; dmxPacketInfo tmpInfo; TS_PESpacket SEI_nal(0); bool result=false; bool bAppend=false; beginConsuming=0; listOfUnits.clear(); printf("Starting H264 indexer\n"); if(!videoTrac) return false; if(videoTrac[0].trackType!=ADM_TS_H264) { printf("[Ts Indexer] Only H264 video supported\n"); return false; } video.pid=videoTrac[0].trackPid; memset(&data,0,sizeof(data)); data.picStructure=pictureFrame; string indexName=string(file); indexName=indexName+string(".idx2"); index=qfopen(indexName,(const char*)"wt"); if(!index) { printf("[PsIndex] Cannot create %s\n",indexName.c_str()); return false; } pkt=new tsPacketLinearTracker(videoTrac->trackPid, audioTracks); FP_TYPE append=FP_DONT_APPEND; if(true==ADM_probeSequencedFile(file)) { if(true==GUI_Question("There are several files with sequential file names. Should they be all loaded ?")) bAppend=true; } if(bAppend==true) append=FP_APPEND; writeSystem(file,bAppend); pkt->open(file,append); data.pkt=pkt; fullSize=pkt->getSize(); gui=createProcessing("Indexing",pkt->getSize()); int lastRefIdc=0; bool keepRunning=true; //****************** // 1 search SPS //****************** while(keepRunning) { int startCode=pkt->findStartCode(); if(startCode&0x80) continue; // Marker missing startCode&=0x1f; if(startCode!=NAL_SPS) continue; // Got SPS! uint32_t xA,xR; // Get info pkt->getInfo(&tmpInfo); // Read just enough... { SEI_nal.empty(); uint32_t code=0xffff+0xffff0000; while(((code&0xffffff)!=1) && pkt->stillOk()) { uint8_t r=pkt->readi8(); code=(code<<8)+r; SEI_nal.pushByte(r); } if(!pkt->stillOk()) break;; pkt->seek(tmpInfo.startAt,tmpInfo.offset-5); if (extractSPSInfo(SEI_nal.payload, SEI_nal.payloadSize-4,&spsInfo)) { ADM_info("[TsIndexer] Found video %"PRIu32"x%"PRIu32", fps=%"PRIu32"\n",video.w,video.h,video.fps); ADM_info("[TsIndexer] SPS says %"PRIu32"x%"PRIu32"\n",spsInfo.width,spsInfo.height); seq_found=1; video.w=spsInfo.width; video.h=spsInfo.height; video.fps=spsInfo.fps1000; xA=spsInfo.darNum; xR=spsInfo.darDen; writeVideo(&video,ADM_TS_H264); writeAudio(); qfprintf(index,"[Data]"); // Rewind break; }; } } if(!seq_found) goto the_end; decodingImage=false; //****************** // 2 Index //****************** bool fourBytes; while(keepRunning) { fourBytes=false; int startCode=pkt->findStartCode2(fourBytes); resume: if(!pkt->stillOk()) break; int startCodeLength=4; if(fourBytes==true) startCodeLength++; // 1:0 2:Nal ref idc 5:Nal Type if(startCode&0x80) { printf("[Ts] Nal Marker missing:%x\n",startCode); continue; // Marker missing } int fullStartCode=startCode; int ref=(startCode>>5)&3; startCode&=0x1f; // Ignore nal ref IDR aprintf("[%02x] Nal :0x%x,ref=%d,lastRef=%d at : %d \n",fullStartCode,startCode,ref,lastRefIdc,pkt->getConsumed()-beginConsuming); // Ignore multiple chunk of the same pic if((startCode==NAL_NON_IDR || startCode==NAL_IDR)&&decodingImage ) { aprintf("Still capturing, ignore\n"); continue; } switch(startCode) { case NAL_AU_DELIMITER: { aprintf("AU DELIMITER\n"); decodingImage = false; } break; case NAL_SEI: { // Load the whole NAL SEI_nal.empty(); uint32_t code=0xffff+0xffff0000; while(((0xffffff&code)!=1) && pkt->stillOk()) { uint8_t r=pkt->readi8(); code=(code<<8)+r; SEI_nal.pushByte(r); } if(!pkt->stillOk()) goto resume; aprintf("[SEI] Nal size :%d\n",SEI_nal.payloadSize); if(SEI_nal.payloadSize>=7) decodeSEI(SEI_nal.payloadSize-4, SEI_nal.payload,&(thisUnit.recoveryCount),&(thisUnit.imageStructure)); else printf("[SEI] Too short size+4=%d\n",*(SEI_nal.payload)); startCode=pkt->readi8(); decodingImage=false; pkt->getInfo(&thisUnit.packetInfo); thisUnit.consumedSoFar=pkt->getConsumed(); if(!addUnit(data,unitTypeSei,thisUnit,startCodeLength+SEI_nal.payloadSize+1)) keepRunning=false; fourBytes=true; goto resume; } break; case NAL_SPS: decodingImage=false; pkt->getInfo(&thisUnit.packetInfo); if(firstSps) { pkt->setConsumed(startCodeLength); // reset consume counter firstSps=false; } thisUnit.consumedSoFar=pkt->getConsumed(); if(!addUnit(data,unitTypeSps,thisUnit,startCodeLength)) keepRunning=false; break; case NAL_IDR: case NAL_NON_IDR: { #define NON_IDR_PRE_READ 8 aprintf("Pic start last ref:%d cur ref:%d nb=%d\n",lastRefIdc,ref,data.nbPics); lastRefIdc=ref; uint8_t bufr[NON_IDR_PRE_READ+4]; uint8_t header[NON_IDR_PRE_READ+4]; pkt->read(NON_IDR_PRE_READ,bufr); // unescape... ADM_unescapeH264(NON_IDR_PRE_READ,bufr,header); // getBits bits(NON_IDR_PRE_READ,header); int first_mb_in_slice,slice_type; first_mb_in_slice= bits.getUEG(); slice_type= bits.getUEG31(); if(slice_type>9) { printf("[TsIndexer] Bad slice type\n"); } if(slice_type>4) slice_type-=5; switch(slice_type) { case 0 : thisUnit.imageType=2;break; // P case 1 : thisUnit.imageType=3;break; // B case 2 : thisUnit.imageType=1;break; // I default : thisUnit.imageType=2;break; // SP/SI } if(startCode==NAL_IDR) thisUnit.imageType=4; // IDR aprintf("[>>>>>>>>] Pic Type %"PRIu32" Recovery %"PRIu32"\n",thisUnit.imageType,recoveryCount); if(thisUnit.imageType==1 && !thisUnit.recoveryCount) thisUnit.imageType=4; //I + Recovery=0 = IDR! data.nbPics++; decodingImage=true; pkt->getInfo(&thisUnit.packetInfo); thisUnit.consumedSoFar=pkt->getConsumed(); if(!addUnit(data,unitTypePic,thisUnit,startCodeLength+NON_IDR_PRE_READ)) keepRunning=false; // reset to default thisUnit.imageStructure=pictureFrame; thisUnit.recoveryCount=0xff; pkt->invalidatePtsDts(); } break; default: break; } } // End while result=true; the_end: printf("\n"); qfprintf(index,"\n[End]\n"); qfclose(index); index=NULL; audioTracks=NULL; delete pkt; pkt=NULL; return result; }
/** * Placing units on the initial positions */ static void firstDistribution (int x, int y) { addUnit(x, y, KING) ; addUnit(x + 1, y, PEASANT); addUnit(x + 2, y, KNIGHT); addUnit(x + 3, y, KNIGHT); }