Browse Source

door fix

pull/882/head
qndel 6 years ago committed by Anders Jenbo
parent
commit
132723e851
  1. 41
      Source/objects.cpp
  2. 5
      defs.h

41
Source/objects.cpp

@ -79,7 +79,7 @@ BYTE shrineavail[NUM_SHRINETYPE] = {
SHRINETYPE_SINGLE, // SHRINE_GLOOMY
SHRINETYPE_SINGLE, // SHRINE_WEIRD
SHRINETYPE_ANY, // SHRINE_MAGICAL
SHRINETYPE_ANY, // SHRINE_STONE
SHRINETYPE_ANY, // SHRINE_STONE
SHRINETYPE_ANY, // SHRINE_RELIGIOUS
SHRINETYPE_ANY, // SHRINE_ENCHANTED
SHRINETYPE_SINGLE, // SHRINE_THAUMATURGIC
@ -95,7 +95,7 @@ BYTE shrineavail[NUM_SHRINETYPE] = {
SHRINETYPE_MULTI, // SHRINE_SPOOKY
SHRINETYPE_ANY, // SHRINE_ABANDONED
SHRINETYPE_ANY, // SHRINE_CREEPY
SHRINETYPE_ANY, // SHRINE_QUIET
SHRINETYPE_ANY, // SHRINE_QUIET
SHRINETYPE_ANY, // SHRINE_SECLUDED
SHRINETYPE_ANY, // SHRINE_ORNATE
SHRINETYPE_ANY, // SHRINE_GLIMMERING
@ -1869,17 +1869,10 @@ void Obj_Door(int i)
} else {
dx = object[i]._ox;
dy = object[i]._oy;
#ifdef HELLFIRE
dok = !dMonster[dx][dy];
dok = dok && !dItem[dx][dy];
dok = dok && !dDead[dx][dy];
dok = dok && !dPlayer[dx][dy];
#else
dok = !dMonster[dx][dy];
dok = dok & !dItem[dx][dy];
dok = dok & !dDead[dx][dy];
dok = dok & !dPlayer[dx][dy];
#endif
dok = dok HFAND !dItem[dx][dy];
dok = dok HFAND !dDead[dx][dy];
dok = dok HFAND !dPlayer[dx][dy];
object[i]._oSelFlag = 2;
object[i]._oVar4 = dok ? 1 : 2;
object[i]._oMissFlag = TRUE;
@ -2603,6 +2596,7 @@ void OperateL1LDoor(int pnum, int oi, DIABOOL sendflag)
void OperateL2RDoor(int pnum, int oi, DIABOOL sendflag)
{
int xp, yp;
DIABOOL dok;
if (object[oi]._oVar4 == 2) {
if (!deltaload)
@ -2627,7 +2621,10 @@ void OperateL2RDoor(int pnum, int oi, DIABOOL sendflag)
if (!deltaload)
PlaySfxLoc(IS_DOORCLOS, object[oi]._ox, yp);
if (((dDead[xp][yp] != 0 ? 0 : 1) & (dMonster[xp][yp] != 0 ? 0 : 1) & (dItem[xp][yp] != 0 ? 0 : 1)) != 0) {
dok = !dMonster[xp][yp];
dok = dok HFAND !dItem[xp][yp];
dok = dok HFAND !dDead[xp][yp];
if (dok) {
if (pnum == myplr && sendflag)
NetSendCmdParam1(TRUE, CMD_CLOSEDOOR, oi);
object[oi]._oVar4 = 0;
@ -2644,6 +2641,7 @@ void OperateL2RDoor(int pnum, int oi, DIABOOL sendflag)
void OperateL2LDoor(int pnum, int oi, BOOL sendflag)
{
int xp, yp;
DIABOOL dok;
if (object[oi]._oVar4 == 2) {
if (!deltaload)
@ -2668,7 +2666,10 @@ void OperateL2LDoor(int pnum, int oi, BOOL sendflag)
if (!deltaload)
PlaySfxLoc(IS_DOORCLOS, object[oi]._ox, yp);
if (((dDead[xp][yp] != 0 ? 0 : 1) & (dMonster[xp][yp] != 0 ? 0 : 1) & (dItem[xp][yp] != 0 ? 0 : 1)) != 0) {
dok = !dMonster[xp][yp];
dok = dok HFAND !dItem[xp][yp];
dok = dok HFAND !dDead[xp][yp];
if (dok) {
if (pnum == myplr && sendflag)
NetSendCmdParam1(TRUE, CMD_CLOSEDOOR, oi);
object[oi]._oVar4 = 0;
@ -2685,6 +2686,7 @@ void OperateL2LDoor(int pnum, int oi, BOOL sendflag)
void OperateL3RDoor(int pnum, int oi, DIABOOL sendflag)
{
int xp, yp;
DIABOOL dok;
if (object[oi]._oVar4 == 2) {
if (!deltaload)
@ -2710,7 +2712,10 @@ void OperateL3RDoor(int pnum, int oi, DIABOOL sendflag)
if (!deltaload)
PlaySfxLoc(IS_DOORCLOS, object[oi]._ox, yp);
if (((dDead[xp][yp] != 0 ? 0 : 1) & (dMonster[xp][yp] != 0 ? 0 : 1) & (dItem[xp][yp] != 0 ? 0 : 1)) != 0) {
dok = !dMonster[xp][yp];
dok = dok HFAND !dItem[xp][yp];
dok = dok HFAND !dDead[xp][yp];
if (dok) {
if (pnum == myplr && sendflag)
NetSendCmdParam1(TRUE, CMD_CLOSEDOOR, oi);
object[oi]._oVar4 = 0;
@ -2727,6 +2732,7 @@ void OperateL3RDoor(int pnum, int oi, DIABOOL sendflag)
void OperateL3LDoor(int pnum, int oi, DIABOOL sendflag)
{
int xp, yp;
DIABOOL dok;
if (object[oi]._oVar4 == 2) {
if (!deltaload)
@ -2752,7 +2758,10 @@ void OperateL3LDoor(int pnum, int oi, DIABOOL sendflag)
if (!deltaload)
PlaySfxLoc(IS_DOORCLOS, object[oi]._ox, yp);
if (((dDead[xp][yp] != 0 ? 0 : 1) & (dMonster[xp][yp] != 0 ? 0 : 1) & (dItem[xp][yp] != 0 ? 0 : 1)) != 0) {
dok = !dMonster[xp][yp];
dok = dok HFAND !dItem[xp][yp];
dok = dok HFAND !dDead[xp][yp];
if (dok) {
if (pnum == myplr && sendflag)
NetSendCmdParam1(TRUE, CMD_CLOSEDOOR, oi);
object[oi]._oVar4 = 0;

5
defs.h

@ -14,6 +14,11 @@
#define APP_NAME "Diablo"
#endif
#ifdef HELLFIRE
#define HFAND &&
#else
#define HFAND &
#endif
#define DMAXX 40
#define DMAXY 40

Loading…
Cancel
Save