mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2025-02-01 05:30:58 +00:00
Merge pull request #503 from NeonKnightOA/skilllevel
Easier handling of skill levels by using defines instead of numbers.
This commit is contained in:
commit
83c9358105
26 changed files with 56 additions and 50 deletions
|
@ -769,7 +769,7 @@ M_CheckAttack(edict_t *self)
|
|||
if (enemy_range == RANGE_MELEE)
|
||||
{
|
||||
/* don't always melee in easy mode */
|
||||
if ((skill->value == 0) && (randk() & 3))
|
||||
if ((skill->value == SKILL_EASY) && (randk() & 3))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -823,11 +823,11 @@ M_CheckAttack(edict_t *self)
|
|||
return false;
|
||||
}
|
||||
|
||||
if (skill->value == 0)
|
||||
if (skill->value == SKILL_EASY)
|
||||
{
|
||||
chance *= 0.5;
|
||||
}
|
||||
else if (skill->value >= 2)
|
||||
else if (skill->value >= SKILL_HARD)
|
||||
{
|
||||
chance *= 2;
|
||||
}
|
||||
|
|
|
@ -551,7 +551,7 @@ T_Damage(edict_t *targ, edict_t *inflictor, edict_t *attacker,
|
|||
meansOfDeath = mod;
|
||||
|
||||
/* easy mode takes half damage */
|
||||
if ((skill->value == 0) && (deathmatch->value == 0) && targ->client)
|
||||
if ((skill->value == SKILL_EASY) && (deathmatch->value == 0) && targ->client)
|
||||
{
|
||||
damage *= 0.5;
|
||||
|
||||
|
@ -696,7 +696,7 @@ T_Damage(edict_t *targ, edict_t *inflictor, edict_t *attacker,
|
|||
targ->pain(targ, attacker, knockback, take);
|
||||
|
||||
/* nightmare mode monsters don't go into pain frames often */
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
targ->pain_debounce_time = level.time + 5;
|
||||
}
|
||||
|
|
|
@ -196,8 +196,8 @@ Pickup_Powerup(edict_t *ent, edict_t *other)
|
|||
|
||||
quantity = other->client->pers.inventory[ITEM_INDEX(ent->item)];
|
||||
|
||||
if (((skill->value == 1) &&
|
||||
(quantity >= 2)) || ((skill->value >= 2) && (quantity >= 1)))
|
||||
if (((skill->value == SKILL_MEDIUM) &&
|
||||
(quantity >= 2)) || ((skill->value >= SKILL_HARD) && (quantity >= 1)))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -692,12 +692,12 @@ SpawnEntities(const char *mapname, char *entities, const char *spawnpoint)
|
|||
}
|
||||
else
|
||||
{
|
||||
if (((skill->value == 0) &&
|
||||
if (((skill->value == SKILL_EASY) &&
|
||||
(ent->spawnflags & SPAWNFLAG_NOT_EASY)) ||
|
||||
((skill->value == 1) &&
|
||||
((skill->value == SKILL_MEDIUM) &&
|
||||
(ent->spawnflags & SPAWNFLAG_NOT_MEDIUM)) ||
|
||||
(((skill->value == 2) ||
|
||||
(skill->value == 3)) &&
|
||||
(((skill->value == SKILL_HARD) ||
|
||||
(skill->value == SKILL_HARDPLUS)) &&
|
||||
(ent->spawnflags & SPAWNFLAG_NOT_HARD))
|
||||
)
|
||||
{
|
||||
|
|
|
@ -45,7 +45,7 @@ check_dodge(edict_t *self, vec3_t start, vec3_t dir, int speed)
|
|||
}
|
||||
|
||||
/* easy mode only ducks one quarter the time */
|
||||
if (skill->value == 0)
|
||||
if (skill->value == SKILL_EASY)
|
||||
{
|
||||
if (random() > 0.25)
|
||||
{
|
||||
|
|
|
@ -485,6 +485,12 @@ extern int gibsthisframe;
|
|||
#define MOD_TARGET_BLASTER 33
|
||||
#define MOD_FRIENDLY_FIRE 0x8000000
|
||||
|
||||
/* Easier handling of AI skill levels */
|
||||
#define SKILL_EASY 0
|
||||
#define SKILL_MEDIUM 1
|
||||
#define SKILL_HARD 2
|
||||
#define SKILL_HARDPLUS 3
|
||||
|
||||
extern int meansOfDeath;
|
||||
|
||||
extern edict_t *g_edicts;
|
||||
|
|
|
@ -407,7 +407,7 @@ berserk_pain(edict_t *self, edict_t *other /* unused */,
|
|||
self->pain_debounce_time = level.time + 3;
|
||||
gi.sound(self, CHAN_VOICE, sound_pain, 1, ATTN_NORM, 0);
|
||||
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
return; /* no pain anims in nightmare */
|
||||
}
|
||||
|
|
|
@ -611,7 +611,7 @@ jorg_pain(edict_t *self, edict_t *other /* unused */,
|
|||
|
||||
self->pain_debounce_time = level.time + 3;
|
||||
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
return; /* no pain anims in nightmare */
|
||||
}
|
||||
|
|
|
@ -749,7 +749,7 @@ makron_pain(edict_t *self, edict_t *other /* unused */,
|
|||
|
||||
self->pain_debounce_time = level.time + 3;
|
||||
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
return; /* no pain anims in nightmare */
|
||||
}
|
||||
|
|
|
@ -547,7 +547,7 @@ brain_tentacle_attack(edict_t *self)
|
|||
|
||||
VectorSet(aim, MELEE_DISTANCE, 0, 8);
|
||||
|
||||
if (fire_hit(self, aim, (10 + (randk() % 5)), -600) && (skill->value > 0))
|
||||
if (fire_hit(self, aim, (10 + (randk() % 5)), -600) && (skill->value > SKILL_EASY))
|
||||
{
|
||||
self->spawnflags |= 65536;
|
||||
}
|
||||
|
@ -683,7 +683,7 @@ brain_pain(edict_t *self, edict_t *other /* unused */,
|
|||
|
||||
self->pain_debounce_time = level.time + 3;
|
||||
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
return; /* no pain anims in nightmare */
|
||||
}
|
||||
|
|
|
@ -382,7 +382,7 @@ chick_pain(edict_t *self, edict_t *other /* unused */,
|
|||
gi.sound(self, CHAN_VOICE, sound_pain3, 1, ATTN_NORM, 0);
|
||||
}
|
||||
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
return; /* no pain anims in nightmare */
|
||||
}
|
||||
|
|
|
@ -334,7 +334,7 @@ flipper_pain(edict_t *self, edict_t *other /* unused */,
|
|||
|
||||
self->pain_debounce_time = level.time + 3;
|
||||
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
return; /* no pain anims in nightmare */
|
||||
}
|
||||
|
|
|
@ -726,7 +726,7 @@ floater_pain(edict_t *self, edict_t *other /* unused */,
|
|||
|
||||
self->pain_debounce_time = level.time + 3;
|
||||
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
return; /* no pain anims in nightmare */
|
||||
}
|
||||
|
|
|
@ -772,7 +772,7 @@ flyer_pain(edict_t *self, edict_t *other /* unused */,
|
|||
|
||||
self->pain_debounce_time = level.time + 3;
|
||||
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
return; /* no pain anims in nightmare */
|
||||
}
|
||||
|
|
|
@ -390,7 +390,7 @@ gladiator_pain(edict_t *self, edict_t *other /* unused */,
|
|||
gi.sound(self, CHAN_VOICE, sound_pain2, 1, ATTN_NORM, 0);
|
||||
}
|
||||
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
return; /* no pain anims in nightmare */
|
||||
}
|
||||
|
|
|
@ -407,7 +407,7 @@ gunner_pain(edict_t *self, edict_t *other /* unused */,
|
|||
gi.sound(self, CHAN_VOICE, sound_pain2, 1, ATTN_NORM, 0);
|
||||
}
|
||||
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
return; /* no pain anims in nightmare */
|
||||
}
|
||||
|
@ -528,7 +528,7 @@ gunner_duck_down(edict_t *self)
|
|||
|
||||
self->monsterinfo.aiflags |= AI_DUCKED;
|
||||
|
||||
if (skill->value >= 2)
|
||||
if (skill->value >= SKILL_HARD)
|
||||
{
|
||||
if (random() > 0.5)
|
||||
{
|
||||
|
|
|
@ -662,7 +662,7 @@ hover_pain(edict_t *self, edict_t *other /* unused */,
|
|||
|
||||
self->pain_debounce_time = level.time + 3;
|
||||
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
return; /* no pain anims in nightmare */
|
||||
}
|
||||
|
|
|
@ -289,7 +289,7 @@ infantry_pain(edict_t *self, edict_t *other /* unused */,
|
|||
|
||||
self->pain_debounce_time = level.time + 3;
|
||||
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
return; /* no pain anims in nightmare */
|
||||
}
|
||||
|
|
|
@ -699,7 +699,7 @@ insane_pain(edict_t *self, edict_t *other /* unused */,
|
|||
/* suppress screaming and moaning for 1 second so pain sound plays */
|
||||
self->fly_sound_debounce_time = level.time + 1;
|
||||
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
return; /* no pain anims in nightmare */
|
||||
}
|
||||
|
|
|
@ -430,7 +430,7 @@ medic_pain(edict_t *self, edict_t *other /* unused */,
|
|||
|
||||
self->pain_debounce_time = level.time + 3;
|
||||
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
return; /* no pain anims in nightmare */
|
||||
}
|
||||
|
|
|
@ -376,7 +376,7 @@ mutant_check_refire(edict_t *self)
|
|||
return;
|
||||
}
|
||||
|
||||
if (((skill->value == 3) &&
|
||||
if (((skill->value == SKILL_HARDPLUS) &&
|
||||
(random() < 0.5)) || (range(self, self->enemy) == RANGE_MELEE))
|
||||
{
|
||||
self->monsterinfo.nextframe = FRAME_attack09;
|
||||
|
@ -694,7 +694,7 @@ mutant_pain(edict_t *self, edict_t *other /* unused */,
|
|||
|
||||
self->pain_debounce_time = level.time + 3;
|
||||
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
return; /* no pain anims in nightmare */
|
||||
}
|
||||
|
|
|
@ -452,7 +452,7 @@ parasite_pain(edict_t *self, edict_t *other /* unused */,
|
|||
|
||||
self->pain_debounce_time = level.time + 3;
|
||||
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
return; /* no pain anims in nightmare */
|
||||
}
|
||||
|
|
|
@ -488,7 +488,7 @@ soldier_pain(edict_t *self, edict_t *other /* unused */,
|
|||
return;
|
||||
}
|
||||
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
return; /* no pain anims in nightmare */
|
||||
}
|
||||
|
@ -662,7 +662,7 @@ soldier_attack1_refire1(edict_t *self)
|
|||
return;
|
||||
}
|
||||
|
||||
if (((skill->value == 3) &&
|
||||
if (((skill->value == SKILL_HARDPLUS) &&
|
||||
(random() < 0.5)) || (range(self, self->enemy) == RANGE_MELEE))
|
||||
{
|
||||
self->monsterinfo.nextframe = FRAME_attak102;
|
||||
|
@ -691,7 +691,7 @@ soldier_attack1_refire2(edict_t *self)
|
|||
return;
|
||||
}
|
||||
|
||||
if (((skill->value == 3) &&
|
||||
if (((skill->value == SKILL_HARDPLUS) &&
|
||||
(random() < 0.5)) || (range(self, self->enemy) == RANGE_MELEE))
|
||||
{
|
||||
self->monsterinfo.nextframe = FRAME_attak102;
|
||||
|
@ -751,7 +751,7 @@ soldier_attack2_refire1(edict_t *self)
|
|||
return;
|
||||
}
|
||||
|
||||
if (((skill->value == 3) &&
|
||||
if (((skill->value == SKILL_HARDPLUS) &&
|
||||
(random() < 0.5)) || (range(self, self->enemy) == RANGE_MELEE))
|
||||
{
|
||||
self->monsterinfo.nextframe = FRAME_attak204;
|
||||
|
@ -780,7 +780,7 @@ soldier_attack2_refire2(edict_t *self)
|
|||
return;
|
||||
}
|
||||
|
||||
if (((skill->value == 3) &&
|
||||
if (((skill->value == SKILL_HARDPLUS) &&
|
||||
(random() < 0.5)) || (range(self, self->enemy) == RANGE_MELEE))
|
||||
{
|
||||
self->monsterinfo.nextframe = FRAME_attak204;
|
||||
|
@ -956,7 +956,7 @@ soldier_attack6_refire(edict_t *self)
|
|||
return;
|
||||
}
|
||||
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
self->monsterinfo.nextframe = FRAME_runs03;
|
||||
}
|
||||
|
@ -1029,7 +1029,7 @@ soldier_sight(edict_t *self, edict_t *other /* unused */)
|
|||
gi.sound(self, CHAN_VOICE, sound_sight2, 1, ATTN_NORM, 0);
|
||||
}
|
||||
|
||||
if ((skill->value > 0) && (range(self, self->enemy) >= RANGE_MID))
|
||||
if ((skill->value > SKILL_EASY) && (range(self, self->enemy) >= RANGE_MID))
|
||||
{
|
||||
if (random() > 0.5)
|
||||
{
|
||||
|
@ -1095,7 +1095,7 @@ soldier_dodge(edict_t *self, edict_t *attacker, float eta)
|
|||
FoundTarget(self);
|
||||
}
|
||||
|
||||
if (skill->value == 0)
|
||||
if (skill->value == SKILL_EASY)
|
||||
{
|
||||
self->monsterinfo.currentmove = &soldier_move_duck;
|
||||
return;
|
||||
|
@ -1104,7 +1104,7 @@ soldier_dodge(edict_t *self, edict_t *attacker, float eta)
|
|||
self->monsterinfo.pausetime = level.time + eta + 0.3;
|
||||
r = random();
|
||||
|
||||
if (skill->value == 1)
|
||||
if (skill->value == SKILL_MEDIUM)
|
||||
{
|
||||
if (r > 0.33)
|
||||
{
|
||||
|
@ -1118,7 +1118,7 @@ soldier_dodge(edict_t *self, edict_t *attacker, float eta)
|
|||
return;
|
||||
}
|
||||
|
||||
if (skill->value >= 2)
|
||||
if (skill->value >= SKILL_HARD)
|
||||
{
|
||||
if (r > 0.66)
|
||||
{
|
||||
|
|
|
@ -610,7 +610,7 @@ supertank_pain(edict_t *self, edict_t *other /* unused */,
|
|||
}
|
||||
|
||||
/* Don't go into pain if he's firing his rockets */
|
||||
if (skill->value >= 2)
|
||||
if (skill->value >= SKILL_HARD)
|
||||
{
|
||||
if ((self->s.frame >= FRAME_attak2_1) &&
|
||||
(self->s.frame <= FRAME_attak2_14))
|
||||
|
@ -621,7 +621,7 @@ supertank_pain(edict_t *self, edict_t *other /* unused */,
|
|||
|
||||
self->pain_debounce_time = level.time + 3;
|
||||
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
return; /* no pain anims in nightmare */
|
||||
}
|
||||
|
|
|
@ -403,7 +403,7 @@ tank_pain(edict_t *self, edict_t *other /* other */,
|
|||
}
|
||||
|
||||
/* If hard or nightmare, don't go into pain while attacking */
|
||||
if (skill->value >= 2)
|
||||
if (skill->value >= SKILL_HARD)
|
||||
{
|
||||
if ((self->s.frame >= FRAME_attak301) &&
|
||||
(self->s.frame <= FRAME_attak330))
|
||||
|
@ -421,7 +421,7 @@ tank_pain(edict_t *self, edict_t *other /* other */,
|
|||
self->pain_debounce_time = level.time + 3;
|
||||
gi.sound(self, CHAN_VOICE, sound_pain, 1, ATTN_NORM, 0);
|
||||
|
||||
if (skill->value == 3)
|
||||
if (skill->value == SKILL_HARDPLUS)
|
||||
{
|
||||
return; /* no pain anims in nightmare */
|
||||
}
|
||||
|
@ -643,7 +643,7 @@ tank_reattack_blaster(edict_t *self)
|
|||
return;
|
||||
}
|
||||
|
||||
if (skill->value >= 2)
|
||||
if (skill->value >= SKILL_HARD)
|
||||
{
|
||||
if (visible(self, self->enemy))
|
||||
{
|
||||
|
@ -861,7 +861,7 @@ tank_refire_rocket(edict_t *self)
|
|||
}
|
||||
|
||||
/* Only on hard or nightmare */
|
||||
if (skill->value >= 2)
|
||||
if (skill->value >= SKILL_HARD)
|
||||
{
|
||||
if (self->enemy->health > 0)
|
||||
{
|
||||
|
|
|
@ -347,15 +347,15 @@ HelpComputerMessage(edict_t *ent)
|
|||
return;
|
||||
}
|
||||
|
||||
if (skill->value == 0)
|
||||
if (skill->value == SKILL_EASY)
|
||||
{
|
||||
sk = "easy";
|
||||
}
|
||||
else if (skill->value == 1)
|
||||
else if (skill->value == SKILL_MEDIUM)
|
||||
{
|
||||
sk = "medium";
|
||||
}
|
||||
else if (skill->value == 2)
|
||||
else if (skill->value == SKILL_HARD)
|
||||
{
|
||||
sk = "hard";
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue