| 549 | } |
| 550 | |
| 551 | BOOL GoldAutoPlace(int pnum) |
| 552 | { |
| 553 | BOOL done; |
| 554 | int i, ii; |
| 555 | int xx, yy; |
| 556 | |
| 557 | done = FALSE; |
| 558 | for (i = 0; i < plr[pnum]._pNumInv && !done; i++) { |
| 559 | if (plr[pnum].InvList[i]._itype == ITYPE_GOLD) { |
| 560 | if (plr[pnum].HoldItem._ivalue + plr[pnum].InvList[i]._ivalue <= GOLD_MAX_LIMIT) { |
| 561 | plr[pnum].InvList[i]._ivalue = plr[pnum].HoldItem._ivalue + plr[pnum].InvList[i]._ivalue; |
| 562 | if (plr[pnum].InvList[i]._ivalue >= GOLD_MEDIUM_LIMIT) |
| 563 | plr[pnum].InvList[i]._iCurs = ICURS_GOLD_LARGE; |
| 564 | else if (plr[pnum].InvList[i]._ivalue <= GOLD_SMALL_LIMIT) |
| 565 | plr[pnum].InvList[i]._iCurs = ICURS_GOLD_SMALL; |
| 566 | else |
| 567 | plr[pnum].InvList[i]._iCurs = ICURS_GOLD_MEDIUM; |
| 568 | plr[pnum]._pGold = CalculateGold(pnum); |
| 569 | done = TRUE; |
| 570 | } |
| 571 | } |
| 572 | } |
| 573 | if (done) |
| 574 | return done; |
| 575 | |
| 576 | for (i = 0; i < plr[pnum]._pNumInv && !done; i++) { |
| 577 | if (plr[pnum].InvList[i]._itype == ITYPE_GOLD && plr[pnum].InvList[i]._ivalue < GOLD_MAX_LIMIT) { |
| 578 | if (plr[pnum].HoldItem._ivalue + plr[pnum].InvList[i]._ivalue <= GOLD_MAX_LIMIT) { |
| 579 | plr[pnum].InvList[i]._ivalue = plr[pnum].HoldItem._ivalue + plr[pnum].InvList[i]._ivalue; |
| 580 | if (plr[pnum].InvList[i]._ivalue >= GOLD_MEDIUM_LIMIT) |
| 581 | plr[pnum].InvList[i]._iCurs = ICURS_GOLD_LARGE; |
| 582 | else if (plr[pnum].InvList[i]._ivalue <= GOLD_SMALL_LIMIT) |
| 583 | plr[pnum].InvList[i]._iCurs = ICURS_GOLD_SMALL; |
| 584 | else |
| 585 | plr[pnum].InvList[i]._iCurs = ICURS_GOLD_MEDIUM; |
| 586 | plr[pnum]._pGold = CalculateGold(pnum); |
| 587 | done = TRUE; |
| 588 | } |
| 589 | } |
| 590 | } |
| 591 | if (done) |
| 592 | return done; |
| 593 | |
| 594 | for (i = 39; i >= 0 && !done; i--) { |
| 595 | yy = 10 * (i / 10); |
| 596 | xx = i % 10; |
| 597 | if (!plr[pnum].InvGrid[xx + yy]) { |
| 598 | ii = plr[pnum]._pNumInv; |
| 599 | plr[pnum].InvList[ii] = plr[pnum].HoldItem; |
| 600 | plr[pnum]._pNumInv = plr[pnum]._pNumInv + 1; |
| 601 | plr[pnum].InvGrid[xx + yy] = plr[pnum]._pNumInv; |
| 602 | if (plr[pnum].HoldItem._ivalue >= GOLD_MEDIUM_LIMIT) |
| 603 | plr[pnum].InvList[ii]._iCurs = ICURS_GOLD_LARGE; |
| 604 | else if (plr[pnum].HoldItem._ivalue <= GOLD_SMALL_LIMIT) |
| 605 | plr[pnum].InvList[ii]._iCurs = ICURS_GOLD_SMALL; |
| 606 | else |
| 607 | plr[pnum].InvList[ii]._iCurs = ICURS_GOLD_MEDIUM; |
| 608 | plr[pnum]._pGold = CalculateGold(pnum); |
no test coverage detected