From c8e27947154089d6498e929320dcd0f3156e5f37 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Fri, 12 Oct 2018 00:34:47 +0200 Subject: [PATCH] Clean up M_Start* --- Source/monster.cpp | 312 ++++++++++++++++----------------------------- 1 file changed, 112 insertions(+), 200 deletions(-) diff --git a/Source/monster.cpp b/Source/monster.cpp index cf2e0a604..7783debe0 100644 --- a/Source/monster.cpp +++ b/Source/monster.cpp @@ -1895,234 +1895,146 @@ void __fastcall M_StartWalk(int i, int xvel, int yvel, int xadd, int yadd, int E void __fastcall M_StartWalk2(int i, int xvel, int yvel, int xoff, int yoff, int xadd, int yadd, int EndDir) { - int v8; // esi - int v9; // edx - int v10; // ecx - int v11; // eax - int v12; // eax - bool v13; // zf - CMonster *v14; // edx - int v15; // [esp+Ch] [ebp-8h] - int ia; // [esp+10h] [ebp-4h] - int EndDira; // [esp+28h] [ebp+14h] + int fx = xadd + monster[i]._mx; + int fy = yadd + monster[i]._my; - v15 = xvel; - ia = i; - v8 = i; - v9 = xadd + monster[i]._mx; - EndDira = monster[i]._mx; - v10 = monster[i]._my; - v11 = monster[v8]._my; - monster[v8]._mVar2 = v10; - dMonster[0][v10 + 112 * EndDira] = -1 - ia; - monster[v8]._mVar1 = EndDira; - monster[v8]._moldx = EndDira; - v12 = yadd + v11; - monster[v8]._moldy = v10; - v13 = monster[v8]._uniqtype == 0; - monster[v8]._mx = v9; - monster[v8]._my = v12; - monster[v8]._mfutx = v9; - monster[v8]._mfuty = v12; - dMonster[0][v12 + 112 * v9] = ia + 1; - if ( !v13 ) - ChangeLightXY((unsigned char)monster[v8].mlid, v9, v12); - v14 = monster[v8].MType; - monster[v8]._mxvel = v15; - monster[v8]._myvel = yvel; - monster[v8]._mxoff = xoff; - monster[v8]._myoff = yoff; - monster[v8]._mmode = MM_WALK2; - monster[v8]._mVar3 = EndDir; - monster[v8]._mdir = EndDir; - NewMonsterAnim(ia, &v14->Anims[MA_WALK], EndDir); - monster[v8]._mVar8 = 0; - monster[v8]._mVar6 = 16 * xoff; - monster[v8]._mVar7 = 16 * yoff; - M_CheckEFlag(ia); + dMonster[monster[i]._mx][monster[i]._my] = -(i + 1); + monster[i]._mVar1 = monster[i]._mx; + monster[i]._mVar2 = monster[i]._my; + monster[i]._moldx = monster[i]._mx; + monster[i]._moldy = monster[i]._my; + monster[i]._mx = fx; + monster[i]._my = fy; + monster[i]._mfutx = fx; + monster[i]._mfuty = fy; + dMonster[fx][fy] = i + 1; + if ( monster[i]._uniqtype ) + ChangeLightXY(monster[i].mlid, monster[i]._mx, monster[i]._my); + monster[i]._mxoff = xoff; + monster[i]._myoff = yoff; + monster[i]._mmode = MM_WALK2; + monster[i]._mxvel = xvel; + monster[i]._myvel = yvel; + monster[i]._mVar3 = EndDir; + monster[i]._mdir = EndDir; + NewMonsterAnim(i, &monster[i].MType->Anims[MA_WALK], EndDir); + monster[i]._mVar6 = 16 * xoff; + monster[i]._mVar7 = 16 * yoff; + monster[i]._mVar8 = 0; + M_CheckEFlag(i); } void __fastcall M_StartWalk3(int i, int xvel, int yvel, int xoff, int yoff, int xadd, int yadd, int mapx, int mapy, int EndDir) { - int v10; // esi - int v11; // ebx - int v12; // edi - int v13; // edi - int v14; // ebx - int v15; // ecx - CMonster *v16; // edx - int v17; // [esp+Ch] [ebp-8h] - int ia; // [esp+10h] [ebp-4h] - int a6a; // [esp+28h] [ebp+14h] - int a7a; // [esp+2Ch] [ebp+18h] + int fx = xadd + monster[i]._mx; + int fy = yadd + monster[i]._my; + int x = mapx + monster[i]._mx; + int y = mapy + monster[i]._my; - ia = i; - v10 = i; - v11 = monster[i]._my; - v12 = monster[i]._mx; - v17 = xvel; - a6a = v12 + xadd; - a7a = v11 + yadd; - v13 = mapx + v12; - v14 = mapy + v11; if ( monster[i]._uniqtype ) - ChangeLightXY((unsigned char)monster[v10].mlid, v13, v14); - v15 = monster[v10]._my + 112 * monster[v10]._mx; - monster[v10]._mVar4 = v13; - dMonster[0][v15] = -1 - ia; - monster[v10]._mVar5 = v14; - dMonster[0][a7a + 112 * a6a] = -1 - ia; - monster[v10]._moldx = monster[v10]._mx; - monster[v10]._moldy = monster[v10]._my; - monster[v10]._mfutx = a6a; - monster[v10]._mxvel = v17; - dFlags[v13][v14] |= DFLAG_MONSTER; - v16 = monster[v10].MType; - monster[v10]._myvel = yvel; - monster[v10]._mfuty = a7a; - monster[v10]._mVar1 = a6a; - monster[v10]._mVar2 = a7a; - monster[v10]._mxoff = xoff; - monster[v10]._myoff = yoff; - monster[v10]._mmode = MM_WALK3; - monster[v10]._mVar3 = EndDir; - monster[v10]._mdir = EndDir; - NewMonsterAnim(ia, &v16->Anims[MA_WALK], EndDir); - monster[v10]._mVar8 = 0; - monster[v10]._mVar6 = 16 * xoff; - monster[v10]._mVar7 = 16 * yoff; - M_CheckEFlag(ia); + ChangeLightXY(monster[i].mlid, x, y); + + dMonster[monster[i]._mx][monster[i]._my] = -(i + 1); + dMonster[fx][fy] = -(i + 1); + monster[i]._mVar4 = x; + monster[i]._mVar5 = y; + dFlags[x][y] |= DFLAG_MONSTER; + monster[i]._moldx = monster[i]._mx; + monster[i]._moldy = monster[i]._my; + monster[i]._mfutx = fx; + monster[i]._mfuty = fy; + monster[i]._mxoff = xoff; + monster[i]._myoff = yoff; + monster[i]._mmode = MM_WALK3; + monster[i]._mxvel = xvel; + monster[i]._myvel = yvel; + monster[i]._mVar1 = fx; + monster[i]._mVar2 = fy; + monster[i]._mVar3 = EndDir; + monster[i]._mdir = EndDir; + NewMonsterAnim(i, &monster[i].MType->Anims[MA_WALK], EndDir); + monster[i]._mVar6 = 16 * xoff; + monster[i]._mVar7 = 16 * yoff; + monster[i]._mVar8 = 0; + M_CheckEFlag(i); } void __fastcall M_StartAttack(int i) { - int v1; // edi - int v2; // ebx - int v3; // esi - int v4; // ecx - int v5; // eax - - v1 = i; - v2 = M_GetDir(i); - v3 = v1; - NewMonsterAnim(v1, &monster[v1].MType->Anims[MA_ATTACK], v2); - v4 = monster[v1]._my; - v5 = monster[v1]._mx; - monster[v3]._mxoff = 0; - monster[v3]._myoff = 0; - monster[v3]._mfuty = v4; - monster[v3]._moldy = v4; - monster[v3]._mmode = MM_ATTACK; - monster[v3]._mfutx = v5; - monster[v3]._moldx = v5; - monster[v3]._mdir = v2; - M_CheckEFlag(v1); + int md = M_GetDir(i); + NewMonsterAnim(i, &monster[i].MType->Anims[MA_ATTACK], md); + monster[i]._mmode = MM_ATTACK; + monster[i]._mxoff = 0; + monster[i]._myoff = 0; + monster[i]._mfutx = monster[i]._mx; + monster[i]._mfuty = monster[i]._my; + monster[i]._moldx = monster[i]._mx; + monster[i]._moldy = monster[i]._my; + monster[i]._mdir = md; + M_CheckEFlag(i); } void __fastcall M_StartRAttack(int i, int missile_type, int dam) { - int v3; // ebp - int v4; // edi - int v5; // ebx - int v6; // esi - int v7; // ecx - int v8; // eax - - v3 = missile_type; - v4 = i; - v5 = M_GetDir(i); - v6 = v4; - NewMonsterAnim(v4, &monster[v4].MType->Anims[MA_ATTACK], v5); - v7 = monster[v4]._my; - monster[v6]._mxoff = 0; - monster[v6]._myoff = 0; - monster[v6]._mVar2 = dam; - v8 = monster[v4]._mx; - monster[v6]._mfuty = v7; - monster[v6]._moldy = v7; - monster[v6]._mmode = MM_RATTACK; - monster[v6]._mVar1 = v3; - monster[v6]._mfutx = v8; - monster[v6]._moldx = v8; - monster[v6]._mdir = v5; - M_CheckEFlag(v4); + int md = M_GetDir(i); + NewMonsterAnim(i, &monster[i].MType->Anims[MA_ATTACK], md); + monster[i]._mmode = MM_RATTACK; + monster[i]._mVar1 = missile_type; + monster[i]._mVar2 = dam; + monster[i]._mxoff = 0; + monster[i]._myoff = 0; + monster[i]._mfutx = monster[i]._mx; + monster[i]._mfuty = monster[i]._my; + monster[i]._moldx = monster[i]._mx; + monster[i]._moldy = monster[i]._my; + monster[i]._mdir = md; + M_CheckEFlag(i); } void __fastcall M_StartRSpAttack(int i, int missile_type, int dam) { - int v3; // ebp - int v4; // edi - int v5; // ebx - int v6; // esi - int v7; // ecx - int v8; // eax - - v3 = missile_type; - v4 = i; - v5 = M_GetDir(i); - v6 = v4; - NewMonsterAnim(v4, &monster[v4].MType->Anims[MA_SPECIAL], v5); - monster[v6]._mmode = MM_RSPATTACK; - monster[v6]._mVar2 = 0; - monster[v6]._mVar3 = dam; - v7 = monster[v4]._my; - monster[v6]._mxoff = 0; - monster[v6]._myoff = 0; - v8 = monster[v4]._mx; - monster[v6]._mfuty = v7; - monster[v6]._moldy = v7; - monster[v6]._mVar1 = v3; - monster[v6]._mfutx = v8; - monster[v6]._moldx = v8; - monster[v6]._mdir = v5; - M_CheckEFlag(v4); + int md = M_GetDir(i); + NewMonsterAnim(i, &monster[i].MType->Anims[MA_SPECIAL], md); + monster[i]._mmode = MM_RSPATTACK; + monster[i]._mVar1 = missile_type; + monster[i]._mVar2 = 0; + monster[i]._mVar3 = dam; + monster[i]._mxoff = 0; + monster[i]._myoff = 0; + monster[i]._mfutx = monster[i]._mx; + monster[i]._mfuty = monster[i]._my; + monster[i]._moldx = monster[i]._mx; + monster[i]._moldy = monster[i]._my; + monster[i]._mdir = md; + M_CheckEFlag(i); } void __fastcall M_StartSpAttack(int i) { - int v1; // edi - int v2; // ebx - int v3; // esi - int v4; // ecx - int v5; // eax - - v1 = i; - v2 = M_GetDir(i); - v3 = v1; - NewMonsterAnim(v1, &monster[v1].MType->Anims[MA_SPECIAL], v2); - v4 = monster[v1]._my; - v5 = monster[v1]._mx; - monster[v3]._mxoff = 0; - monster[v3]._myoff = 0; - monster[v3]._mfuty = v4; - monster[v3]._moldy = v4; - monster[v3]._mmode = MM_SATTACK; - monster[v3]._mfutx = v5; - monster[v3]._moldx = v5; - monster[v3]._mdir = v2; - M_CheckEFlag(v1); + int md = M_GetDir(i); + NewMonsterAnim(i, &monster[i].MType->Anims[MA_SPECIAL], md); + monster[i]._mmode = MM_SATTACK; + monster[i]._mxoff = 0; + monster[i]._myoff = 0; + monster[i]._mfutx = monster[i]._mx; + monster[i]._mfuty = monster[i]._my; + monster[i]._moldx = monster[i]._mx; + monster[i]._moldy = monster[i]._my; + monster[i]._mdir = md; + M_CheckEFlag(i); } void __fastcall M_StartEat(int i) { - int v1; // edi - int v2; // esi - int v3; // ecx - int v4; // eax - - v1 = i; - v2 = i; NewMonsterAnim(i, &monster[i].MType->Anims[MA_SPECIAL], monster[i]._mdir); - v3 = monster[v2]._my; - v4 = monster[v2]._mx; - monster[v2]._mxoff = 0; - monster[v2]._myoff = 0; - monster[v2]._mfuty = v3; - monster[v2]._moldy = v3; - monster[v2]._mmode = MM_SATTACK; - monster[v2]._mfutx = v4; - monster[v2]._moldx = v4; - M_CheckEFlag(v1); + monster[i]._mmode = MM_SATTACK; + monster[i]._mxoff = 0; + monster[i]._myoff = 0; + monster[i]._mfutx = monster[i]._mx; + monster[i]._mfuty = monster[i]._my; + monster[i]._moldx = monster[i]._mx; + monster[i]._moldy = monster[i]._my; + M_CheckEFlag(i); } void __fastcall M_ClearSquares(int i)