Skip to content

Commit c2239e6

Browse files
committed
# Conflicts: # dlls/aflock.cpp # dlls/houndeye.cpp # dlls/monsters.cpp # dlls/scientist.cpp
2 parents 0b16e41 + fc8c85f commit c2239e6

File tree

4 files changed

+73
-25
lines changed

4 files changed

+73
-25
lines changed

dlls/aflock.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -332,8 +332,10 @@ void CFlockingFlyer::SpawnCommonCode()
332332
pev->classname = MAKE_STRING("monster_flyer");
333333
pev->solid = SOLID_SLIDEBOX;
334334
pev->movetype = MOVETYPE_FLY;
335-
pev->takedamage = DAMAGE_NO;
336-
pev->health = 1;
335+
pev->takedamage = DAMAGE_YES;
336+
pev->health = 10;
337+
338+
m_bloodColor = BLOOD_COLOR_GREEN;
337339

338340
m_fPathBlocked = false; // obstacles will be detected
339341
m_flFieldOfView = 0.2;

dlls/houndeye.cpp

+9-2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@
3333
#define HOUNDEYE_MAX_ATTACK_RADIUS 384
3434
#define HOUNDEYE_SQUAD_BONUS (float)1.1
3535

36-
#define HOUNDEYE_EYE_FRAMES 4 // how many different switchable maps for the eye
36+
// Marphy Fact Files Fix - Fix various instances of Houndeye not correctly blinking/closing eyes
37+
#define HOUNDEYE_EYE_FRAMES 3 // how many different switchable maps for the eye
3738

3839
#define HOUNDEYE_SOUND_STARTLE_VOLUME 128 // how loud a sound has to be to badly scare a sleeping houndeye
3940

@@ -894,10 +895,11 @@ void CHoundeye::PrescheduleThink()
894895
//=========================================================
895896
// AI Schedules Specific to this monster
896897
//=========================================================
898+
// Marphy Fact Files Fix - Fix freeze stutter after leaderlook sequence
897899
Task_t tlHoundGuardPack[] =
898900
{
899901
{TASK_STOP_MOVING, (float)0},
900-
{TASK_GUARD, (float)0},
902+
{TASK_PLAY_SEQUENCE, (float)ACT_GUARD},
901903
};
902904

903905
Schedule_t slHoundGuardPack[] =
@@ -1175,6 +1177,11 @@ Schedule_t* CHoundeye::GetScheduleOfType(int Type)
11751177
{
11761178
return &slHoundSleep[0];
11771179
}
1180+
// Marphy Fact Files Fix - Restore squad leader leaderlook animation
1181+
if (InSquad() && IsLeader() && !m_fAsleep && RANDOM_LONG(0, 14) < 1)
1182+
{
1183+
return &slHoundGuardPack[0];
1184+
}
11781185
else
11791186
{
11801187
return CSquadMonster::GetScheduleOfType(Type);

dlls/monsters.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -2194,7 +2194,7 @@ int CBaseMonster::IRelationship(CBaseEntity* pTarget)
21942194
/*NONE*/ {R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO},
21952195
/*MACHINE*/ {R_NO, R_NO, R_DL, R_DL, R_NO, R_DL, R_DL, R_DL, R_DL, R_DL, R_NO, R_DL, R_DL, R_DL},
21962196
/*PLAYER*/ {R_NO, R_DL, R_NO, R_NO, R_DL, R_DL, R_DL, R_DL, R_DL, R_DL, R_NO, R_NO, R_DL, R_DL},
2197-
/*HUMANPASSIVE*/ {R_NO, R_NO, R_AL, R_AL, R_HT, R_FR, R_NO, R_HT, R_DL, R_FR, R_NO, R_AL, R_NO, R_NO},
2197+
/*HUMANPASSIVE*/ {R_NO, R_NO, R_AL, R_AL, R_HT, R_HT, R_NO, R_HT, R_DL, R_DL, R_NO, R_AL, R_NO, R_NO},
21982198
/*HUMANMILITAR*/ {R_NO, R_NO, R_HT, R_DL, R_NO, R_HT, R_DL, R_DL, R_DL, R_DL, R_NO, R_HT, R_NO, R_NO},
21992199
/*ALIENMILITAR*/ {R_NO, R_DL, R_HT, R_DL, R_HT, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_DL, R_NO, R_NO},
22002200
/*ALIENPASSIVE*/ {R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO, R_NO},

dlls/scientist.cpp

+59-20
Original file line numberDiff line numberDiff line change
@@ -368,13 +368,13 @@ Schedule_t slScientistStartle[] =
368368
};
369369

370370

371-
371+
// Marphy Fact Files Fix - Restore fear display animation
372372
Task_t tlFear[] =
373373
{
374374
{TASK_STOP_MOVING, (float)0},
375375
{TASK_FACE_ENEMY, (float)0},
376376
{TASK_SAY_FEAR, (float)0},
377-
// { TASK_PLAY_SEQUENCE, (float)ACT_FEAR_DISPLAY },
377+
{TASK_PLAY_SEQUENCE_FACE_ENEMY, (float)ACT_FEAR_DISPLAY},
378378
};
379379

380380
Schedule_t slFear[] =
@@ -416,12 +416,13 @@ void CScientist::DeclineFollowing()
416416

