Browse Source

Clean up SyncMonsterAnim.

pull/114/head
Sergey Semushin 7 years ago
parent
commit
0549fc189e
  1. 102
      Source/monster.cpp

102
Source/monster.cpp

@ -4703,7 +4703,7 @@ BOOL DirOK(int i, int mdir)
if (mdir == DIR_W) { if (mdir == DIR_W) {
if (SolidLoc(fx + 1, fy) || dFlags[fx + 1][fy] & DFLAG_MONSTER) if (SolidLoc(fx + 1, fy) || dFlags[fx + 1][fy] & DFLAG_MONSTER)
return FALSE; return FALSE;
} }
if (mdir == DIR_N) { if (mdir == DIR_N) {
if (SolidLoc(fx + 1, fy) || SolidLoc(fx, fy + 1)) if (SolidLoc(fx + 1, fy) || SolidLoc(fx, fy + 1))
return FALSE; return FALSE;
@ -4920,82 +4920,72 @@ BOOL LineClearF1(BOOL(*Clear)(int, int, int), int monst, int x1, int y1, int x2,
void SyncMonsterAnim(int i) void SyncMonsterAnim(int i)
{ {
int v1; // esi MonsterData *MData;
int v2; // eax CMonster *cmonst;
int v3; // edx unsigned char _uniqtype;
MonsterData *v4; // esi int _mdir;
CMonster *v5; // ecx MonsterStruct *Monst;
unsigned char v6; // dl
char *v7; // edx
int v8; // esi
int v9; // edx
unsigned char *v10; // ecx
unsigned char *v11; // edx
int v12; // ecx
unsigned char *v13; // edx
v1 = i;
if ((DWORD)i >= MAXMONSTERS) if ((DWORD)i >= MAXMONSTERS)
app_fatal("SyncMonsterAnim: Invalid monster %d", i); app_fatal("SyncMonsterAnim: Invalid monster %d", i);
v2 = v1; Monst = monster + i;
v3 = monster[v1]._mMTidx; Monst->MType = Monsters + Monst->_mMTidx;
v4 = Monsters[v3].MData; MData = Monsters[Monst->_mMTidx].MData;
v5 = &Monsters[v3]; Monst->MData = MData;
v6 = monster[v2]._uniqtype; if (Monst->_uniqtype != 0)
monster[v2].MType = v5; Monst->mName = UniqMonst[Monst->_uniqtype - 1].mName;
monster[v2].MData = v4;
if (v6 != 0)
v7 = UniqMonst[v6 - 1].mName;
else else
v7 = v4->mName; Monst->mName = MData->mName;
v8 = monster[v2]._mmode; _mdir = monster[i]._mdir;
monster[v2].mName = v7;
v9 = monster[v2]._mdir; switch (Monst->_mmode) {
switch (v8) {
case MM_STAND:
case MM_DELAY:
case MM_TALK:
v10 = v5->Anims[MA_STAND].Data[v9];
goto LABEL_13;
case MM_WALK: case MM_WALK:
case MM_WALK2: case MM_WALK2:
case MM_WALK3: case MM_WALK3:
v10 = v5->Anims[MA_WALK].Data[v9]; Monst->_mAnimData = Monst->MType->Anims[MA_WALK].Data[_mdir];
goto LABEL_13; return;
case MM_ATTACK: case MM_ATTACK:
case MM_RATTACK: case MM_RATTACK:
v10 = v5->Anims[MA_ATTACK].Data[v9]; Monst->_mAnimData = Monst->MType->Anims[MA_ATTACK].Data[_mdir];
goto LABEL_13; return;
case MM_GOTHIT: case MM_GOTHIT:
v10 = v5->Anims[MA_GOTHIT].Data[v9]; Monst->_mAnimData = Monst->MType->Anims[MA_GOTHIT].Data[_mdir];
goto LABEL_13; return;
case MM_DEATH: case MM_DEATH:
v10 = v5->Anims[MA_DEATH].Data[v9]; Monst->_mAnimData = Monst->MType->Anims[MA_DEATH].Data[_mdir];
goto LABEL_13; return;
case MM_SATTACK: case MM_SATTACK:
case MM_FADEIN: case MM_FADEIN:
case MM_FADEOUT: case MM_FADEOUT:
Monst->_mAnimData = Monst->MType->Anims[MA_SPECIAL].Data[_mdir];
return;
case MM_SPSTAND: case MM_SPSTAND:
case MM_RSPATTACK: case MM_RSPATTACK:
Monst->_mAnimData = Monst->MType->Anims[MA_SPECIAL].Data[_mdir];
return;
case MM_HEAL: case MM_HEAL:
v10 = v5->Anims[MA_SPECIAL].Data[v9]; Monst->_mAnimData = Monst->MType->Anims[MA_SPECIAL].Data[_mdir];
LABEL_13: return;
monster[v2]._mAnimData = v10; case MM_STAND:
Monst->_mAnimData = Monst->MType->Anims[MA_STAND].Data[_mdir];
return;
case MM_DELAY:
Monst->_mAnimData = Monst->MType->Anims[MA_STAND].Data[_mdir];
return;
case MM_TALK:
Monst->_mAnimData = Monst->MType->Anims[MA_STAND].Data[_mdir];
return; return;
case MM_CHARGE: case MM_CHARGE:
v11 = v5->Anims[MA_ATTACK].Data[v9]; Monst->_mAnimData = Monst->MType->Anims[MA_ATTACK].Data[_mdir];
monster[v2]._mAnimFrame = 1; Monst->_mAnimFrame = 1;
monster[v2]._mAnimData = v11; Monst->_mAnimLen = Monst->MType->Anims[MA_ATTACK].Frames;
v12 = v5->Anims[MA_ATTACK].Frames;
break; break;
default: default:
v13 = v5->Anims[MA_STAND].Data[v9]; Monst->_mAnimData = Monst->MType->Anims[MA_STAND].Data[_mdir];
monster[v2]._mAnimFrame = 1; Monst->_mAnimFrame = 1;
monster[v2]._mAnimData = v13; Monst->_mAnimLen = Monst->MType->Anims[MA_STAND].Frames;
v12 = v5->Anims[MA_STAND].Frames;
break; break;
} }
monster[v2]._mAnimLen = v12;
} }
void M_FallenFear(int x, int y) void M_FallenFear(int x, int y)
@ -5097,7 +5087,7 @@ void PrintMonstHistory(int mt)
tempstr[strlen(tempstr) - 1] = '\0'; tempstr[strlen(tempstr) - 1] = '\0';
AddPanelString(tempstr, 1); AddPanelString(tempstr, 1);
} }
} }
} }
pinfoflag = 1; pinfoflag = 1;
} }

Loading…
Cancel
Save