void CWorm::ProcessMining() {//HINT Mining without item! if (g_pFramework->KeyDown(m_pSettings->KeyMine)) { //get Block under Worm! CVec vec(getRect()); vec.x += getRect().w/2;//Block UNDER worm CBlockKoord pos = vec.toBlockKoord(); pos.y++;//Block UNDER worm CBlock* miningBlock = m_pGame->getBlock(pos);//returns NULL if for example out of Gameboard if (miningBlock != NULL) { int miningBlockTeamID = miningBlock->getTeamID(); int miningBlockBuilderID = miningBlock->getBuilderID(); if ( ((miningBlockTeamID == NOBODY) || (miningBlockTeamID == m_TeamID))//you can't mine other teams blocks && (miningBlock->getBlockType() != CBlock::AIR) ){ int newMoney = m_Money + CBlock::BlockCosts[miningBlock->getBlockType()]; //da blocktype sich dann ja ändert... bei buildblock if (m_pGame->BuildBlock(pos, CBlock::AIR, m_WormID, m_TeamID)) { //block konnte gebaut werden!: m_Money = newMoney; m_Points++; g_pLogfile->fTextout(BLUE, false, "Mined Block"); //delete block from playerlist! if (miningBlockBuilderID != NOBODY) { list<CBlockKoord>::iterator it; for (it = m_BuiltBlocks.begin(); (it != m_BuiltBlocks.end()) && ((*it) != pos); ++it) /*nothing*/; m_BuiltBlocks.erase(it); //m_pGame->m_vWorms.at(miningBlockBuilderID)->m_BuiltBlocks.erase(); } } } } else g_pLogfile->Textout("<br /> Couldn't mine Block because miningBlock == NULL"); }//Keydown //FIXME: use keylock also for useitem keys and so on.... }