示例#1
0
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();
    }
  }
}
示例#2
0
// === 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();
    }
  }
}