Merge pull request #8 from NeonKnightOA/skills

Easier handling of skill levels by using defines instead of numbers
This commit is contained in:
Yamagi 2020-01-30 18:36:21 +01:00 committed by GitHub
commit 8236760dfd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 76 additions and 69 deletions

View File

@ -653,7 +653,7 @@ qboolean M_CheckAttack (edict_t *self)
if (enemy_range == RANGE_MELEE) if (enemy_range == RANGE_MELEE)
{ {
// don't always melee in easy mode // don't always melee in easy mode
if (skill->value == 0 && (rand()&3) ) if (skill->value == SKILL_EASY && (rand()&3) )
return false; return false;
if (self->monsterinfo.melee) if (self->monsterinfo.melee)
self->monsterinfo.attack_state = AS_MELEE; self->monsterinfo.attack_state = AS_MELEE;
@ -693,9 +693,9 @@ qboolean M_CheckAttack (edict_t *self)
return false; return false;
} }
if (skill->value == 0) if (skill->value == SKILL_EASY)
chance *= 0.5; chance *= 0.5;
else if (skill->value >= 2) else if (skill->value >= SKILL_HARD)
chance *= 2; chance *= 2;
if (random () < chance) if (random () < chance)

View File

@ -404,7 +404,7 @@ void T_Damage (edict_t *targ, edict_t *inflictor, edict_t *attacker, vec3_t dir,
meansOfDeath = mod; meansOfDeath = mod;
// easy mode takes half damage // 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; damage *= 0.5;
if (!damage) if (!damage)
@ -541,7 +541,7 @@ void T_Damage (edict_t *targ, edict_t *inflictor, edict_t *attacker, vec3_t dir,
{ {
targ->pain (targ, attacker, knockback, take); targ->pain (targ, attacker, knockback, take);
// nightmare mode monsters don't go into pain frames often // 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; targ->pain_debounce_time = level.time + 5;
} }
} }

View File

@ -170,7 +170,7 @@ qboolean Pickup_Powerup (edict_t *ent, edict_t *other)
int quantity; int quantity;
quantity = other->client->pers.inventory[ITEM_INDEX(ent->item)]; 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; return false;
if ((coop->value) && (ent->item->flags & IT_STAY_COOP) && (quantity > 0)) if ((coop->value) && (ent->item->flags & IT_STAY_COOP) && (quantity > 0))

View File

