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

Function ShieldDur

Source/player.cpp:2790–2823  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2788}
2789
2790void ShieldDur(int pnum)
2791{
2792 if (pnum != myplr) {
2793 return;
2794 }
2795
2796 if ((DWORD)pnum >= MAX_PLRS) {
2797 app_fatal("ShieldDur: illegal player %d", pnum);
2798 }
2799
2800 if (plr[pnum].InvBody[INVLOC_HAND_LEFT]._itype == ITYPE_SHIELD) {
2801 if (plr[pnum].InvBody[INVLOC_HAND_LEFT]._iDurability == DUR_INDESTRUCTIBLE) {
2802 return;
2803 }
2804
2805 plr[pnum].InvBody[INVLOC_HAND_LEFT]._iDurability--;
2806 if (plr[pnum].InvBody[INVLOC_HAND_LEFT]._iDurability == 0) {
2807 NetSendCmdDelItem(TRUE, INVLOC_HAND_LEFT);
2808 plr[pnum].InvBody[INVLOC_HAND_LEFT]._itype = ITYPE_NONE;
2809 CalcPlrInv(pnum, TRUE);
2810 }
2811 }
2812
2813 if (plr[pnum].InvBody[INVLOC_HAND_RIGHT]._itype == ITYPE_SHIELD) {
2814 if (plr[pnum].InvBody[INVLOC_HAND_RIGHT]._iDurability != DUR_INDESTRUCTIBLE) {
2815 plr[pnum].InvBody[INVLOC_HAND_RIGHT]._iDurability--;
2816 if (plr[pnum].InvBody[INVLOC_HAND_RIGHT]._iDurability == 0) {
2817 NetSendCmdDelItem(TRUE, INVLOC_HAND_RIGHT);
2818 plr[pnum].InvBody[INVLOC_HAND_RIGHT]._itype = ITYPE_NONE;
2819 CalcPlrInv(pnum, TRUE);
2820 }
2821 }
2822 }
2823}
2824
2825BOOL PM_DoBlock(int pnum)
2826{

Callers 1

PM_DoBlockFunction · 0.85

Calls 3

app_fatalFunction · 0.85
NetSendCmdDelItemFunction · 0.85
CalcPlrInvFunction · 0.85

Tested by

no test coverage detected