MCPcopy Create free account
hub / github.com/TurningWheel/Barony / warpControllerToModule

Method warpControllerToModule

src/interface/interface.cpp:1058–1279  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1056}
1057
1058bool Player::GUI_t::warpControllerToModule(bool moveCursorInstantly)
1059{
1060 bool warped = false;
1061 if ( auto vmouse = inputs.getVirtualMouse(player.playernum) )
1062 {
1063 if ( !vmouse->lastMovementFromController )
1064 {
1065 return false;
1066 }
1067 vmouse->draw_cursor = false;
1068 }
1069
1070 if ( activeModule == MODULE_INVENTORY )
1071 {
1072 auto& inventoryUI = player.inventoryUI;
1073 Item* selectedItem = inputs.getUIInteraction(player.playernum)->selectedItem;
1074 if ( selectedItem && !player.inventoryUI.isItemFromChest(selectedItem) )
1075 {
1076 // we're holding an item, move to the selected item's slot
1077 auto slot = player.paperDoll.getSlotForItem(*selectedItem);
1078 if ( slot != Player::PaperDoll_t::PaperDollSlotType::SLOT_MAX )
1079 {
1080 int x, y;
1081 player.paperDoll.getCoordinatesFromSlotType(slot, x, y);
1082 inventoryUI.selectSlot(x, y);
1083 }
1084 else
1085 {
1086 // not equipped, move to it's inventory area
1087 if ( selectedItem->x >= 0 && selectedItem->x < inventoryUI.getSizeX()
1088 && selectedItem->y >= 0 && selectedItem->y < inventoryUI.getSizeY() )
1089 {
1090 inventoryUI.selectSlot(selectedItem->x, selectedItem->y);
1091 }
1092 }
1093 }
1094 if ( inventoryUI.warpMouseToSelectedItem(nullptr, (Inputs::SET_CONTROLLER))
1095 && inventoryUI.cursor.queuedModule == Player::GUI_t::MODULE_NONE )
1096 {
1097 if ( auto slot = inventoryUI.getInventorySlotFrame(inventoryUI.getSelectedSlotX(), inventoryUI.getSelectedSlotY()) )
1098 {
1099 SDL_Rect pos = slot->getAbsoluteSize();
1100 pos.x -= player.camera_virtualx1();
1101 pos.y -= player.camera_virtualy1();
1102 inventoryUI.updateSelectedSlotAnimation(pos.x, pos.y,
1103 inventoryUI.getSlotSize(), inventoryUI.getSlotSize(), moveCursorInstantly);
1104 }
1105 }
1106 return true;
1107 }
1108 else if ( activeModule == MODULE_SPELLS )
1109 {
1110 auto& inventoryUI = player.inventoryUI;
1111 if ( inventoryUI.warpMouseToSelectedSpell(nullptr, (Inputs::SET_CONTROLLER))
1112 && inventoryUI.cursor.queuedModule == Player::GUI_t::MODULE_NONE )
1113 {
1114 if ( auto slot = inventoryUI.getSpellSlotFrame(inventoryUI.getSelectedSpellX(), inventoryUI.getSelectedSpellY()) )
1115 {

Callers 13

closeShopMethod · 0.80
openStatusScreenMethod · 0.80
closeTinkerMenuMethod · 0.80
onTinkerChangeTabActionFunction · 0.80
closeAlchemyMenuMethod · 0.80
closeFeatherMenuMethod · 0.80
onFeatherChangeTabActionFunction · 0.80
closeItemEffectMenuMethod · 0.80
createItemEffectMenuMethod · 0.80
changeCurrentViewMethod · 0.80
closeAssistShrineMethod · 0.80
closeMailMenuMethod · 0.80

Calls 15

getVirtualMouseMethod · 0.80
getUIInteractionMethod · 0.80
getSlotForItemMethod · 0.80
selectSlotMethod · 0.80
getSizeXMethod · 0.80
getSizeYMethod · 0.80
getInventorySlotFrameMethod · 0.80
getSelectedSlotXMethod · 0.80
getSelectedSlotYMethod · 0.80

Tested by

no test coverage detected