void BagManager::manage() { if ( AMenuItemPtr mItem = _bagMenu->getSelectedItem() ) { ActorPtr selectedItem( mItem->getObject<Actor>() ); if ( selectedItem ) { ItemOperation operation = chooseItemOperationFromMenu(selectedItem); switch(operation) { case EQUIP: equip( selectedItem ); break; case DROP: Actor::Player->performAction( std::make_shared<DropAction>(selectedItem, getAmountToDrop(selectedItem) ) ); break; //TODO display actor info text instead of test string case INSPECT: Engine::instance() .windowManager() .getWindow<FixedSizeTextWindow>() .setText( selectedItem->getDescription() ) .show(); break; default:; } fillBag(); } } }
// === OPERATION CHOOSING === // void BagManager::manage() { if ( AMenuItemPtr mItem = _bagMenu->getSelectedItem() ) { if ( Actor* selectedItem = mItem->getObject<Actor>() ) { ItemOperation operation = chooseItemOperationFromMenu(selectedItem); switch(operation) { case EQUIP: equip( selectedItem ); break; case DROP: drop( selectedItem ); break; default:; } fillBag(); } } }