MCPcopy Create free account
hub / github.com/bwapi/bwapi / ReserveDefault

Function ReserveDefault

bwapi/BWAPILIB/Source/Game.cpp:348–403  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

346 TilePosition(-1,-1)
347 };
348 void ReserveDefault(PlacementReserve &reserve, UnitType type, TilePosition desiredPosition)
349 {
350 reserve.backup();
351 auto original = reserve;
352
353 // Reserve some space around some specific units
354 Unitset myUnits = Broodwar->self()->getUnits();
355 for ( auto &it : myUnits )
356 {
357 if ( !it->exists() )
358 continue;
359
360 switch ( it->getType() )
361 {
362 case UnitTypes::Enum::Terran_Factory:
363 case UnitTypes::Enum::Terran_Missile_Turret:
364 case UnitTypes::Enum::Protoss_Robotics_Facility:
365 case UnitTypes::Enum::Protoss_Gateway:
366 case UnitTypes::Enum::Protoss_Photon_Cannon:
367 default:
368 ReserveStructure(reserve, it, 2, type, desiredPosition);
369 break;
370 case UnitTypes::Enum::Terran_Barracks:
371 case UnitTypes::Enum::Terran_Bunker:
372 case UnitTypes::Enum::Zerg_Creep_Colony:
373 ReserveStructure(reserve, it, 1, type, desiredPosition);
374 break;
375 }
376 }
377
378 switch ( type )
379 {
380 case UnitTypes::Enum::Terran_Barracks:
381 case UnitTypes::Enum::Terran_Factory:
382 case UnitTypes::Enum::Terran_Missile_Turret:
383 case UnitTypes::Enum::Terran_Bunker:
384 case UnitTypes::Enum::Protoss_Robotics_Facility:
385 case UnitTypes::Enum::Protoss_Gateway:
386 case UnitTypes::Enum::Protoss_Photon_Cannon:
387 for ( int y = 0; y < 64; ++y )
388 {
389 for ( int x = 0; x < 64; ++x )
390 {
391 for ( int dir = 0; dir < 8; ++dir )
392 {
393 TilePosition p = TilePosition(x,y) + gDirections[dir];
394 if ( !PlacementReserve::isValidPos(p) || original.getValue(p) == 0 )
395 reserve.setValue(p, 0);
396 }
397
398 }
399 }
400 break;
401 }
402 reserve.restoreIfInvalid(__FUNCTION__);
403 }
404
405 void ReservePlacement(PlacementReserve &reserve, UnitType type, TilePosition desiredPosition, bool /*creep*/)

Callers 1

ReservePlacementFunction · 0.85

Calls 9

ReserveStructureFunction · 0.85
backupMethod · 0.80
getValueMethod · 0.80
setValueMethod · 0.80
restoreIfInvalidMethod · 0.80
getUnitsMethod · 0.45
selfMethod · 0.45
existsMethod · 0.45
getTypeMethod · 0.45

Tested by

no test coverage detected