@ -647,9 +647,9 @@ void SpawnEntities (const char *mapname, char *entities, const char *spawnpoint)
(ent->spawnflags & SPAWNFLAG_NOT_MEDIUM) && (ent->spawnflags & SPAWNFLAG_NOT_MEDIUM) &&
(ent->spawnflags & SPAWNFLAG_NOT_HARD))) (ent->spawnflags & SPAWNFLAG_NOT_HARD)))
{ {
if (((skill->value == 0) && (ent->spawnflags & SPAWNFLAG_NOT_EASY)) || if (((skill->value == SKILL_EASY) && (ent->spawnflags & SPAWNFLAG_NOT_EASY)) ||
((skill->value == 1) && (ent->spawnflags & SPAWNFLAG_NOT_MEDIUM)) || ((skill->value == SKILL_MEDIUM) && (ent->spawnflags & SPAWNFLAG_NOT_MEDIUM)) ||
(((skill->value == 2) || (skill->value == 3)) && (ent->spawnflags & SPAWNFLAG_NOT_HARD))) (((skill->value == SKILL_HARD) || (skill->value == SKILL_HARDPLUS)) && (ent->spawnflags & SPAWNFLAG_NOT_HARD)))
{ {
G_FreeEdict(ent); G_FreeEdict(ent);
inhibit++; inhibit++;
@ -662,9 +662,9 @@ void SpawnEntities (const char *mapname, char *entities, const char *spawnpoint)
{ {
if (((!coop->value) && (ent->spawnflags2 & SPAWNFLAG2_NOT_SINGLE)) || if (((!coop->value) && (ent->spawnflags2 & SPAWNFLAG2_NOT_SINGLE)) ||
((coop->value) && (ent->spawnflags2 & SPAWNFLAG2_NOT_COOP)) || ((coop->value) && (ent->spawnflags2 & SPAWNFLAG2_NOT_COOP)) ||
((skill->value == 0) && (ent->spawnflags & SPAWNFLAG_NOT_EASY)) || ((skill->value == SKILL_EASY) && (ent->spawnflags & SPAWNFLAG_NOT_EASY)) ||
((skill->value == 1) && (ent->spawnflags & SPAWNFLAG_NOT_MEDIUM)) || ((skill->value == SKILL_MEDIUM) && (ent->spawnflags & SPAWNFLAG_NOT_MEDIUM)) ||
(((skill->value == 2) || (skill->value == 3)) && (ent->spawnflags & SPAWNFLAG_NOT_HARD)) (((skill->value == SKILL_HARD) || (skill->value == SKILL_HARDPLUS)) && (ent->spawnflags & SPAWNFLAG_NOT_HARD))
) )
{ {
G_FreeEdict (ent); G_FreeEdict (ent);

View File

@ -18,7 +18,7 @@ void check_dodge (edict_t *self, vec3_t start, vec3_t dir, int speed)
float eta; float eta;
// easy mode only ducks one quarter the time // easy mode only ducks one quarter the time
if (skill->value == 0) if (skill->value == SKILL_EASY)
{ {
if (random() > 0.25) if (random() > 0.25)
return; return;
@ -41,7 +41,7 @@ void check_dodge (edict_t *self, vec3_t start, vec3_t dir, int speed)
tr.ent->monsterinfo.dodgetimeout = 0; tr.ent->monsterinfo.dodgetimeout = 0;
} }
if(skill->value > 3) if(skill->value > SKILL_HARDPLUS)
{ {
skilllevel = 3; skilllevel = 3;
} }

View File

@ -555,6 +555,13 @@ extern int body_armor_index;
#define MOD_GL_POLYBLEND 40 #define MOD_GL_POLYBLEND 40
#define MOD_FRIENDLY_FIRE 0x8000000 #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 int meansOfDeath;

View File

@ -255,7 +255,7 @@ void berserk_pain (edict_t *self, edict_t *other, float kick, int damage)
self->pain_debounce_time = level.time + 3; self->pain_debounce_time = level.time + 3;
gi.sound (self, CHAN_VOICE, sound_pain, 1, ATTN_NORM, 0); 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 return; // no pain anims in nightmare
if ((damage < 20) || (random() < 0.5)) if ((damage < 20) || (random() < 0.5))

View File

@ -441,7 +441,7 @@ void zboss_pain (edict_t *self, edict_t *other, float kick, int damage)
self->pain_debounce_time = level.time + 5; self->pain_debounce_time = level.time + 5;
if (skill->value == 3) if (skill->value == SKILL_HARDPLUS)
return; // no pain anims in nightmare return; // no pain anims in nightmare
if(self->laser) if(self->laser)
@ -1061,11 +1061,11 @@ void FireCannon(edict_t *self)
distance = 700; distance = 700;
} }
if(skill->value < 2) if(skill->value < SKILL_HARD)
{ {
fire_plasmaCannon (self, start, dir, 90, 700, 2.5, 90+40, distance); fire_plasmaCannon (self, start, dir, 90, 700, 2.5, 90+40, distance);
} }
else if(skill->value < 3) else if(skill->value < SKILL_HARDPLUS)
{ {
fire_plasmaCannon (self, start, dir, 90, (int)(distance * 1.2), 2.5, 90+40, distance); fire_plasmaCannon (self, start, dir, 90, (int)(distance * 1.2), 2.5, 90+40, distance);
} }
@ -1659,15 +1659,15 @@ void SP_monster_zboss (edict_t *self)
self->monsterinfo.aiflags = AI_MONREDUCEDDAMAGE; self->monsterinfo.aiflags = AI_MONREDUCEDDAMAGE;
self->monsterinfo.reducedDamageAmount = 0.25; self->monsterinfo.reducedDamageAmount = 0.25;
if(skill->value == 0) if(skill->value == SKILL_EASY)
{ {
self->health = 3000; self->health = 3000;
} }
else if(skill->value == 1) else if(skill->value == SKILL_MEDIUM)
{ {
self->health = 4500; self->health = 4500;
} }
else if(skill->value == 2) else if(skill->value == SKILL_HARD)
{ {
self->health = 6000; self->health = 6000;
} }

View File

@ -430,7 +430,7 @@ void jorg_pain (edict_t *self, edict_t *other, float kick, int damage)
self->pain_debounce_time = level.time + 3; self->pain_debounce_time = level.time + 3;
if (skill->value == 3) if (skill->value == SKILL_HARDPLUS)
return; // no pain anims in nightmare return; // no pain anims in nightmare
if (damage <= 50) if (damage <= 50)

View File

@ -554,7 +554,7 @@ void makron_pain (edict_t *self, edict_t *other, float kick, int damage)
return; return;
self->pain_debounce_time = level.time + 3; self->pain_debounce_time = level.time + 3;
if (skill->value == 3) if (skill->value == SKILL_HARDPLUS)
return; // no pain anims in nightmare return; // no pain anims in nightmare

View File

@ -385,7 +385,7 @@ void brain_tentacle_attack (edict_t *self)
vec3_t aim; vec3_t aim;
VectorSet (aim, MELEE_DISTANCE, 0, 8); VectorSet (aim, MELEE_DISTANCE, 0, 8);
if (fire_hit (self, aim, (10 + (rand() %5)), -600) && skill->value > 0) if (fire_hit (self, aim, (10 + (rand() %5)), -600) && skill->value > SKILL_EASY)
self->spawnflags |= 65536; self->spawnflags |= 65536;
gi.sound (self, CHAN_WEAPON, sound_tentacles_retract, 1, ATTN_NORM, 0); gi.sound (self, CHAN_WEAPON, sound_tentacles_retract, 1, ATTN_NORM, 0);
} }
@ -472,7 +472,7 @@ void brain_pain (edict_t *self, edict_t *other, float kick, int damage)
return; return;
self->pain_debounce_time = level.time + 3; self->pain_debounce_time = level.time + 3;
if (skill->value == 3) if (skill->value == SKILL_HARDPLUS)
return; // no pain anims in nightmare return; // no pain anims in nightmare
r = random(); r = random();

View File

@ -264,7 +264,7 @@ void chick_pain (edict_t *self, edict_t *other, float kick, int damage)
else else
gi.sound (self, CHAN_VOICE, sound_pain3, 1, ATTN_NORM, 0); 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 return; // no pain anims in nightmare
if (damage <= 10) if (damage <= 10)

View File

@ -213,7 +213,7 @@ void flipper_pain (edict_t *self, edict_t *other, float kick, int damage)
self->pain_debounce_time = level.time + 3; self->pain_debounce_time = level.time + 3;
if (skill->value == 3) if (skill->value == SKILL_HARDPLUS)
return; // no pain anims in nightmare return; // no pain anims in nightmare
n = (rand() + 1) % 2; n = (rand() + 1) % 2;

View File

@ -553,7 +553,7 @@ void floater_pain (edict_t *self, edict_t *other, float kick, int damage)
return; return;
self->pain_debounce_time = level.time + 3; self->pain_debounce_time = level.time + 3;
if (skill->value == 3) if (skill->value == SKILL_HARDPLUS)
return; // no pain anims in nightmare return; // no pain anims in nightmare
n = (rand() + 1) % 3; n = (rand() + 1) % 3;

View File

@ -512,7 +512,7 @@ void flyer_pain (edict_t *self, edict_t *other, float kick, int damage)
return; return;
self->pain_debounce_time = level.time + 3; self->pain_debounce_time = level.time + 3;
if (skill->value == 3) if (skill->value == SKILL_HARDPLUS)
return; // no pain anims in nightmare return; // no pain anims in nightmare
n = rand() % 3; n = rand() % 3;

View File

@ -238,7 +238,7 @@ void gladiator_pain (edict_t *self, edict_t *other, float kick, int damage)
else else
gi.sound (self, CHAN_VOICE, sound_pain2, 1, ATTN_NORM, 0); 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 return; // no pain anims in nightmare
if (self->velocity[2] > 100) if (self->velocity[2] > 100)

View File

@ -276,7 +276,7 @@ void gunner_pain (edict_t *self, edict_t *other, float kick, int damage)
else else
gi.sound (self, CHAN_VOICE, sound_pain2, 1, ATTN_NORM, 0); 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 return; // no pain anims in nightmare
if (damage <= 10) if (damage <= 10)
@ -346,7 +346,7 @@ void gunner_duck_down (edict_t *self)
if (self->monsterinfo.aiflags & AI_DUCKED) if (self->monsterinfo.aiflags & AI_DUCKED)
return; return;
self->monsterinfo.aiflags |= AI_DUCKED; self->monsterinfo.aiflags |= AI_DUCKED;
if (skill->value >= 2) if (skill->value >= SKILL_HARD)
{ {
if (random() > 0.5) if (random() > 0.5)
GunnerGrenade (self); GunnerGrenade (self);

View File

@ -204,7 +204,7 @@ void hound_pain (edict_t *self, edict_t *other, float kick, int damage)
self->pain_debounce_time = level.time + 3; self->pain_debounce_time = level.time + 3;
if (skill->value == 3) if (skill->value == SKILL_HARDPLUS)
return; // no pain anims in nightmare return; // no pain anims in nightmare
if (random() < 0.5) if (random() < 0.5)

View File

@ -475,7 +475,7 @@ void hover_pain (edict_t *self, edict_t *other, float kick, int damage)
self->pain_debounce_time = level.time + 3; self->pain_debounce_time = level.time + 3;
if (skill->value == 3) if (skill->value == SKILL_HARDPLUS)
return; // no pain anims in nightmare return; // no pain anims in nightmare
if (damage <= 25) if (damage <= 25)

View File

@ -205,7 +205,7 @@ void infantry_pain (edict_t *self, edict_t *other, float kick, int damage)
self->pain_debounce_time = level.time + 3; self->pain_debounce_time = level.time + 3;
if (skill->value == 3) if (skill->value == SKILL_HARDPLUS)
return; // no pain anims in nightmare return; // no pain anims in nightmare
n = rand() % 2; n = rand() % 2;

View File

@ -475,7 +475,7 @@ void insane_pain (edict_t *self, edict_t *other, float kick, int damage)
l = 100; l = 100;
gi.sound (self, CHAN_VOICE, gi.soundindex (va("player/male/pain%i_%i.wav", l, r)), 1, ATTN_IDLE, 0); gi.sound (self, CHAN_VOICE, gi.soundindex (va("player/male/pain%i_%i.wav", l, r)), 1, ATTN_IDLE, 0);
if (skill->value == 3) if (skill->value == SKILL_HARDPLUS)
return; // no pain anims in nightmare return; // no pain anims in nightmare
// Don't go into pain frames if crucified. // Don't go into pain frames if crucified.

View File

@ -305,7 +305,7 @@ void medic_pain (edict_t *self, edict_t *other, float kick, int damage)
self->pain_debounce_time = level.time + 3; self->pain_debounce_time = level.time + 3;
if (skill->value == 3) if (skill->value == SKILL_HARDPLUS)
return; // no pain anims in nightmare return; // no pain anims in nightmare
if (random() < 0.5) if (random() < 0.5)

View File

@ -260,7 +260,7 @@ void mutant_check_refire (edict_t *self)
if (!self->enemy || !self->enemy->inuse || self->enemy->health <= 0) if (!self->enemy || !self->enemy->inuse || self->enemy->health <= 0)
return; return;
if ( ((skill->value == 3) && (random() < 0.5)) || (range(self, self->enemy) == RANGE_MELEE) ) if ( ((skill->value == SKILL_HARDPLUS) && (random() < 0.5)) || (range(self, self->enemy) == RANGE_MELEE) )
self->monsterinfo.nextframe = FRAME_attack09; self->monsterinfo.nextframe = FRAME_attack09;
} }
@ -486,7 +486,7 @@ void mutant_pain (edict_t *self, edict_t *other, float kick, int damage)
self->pain_debounce_time = level.time + 3; self->pain_debounce_time = level.time + 3;
if (skill->value == 3) if (skill->value == SKILL_HARDPLUS)
return; // no pain anims in nightmare return; // no pain anims in nightmare
r = random(); r = random();

View File

@ -263,7 +263,7 @@ void parasite_pain (edict_t *self, edict_t *other, float kick, int damage)
self->pain_debounce_time = level.time + 3; self->pain_debounce_time = level.time + 3;
if (skill->value == 3) if (skill->value == SKILL_HARDPLUS)
return; // no pain anims in nightmare return; // no pain anims in nightmare
if (random() < 0.5) if (random() < 0.5)

View File

@ -469,11 +469,11 @@ void sentien_post_blast_attack(edict_t *self)
if (visible(self, self->enemy) && if (visible(self, self->enemy) &&
infront(self, self->enemy)) infront(self, self->enemy))
{ {
if(skill->value == 1) if(skill->value == SKILL_MEDIUM)
refire = 0.40; refire = 0.40;
else if(skill->value == 2) else if(skill->value == SKILL_HARD)
refire = 0.60; refire = 0.60;
else if(skill->value >= 3) else if(skill->value >= SKILL_HARDPLUS)
refire = 0.75; refire = 0.75;
if (random() > refire) if (random() > refire)
@ -772,12 +772,12 @@ void sentien_fend (edict_t *self, edict_t *attacker, float eta)
self->monsterinfo.currentmove == &sentien_move_blast_attack) self->monsterinfo.currentmove == &sentien_move_blast_attack)
return; return;
if (skill->value == 0) if (skill->value == SKILL_EASY)
{ {
if (random() > 0.45) if (random() > 0.45)
return; return;
} }
else if(skill->value == 1) else if(skill->value == SKILL_MEDIUM)
{ {
if (random() > 0.60) if (random() > 0.60)
return; return;
@ -881,14 +881,14 @@ void sentien_pain (edict_t *self, edict_t *other, float kick, int damage)
return; return;
} }
if (skill->value >= 1) if (skill->value >= SKILL_MEDIUM)
{ {
// don't flinch if attacking // don't flinch if attacking
if(self->monsterinfo.currentmove == &sentien_move_laser_attack || if(self->monsterinfo.currentmove == &sentien_move_laser_attack ||
self->monsterinfo.currentmove == &sentien_move_blast_attack) self->monsterinfo.currentmove == &sentien_move_blast_attack)
return; return;
} }
if (skill->value == 3) if (skill->value == SKILL_HARDPLUS)
return; // no pain anims in nightmare return; // no pain anims in nightmare
target_laser_off(self->laser); target_laser_off(self->laser);
@ -1132,12 +1132,12 @@ void SP_monster_sentien(edict_t *self)
create_sentien_laser(self); create_sentien_laser(self);
if(skill->value == 2) if(skill->value == SKILL_HARD)
{ {
self->laser->dmg *= 1.5; self->laser->dmg *= 1.5;
self->yaw_speed *= 1.5; self->yaw_speed *= 1.5;
} }
else if(skill->value >= 3) else if(skill->value >= SKILL_HARDPLUS)
{ {
self->laser->dmg *= 2.5; self->laser->dmg *= 2.5;
self->yaw_speed *= 2; self->yaw_speed *= 2;

View File

@ -355,7 +355,7 @@ void soldier_pain (edict_t *self, edict_t *other, float kick, int damage)
return; return;
} }
if (skill->value == 3) if (skill->value == SKILL_HARDPLUS)
return; // no pain anims in nightmare return; // no pain anims in nightmare
r = random(); r = random();
@ -456,7 +456,7 @@ void soldier_attack1_refire1 (edict_t *self)
if (self->enemy->health <= 0) if (self->enemy->health <= 0)
return; return;
if ( ((skill->value == 3) && (random() < 0.5)) || (range(self, self->enemy) == RANGE_MELEE) ) if ( ((skill->value == SKILL_HARDPLUS) && (random() < 0.5)) || (range(self, self->enemy) == RANGE_MELEE) )
self->monsterinfo.nextframe = FRAME_attak102; self->monsterinfo.nextframe = FRAME_attak102;
else else
self->monsterinfo.nextframe = FRAME_attak110; self->monsterinfo.nextframe = FRAME_attak110;
@ -470,7 +470,7 @@ void soldier_attack1_refire2 (edict_t *self)
if (self->enemy->health <= 0) if (self->enemy->health <= 0)
return; return;
if ( ((skill->value == 3) && (random() < 0.5)) || (range(self, self->enemy) == RANGE_MELEE) ) if ( ((skill->value == SKILL_HARDPLUS) && (random() < 0.5)) || (range(self, self->enemy) == RANGE_MELEE) )
self->monsterinfo.nextframe = FRAME_attak102; self->monsterinfo.nextframe = FRAME_attak102;
} }
@ -506,7 +506,7 @@ void soldier_attack2_refire1 (edict_t *self)
if (self->enemy->health <= 0) if (self->enemy->health <= 0)
return; return;
if ( ((skill->value == 3) && (random() < 0.5)) || (range(self, self->enemy) == RANGE_MELEE) ) if ( ((skill->value == SKILL_HARDPLUS) && (random() < 0.5)) || (range(self, self->enemy) == RANGE_MELEE) )
self->monsterinfo.nextframe = FRAME_attak204; self->monsterinfo.nextframe = FRAME_attak204;
else else
self->monsterinfo.nextframe = FRAME_attak216; self->monsterinfo.nextframe = FRAME_attak216;
@ -520,7 +520,7 @@ void soldier_attack2_refire2 (edict_t *self)
if (self->enemy->health <= 0) if (self->enemy->health <= 0)
return; return;
if ( ((skill->value == 3) && (random() < 0.5)) || (range(self, self->enemy) == RANGE_MELEE) ) if ( ((skill->value == SKILL_HARDPLUS) && (random() < 0.5)) || (range(self, self->enemy) == RANGE_MELEE) )
self->monsterinfo.nextframe = FRAME_attak204; self->monsterinfo.nextframe = FRAME_attak204;
} }
@ -627,7 +627,7 @@ void soldier_attack6_refire (edict_t *self)
if (range(self, self->enemy) < RANGE_MID) if (range(self, self->enemy) < RANGE_MID)
return; return;
if (skill->value == 3) if (skill->value == SKILL_HARDPLUS)
self->monsterinfo.nextframe = FRAME_runs03; self->monsterinfo.nextframe = FRAME_runs03;
} }
@ -677,7 +677,7 @@ void soldier_sight(edict_t *self, edict_t *other)
else else
gi.sound (self, CHAN_VOICE, sound_sight2, 1, ATTN_NORM, 0); 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) if (random() > 0.5)
self->monsterinfo.currentmove = &soldier_move_attack6; self->monsterinfo.currentmove = &soldier_move_attack6;
@ -717,7 +717,7 @@ void soldier_dodge (edict_t *self, edict_t *attacker, float eta)
if (!self->enemy) if (!self->enemy)
self->enemy = attacker; self->enemy = attacker;
if (skill->value == 0) if (skill->value == SKILL_EASY)
{ {
self->monsterinfo.currentmove = &soldier_move_duck; self->monsterinfo.currentmove = &soldier_move_duck;
return; return;
@ -726,7 +726,7 @@ void soldier_dodge (edict_t *self, edict_t *attacker, float eta)
self->monsterinfo.pausetime = level.time + eta + 0.3; self->monsterinfo.pausetime = level.time + eta + 0.3;
r = random(); r = random();
if (skill->value == 1) if (skill->value == SKILL_MEDIUM)
{ {
if (r > 0.33) if (r > 0.33)
self->monsterinfo.currentmove = &soldier_move_duck; self->monsterinfo.currentmove = &soldier_move_duck;
@ -735,7 +735,7 @@ void soldier_dodge (edict_t *self, edict_t *attacker, float eta)
return; return;
} }
if (skill->value >= 2) if (skill->value >= SKILL_HARD)
{ {
if (r > 0.66) if (r > 0.66)
self->monsterinfo.currentmove = &soldier_move_duck; self->monsterinfo.currentmove = &soldier_move_duck;

View File

@ -445,13 +445,13 @@ void supertank_pain (edict_t *self, edict_t *other, float kick, int damage)
return; return;
// Don't go into pain if he's firing his rockets // 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) ) if ( (self->s.frame >= FRAME_attak2_1) && (self->s.frame <= FRAME_attak2_14) )
return; return;
self->pain_debounce_time = level.time + 3; self->pain_debounce_time = level.time + 3;
if (skill->value == 3) if (skill->value == SKILL_HARDPLUS)
return; // no pain anims in nightmare return; // no pain anims in nightmare
if (damage <= 10) if (damage <= 10)

View File

@ -282,7 +282,7 @@ void tank_pain (edict_t *self, edict_t *other, float kick, int damage)
return; return;
// If hard or nightmare, don't go into pain while attacking // 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) ) if ( (self->s.frame >= FRAME_attak301) && (self->s.frame <= FRAME_attak330) )
return; return;
@ -293,7 +293,7 @@ void tank_pain (edict_t *self, edict_t *other, float kick, int damage)
self->pain_debounce_time = level.time + 3; self->pain_debounce_time = level.time + 3;
gi.sound (self, CHAN_VOICE, sound_pain, 1, ATTN_NORM, 0); 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 return; // no pain anims in nightmare
if (damage <= 30) if (damage <= 30)
@ -453,7 +453,7 @@ mmove_t tank_move_attack_post_blast = {FRAME_attak117, FRAME_attak122, tank_fram
void tank_reattack_blaster (edict_t *self) void tank_reattack_blaster (edict_t *self)
{ {
if (skill->value >= 2) if (skill->value >= SKILL_HARD)
if (visible (self, self->enemy)) if (visible (self, self->enemy))
if (self->enemy->health > 0) if (self->enemy->health > 0)
if (random() <= 0.6) if (random() <= 0.6)
@ -623,7 +623,7 @@ mmove_t tank_move_attack_chain = {FRAME_attak401, FRAME_attak429, tank_frames_at
void tank_refire_rocket (edict_t *self) void tank_refire_rocket (edict_t *self)
{ {
// Only on hard or nightmare // Only on hard or nightmare
if ( skill->value >= 2 ) if ( skill->value >= SKILL_HARD )
if (self->enemy->health > 0) if (self->enemy->health > 0)
if (visible(self, self->enemy) ) if (visible(self, self->enemy) )
if (random() <= 0.4) if (random() <= 0.4)

View File

@ -288,11 +288,11 @@ void HelpComputer (edict_t *ent)
char string[1024]; char string[1024];
char *sk; char *sk;
if (skill->value == 0) if (skill->value == SKILL_EASY)
sk = "easy"; sk = "easy";
else if (skill->value == 1) else if (skill->value == SKILL_MEDIUM)
sk = "medium"; sk = "medium";
else if (skill->value == 2) else if (skill->value == SKILL_HARD)
sk = "hard"; sk = "hard";
else else
sk = "hard+"; sk = "hard+";

View File

@ -792,7 +792,7 @@ void SP_monster_autocannon(edict_t *self)
self->style = 1; self->style = 1;
// if we're on hard or nightmare, use fast lasers // if we're on hard or nightmare, use fast lasers
if (skill->value >= 2 && self->style == 4) if (skill->value >= SKILL_HARD && self->style == 4)
self->style = 3; self->style = 3;
// precache some sounds and models // precache some sounds and models