Exemple #1
0
//-----------------------------------------------------------------
//  Import elevation file
//  Elevation are processed QGT per QGT
//  The array Spot is used to store for each detail tile the
//  spot elevation:
//  Type 0:   This is a unic elevation shared between sevral tiles
//  Type 1:   This is the unic center elevation for the detail tile
//  Type 2:   Elevation is an array of integers of dimension dim 
//-----------------------------------------------------------------
//  1) The elevations found in the database are loaded
//  2) The elevations from the BT file for this QGT are loaded
//     by => GetRegionElevation
//  3) New elevation overwrite those from the database =>Overwrite
//  4) Rectabgular region of same type are computed => CreateAreas
//-----------------------------------------------------------------
void CImport::ImportElevations(char *fn)
{ REGION_REC reg;
  reg.qgt = 0;
  CBtParser btp(fn);
  Dim = btp.Resolution();
  TRACE("=====BUILDING REGIONS ==========================");
  while (  btp.GetQgtKey(reg.qtx,reg.qtz))
  { reg.key = QGTKEY(reg.qtx,reg.qtz);
    TRACE("---QGT key=%010d",reg.key);
   //--- Load existing elevations from database ----
    globals->sqm->GetQgtElevation(reg,ELVtoSlots);
    btp.GetRegionElevation(reg);
    Overwrite(reg);
    //--- Create areas ----------------------------
    CreateAreas();
    area.qgt = 0;
    area.qtx = reg.qtx;
    area.qtz = reg.qtz;
    globals->sqm->DeleteElevation(reg.key);
    WriteRegions(1);
    //----Reset all resources ---------------------
    Reset();
    delete [] reg.data;
    reg.data = 0;
    btp.NextQgtKey();
  }
  return;
}
Exemple #2
0
void Level1::CreateAllEntities()
{
    // EntityFactory::CreateBackground();
    EntityFactory::CreateCamera(CFG_GETF("LEVEL_1_CAMERA_HEIGHT"));

    CreateButtons();
    CreateAreas();

    // Cells and food must be created after areas to be rendered above them.
    auto player = EntityFactory::CreatePlayer();
    Engine::GetInstance().AddComponent(
        std::make_shared<AIComponent>("EatableComponent"), player);

    // CreateCells();
    CreateBacteria();
    CreateFood();
}
Exemple #3
0
//--------------------------------------------------------------------------
//  Export this elevation file
//--------------------------------------------------------------------------
void CImport::ExportElevationFile(int no)
{ SqlMGR *sqm = globals->sqm;
  REGION_REC reg;
  C_QTR  *qtr = new C_QTR(no,0);
//  sqm->ELVtransaction();
  //----extract all QGT regions ---------------------------------
  for   (int rz = 0; rz < 16; rz++)
  { for (int rx = 0; rx < 16; rx++)
    { //---Process one QGT -----------------
      Reset();
      while (qtr->PopRegionInfo(rx,rz,reg))  ElevationFromREG(reg);
      if (0 == nReg)  continue;
      TRACE("...QGT(%03d-%03d)",reg.qtx,reg.qtz); 
      CreateAreas();
      area.qgt = 0;
      area.qtx = reg.qtx;
      area.qtz = reg.qtz;
      WriteRegions(1);
    }
  }
//  sqm->ELVcommit();
  delete qtr;
  return;
}