MCPcopy Create free account
hub / github.com/diasurgical/devilution / CheckInvCut

Function CheckInvCut

Source/inv.cpp:1086–1240  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1084}
1085
1086void CheckInvCut(int pnum, int mx, int my)
1087{
1088 int r;
1089 BOOL done;
1090 char ii;
1091 int iv, i, j, offs, ig;
1092
1093 if (plr[pnum]._pmode > PM_WALK3) {
1094 return;
1095 }
1096
1097 if (dropGoldFlag) {
1098 dropGoldFlag = FALSE;
1099 dropGoldValue = 0;
1100 }
1101
1102 done = FALSE;
1103
1104 for (r = 0; (DWORD)r < NUM_XY_SLOTS && !done; r++) {
1105 // check which inventory rectangle the mouse is in, if any
1106 if (mx >= InvRect[r].X
1107 && mx < InvRect[r].X + (INV_SLOT_SIZE_PX + 1)
1108 && my >= InvRect[r].Y - (INV_SLOT_SIZE_PX + 1)
1109 && my < InvRect[r].Y) {
1110 done = TRUE;
1111 r--;
1112 }
1113 }
1114
1115 if (!done) {
1116 // not on an inventory slot rectangle
1117 return;
1118 }
1119
1120 plr[pnum].HoldItem._itype = ITYPE_NONE;
1121
1122 if (
1123 r >= SLOTXY_HEAD_FIRST
1124 && r <= SLOTXY_HEAD_LAST
1125 && plr[pnum].InvBody[INVLOC_HEAD]._itype != ITYPE_NONE) {
1126 NetSendCmdDelItem(FALSE, INVLOC_HEAD);
1127 plr[pnum].HoldItem = plr[pnum].InvBody[INVLOC_HEAD];
1128 plr[pnum].InvBody[INVLOC_HEAD]._itype = ITYPE_NONE;
1129 }
1130
1131 if (
1132 r == SLOTXY_RING_LEFT
1133 && plr[pnum].InvBody[INVLOC_RING_LEFT]._itype != ITYPE_NONE) {
1134 NetSendCmdDelItem(FALSE, INVLOC_RING_LEFT);
1135 plr[pnum].HoldItem = plr[pnum].InvBody[INVLOC_RING_LEFT];
1136 plr[pnum].InvBody[INVLOC_RING_LEFT]._itype = ITYPE_NONE;
1137 }
1138
1139 if (
1140 r == SLOTXY_RING_RIGHT
1141 && plr[pnum].InvBody[INVLOC_RING_RIGHT]._itype != ITYPE_NONE) {
1142 NetSendCmdDelItem(FALSE, INVLOC_RING_RIGHT);
1143 plr[pnum].HoldItem = plr[pnum].InvBody[INVLOC_RING_RIGHT];

Callers 1

CheckInvItemFunction · 0.85

Calls 7

NetSendCmdDelItemFunction · 0.85
CalculateGoldFunction · 0.85
CalcPlrInvFunction · 0.85
CheckItemStatsFunction · 0.85
PlaySFXFunction · 0.85
SetCursor_Function · 0.85
SetCursorPosFunction · 0.85

Tested by

no test coverage detected