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

Function LeftMouseCmd

Source/diablo.cpp:651–704  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

649}
650
651BOOL LeftMouseCmd(BOOL bShift)
652{
653 BOOL bNear;
654
655 /// ASSERT: assert(MouseY < 352); // PANEL_TOP
656
657 if (leveltype == DTYPE_TOWN) {
658 if (pcursitem != -1 && pcurs == CURSOR_HAND)
659 NetSendCmdLocParam1(TRUE, invflag ? CMD_GOTOGETITEM : CMD_GOTOAGETITEM, cursmx, cursmy, pcursitem);
660 if (pcursmonst != -1)
661 NetSendCmdLocParam1(TRUE, CMD_TALKXY, cursmx, cursmy, pcursmonst);
662 if (pcursitem == -1 && pcursmonst == -1 && pcursplr == -1)
663 return TRUE;
664 } else {
665 bNear = abs(plr[myplr].WorldX - cursmx) < 2 && abs(plr[myplr].WorldY - cursmy) < 2;
666 if (pcursitem != -1 && pcurs == CURSOR_HAND && !bShift) {
667 NetSendCmdLocParam1(TRUE, invflag ? CMD_GOTOGETITEM : CMD_GOTOAGETITEM, cursmx, cursmy, pcursitem);
668 } else if (pcursobj != -1 && (!bShift || bNear && object[pcursobj]._oBreak == 1)) {
669 NetSendCmdLocParam1(TRUE, pcurs == CURSOR_DISARM ? CMD_DISARMXY : CMD_OPOBJXY, cursmx, cursmy, pcursobj);
670 } else if (plr[myplr]._pwtype == WT_RANGED) {
671 if (bShift) {
672 NetSendCmdLoc(TRUE, CMD_RATTACKXY, cursmx, cursmy);
673 } else if (pcursmonst != -1) {
674 if (CanTalkToMonst(pcursmonst)) {
675 NetSendCmdParam1(TRUE, CMD_ATTACKID, pcursmonst);
676 } else {
677 NetSendCmdParam1(TRUE, CMD_RATTACKID, pcursmonst);
678 }
679 } else if (pcursplr != -1 && !FriendlyMode) {
680 NetSendCmdParam1(TRUE, CMD_RATTACKPID, pcursplr);
681 }
682 } else {
683 if (bShift) {
684 if (pcursmonst != -1) {
685 if (CanTalkToMonst(pcursmonst)) {
686 NetSendCmdParam1(TRUE, CMD_ATTACKID, pcursmonst);
687 } else {
688 NetSendCmdLoc(TRUE, CMD_SATTACKXY, cursmx, cursmy);
689 }
690 } else {
691 NetSendCmdLoc(TRUE, CMD_SATTACKXY, cursmx, cursmy);
692 }
693 } else if (pcursmonst != -1) {
694 NetSendCmdParam1(TRUE, CMD_ATTACKID, pcursmonst);
695 } else if (pcursplr != -1 && !FriendlyMode) {
696 NetSendCmdParam1(TRUE, CMD_ATTACKPID, pcursplr);
697 }
698 }
699 if (!bShift && pcursitem == -1 && pcursobj == -1 && pcursmonst == -1 && pcursplr == -1)
700 return TRUE;
701 }
702
703 return FALSE;
704}
705
706BOOL TryIconCurs()
707{

Callers 1

LeftMouseDownFunction · 0.85

Calls 4

NetSendCmdLocParam1Function · 0.85
NetSendCmdLocFunction · 0.85
CanTalkToMonstFunction · 0.85
NetSendCmdParam1Function · 0.85

Tested by

no test coverage detected