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

Function TakePlrsMoney

Source/stores.cpp:1780–1844  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1778}
1779
1780void TakePlrsMoney(int cost)
1781{
1782 int i;
1783
1784 plr[myplr]._pGold = CalculateGold(myplr) - cost;
1785 for (i = 0; i < MAXBELTITEMS && cost > 0; i++) {
1786 if (plr[myplr].SpdList[i]._itype == ITYPE_GOLD && plr[myplr].SpdList[i]._ivalue != GOLD_MAX_LIMIT) {
1787 if (cost < plr[myplr].SpdList[i]._ivalue) {
1788 plr[myplr].SpdList[i]._ivalue -= cost;
1789 SetSpdbarGoldCurs(myplr, i);
1790 cost = 0;
1791 } else {
1792 cost -= plr[myplr].SpdList[i]._ivalue;
1793 RemoveSpdBarItem(myplr, i);
1794 i = -1;
1795 }
1796 }
1797 }
1798 if (cost > 0) {
1799 for (i = 0; i < MAXBELTITEMS && cost > 0; i++) {
1800 if (plr[myplr].SpdList[i]._itype == ITYPE_GOLD) {
1801 if (cost < plr[myplr].SpdList[i]._ivalue) {
1802 plr[myplr].SpdList[i]._ivalue -= cost;
1803 SetSpdbarGoldCurs(myplr, i);
1804 cost = 0;
1805 } else {
1806 cost -= plr[myplr].SpdList[i]._ivalue;
1807 RemoveSpdBarItem(myplr, i);
1808 i = -1;
1809 }
1810 }
1811 }
1812 }
1813 force_redraw = 255;
1814 if (cost > 0) {
1815 for (i = 0; i < plr[myplr]._pNumInv && cost > 0; i++) {
1816 if (plr[myplr].InvList[i]._itype == ITYPE_GOLD && plr[myplr].InvList[i]._ivalue != GOLD_MAX_LIMIT) {
1817 if (cost < plr[myplr].InvList[i]._ivalue) {
1818 plr[myplr].InvList[i]._ivalue -= cost;
1819 SetGoldCurs(myplr, i);
1820 cost = 0;
1821 } else {
1822 cost -= plr[myplr].InvList[i]._ivalue;
1823 RemoveInvItem(myplr, i);
1824 i = -1;
1825 }
1826 }
1827 }
1828 if (cost > 0) {
1829 for (i = 0; i < plr[myplr]._pNumInv && cost > 0; i++) {
1830 if (plr[myplr].InvList[i]._itype == ITYPE_GOLD) {
1831 if (cost < plr[myplr].InvList[i]._ivalue) {
1832 plr[myplr].InvList[i]._ivalue -= cost;
1833 SetGoldCurs(myplr, i);
1834 cost = 0;
1835 } else {
1836 cost -= plr[myplr].InvList[i]._ivalue;
1837 RemoveInvItem(myplr, i);

Callers 9

SmithBuyItemFunction · 0.85
SmithBuyPItemFunction · 0.85
SmithRepairItemFunction · 0.85
WitchBuyItemFunction · 0.85
WitchRechargeItemFunction · 0.85
S_BoyEnterFunction · 0.85
BoyBuyItemFunction · 0.85
HealerBuyItemFunction · 0.85
StoryIdItemFunction · 0.85

Calls 5

CalculateGoldFunction · 0.85
SetSpdbarGoldCursFunction · 0.85
RemoveSpdBarItemFunction · 0.85
SetGoldCursFunction · 0.85
RemoveInvItemFunction · 0.85

Tested by

no test coverage detected