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

Function StoreAutoPlace

Source/stores.cpp:287–357  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

285}
286
287void StoreAutoPlace()
288{
289 BOOL done;
290 int i, w, h, idx;
291
292 SetICursor(plr[myplr].HoldItem._iCurs + CURSOR_FIRSTITEM);
293 w = icursW28;
294 h = icursH28;
295 done = FALSE;
296 if (w == 1 && h == 1) {
297 idx = plr[myplr].HoldItem.IDidx;
298 if (plr[myplr].HoldItem._iStatFlag && AllItemsList[idx].iUsable) {
299 for (i = 0; i < 8 && !done; i++) {
300 if (plr[myplr].SpdList[i]._itype == ITYPE_NONE) {
301 plr[myplr].SpdList[i] = plr[myplr].HoldItem;
302 done = TRUE;
303 }
304 }
305 }
306 for (i = 30; i <= 39 && !done; i++) {
307 done = AutoPlace(myplr, i, w, h, TRUE);
308 }
309 for (i = 20; i <= 29 && !done; i++) {
310 done = AutoPlace(myplr, i, w, h, TRUE);
311 }
312 for (i = 10; i <= 19 && !done; i++) {
313 done = AutoPlace(myplr, i, w, h, TRUE);
314 }
315 for (i = 0; i <= 9 && !done; i++) {
316 done = AutoPlace(myplr, i, w, h, TRUE);
317 }
318 }
319 if (w == 1 && h == 2) {
320 for (i = 29; i >= 20 && !done; i--) {
321 done = AutoPlace(myplr, i, w, h, TRUE);
322 }
323 for (i = 9; i >= 0 && !done; i--) {
324 done = AutoPlace(myplr, i, w, h, TRUE);
325 }
326 for (i = 19; i >= 10 && !done; i--) {
327 done = AutoPlace(myplr, i, w, h, TRUE);
328 }
329 }
330 if (w == 1 && h == 3) {
331 for (i = 0; i < 20 && !done; i++) {
332 done = AutoPlace(myplr, i, w, h, TRUE);
333 }
334 }
335 if (w == 2 && h == 2) {
336 for (i = 0; i < 10 && !done; i++) {
337 done = AutoPlace(myplr, AP2x2Tbl[i], w, h, TRUE);
338 }
339 for (i = 21; i < 29 && !done; i += 2) {
340 done = AutoPlace(myplr, i, w, h, TRUE);
341 }
342 for (i = 1; i < 9 && !done; i += 2) {
343 done = AutoPlace(myplr, i, w, h, TRUE);
344 }

Callers 5

SmithBuyItemFunction · 0.85
SmithBuyPItemFunction · 0.85
WitchBuyItemFunction · 0.85
BoyBuyItemFunction · 0.85
HealerBuyItemFunction · 0.85

Calls 2

SetICursorFunction · 0.85
AutoPlaceFunction · 0.85

Tested by

no test coverage detected