♻️Apply point positioning to all remaning entities
This commit is contained in:
parent
d096a85803
commit
2bd13451a1
43 changed files with 1286 additions and 1375 deletions
|
|
@ -26,7 +26,7 @@ static void sync_one_monster()
|
|||
|
||||
for (i = 0; i < nummonsters; i++) {
|
||||
m = monstactive[i];
|
||||
sgnMonsterPriority[m] = abs(plr[myplr].position.current.x - monster[m].position.current.x) + abs(plr[myplr].position.current.y - monster[m].position.current.y);
|
||||
sgnMonsterPriority[m] = abs(plr[myplr].position.tile.x - monster[m].position.tile.x) + abs(plr[myplr].position.tile.y - monster[m].position.tile.y);
|
||||
if (monster[m]._msquelch == 0) {
|
||||
sgnMonsterPriority[m] += 0x1000;
|
||||
} else if (sgwLRU[m] != 0) {
|
||||
|
|
@ -38,8 +38,8 @@ static void sync_one_monster()
|
|||
static void sync_monster_pos(TSyncMonster *p, int ndx)
|
||||
{
|
||||
p->_mndx = ndx;
|
||||
p->_mx = monster[ndx].position.current.x;
|
||||
p->_my = monster[ndx].position.current.y;
|
||||
p->_mx = monster[ndx].position.tile.x;
|
||||
p->_my = monster[ndx].position.tile.y;
|
||||
p->_menemy = encode_enemy(ndx);
|
||||
p->_mdelta = sgnMonsterPriority[ndx] > 255 ? 255 : sgnMonsterPriority[ndx];
|
||||
|
||||
|
|
@ -110,8 +110,8 @@ static void SyncPlrInv(TSyncHeader *pHdr)
|
|||
}
|
||||
ii = itemactive[sgnSyncItem++];
|
||||
pHdr->bItemI = ii;
|
||||
pHdr->bItemX = items[ii]._ix;
|
||||
pHdr->bItemY = items[ii]._iy;
|
||||
pHdr->bItemX = items[ii].position.x;
|
||||
pHdr->bItemY = items[ii].position.y;
|
||||
pHdr->wItemIndx = items[ii].IDidx;
|
||||
if (items[ii].IDidx == IDI_EAR) {
|
||||
pHdr->wItemCI = (items[ii]._iName[7] << 8) | items[ii]._iName[8];
|
||||
|
|
@ -213,7 +213,7 @@ static void sync_monster(int pnum, const TSyncMonster *p)
|
|||
return;
|
||||
}
|
||||
|
||||
delta = abs(plr[myplr].position.current.x - monster[ndx].position.current.x) + abs(plr[myplr].position.current.y - monster[ndx].position.current.y);
|
||||
delta = abs(plr[myplr].position.tile.x - monster[ndx].position.tile.x) + abs(plr[myplr].position.tile.y - monster[ndx].position.tile.y);
|
||||
if (delta > 255) {
|
||||
delta = 255;
|
||||
}
|
||||
|
|
@ -228,14 +228,14 @@ static void sync_monster(int pnum, const TSyncMonster *p)
|
|||
return;
|
||||
}
|
||||
|
||||
mdx = abs(monster[ndx].position.current.x - p->_mx);
|
||||
mdy = abs(monster[ndx].position.current.y - p->_my);
|
||||
mdx = abs(monster[ndx].position.tile.x - p->_mx);
|
||||
mdy = abs(monster[ndx].position.tile.y - p->_my);
|
||||
if (mdx <= 2 && mdy <= 2) {
|
||||
if (monster[ndx]._mmode < MM_WALK || monster[ndx]._mmode > MM_WALK3) {
|
||||
direction md = GetDirection(monster[ndx].position.current.x, monster[ndx].position.current.y, p->_mx, p->_my);
|
||||
direction md = GetDirection(monster[ndx].position.tile.x, monster[ndx].position.tile.y, p->_mx, p->_my);
|
||||
if (DirOK(ndx, md)) {
|
||||
M_ClearSquares(ndx);
|
||||
dMonster[monster[ndx].position.current.x][monster[ndx].position.current.y] = ndx + 1;
|
||||
dMonster[monster[ndx].position.tile.x][monster[ndx].position.tile.y] = ndx + 1;
|
||||
M_WalkDir(ndx, md);
|
||||
monster[ndx]._msquelch = UCHAR_MAX;
|
||||
}
|
||||
|
|
@ -243,7 +243,7 @@ static void sync_monster(int pnum, const TSyncMonster *p)
|
|||
} else if (dMonster[p->_mx][p->_my] == 0) {
|
||||
M_ClearSquares(ndx);
|
||||
dMonster[p->_mx][p->_my] = ndx + 1;
|
||||
monster[ndx].position.current = { p->_mx, p->_my };
|
||||
monster[ndx].position.tile = { p->_mx, p->_my };
|
||||
decode_enemy(ndx, p->_menemy);
|
||||
direction md = GetDirection(p->_mx, p->_my, monster[ndx].enemyPosition.x, monster[ndx].enemyPosition.y);
|
||||
M_StartStand(ndx, md);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue