| 2289 | } |
| 2290 | |
| 2291 | BOOL M_DoSAttack(int i) |
| 2292 | { |
| 2293 | if ((DWORD)i >= MAXMONSTERS) |
| 2294 | app_fatal("M_DoSAttack: Invalid monster %d", i); |
| 2295 | if (monster[i].MType == NULL) |
| 2296 | app_fatal("M_DoSAttack: Monster %d \"%s\" MType NULL", i, monster[i].mName); |
| 2297 | if (monster[i].MType == NULL) // BUGFIX: should check MData |
| 2298 | app_fatal("M_DoSAttack: Monster %d \"%s\" MData NULL", i, monster[i].mName); |
| 2299 | |
| 2300 | if (monster[i]._mAnimFrame == monster[i].MData->mAFNum2) |
| 2301 | M_TryH2HHit(i, monster[i]._menemy, monster[i].mHit2, monster[i].mMinDamage2, monster[i].mMaxDamage2); |
| 2302 | |
| 2303 | if (monster[i]._mAnimFrame == monster[i]._mAnimLen) { |
| 2304 | M_StartStand(i, monster[i]._mdir); |
| 2305 | return TRUE; |
| 2306 | } |
| 2307 | |
| 2308 | return FALSE; |
| 2309 | } |
| 2310 | |
| 2311 | BOOL M_DoFadein(int i) |
| 2312 | { |
no test coverage detected