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

Function GetDirection16

Source/missiles.cpp:302–346  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

300}
301
302int GetDirection16(int x1, int y1, int x2, int y2)
303{
304 BYTE Dirs[16][16] = {
305 { 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
306 { 4, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
307 { 4, 3, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
308 { 4, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0 },
309 { 4, 4, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
310 { 4, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
311 { 4, 4, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1 },
312 { 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1 },
313 { 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1 },
314 { 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1 },
315 { 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 1, 1 },
316 { 4, 4, 4, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 1 },
317 { 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2 },
318 { 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2 },
319 { 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2 },
320 { 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2 }
321 };
322 BYTE urtoll[5] = { 6, 7, 8, 9, 10 };
323 BYTE ultolr[5] = { 6, 5, 4, 3, 2 };
324 BYTE lltour[5] = { 14, 13, 12, 11, 10 };
325 BYTE lrtoul[5] = { 14, 15, 0, 1, 2 };
326 int mx, my, md;
327
328 mx = abs(x2 - x1);
329 if (mx > 15)
330 mx = 15;
331 my = abs(y2 - y1);
332 if (my > 15)
333 my = 15;
334 md = Dirs[my][mx];
335 if (x1 > x2) {
336 if (y1 > y2)
337 md = urtoll[md];
338 else
339 md = ultolr[md];
340 } else if (y1 > y2) {
341 md = lltour[md];
342 } else {
343 md = lrtoul[md];
344 }
345 return md;
346}
347
348void DeleteMissile(int mi, int i)
349{

Callers 6

AddLArrowFunction · 0.85
AddArrowFunction · 0.85
AddFireboltFunction · 0.85
AddFireballFunction · 0.85
AddAcidFunction · 0.85
AddHboltFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected