| 4915 | } |
| 4916 | |
| 4917 | void SyncMonsterAnim(int i) |
| 4918 | { |
| 4919 | MonsterData *MData; |
| 4920 | int _mdir; |
| 4921 | MonsterStruct *Monst; |
| 4922 | |
| 4923 | if ((DWORD)i >= MAXMONSTERS) |
| 4924 | app_fatal("SyncMonsterAnim: Invalid monster %d", i); |
| 4925 | Monst = monster + i; |
| 4926 | Monst->MType = Monsters + Monst->_mMTidx; |
| 4927 | MData = Monsters[Monst->_mMTidx].MData; |
| 4928 | Monst->MData = MData; |
| 4929 | if (Monst->_uniqtype != 0) |
| 4930 | Monst->mName = UniqMonst[Monst->_uniqtype - 1].mName; |
| 4931 | else |
| 4932 | Monst->mName = MData->mName; |
| 4933 | _mdir = monster[i]._mdir; |
| 4934 | |
| 4935 | switch (Monst->_mmode) { |
| 4936 | case MM_WALK: |
| 4937 | case MM_WALK2: |
| 4938 | case MM_WALK3: |
| 4939 | Monst->_mAnimData = Monst->MType->Anims[MA_WALK].Data[_mdir]; |
| 4940 | return; |
| 4941 | case MM_ATTACK: |
| 4942 | case MM_RATTACK: |
| 4943 | Monst->_mAnimData = Monst->MType->Anims[MA_ATTACK].Data[_mdir]; |
| 4944 | return; |
| 4945 | case MM_GOTHIT: |
| 4946 | Monst->_mAnimData = Monst->MType->Anims[MA_GOTHIT].Data[_mdir]; |
| 4947 | return; |
| 4948 | case MM_DEATH: |
| 4949 | Monst->_mAnimData = Monst->MType->Anims[MA_DEATH].Data[_mdir]; |
| 4950 | return; |
| 4951 | case MM_SATTACK: |
| 4952 | case MM_FADEIN: |
| 4953 | case MM_FADEOUT: |
| 4954 | Monst->_mAnimData = Monst->MType->Anims[MA_SPECIAL].Data[_mdir]; |
| 4955 | return; |
| 4956 | case MM_SPSTAND: |
| 4957 | case MM_RSPATTACK: |
| 4958 | Monst->_mAnimData = Monst->MType->Anims[MA_SPECIAL].Data[_mdir]; |
| 4959 | return; |
| 4960 | case MM_HEAL: |
| 4961 | Monst->_mAnimData = Monst->MType->Anims[MA_SPECIAL].Data[_mdir]; |
| 4962 | return; |
| 4963 | case MM_STAND: |
| 4964 | Monst->_mAnimData = Monst->MType->Anims[MA_STAND].Data[_mdir]; |
| 4965 | return; |
| 4966 | case MM_DELAY: |
| 4967 | Monst->_mAnimData = Monst->MType->Anims[MA_STAND].Data[_mdir]; |
| 4968 | return; |
| 4969 | case MM_TALK: |
| 4970 | Monst->_mAnimData = Monst->MType->Anims[MA_STAND].Data[_mdir]; |
| 4971 | return; |
| 4972 | case MM_CHARGE: |
| 4973 | Monst->_mAnimData = Monst->MType->Anims[MA_ATTACK].Data[_mdir]; |
| 4974 | Monst->_mAnimFrame = 1; |
no test coverage detected