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

Function AutoPlace

Source/inv.cpp:429–482  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

427}
428
429BOOL AutoPlace(int pnum, int ii, int sx, int sy, BOOL saveflag)
430{
431 int i, j, xx, yy;
432 BOOL done;
433
434 done = TRUE;
435 yy = 10 * (ii / 10);
436 if (yy < 0) {
437 yy = 0;
438 }
439 for (j = 0; j < sy && done; j++) {
440 if (yy >= 40) {
441 done = FALSE;
442 }
443 xx = ii % 10;
444 if (xx < 0) {
445 xx = 0;
446 }
447 for (i = 0; i < sx && done; i++) {
448 if (xx >= 10) {
449 done = FALSE;
450 } else {
451 done = plr[pnum].InvGrid[xx + yy] == 0;
452 }
453 xx++;
454 }
455 yy += 10;
456 }
457 if (done && saveflag) {
458 plr[pnum].InvList[plr[pnum]._pNumInv] = plr[pnum].HoldItem;
459 plr[pnum]._pNumInv++;
460 yy = 10 * (ii / 10);
461 if (yy < 0) {
462 yy = 0;
463 }
464 for (j = 0; j < sy; j++) {
465 xx = ii % 10;
466 if (xx < 0) {
467 xx = 0;
468 }
469 for (i = 0; i < sx; i++) {
470 if (i != 0 || j != sy - 1) {
471 plr[pnum].InvGrid[xx + yy] = -plr[pnum]._pNumInv;
472 } else {
473 plr[pnum].InvGrid[xx + yy] = plr[pnum]._pNumInv;
474 }
475 xx++;
476 }
477 yy += 10;
478 }
479 CalcPlrScrolls(pnum);
480 }
481 return done;
482}
483
484BOOL SpecialAutoPlace(int pnum, int ii, int sx, int sy, BOOL saveflag)
485{

Callers 7

StoreAutoPlaceFunction · 0.85
S_SBuyEnterFunction · 0.85
S_SPBuyEnterFunction · 0.85
S_BBuyEnterFunction · 0.85
CheckInvPasteFunction · 0.85
AutoGetItemFunction · 0.85
items.cppFile · 0.85

Calls 1

CalcPlrScrollsFunction · 0.85

Tested by

no test coverage detected