MCPcopy Create free account
hub / github.com/diasurgical/devilution / MAI_Fat

Function MAI_Fat

Source/monster.cpp:3215–3248  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3213}
3214
3215void MAI_Fat(int i)
3216{
3217 MonsterStruct *Monst;
3218 int mx, my, md, v;
3219
3220 if ((DWORD)i >= MAXMONSTERS)
3221 app_fatal("MAI_Fat: Invalid monster %d", i);
3222
3223 Monst = &monster[i];
3224 if (Monst->_mmode != MM_STAND || Monst->_msquelch == 0) {
3225 return;
3226 }
3227
3228 mx = Monst->_mx - Monst->_menemyx;
3229 my = Monst->_my - Monst->_menemyy;
3230 md = M_GetDir(i);
3231 Monst->_mdir = md;
3232 v = random_(111, 100);
3233 if (abs(mx) >= 2 || abs(my) >= 2) {
3234 if (Monst->_mVar2 > 20 && v < 4 * Monst->_mint + 20
3235 || (Monst->_mVar1 == MM_WALK || Monst->_mVar1 == MM_WALK2 || Monst->_mVar1 == MM_WALK3)
3236 && Monst->_mVar2 == 0
3237 && v < 4 * Monst->_mint + 70) {
3238 M_CallWalk(i, md);
3239 }
3240 } else if (v < 4 * Monst->_mint + 15) {
3241 M_StartAttack(i);
3242 } else if (v < 4 * Monst->_mint + 20) {
3243 M_StartSpAttack(i);
3244 }
3245
3246 if (Monst->_mmode == MM_STAND)
3247 Monst->_mAnimData = Monst->MType->Anims[MA_STAND].Data[md];
3248}
3249
3250void MAI_Sneak(int i)
3251{

Callers

nothing calls this directly

Calls 6

app_fatalFunction · 0.85
M_GetDirFunction · 0.85
random_Function · 0.85
M_CallWalkFunction · 0.85
M_StartAttackFunction · 0.85
M_StartSpAttackFunction · 0.85

Tested by

no test coverage detected