BLWorld::BLWorld(BLApp& oBLApp, Canvas& canva, int w, int h, const char* tilesname) : m_oBLApp(oBLApp) , m_oCanva(canva) , m_iGrid(0) , m_bDraging(false) , m_iStartDragX(0) , m_iStartDragY(0) { m_pTiles = new BLTiles(*canva.GetGEngine(), tilesname); m_iGrid = m_pTiles->GetTilesWidth(); ASSERT(m_pTiles->GetTilesWidth() == m_pTiles->GetTilesHeight()); m_pMap = new BLMap(w, h, *m_pTiles); m_pMap->Generate(); int i, j; m_pMap->RandomFullGroundLoc(i, j); m_pBot = new BLBot(*canva.GetGEngine(), *this, oBLApp.GetPlannerCanvas()); m_pBot->SetLoc((float)i*m_iGrid + m_iGrid/2, (float)j*m_iGrid + m_iGrid/2); m_pBot->SetPos(i, j); m_pBot->SetState(BLBot::Idle); CenterMap((int)m_pBot->GetLocX(), (int)m_pBot->GetLocY()); m_pMap->RandomFullGroundLoc(i, j); new BLLightProp(*this, "Coin", DATA_DIR "/BotLife/Coin.png", Vector2(i,j)); m_pMap->RandomFullGroundLoc(i, j); new BLLightProp(*this, "Diam", DATA_DIR "/BotLife/Diam.png", Vector2(i,j)); m_pMap->RandomFullGroundLoc(i, j); new BLHeavyProp(*this, "Box", DATA_DIR "/BotLife/Box.png", Vector2(i,j)); //BLDoor* pDoor = new BLDoor(*this, "Door", BLDoor::Verti, Vector2(3, 6)); //pDoor->Close(); //m_pBot->AddGoal("IBFactDef_BotAtPos", new IBVector2("Dest", 14, 14)); //m_pBot->AddGoal("IBFactDef_BotHasObject", m_pProp); }