Browse Source

SyncMonsterAnim bin exact

pull/944/head
qndel 6 years ago committed by Anders Jenbo
parent
commit
e34ac43457
  1. 75
      Source/monster.cpp

75
Source/monster.cpp

@ -5686,68 +5686,69 @@ BOOL LineClearF1(BOOL (*Clear)(int, int, int), int monst, int x1, int y1, int x2
void SyncMonsterAnim(int i) void SyncMonsterAnim(int i)
{ {
MonsterData *MData;
int _mdir; int _mdir;
MonsterStruct *Monst;
#ifdef HELLFIRE
if ((DWORD)i >= MAXMONSTERS || i < 0)
return;
#else
if ((DWORD)i >= MAXMONSTERS) if ((DWORD)i >= MAXMONSTERS)
app_fatal("SyncMonsterAnim: Invalid monster %d", i); app_fatal("SyncMonsterAnim: Invalid monster %d", i);
Monst = &monster[i]; #endif
Monst->MType = Monsters + Monst->_mMTidx; monster[i].MType = &Monsters[monster[i]._mMTidx];
MData = Monsters[Monst->_mMTidx].MData; monster[i].MData = Monsters[monster[i]._mMTidx].MData;
Monst->MData = MData; if (monster[i]._uniqtype != 0)
if (Monst->_uniqtype != 0) monster[i].mName = UniqMonst[monster[i]._uniqtype - 1].mName;
Monst->mName = UniqMonst[Monst->_uniqtype - 1].mName;
else else
Monst->mName = MData->mName; monster[i].mName = monster[i].MData->mName;
_mdir = monster[i]._mdir; _mdir = monster[i]._mdir;
switch (Monst->_mmode) { switch (monster[i]._mmode) {
case MM_STAND:
monster[i]._mAnimData = monster[i].MType->Anims[MA_STAND].Data[_mdir];
break;
case MM_WALK: case MM_WALK:
case MM_WALK2: case MM_WALK2:
case MM_WALK3: case MM_WALK3:
Monst->_mAnimData = Monst->MType->Anims[MA_WALK].Data[_mdir]; monster[i]._mAnimData = monster[i].MType->Anims[MA_WALK].Data[_mdir];
return; break;
case MM_ATTACK: case MM_ATTACK:
case MM_RATTACK: case MM_RATTACK:
Monst->_mAnimData = Monst->MType->Anims[MA_ATTACK].Data[_mdir]; monster[i]._mAnimData = monster[i].MType->Anims[MA_ATTACK].Data[_mdir];
return; break;
case MM_GOTHIT: case MM_GOTHIT:
Monst->_mAnimData = Monst->MType->Anims[MA_GOTHIT].Data[_mdir]; monster[i]._mAnimData = monster[i].MType->Anims[MA_GOTHIT].Data[_mdir];
return; break;
case MM_DEATH: case MM_DEATH:
Monst->_mAnimData = Monst->MType->Anims[MA_DEATH].Data[_mdir]; monster[i]._mAnimData = monster[i].MType->Anims[MA_DEATH].Data[_mdir];
return; break;
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]; monster[i]._mAnimData = monster[i].MType->Anims[MA_SPECIAL].Data[_mdir];
return; break;
case MM_SPSTAND: case MM_SPSTAND:
case MM_RSPATTACK: case MM_RSPATTACK:
Monst->_mAnimData = Monst->MType->Anims[MA_SPECIAL].Data[_mdir]; monster[i]._mAnimData = monster[i].MType->Anims[MA_SPECIAL].Data[_mdir];
return; break;
case MM_HEAL: case MM_HEAL:
Monst->_mAnimData = Monst->MType->Anims[MA_SPECIAL].Data[_mdir]; monster[i]._mAnimData = monster[i].MType->Anims[MA_SPECIAL].Data[_mdir];
return; break;
case MM_STAND:
Monst->_mAnimData = Monst->MType->Anims[MA_STAND].Data[_mdir];
return;
case MM_DELAY: case MM_DELAY:
Monst->_mAnimData = Monst->MType->Anims[MA_STAND].Data[_mdir]; monster[i]._mAnimData = monster[i].MType->Anims[MA_STAND].Data[_mdir];
return; break;
case MM_TALK: case MM_TALK:
Monst->_mAnimData = Monst->MType->Anims[MA_STAND].Data[_mdir]; monster[i]._mAnimData = monster[i].MType->Anims[MA_STAND].Data[_mdir];
return; break;
case MM_CHARGE: case MM_CHARGE:
Monst->_mAnimData = Monst->MType->Anims[MA_ATTACK].Data[_mdir]; monster[i]._mAnimData = monster[i].MType->Anims[MA_ATTACK].Data[_mdir];
Monst->_mAnimFrame = 1; monster[i]._mAnimFrame = 1;
Monst->_mAnimLen = Monst->MType->Anims[MA_ATTACK].Frames; monster[i]._mAnimLen = monster[i].MType->Anims[MA_ATTACK].Frames;
break; break;
default: default:
Monst->_mAnimData = Monst->MType->Anims[MA_STAND].Data[_mdir]; monster[i]._mAnimData = monster[i].MType->Anims[MA_STAND].Data[_mdir];
Monst->_mAnimFrame = 1; monster[i]._mAnimFrame = 1;
Monst->_mAnimLen = Monst->MType->Anims[MA_STAND].Frames; monster[i]._mAnimLen = monster[i].MType->Anims[MA_STAND].Frames;
break; break;
} }
} }

Loading…
Cancel
Save