From 87ca6557c3dadd28fea9ea2a7172c3dec2c21cb4 Mon Sep 17 00:00:00 2001 From: Adam Heinermann Date: Thu, 28 Jun 2018 15:53:06 +0200 Subject: [PATCH] Changed _oBreak and _oSelFlag to char (#95) * Changed _oBreak and _oSelFlag to char --- Source/cursor.cpp | 6 +- Source/diablo.cpp | 5 +- Source/inv.cpp | 6 +- Source/items.cpp | 6 +- Source/missiles.cpp | 2 +- Source/objects.cpp | 134 ++++++++++++++++++++++---------------------- Source/player.cpp | 8 +-- Source/themes.cpp | 2 +- structs.h | 4 +- 9 files changed, 85 insertions(+), 88 deletions(-) diff --git a/Source/cursor.cpp b/Source/cursor.cpp index 80482d6dd..977fda630 100644 --- a/Source/cursor.cpp +++ b/Source/cursor.cpp @@ -933,7 +933,7 @@ LABEL_306: if ( !v62 ) goto LABEL_272; v61 = v62 <= 0 ? -1 - v62 : v62 - 1; - if ( SLOBYTE(object[v61]._oSelFlag) < 2 ) + if ( object[v61]._oSelFlag < 2 ) goto LABEL_272; cursmx = v6; cursmy = v8 + 1; @@ -944,7 +944,7 @@ LABEL_306: if ( !v60 ) goto LABEL_272; v61 = v60 <= 0 ? -1 - v60 : v60 - 1; - if ( SLOBYTE(object[v61]._oSelFlag) < 2 ) + if ( object[v61]._oSelFlag < 2 ) goto LABEL_272; cursmy = v8; cursmx = v6 + 1; @@ -964,7 +964,7 @@ LABEL_272: } } v66 = dObject[1][v27 + 1 + v8]; - if ( !v66 || (v66 <= 0 ? (v67 = -1 - v66) : (v67 = v66 - 1), SLOBYTE(object[v67]._oSelFlag) < 2) ) + if ( !v66 || (v66 <= 0 ? (v67 = -1 - v66) : (v67 = v66 - 1), object[v67]._oSelFlag < 2) ) { LABEL_286: if ( pcursobj != -1 || pcursmonst != -1 ) diff --git a/Source/diablo.cpp b/Source/diablo.cpp index 56a62b2c2..391aa18de 100644 --- a/Source/diablo.cpp +++ b/Source/diablo.cpp @@ -948,10 +948,9 @@ LABEL_96: } if ( pcursobj != -1 ) { - if ( v1 != 5 || v7 && (v7 = 120 * pcursobj, *((_BYTE *)&object[0]._oBreak + v7) == 1) ) + if ( v1 != 5 || v7 && object[pcursobj]._oBreak == 1 ) { - _LOWORD(v7) = pcursobj; - NetSendCmdLocParam1(1u, (pcurs == 5) + CMD_OPOBJXY, cursmx, cursmy, v7); + NetSendCmdLocParam1(1u, (pcurs == 5) + CMD_OPOBJXY, cursmx, cursmy, pcursobj); goto LABEL_95; } } diff --git a/Source/inv.cpp b/Source/inv.cpp index 57dec68c2..b85879152 100644 --- a/Source/inv.cpp +++ b/Source/inv.cpp @@ -2505,17 +2505,17 @@ int __fastcall CanPut(int i, int j) v7 = v6 < 0; if ( v6 > 0 ) { - if ( _LOBYTE(object[v6-1]._oSelFlag) ) /* check */ + if ( object[v6-1]._oSelFlag ) /* check */ return 0; v7 = v6 < 0; } - if ( v7 && _LOBYTE(object[-(v6 + 1)]._oSelFlag) ) + if ( v7 && object[-(v6 + 1)]._oSelFlag ) return 0; v8 = dObject[v2 + 1][j]; if ( v8 > 0 ) { v9 = dObject[v2][j + 1]; - if ( v9 > 0 && _LOBYTE(object[v8-1]._oSelFlag) && _LOBYTE(object[v9-1]._oSelFlag) ) + if ( v9 > 0 && object[v8-1]._oSelFlag && object[v9-1]._oSelFlag ) return 0; } if ( !currlevel && (dMonster[0][v3] || dMonster[1][v3 + 1]) ) diff --git a/Source/items.cpp b/Source/items.cpp index 3d081ac45..17e6e492f 100644 --- a/Source/items.cpp +++ b/Source/items.cpp @@ -1608,17 +1608,17 @@ bool __fastcall ItemSpaceOk(int i, int j) v7 = v6 < 0; if ( v6 > 0 ) { - if ( _LOBYTE(object[v6-1]._oSelFlag) ) /* check */ + if ( object[v6-1]._oSelFlag ) /* check */ return 0; v7 = v6 < 0; } - if ( !v7 || !_LOBYTE(object[-(v6 + 1)]._oSelFlag) ) + if ( !v7 || !object[-(v6 + 1)]._oSelFlag ) { v8 = dObject[v2 + 1][j]; if ( v8 <= 0 ) return nSolidTable[dPiece[0][v3]] == 0; v9 = dObject[v2][j + 1]; - if ( v9 <= 0 || !_LOBYTE(object[v8-1]._oSelFlag) || !_LOBYTE(object[v9-1]._oSelFlag) ) + if ( v9 <= 0 || !object[v8-1]._oSelFlag || !object[v9-1]._oSelFlag ) return nSolidTable[dPiece[0][v3]] == 0; } return 0; diff --git a/Source/missiles.cpp b/Source/missiles.cpp index c902056a1..ca613364a 100644 --- a/Source/missiles.cpp +++ b/Source/missiles.cpp @@ -2070,7 +2070,7 @@ LABEL_39: v25 = v24 <= 0 ? -1 - v24 : v24 - 1; if ( !object[v25]._oMissFlag ) { - if ( _LOBYTE(object[v25]._oBreak) == 1 ) + if ( object[v25]._oBreak == 1 ) BreakObject(-1, v25); if ( !(_BYTE)nodel ) missile[v8]._mirange = 0; diff --git a/Source/objects.cpp b/Source/objects.cpp index 802ec996c..919338e88 100644 --- a/Source/objects.cpp +++ b/Source/objects.cpp @@ -1795,7 +1795,6 @@ void __fastcall SetupObject(int i, int x, int y, int ot) int v12; // ecx int v13; // eax int v14; // eax - unsigned char v15; // al v4 = i; object[v4]._otype = ot; @@ -1834,10 +1833,9 @@ void __fastcall SetupObject(int i, int x, int y, int ot) object[v4]._oSolidFlag = AllObjects[v5].oSolidFlag; object[v4]._oMissFlag = AllObjects[v5].oMissFlag; object[v4]._oLight = AllObjects[v5].oLightFlag; - _LOBYTE(object[v4]._oBreak) = AllObjects[v5].oBreak; - v15 = AllObjects[v5].oSelFlag; + object[v4]._oBreak = AllObjects[v5].oBreak; object[v4]._oDelFlag = 0; - _LOBYTE(object[v4]._oSelFlag) = v15; + object[v4]._oSelFlag = AllObjects[v5].oSelFlag; object[v4]._oPreFlag = 0; object[v4]._oTrapFlag = 0; object[v4]._oDoorFlag = 0; @@ -2156,7 +2154,7 @@ void __fastcall AddArmorStand(int i) if ( !armorFlag ) { v1 = i; - _LOBYTE(object[v1]._oSelFlag) = 0; + object[v1]._oSelFlag = 0; object[v1]._oAnimFlag = 2; } object[i]._oRndSeed = GetRndSeed(); @@ -2642,7 +2640,7 @@ void __fastcall Obj_Door(int i) { dy = object[i]._oy; dx = object[i]._ox; - _LOBYTE(object[i]._oSelFlag) = 2; + object[i]._oSelFlag = 2; object[i]._oMissFlag = 1; object[i]._oVar4 = ((dItem[dx][dy] == 0 && dDead[dx][dy] == 0 @@ -2653,7 +2651,7 @@ void __fastcall Obj_Door(int i) else { object[i]._oMissFlag = 0; - _LOBYTE(object[i]._oSelFlag) = 3; + object[i]._oSelFlag = 3; } } @@ -2828,7 +2826,7 @@ LABEL_17: goto LABEL_17; } LABEL_9: - if ( _LOBYTE(object[v2]._oSelFlag) ) + if ( object[v2]._oSelFlag ) return; LABEL_10: v4 = object[edi1]._ox; @@ -3407,7 +3405,7 @@ void __fastcall OperateL1RDoor(int pnum, int oi, unsigned char sendflag) NetSendCmdParam1(1u, CMD_CLOSEDOOR, param1); v7 = object[v3]._oVar1; object[v3]._oVar4 = 0; - _LOBYTE(object[v3]._oSelFlag) = 3; + object[v3]._oSelFlag = 3; ObjSetMicro(v5, v6, v7); if ( object[v3]._oVar2 == 50 ) { @@ -3436,7 +3434,7 @@ void __fastcall OperateL1RDoor(int pnum, int oi, unsigned char sendflag) object[v3]._oPreFlag = 1; DoorSet(param1, v5 - 1, v6); object[v3]._oVar4 = 1; - _LOBYTE(object[v3]._oSelFlag) = 2; + object[v3]._oSelFlag = 2; } RedoPlayerVision(); return; @@ -3479,7 +3477,7 @@ void __fastcall OperateL1LDoor(int pnum, int oi, unsigned char sendflag) NetSendCmdParam1(1u, CMD_CLOSEDOOR, param1); v7 = object[v3]._oVar1; object[v3]._oVar4 = 0; - _LOBYTE(object[v3]._oSelFlag) = 3; + object[v3]._oSelFlag = 3; ObjSetMicro(v5, v6, v7); if ( object[v3]._oVar2 == 50 ) { @@ -3511,7 +3509,7 @@ void __fastcall OperateL1LDoor(int pnum, int oi, unsigned char sendflag) object[v3]._oPreFlag = 1; DoorSet(param1, v5, v6 - 1); object[v3]._oVar4 = 1; - _LOBYTE(object[v3]._oSelFlag) = 2; + object[v3]._oSelFlag = 2; } RedoPlayerVision(); return; @@ -3550,7 +3548,7 @@ void __fastcall OperateL2RDoor(int pnum, int oi, unsigned char sendflag) if ( v7 == myplr && sendflag ) NetSendCmdParam1(1u, CMD_CLOSEDOOR, param1); object[v3]._oVar4 = 0; - _LOBYTE(object[v3]._oSelFlag) = 3; + object[v3]._oSelFlag = 3; ObjSetMicro(v8, v5, 540); object[v3]._oAnimFrame -= 2; object[v3]._oPreFlag = 0; @@ -3565,7 +3563,7 @@ void __fastcall OperateL2RDoor(int pnum, int oi, unsigned char sendflag) object[v3]._oAnimFrame += 2; object[v3]._oPreFlag = 1; object[v3]._oVar4 = 1; - _LOBYTE(object[v3]._oSelFlag) = 2; + object[v3]._oSelFlag = 2; } RedoPlayerVision(); return; @@ -3604,7 +3602,7 @@ void __fastcall OperateL2LDoor(int pnum, int oi, unsigned char sendflag) if ( v7 == myplr && sendflag ) NetSendCmdParam1(1u, CMD_CLOSEDOOR, param1); object[v3]._oVar4 = 0; - _LOBYTE(object[v3]._oSelFlag) = 3; + object[v3]._oSelFlag = 3; ObjSetMicro(v8, v5, 538); object[v3]._oAnimFrame -= 2; object[v3]._oPreFlag = 0; @@ -3619,7 +3617,7 @@ void __fastcall OperateL2LDoor(int pnum, int oi, unsigned char sendflag) object[v3]._oAnimFrame += 2; object[v3]._oPreFlag = 1; object[v3]._oVar4 = 1; - _LOBYTE(object[v3]._oSelFlag) = 2; + object[v3]._oSelFlag = 2; } RedoPlayerVision(); return; @@ -3658,7 +3656,7 @@ void __fastcall OperateL3RDoor(int pnum, int oi, unsigned char sendflag) if ( v7 == myplr && sendflag ) NetSendCmdParam1(1u, CMD_CLOSEDOOR, param1); object[v3]._oVar4 = 0; - _LOBYTE(object[v3]._oSelFlag) = 3; + object[v3]._oSelFlag = 3; ObjSetMicro(v8, v5, 534); object[v3]._oAnimFrame -= 2; object[v3]._oPreFlag = 0; @@ -3673,7 +3671,7 @@ void __fastcall OperateL3RDoor(int pnum, int oi, unsigned char sendflag) object[v3]._oAnimFrame += 2; object[v3]._oPreFlag = 1; object[v3]._oVar4 = 1; - _LOBYTE(object[v3]._oSelFlag) = 2; + object[v3]._oSelFlag = 2; } RedoPlayerVision(); return; @@ -3712,7 +3710,7 @@ void __fastcall OperateL3LDoor(int pnum, int oi, unsigned char sendflag) if ( v7 == myplr && sendflag ) NetSendCmdParam1(1u, CMD_CLOSEDOOR, param1); object[v3]._oVar4 = 0; - _LOBYTE(object[v3]._oSelFlag) = 3; + object[v3]._oSelFlag = 3; ObjSetMicro(v8, v5, 531); object[v3]._oAnimFrame -= 2; object[v3]._oPreFlag = 0; @@ -3727,7 +3725,7 @@ void __fastcall OperateL3LDoor(int pnum, int oi, unsigned char sendflag) object[v3]._oAnimFrame += 2; object[v3]._oPreFlag = 1; object[v3]._oVar4 = 1; - _LOBYTE(object[v3]._oSelFlag) = 2; + object[v3]._oSelFlag = 2; } RedoPlayerVision(); return; @@ -4022,7 +4020,7 @@ void __fastcall OperateLever(int pnum, int i) param1 = i; v2 = i; - v3 = &object[i]._oSelFlag; + v3 = (int*)&object[i]._oSelFlag; v8 = pnum; if ( *(_BYTE *)v3 ) { @@ -4041,7 +4039,7 @@ void __fastcall OperateLever(int pnum, int i) v6 = objectactive[v5]; if ( object[v6]._otype == OBJ_SWITCHSKL && object[v2]._oVar8 == object[v6]._oVar8 - && _LOBYTE(object[v6]._oSelFlag) ) + && object[v6]._oSelFlag ) { v4 = 0; } @@ -4076,7 +4074,7 @@ void __fastcall OperateBook(int pnum, int i) esi1 = i; v3 = pnum; v10 = pnum; - if ( !_LOBYTE(object[esi1]._oSelFlag) ) + if ( !object[esi1]._oSelFlag ) return; if ( !setlevel || setlvlnum != SL_VILEBETRAYER ) goto LABEL_17; @@ -4122,7 +4120,7 @@ void __fastcall OperateBook(int pnum, int i) LABEL_17: ++object[esi1]._oAnimFrame; v6 = setlevel == 0; - _LOBYTE(object[esi1]._oSelFlag) = 0; + object[esi1]._oSelFlag = 0; if ( !v6 ) { if ( setlvlnum == SL_BONECHAMB ) @@ -4193,7 +4191,7 @@ void __fastcall OperateBookLever(int pnum, int i) v13 = pnum; v3 = 2 * setpc_x + 16; v4 = 2 * setpc_y + 16; - if ( _LOBYTE(object[i]._oSelFlag) && !qtextflag ) + if ( object[i]._oSelFlag && !qtextflag ) { v5 = object[v2]._otype; if ( v5 == OBJ_BLINDBOOK && !quests[8]._qvar1 ) @@ -4254,7 +4252,7 @@ void __fastcall OperateSChambBk(int pnum, int i) //int speech_id; // [esp+4h] [ebp-4h] v2 = i; - if ( _LOBYTE(object[i]._oSelFlag) && !qtextflag ) + if ( object[i]._oSelFlag && !qtextflag ) { if ( object[v2]._oAnimFrame != object[v2]._oVar6 ) { @@ -4309,13 +4307,13 @@ void __fastcall OperateChest(int pnum, int i, unsigned char sendmsg) param2 = i; v3 = i; param1 = pnum; - if ( _LOBYTE(object[i]._oSelFlag) ) + if ( object[i]._oSelFlag ) { if ( !deltaload ) PlaySfxLoc(IS_CHEST, object[v3]._ox, object[v3]._oy); object[v3]._oAnimFrame += 2; v4 = deltaload == 0; - _LOBYTE(object[v3]._oSelFlag) = 0; + object[v3]._oSelFlag = 0; if ( v4 ) { SetRndSeed(object[v3]._oRndSeed); @@ -4423,13 +4421,13 @@ void __fastcall OperateMushPatch(int pnum, int i) else { v2 = i; - if ( _LOBYTE(object[i]._oSelFlag) ) + if ( object[i]._oSelFlag ) { if ( !deltaload ) PlaySfxLoc(IS_CHEST, object[v2]._ox, object[v2]._oy); ++object[v2]._oAnimFrame; v3 = deltaload == 0; - _LOBYTE(object[v2]._oSelFlag) = 0; + object[v2]._oSelFlag = 0; if ( v3 ) { GetSuperItemLoc(object[v2]._ox, object[v2]._oy, &xx, &yy); @@ -4453,13 +4451,13 @@ void __fastcall OperateInnSignChest(int pnum, int i) if ( quests[7]._qvar1 == 2 ) { v4 = i; - if ( _LOBYTE(object[i]._oSelFlag) ) + if ( object[i]._oSelFlag ) { if ( !deltaload ) PlaySfxLoc(IS_CHEST, object[v4]._ox, object[v4]._oy); object[v4]._oAnimFrame += 2; v5 = deltaload == 0; - _LOBYTE(object[v4]._oSelFlag) = 0; + object[v4]._oSelFlag = 0; if ( v5 ) { GetSuperItemLoc(object[v4]._ox, object[v4]._oy, &xx, &yy); @@ -4500,10 +4498,10 @@ void __fastcall OperateSlainHero(int pnum, int i, unsigned char sendmsg) v3 = i; v4 = pnum; v5 = i; - if ( _LOBYTE(object[i]._oSelFlag) ) + if ( object[i]._oSelFlag ) { v6 = deltaload == 0; - _LOBYTE(object[v5]._oSelFlag) = 0; + object[v5]._oSelFlag = 0; if ( v6 ) { v7 = plr[pnum]._pClass; @@ -4600,12 +4598,12 @@ void __fastcall OperateSarc(int pnum, int i, unsigned char sendmsg) v3 = i; v4 = i; v7 = pnum; - if ( _LOBYTE(object[i]._oSelFlag) ) + if ( object[i]._oSelFlag ) { if ( !deltaload ) PlaySfxLoc(IS_SARC, object[v4]._ox, object[v4]._oy); v5 = deltaload == 0; - _LOBYTE(object[v4]._oSelFlag) = 0; + object[v4]._oSelFlag = 0; if ( v5 ) { v6 = object[v4]._oRndSeed; @@ -4751,7 +4749,7 @@ void __fastcall OperatePedistal(int pnum, int i) LoadMapObjs(v4, 2 * setpc_x, 2 * setpc_y); mem_free_dbg(v4); CreateItem(7, 2 * setpc_x + 25, 2 * setpc_y + 19); - _LOBYTE(object[v2]._oSelFlag) = 0; + object[v2]._oSelFlag = 0; } } } @@ -4976,8 +4974,8 @@ void __fastcall OperateShrine(int pnum, int i, int sType) dropGoldValue = 0; } v3 = i; - v4 = &object[i]._oSelFlag; - if ( _LOBYTE(object[i]._oSelFlag) ) + v4 = (int*)&object[i]._oSelFlag; + if ( object[i]._oSelFlag ) { SetRndSeed(object[v3]._oRndSeed); v5 = deltaload; @@ -5359,13 +5357,13 @@ LABEL_47: { v63 = objectactive[j]; v7 = object[v63]._otype; - if ( (v7 == OBJ_CHEST1 || v7 == OBJ_CHEST2 || v7 == OBJ_CHEST3) && !_LOBYTE(object[v63]._oSelFlag) ) + if ( (v7 == OBJ_CHEST1 || v7 == OBJ_CHEST2 || v7 == OBJ_CHEST3) && !object[v63]._oSelFlag ) { v64 = GetRndSeed(); object[v63]._oAnimFrame -= 2; object[v63]._oRndSeed = v64; v5 = deltaload; - _LOBYTE(object[v63]._oSelFlag) = 1; + object[v63]._oSelFlag = 1; } } if ( v5 ) @@ -5866,13 +5864,13 @@ void __fastcall OperateSkelBook(int pnum, int i, unsigned char sendmsg) v3 = i; v4 = i; v10 = pnum; - if ( _LOBYTE(object[i]._oSelFlag) ) + if ( object[i]._oSelFlag ) { if ( !deltaload ) PlaySfxLoc(IS_ISCROL, object[v4]._ox, object[v4]._oy); object[v4]._oAnimFrame += 2; v5 = deltaload == 0; - _LOBYTE(object[v4]._oSelFlag) = 0; + object[v4]._oSelFlag = 0; if ( v5 ) { SetRndSeed(object[v4]._oRndSeed); @@ -5902,13 +5900,13 @@ void __fastcall OperateBookCase(int pnum, int i, unsigned char sendmsg) v3 = i; v4 = pnum; v5 = i; - if ( _LOBYTE(object[i]._oSelFlag) ) + if ( object[i]._oSelFlag ) { if ( !deltaload ) PlaySfxLoc(IS_ISCROL, object[v5]._ox, object[v5]._oy); object[v5]._oAnimFrame -= 2; v6 = deltaload == 0; - _LOBYTE(object[v5]._oSelFlag) = 0; + object[v5]._oSelFlag = 0; if ( v6 ) { SetRndSeed(object[v5]._oRndSeed); @@ -5942,7 +5940,7 @@ void __fastcall OperateDecap(int pnum, int i, unsigned char sendmsg) v3 = i; v4 = i; v5 = pnum; - v6 = &object[i]._oSelFlag; + v6 = (int*)&object[i]._oSelFlag; if ( *(_BYTE *)v6 ) { v7 = deltaload == 0; @@ -5973,7 +5971,7 @@ void __fastcall OperateArmorStand(int pnum, int i, unsigned char sendmsg) v3 = i; v4 = i; v11 = pnum; - v5 = &object[i]._oSelFlag; + v5 = (int*)&object[i]._oSelFlag; if ( *(_BYTE *)v5 ) { ++object[v4]._oAnimFrame; @@ -6167,11 +6165,11 @@ LABEL_38: } return 0; case OBJ_MURKYFTN: - if ( _LOBYTE(object[v3]._oSelFlag) ) + if ( object[v3]._oSelFlag ) { if ( !deltaload ) PlaySfxLoc(LS_FOUNTAIN, object[v3]._ox, object[v3]._oy); - _LOBYTE(object[v3]._oSelFlag) = 0; + object[v3]._oSelFlag = 0; if ( deltaload ) return 0; AddMissile( @@ -6191,7 +6189,7 @@ LABEL_38: } break; default: - if ( object[v3]._otype == OBJ_TEARFTN && _LOBYTE(object[v3]._oSelFlag) ) + if ( object[v3]._otype == OBJ_TEARFTN && object[v3]._oSelFlag ) { v7 = -1; v8 = -1; @@ -6199,7 +6197,7 @@ LABEL_38: v24 = 0; if ( !deltaload ) PlaySfxLoc(LS_FOUNTAIN, object[v3]._ox, object[v3]._oy); - _LOBYTE(object[v3]._oSelFlag) = 0; + object[v3]._oSelFlag = 0; if ( deltaload || v4 != myplr ) return 0; do @@ -6274,7 +6272,7 @@ void __fastcall OperateWeaponRack(int pnum, int i, unsigned char sendmsg) v3 = i; v4 = i; v14 = pnum; - if ( !_LOBYTE(object[i]._oSelFlag) ) + if ( !object[i]._oSelFlag ) return; SetRndSeed(object[v4]._oRndSeed); _LOBYTE(v5) = 0; @@ -6309,7 +6307,7 @@ LABEL_7: LABEL_12: ++object[v4]._oAnimFrame; v10 = deltaload == 0; - _LOBYTE(object[v4]._oSelFlag) = 0; + object[v4]._oSelFlag = 0; if ( v10 ) { v11 = object[v4]._ox; @@ -6334,7 +6332,7 @@ void __fastcall OperateStoryBook(int pnum, int i) v2 = i; v3 = i; - if ( _LOBYTE(object[i]._oSelFlag) && !deltaload && !qtextflag && pnum == myplr ) + if ( object[i]._oSelFlag && !deltaload && !qtextflag && pnum == myplr ) { v4 = object[v3]._oy; v5 = object[v3]._ox; @@ -6355,11 +6353,11 @@ void __fastcall OperateLazStand(int pnum, int i) int yy; // [esp+8h] [ebp-4h] v2 = i; - if ( _LOBYTE(object[i]._oSelFlag) && !deltaload && !qtextflag && pnum == myplr ) + if ( object[i]._oSelFlag && !deltaload && !qtextflag && pnum == myplr ) { v3 = object[v2]._oy; ++object[v2]._oAnimFrame; - _LOBYTE(object[v2]._oSelFlag) = 0; + object[v2]._oSelFlag = 0; GetSuperItemLoc(object[v2]._ox, v3, &xx, &yy); SpawnQuestItem(33, xx, yy, 0, 0); } @@ -6692,8 +6690,8 @@ void __fastcall BreakCrux(int i) v1 = i; v2 = nobjects; - _LOBYTE(object[v1]._oBreak) = -1; - _LOBYTE(object[v1]._oSelFlag) = 0; + object[v1]._oBreak = -1; + object[v1]._oSelFlag = 0; v3 = 0; v4 = 1; object[v1]._oAnimFlag = 1; @@ -6709,7 +6707,7 @@ void __fastcall BreakCrux(int i) v6 = object[v5]._otype; if ( (v6 == OBJ_CRUX1 || v6 == OBJ_CRUX2 || v6 == OBJ_CRUX3) && object[v1]._oVar8 == object[v5]._oVar8 - && _LOBYTE(object[v5]._oBreak) != -1 ) + && object[v5]._oBreak != -1 ) { v4 = 0; } @@ -6749,7 +6747,7 @@ void __fastcall BreakBarrel(int pnum, int i, int dam, unsigned char forcebreak, param2 = i; v5 = i; param1 = pnum; - if ( _LOBYTE(object[i]._oSelFlag) ) + if ( object[i]._oSelFlag ) { if ( forcebreak ) { @@ -6763,7 +6761,7 @@ void __fastcall BreakBarrel(int pnum, int i, int dam, unsigned char forcebreak, } if ( object[v5]._oVar1 <= 0 ) { - _LOBYTE(object[v5]._oBreak) = -1; + object[v5]._oBreak = -1; v6 = deltaload == 0; object[v5]._oVar1 = 0; object[v5]._oAnimFlag = 1; @@ -6771,7 +6769,7 @@ void __fastcall BreakBarrel(int pnum, int i, int dam, unsigned char forcebreak, object[v5]._oAnimDelay = 1; object[v5]._oSolidFlag = 0; object[v5]._oMissFlag = 1; - _LOBYTE(object[v5]._oSelFlag) = 0; + object[v5]._oSelFlag = 0; object[v5]._oPreFlag = 1; if ( v6 ) { @@ -6804,7 +6802,7 @@ void __fastcall BreakBarrel(int pnum, int i, int dam, unsigned char forcebreak, if ( v13 > 0 ) { v14 = v13 - 1; - if ( object[v14]._otype == OBJ_BARRELEX && _LOBYTE(object[v14]._oBreak) != -1 ) + if ( object[v14]._otype == OBJ_BARRELEX && object[v14]._oBreak != -1 ) BreakBarrel(param1, v14, dam, 1u, sendmsg); } ++v18; @@ -6914,7 +6912,7 @@ void __fastcall SyncL1Doors(int i) v4 = object[v2]._ox; v5 = object[v2]._otype == 1; object[v2]._oMissFlag = 1; - _LOBYTE(object[v2]._oSelFlag) = 2; + object[v2]._oSelFlag = 2; if ( v5 ) { if ( object[v2]._oVar1 == 214 ) @@ -6955,7 +6953,7 @@ void __fastcall SyncCrux(int i) v4 = object[v3]._otype; if ( (v4 == OBJ_CRUX1 || v4 == OBJ_CRUX2 || v4 == OBJ_CRUX3) && object[i]._oVar8 == object[v3]._oVar8 - && _LOBYTE(object[v3]._oBreak) != -1 ) + && object[v3]._oBreak != -1 ) { v1 = 0; } @@ -6972,7 +6970,7 @@ void __fastcall SyncLever(int i) int v1; // ecx v1 = i; - if ( !_LOBYTE(object[v1]._oSelFlag) ) + if ( !object[v1]._oSelFlag ) ObjChangeMap(object[v1]._oVar1, object[v1]._oVar2, object[v1]._oVar3, object[v1]._oVar4); } @@ -7043,7 +7041,7 @@ void __fastcall SyncL2Doors(int i) object[v1]._oMissFlag = 0; v3 = object[v1]._ox; v4 = object[v1]._oy; - _LOBYTE(object[v1]._oSelFlag) = 2; + object[v1]._oSelFlag = 2; v5 = object[v1]._otype; if ( v5 != OBJ_L2LDOOR ) goto LABEL_18; @@ -7088,7 +7086,7 @@ void __fastcall SyncL3Doors(int i) v3 = object[i]._ox; v4 = object[v1]._oy; object[v1]._oMissFlag = 1; - _LOBYTE(object[v1]._oSelFlag) = 2; + object[v1]._oSelFlag = 2; if ( v2 != OBJ_L3LDOOR ) goto LABEL_15; if ( !object[v1]._oVar4 ) diff --git a/Source/player.cpp b/Source/player.cpp index 1e1cfb55e..60fe2e0ac 100644 --- a/Source/player.cpp +++ b/Source/player.cpp @@ -4182,7 +4182,7 @@ void __fastcall CheckNewPath(int pnum) } if ( v102 > 1 || v48 > 1 ) break; - if ( _LOBYTE(object[v47]._oBreak) != 1 ) + if ( object[v47]._oBreak != 1 ) goto LABEL_73; goto LABEL_80; case 14: @@ -4199,7 +4199,7 @@ void __fastcall CheckNewPath(int pnum) } if ( v103 > 1 || v51 > 1 ) break; - if ( _LOBYTE(object[v47]._oBreak) == 1 ) + if ( object[v47]._oBreak == 1 ) { LABEL_80: v20 = GetDirection(plr[v2].WorldX, plr[v2].WorldY, object[v47]._ox, object[v47]._oy); @@ -4245,7 +4245,7 @@ LABEL_73: TalkToTowner(v1, plr[v2].destParam1); break; case 18: - if ( _LOBYTE(object[plr[v2].destParam1]._oBreak) != 1 ) + if ( object[plr[v2].destParam1]._oBreak != 1 ) OperateObject(v1, plr[v2].destParam1, 1u); break; case 20: @@ -4362,7 +4362,7 @@ LABEL_107: } if ( v104 <= 1 && v71 <= 1 ) { - if ( _LOBYTE(object[v70]._oBreak) == 1 ) + if ( object[v70]._oBreak == 1 ) { v73 = GetDirection(plr[v2].WorldX, plr[v2].WorldY, object[v70]._ox, object[v70]._oy); StartAttack(p, v73); diff --git a/Source/themes.cpp b/Source/themes.cpp index 8bb3b23ff..9f6807f2b 100644 --- a/Source/themes.cpp +++ b/Source/themes.cpp @@ -1007,7 +1007,7 @@ void __fastcall Theme_Library(int t) if ( random(v6, 2 * librnd[leveltype]) ) { v7 = *v3 - 1; - _LOBYTE(object[v7]._oSelFlag) = 0; + object[v7]._oSelFlag = 0; object[v7]._oAnimFrame += 2; } } diff --git a/structs.h b/structs.h index 2d2258605..fbcf6e417 100644 --- a/structs.h +++ b/structs.h @@ -733,10 +733,10 @@ struct ObjectStruct int _oAnimWidth; int _oAnimWidth2; int _oDelFlag; - int _oBreak; + char _oBreak; // check int _oSolidFlag; int _oMissFlag; - int _oSelFlag; + char _oSelFlag; // check int _oPreFlag; int _oTrapFlag; int _oDoorFlag;