417417
void CScientist::Scream()
418418
{
419-
if (FOkToSpeak())
420-
{
421-
Talk(10);
422-
m_hTalkTarget = m_hEnemy;
423-
PlaySentence("SC_SCREAM", RANDOM_FLOAT(3, 6), VOL_NORM, ATTN_NORM);
424-
}
419+
// Marphy Fact Files Fix - This speech check always fails during combat, so removing
420+
//if ( FOkToSpeak() )
421+
//{
422+
Talk(10);
423+
m_hTalkTarget = m_hEnemy;
424+
PlaySentence("SC_SCREAM", RANDOM_FLOAT(3, 6), VOL_NORM, ATTN_NORM);
425+
//}
425426
}
426427

427428

@@ -458,15 +459,16 @@ void CScientist::StartTask(Task_t* pTask)
458459
break;
459460

460461
case TASK_SAY_FEAR:
461-
if (FOkToSpeak())
462-
{
463-
Talk(2);
464-
m_hTalkTarget = m_hEnemy;
465-
if (m_hEnemy->IsPlayer())
466-
PlaySentence("SC_PLFEAR", 5, VOL_NORM, ATTN_NORM);
467-
else
468-
PlaySentence("SC_FEAR", 5, VOL_NORM, ATTN_NORM);
469-
}
462+
// Marphy Fact FIles Fix - This speech check always fails during combat, so removing
463+
//if ( FOkToSpeak() )
464+
//{
465+
Talk(2);
466+
m_hTalkTarget = m_hEnemy;
467+
if (m_hEnemy->IsPlayer())
468+
PlaySentence("SC_PLFEAR", 5, VOL_NORM, ATTN_NORM);
469+
else
470+
PlaySentence("SC_FEAR", 5, VOL_NORM, ATTN_NORM);
471+
//}
470472
TaskComplete();
471473
break;
472474

@@ -504,14 +506,18 @@ void CScientist::RunTask(Task_t* pTask)
504506
case TASK_RUN_PATH_SCARED:
505507
if (MovementIsComplete())
506508
TaskComplete();
507-
if (RANDOM_LONG(0, 31) < 8)
509+
510+
// Marphy Fact Files Fix - Reducing scream (which didn't work before) chance significantly
511+
//if ( RANDOM_LONG(0,31) < 8 )
512+
if (RANDOM_LONG(0, 63) < 1)
508513
Scream();
509514
break;
510515

511516
case TASK_MOVE_TO_TARGET_RANGE_SCARED:
512517
{
513-
if (RANDOM_LONG(0, 63) < 8)
514-
Scream();
518+
// Marphy Fact Files Fix - Removing redundant scream
519+
//if ( RANDOM_LONG(0,63)< 8 )
520+
//Scream();
515521

516522
if (m_hEnemy == NULL)
517523
{
@@ -764,6 +770,7 @@ bool CScientist::TakeDamage(entvars_t* pevInflictor, entvars_t* pevAttacker, flo
764770
// of sounds this monster regards. In the base class implementation,
765771
// monsters care about all sounds, but no scents.
766772
//=========================================================
773+
// Marphy Fact Files Fix - Restore scientist's sense of smell
767774
int CScientist::ISoundMask()
768775
{
769776
return bits_SOUND_WORLD |
@@ -916,6 +923,9 @@ Schedule_t* CScientist::GetSchedule()
916923
{
917924
m_hEnemy = NULL;
918925
pEnemy = NULL;
926+
927+
// Marphy Fact Files Fix - Fix scientists not disregarding enemy after hiding
928+
m_fearTime = gpGlobals->time;
919929
}
920930
}
921931

@@ -991,12 +1001,38 @@ Schedule_t* CScientist::GetSchedule()
9911001
case MONSTERSTATE_COMBAT:
9921002
if (HasConditions(bits_COND_NEW_ENEMY))
9931003
return slFear; // Point and scream!
1004+
9941005
if (HasConditions(bits_COND_SEE_ENEMY))
1006+
{
1007+
// Marphy Fact Files Fix - Fix scientists not disregarding enemy after hiding
1008+
m_fearTime = gpGlobals->time;
9951009
return slScientistCover; // Take Cover
1010+
}
9961011

9971012
if (HasConditions(bits_COND_HEAR_SOUND))
9981013
return slTakeCoverFromBestSound; // Cower and panic from the scary sound!
9991014

1015+
// Marphy Fact Files Fix - Fix scientists not disregarding enemy after hiding
1016+
if (pEnemy)
1017+
{
1018+
if (HasConditions(bits_COND_SEE_ENEMY))
1019+
m_fearTime = gpGlobals->time;
1020+
else if (DisregardEnemy(pEnemy)) // After 15 seconds of being hidden, return to alert
1021+
{
1022+
m_hEnemy = NULL;
1023+
pEnemy = NULL;
1024+
1025+
m_fearTime = gpGlobals->time;
1026+
1027+
if (IsFollowing())
1028+
{
1029+
return slScientistStartle;
1030+
}
1031+
1032+
return slScientistHide; // Hide after disregard
1033+
}
1034+
}
1035+
10001036
return slScientistCover; // Run & Cower
10011037
break;
10021038
}
@@ -1042,6 +1078,9 @@ MONSTERSTATE CScientist::GetIdealState()
10421078
// Strip enemy when going to alert
10431079
m_IdealMonsterState = MONSTERSTATE_ALERT;
10441080
m_hEnemy = NULL;
1081+
1082+
// Marphy Fact Files Fix - Fix scientists not disregarding enemy after hiding
1083+
m_fearTime = gpGlobals->time;
10451084
return m_IdealMonsterState;
10461085
}
10471086
// Follow if only scared a little

0 commit comments

Comments
 (0)