From 4e137f975e9a406d3f1728c8a4c331e5c336e997 Mon Sep 17 00:00:00 2001 From: Sergey Semushin Date: Wed, 24 Apr 2019 22:04:46 +0300 Subject: [PATCH] Clean up OperateL2RDoor. --- Source/objects.cpp | 73 +++++++++++++++++++++------------------------- Source/objects.h | 2 +- 2 files changed, 34 insertions(+), 41 deletions(-) diff --git a/Source/objects.cpp b/Source/objects.cpp index 5f6319ed6..95dab140a 100644 --- a/Source/objects.cpp +++ b/Source/objects.cpp @@ -2461,52 +2461,45 @@ void OperateL1LDoor(int pnum, int oi, BOOL sendflag) } // 676190: using guessed type int deltaload; -void OperateL2RDoor(int pnum, int oi, unsigned char sendflag) +void OperateL2RDoor(int pnum, int oi, BOOL sendflag) { - int v3; // esi - int v4; // eax - int v5; // ebx - short param1; // [esp+Ch] [ebp-Ch] - int v7; // [esp+10h] [ebp-8h] - int v8; // [esp+14h] [ebp-4h] + int xp, yp; - v3 = oi; - param1 = oi; - v7 = pnum; - v4 = object[oi]._oVar4; - if (v4 != 2) { - v5 = object[v3]._oy; - v8 = object[v3]._ox; - if (v4) { - if (!deltaload) - PlaySfxLoc(IS_DOORCLOS, object[v3]._ox, v5); - if (dDead[v8][v5] != 0 || dMonster[v8][v5] != 0 || dItem[v8][v5] != 0) { - object[v3]._oVar4 = 2; - return; - } - if (v7 == myplr && sendflag) - NetSendCmdParam1(TRUE, CMD_CLOSEDOOR, param1); - object[v3]._oVar4 = 0; - object[v3]._oSelFlag = 3; - ObjSetMicro(v8, v5, 540); - object[v3]._oAnimFrame -= 2; - object[v3]._oPreFlag = FALSE; - } else { - if (pnum == myplr && sendflag) - NetSendCmdParam1(TRUE, CMD_OPENDOOR, oi); - if (!deltaload) - PlaySfxLoc(IS_DOOROPEN, object[v3]._ox, object[v3]._oy); - ObjSetMicro(v8, v5, 17); - object[v3]._oAnimFrame += 2; - object[v3]._oPreFlag = TRUE; - object[v3]._oVar4 = 1; - object[v3]._oSelFlag = 2; - } + if (object[oi]._oVar4 == 2) { + if (!deltaload) + PlaySfxLoc(IS_DOORCLOS, object[oi]._ox, object[oi]._oy); + return; + } + xp = object[oi]._ox; + yp = object[oi]._oy; + if (object[oi]._oVar4 == 0) { + if (pnum == myplr && sendflag) + NetSendCmdParam1(TRUE, CMD_OPENDOOR, oi); + if (!deltaload) + PlaySfxLoc(IS_DOOROPEN, object[oi]._ox, object[oi]._oy); + ObjSetMicro(xp, yp, 17); + object[oi]._oAnimFrame += 2; + object[oi]._oPreFlag = TRUE; + object[oi]._oVar4 = 1; + object[oi]._oSelFlag = 2; RedoPlayerVision(); return; } + if (!deltaload) - PlaySfxLoc(IS_DOORCLOS, object[v3]._ox, object[v3]._oy); + 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) { + if (pnum == myplr && sendflag) + NetSendCmdParam1(TRUE, CMD_CLOSEDOOR, oi); + object[oi]._oVar4 = 0; + object[oi]._oSelFlag = 3; + ObjSetMicro(xp, yp, 540); + object[oi]._oAnimFrame -= 2; + object[oi]._oPreFlag = FALSE; + RedoPlayerVision(); + } else { + object[oi]._oVar4 = 2; + } } // 676190: using guessed type int deltaload; diff --git a/Source/objects.h b/Source/objects.h index 6faa3e1da..5040cfbd2 100644 --- a/Source/objects.h +++ b/Source/objects.h @@ -92,7 +92,7 @@ void DoorSet(int oi, int dx, int dy); void RedoPlayerVision(); void OperateL1RDoor(int pnum, int oi, BOOL sendflag); void OperateL1LDoor(int pnum, int oi, BOOL sendflag); -void OperateL2RDoor(int pnum, int oi, unsigned char sendflag); +void OperateL2RDoor(int pnum, int oi, BOOL sendflag); void OperateL2LDoor(int pnum, int oi, unsigned char sendflag); void OperateL3RDoor(int pnum, int oi, unsigned char sendflag); void OperateL3LDoor(int pnum, int oi, unsigned char sendflag);