| 1084 | } |
| 1085 | |
| 1086 | void 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]; |
no test coverage detected