diff options
Diffstat (limited to 'src/baseq2/m_brain.c')
-rw-r--r-- | src/baseq2/m_brain.c | 235 |
1 files changed, 104 insertions, 131 deletions
diff --git a/src/baseq2/m_brain.c b/src/baseq2/m_brain.c index c8f6fff..50c555f 100644 --- a/src/baseq2/m_brain.c +++ b/src/baseq2/m_brain.c @@ -8,7 +8,7 @@ of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. @@ -45,27 +45,26 @@ static int sound_melee2; static int sound_melee3; -void brain_sight (edict_t *self, edict_t *other) +void brain_sight(edict_t *self, edict_t *other) { - gi.sound (self, CHAN_VOICE, sound_sight, 1, ATTN_NORM, 0); + gi.sound(self, CHAN_VOICE, sound_sight, 1, ATTN_NORM, 0); } -void brain_search (edict_t *self) +void brain_search(edict_t *self) { - gi.sound (self, CHAN_VOICE, sound_search, 1, ATTN_NORM, 0); + gi.sound(self, CHAN_VOICE, sound_search, 1, ATTN_NORM, 0); } -void brain_run (edict_t *self); -void brain_dead (edict_t *self); +void brain_run(edict_t *self); +void brain_dead(edict_t *self); // // STAND // -mframe_t brain_frames_stand [] = -{ +mframe_t brain_frames_stand [] = { { ai_stand, 0, NULL }, { ai_stand, 0, NULL }, { ai_stand, 0, NULL }, @@ -101,7 +100,7 @@ mframe_t brain_frames_stand [] = }; mmove_t brain_move_stand = {FRAME_stand01, FRAME_stand30, brain_frames_stand, NULL}; -void brain_stand (edict_t *self) +void brain_stand(edict_t *self) { self->monsterinfo.currentmove = &brain_move_stand; } @@ -111,8 +110,7 @@ void brain_stand (edict_t *self) // IDLE // -mframe_t brain_frames_idle [] = -{ +mframe_t brain_frames_idle [] = { { ai_stand, 0, NULL }, { ai_stand, 0, NULL }, { ai_stand, 0, NULL }, @@ -148,9 +146,9 @@ mframe_t brain_frames_idle [] = }; mmove_t brain_move_idle = {FRAME_stand31, FRAME_stand60, brain_frames_idle, brain_stand}; -void brain_idle (edict_t *self) +void brain_idle(edict_t *self) { - gi.sound (self, CHAN_AUTO, sound_idle3, 1, ATTN_IDLE, 0); + gi.sound(self, CHAN_AUTO, sound_idle3, 1, ATTN_IDLE, 0); self->monsterinfo.currentmove = &brain_move_idle; } @@ -158,8 +156,7 @@ void brain_idle (edict_t *self) // // WALK // -mframe_t brain_frames_walk1 [] = -{ +mframe_t brain_frames_walk1 [] = { { ai_walk, 7, NULL }, { ai_walk, 2, NULL }, { ai_walk, 3, NULL }, @@ -176,14 +173,13 @@ mmove_t brain_move_walk1 = {FRAME_walk101, FRAME_walk111, brain_frames_walk1, NU // walk2 is FUBAR, do not use #if 0 -void brain_walk2_cycle (edict_t *self) +void brain_walk2_cycle(edict_t *self) { if (random() > 0.1) self->monsterinfo.nextframe = FRAME_walk220; } -mframe_t brain_frames_walk2 [] = -{ +mframe_t brain_frames_walk2 [] = { { ai_walk, 3, NULL }, { ai_walk, -2, NULL }, { ai_walk, -4, NULL }, @@ -217,24 +213,26 @@ mframe_t brain_frames_walk2 [] = { ai_walk, 2, NULL }, { ai_walk, 0, NULL }, - { ai_walk, 4, brain_walk2_cycle, - { ai_walk, -1, NULL }, - { ai_walk, -1, NULL }, - { ai_walk, -8, NULL }, - { ai_walk, 0, NULL }, - { ai_walk, 1, NULL }, - { ai_walk, 5, NULL }, - { ai_walk, 2, NULL }, - { ai_walk, -1, NULL }, - { ai_walk, -5, NULL -}; -mmove_t brain_move_walk2 = {FRAME_walk201, FRAME_walk240, brain_frames_walk2, NULL}; + { + ai_walk, 4, brain_walk2_cycle, + { ai_walk, -1, NULL }, + { ai_walk, -1, NULL }, + { ai_walk, -8, NULL }, + { ai_walk, 0, NULL }, + { ai_walk, 1, NULL }, + { ai_walk, 5, NULL }, + { ai_walk, 2, NULL }, + { ai_walk, -1, NULL }, + { + ai_walk, -5, NULL + }; + mmove_t brain_move_walk2 = {FRAME_walk201, FRAME_walk240, brain_frames_walk2, NULL}; + } #endif -void brain_walk (edict_t *self) -{ +void brain_walk(edict_t *self) { // if (random() <= 0.5) - self->monsterinfo.currentmove = &brain_move_walk1; + self->monsterinfo.currentmove = &brain_move_walk1; // else // self->monsterinfo.currentmove = &brain_move_walk2; } @@ -310,30 +308,27 @@ mmove_t brain_move_pain1 = {FRAME_pain101, FRAME_pain121, brain_frames_pain1, br // DUCK // -void brain_duck_down (edict_t *self) -{ +void brain_duck_down(edict_t *self) { if (self->monsterinfo.aiflags & AI_DUCKED) return; self->monsterinfo.aiflags |= AI_DUCKED; self->maxs[2] -= 32; self->takedamage = DAMAGE_YES; - gi.linkentity (self); + gi.linkentity(self); } -void brain_duck_hold (edict_t *self) -{ +void brain_duck_hold(edict_t *self) { if (level.time >= self->monsterinfo.pausetime) self->monsterinfo.aiflags &= ~AI_HOLD_FRAME; else self->monsterinfo.aiflags |= AI_HOLD_FRAME; } -void brain_duck_up (edict_t *self) -{ +void brain_duck_up(edict_t *self) { self->monsterinfo.aiflags &= ~AI_DUCKED; self->maxs[2] += 32; self->takedamage = DAMAGE_AIM; - gi.linkentity (self); + gi.linkentity(self); } mframe_t brain_frames_duck [] = @@ -349,8 +344,7 @@ mframe_t brain_frames_duck [] = }; mmove_t brain_move_duck = {FRAME_duck01, FRAME_duck08, brain_frames_duck, brain_run}; -void brain_dodge (edict_t *self, edict_t *attacker, float eta) -{ +void brain_dodge(edict_t *self, edict_t *attacker, float eta) { if (random() > 0.25) return; @@ -400,32 +394,28 @@ mmove_t brain_move_death1 = {FRAME_death101, FRAME_death118, brain_frames_death1 // MELEE // -void brain_swing_right (edict_t *self) -{ - gi.sound (self, CHAN_BODY, sound_melee1, 1, ATTN_NORM, 0); +void brain_swing_right(edict_t *self) { + gi.sound(self, CHAN_BODY, sound_melee1, 1, ATTN_NORM, 0); } -void brain_hit_right (edict_t *self) -{ +void brain_hit_right(edict_t *self) { vec3_t aim; - VectorSet (aim, MELEE_DISTANCE, self->maxs[0], 8); - if (fire_hit (self, aim, (15 + (rand() %5)), 40)) - gi.sound (self, CHAN_WEAPON, sound_melee3, 1, ATTN_NORM, 0); + VectorSet(aim, MELEE_DISTANCE, self->maxs[0], 8); + if (fire_hit(self, aim, (15 + (rand() % 5)), 40)) + gi.sound(self, CHAN_WEAPON, sound_melee3, 1, ATTN_NORM, 0); } -void brain_swing_left (edict_t *self) -{ - gi.sound (self, CHAN_BODY, sound_melee2, 1, ATTN_NORM, 0); +void brain_swing_left(edict_t *self) { + gi.sound(self, CHAN_BODY, sound_melee2, 1, ATTN_NORM, 0); } -void brain_hit_left (edict_t *self) -{ +void brain_hit_left(edict_t *self) { vec3_t aim; - VectorSet (aim, MELEE_DISTANCE, self->mins[0], 8); - if (fire_hit (self, aim, (15 + (rand() %5)), 40)) - gi.sound (self, CHAN_WEAPON, sound_melee3, 1, ATTN_NORM, 0); + VectorSet(aim, MELEE_DISTANCE, self->mins[0], 8); + if (fire_hit(self, aim, (15 + (rand() % 5)), 40)) + gi.sound(self, CHAN_WEAPON, sound_melee3, 1, ATTN_NORM, 0); } mframe_t brain_frames_attack1 [] = @@ -447,32 +437,28 @@ mframe_t brain_frames_attack1 [] = { ai_charge, -1, NULL }, { ai_charge, -3, NULL }, { ai_charge, 2, NULL }, - { ai_charge, -11,NULL } + { ai_charge, -11, NULL } }; mmove_t brain_move_attack1 = {FRAME_attak101, FRAME_attak118, brain_frames_attack1, brain_run}; -void brain_chest_open (edict_t *self) -{ +void brain_chest_open(edict_t *self) { self->spawnflags &= ~65536; self->monsterinfo.power_armor_type = POWER_ARMOR_NONE; - gi.sound (self, CHAN_BODY, sound_chest_open, 1, ATTN_NORM, 0); + gi.sound(self, CHAN_BODY, sound_chest_open, 1, ATTN_NORM, 0); } -void brain_tentacle_attack (edict_t *self) -{ +void brain_tentacle_attack(edict_t *self) { vec3_t aim; - VectorSet (aim, MELEE_DISTANCE, 0, 8); - if (fire_hit (self, aim, (10 + (rand() %5)), -600) && skill->value > 0) + VectorSet(aim, MELEE_DISTANCE, 0, 8); + if (fire_hit(self, aim, (10 + (rand() % 5)), -600) && skill->value > 0) 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); } -void brain_chest_closed (edict_t *self) -{ +void brain_chest_closed(edict_t *self) { self->monsterinfo.power_armor_type = POWER_ARMOR_SCREEN; - if (self->spawnflags & 65536) - { + if (self->spawnflags & 65536) { self->spawnflags &= ~65536; self->monsterinfo.currentmove = &brain_move_attack1; } @@ -500,8 +486,7 @@ mframe_t brain_frames_attack2 [] = }; mmove_t brain_move_attack2 = {FRAME_attak201, FRAME_attak217, brain_frames_attack2, brain_run}; -void brain_melee(edict_t *self) -{ +void brain_melee(edict_t *self) { if (random() <= 0.5) self->monsterinfo.currentmove = &brain_move_attack1; else @@ -529,8 +514,7 @@ mframe_t brain_frames_run [] = }; mmove_t brain_move_run = {FRAME_walk101, FRAME_walk111, brain_frames_run, NULL}; -void brain_run (edict_t *self) -{ +void brain_run(edict_t *self) { self->monsterinfo.power_armor_type = POWER_ARMOR_SCREEN; if (self->monsterinfo.aiflags & AI_STAND_GROUND) self->monsterinfo.currentmove = &brain_move_stand; @@ -539,8 +523,7 @@ void brain_run (edict_t *self) } -void brain_pain (edict_t *self, edict_t *other, float kick, int damage) -{ +void brain_pain(edict_t *self, edict_t *other, float kick, int damage) { float r; if (self->health < (self->max_health / 2)) @@ -554,51 +537,43 @@ void brain_pain (edict_t *self, edict_t *other, float kick, int damage) return; // no pain anims in nightmare r = random(); - if (r < 0.33) - { - gi.sound (self, CHAN_VOICE, sound_pain1, 1, ATTN_NORM, 0); + if (r < 0.33) { + gi.sound(self, CHAN_VOICE, sound_pain1, 1, ATTN_NORM, 0); self->monsterinfo.currentmove = &brain_move_pain1; - } - else if (r < 0.66) - { - gi.sound (self, CHAN_VOICE, sound_pain2, 1, ATTN_NORM, 0); + } else if (r < 0.66) { + gi.sound(self, CHAN_VOICE, sound_pain2, 1, ATTN_NORM, 0); self->monsterinfo.currentmove = &brain_move_pain2; - } - else - { - gi.sound (self, CHAN_VOICE, sound_pain1, 1, ATTN_NORM, 0); + } else { + gi.sound(self, CHAN_VOICE, sound_pain1, 1, ATTN_NORM, 0); self->monsterinfo.currentmove = &brain_move_pain3; } } -void brain_dead (edict_t *self) -{ - VectorSet (self->mins, -16, -16, -24); - VectorSet (self->maxs, 16, 16, -8); +void brain_dead(edict_t *self) { + VectorSet(self->mins, -16, -16, -24); + VectorSet(self->maxs, 16, 16, -8); self->movetype = MOVETYPE_TOSS; self->svflags |= SVF_DEADMONSTER; self->nextthink = 0; - gi.linkentity (self); + gi.linkentity(self); } -void brain_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point) -{ +void brain_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point) { int n; self->s.effects = 0; self->monsterinfo.power_armor_type = POWER_ARMOR_NONE; // check for gib - if (self->health <= self->gib_health) - { - gi.sound (self, CHAN_VOICE, gi.soundindex ("misc/udeath.wav"), 1, ATTN_NORM, 0); - for (n= 0; n < 2; n++) - ThrowGib (self, "models/objects/gibs/bone/tris.md2", damage, GIB_ORGANIC); - for (n= 0; n < 4; n++) - ThrowGib (self, "models/objects/gibs/sm_meat/tris.md2", damage, GIB_ORGANIC); - ThrowHead (self, "models/objects/gibs/head2/tris.md2", damage, GIB_ORGANIC); + if (self->health <= self->gib_health) { + gi.sound(self, CHAN_VOICE, gi.soundindex("misc/udeath.wav"), 1, ATTN_NORM, 0); + for (n = 0; n < 2; n++) + ThrowGib(self, "models/objects/gibs/bone/tris.md2", damage, GIB_ORGANIC); + for (n = 0; n < 4; n++) + ThrowGib(self, "models/objects/gibs/sm_meat/tris.md2", damage, GIB_ORGANIC); + ThrowHead(self, "models/objects/gibs/head2/tris.md2", damage, GIB_ORGANIC); self->deadflag = DEAD_DEAD; return; } @@ -607,7 +582,7 @@ void brain_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage return; // regular death - gi.sound (self, CHAN_VOICE, sound_death, 1, ATTN_NORM, 0); + gi.sound(self, CHAN_VOICE, sound_death, 1, ATTN_NORM, 0); self->deadflag = DEAD_DEAD; self->takedamage = DAMAGE_YES; if (random() <= 0.5) @@ -618,34 +593,32 @@ void brain_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage /*QUAKED monster_brain (1 .5 0) (-16 -16 -24) (16 16 32) Ambush Trigger_Spawn Sight */ -void SP_monster_brain (edict_t *self) -{ - if (deathmatch->value) - { - G_FreeEdict (self); +void SP_monster_brain(edict_t *self) { + if (deathmatch->value) { + G_FreeEdict(self); return; } - sound_chest_open = gi.soundindex ("brain/brnatck1.wav"); - sound_tentacles_extend = gi.soundindex ("brain/brnatck2.wav"); - sound_tentacles_retract = gi.soundindex ("brain/brnatck3.wav"); - sound_death = gi.soundindex ("brain/brndeth1.wav"); - sound_idle1 = gi.soundindex ("brain/brnidle1.wav"); - sound_idle2 = gi.soundindex ("brain/brnidle2.wav"); - sound_idle3 = gi.soundindex ("brain/brnlens1.wav"); - sound_pain1 = gi.soundindex ("brain/brnpain1.wav"); - sound_pain2 = gi.soundindex ("brain/brnpain2.wav"); - sound_sight = gi.soundindex ("brain/brnsght1.wav"); - sound_search = gi.soundindex ("brain/brnsrch1.wav"); - sound_melee1 = gi.soundindex ("brain/melee1.wav"); - sound_melee2 = gi.soundindex ("brain/melee2.wav"); - sound_melee3 = gi.soundindex ("brain/melee3.wav"); + sound_chest_open = gi.soundindex("brain/brnatck1.wav"); + sound_tentacles_extend = gi.soundindex("brain/brnatck2.wav"); + sound_tentacles_retract = gi.soundindex("brain/brnatck3.wav"); + sound_death = gi.soundindex("brain/brndeth1.wav"); + sound_idle1 = gi.soundindex("brain/brnidle1.wav"); + sound_idle2 = gi.soundindex("brain/brnidle2.wav"); + sound_idle3 = gi.soundindex("brain/brnlens1.wav"); + sound_pain1 = gi.soundindex("brain/brnpain1.wav"); + sound_pain2 = gi.soundindex("brain/brnpain2.wav"); + sound_sight = gi.soundindex("brain/brnsght1.wav"); + sound_search = gi.soundindex("brain/brnsrch1.wav"); + sound_melee1 = gi.soundindex("brain/melee1.wav"); + sound_melee2 = gi.soundindex("brain/melee2.wav"); + sound_melee3 = gi.soundindex("brain/melee3.wav"); self->movetype = MOVETYPE_STEP; self->solid = SOLID_BBOX; - self->s.modelindex = gi.modelindex ("models/monsters/brain/tris.md2"); - VectorSet (self->mins, -16, -16, -24); - VectorSet (self->maxs, 16, 16, 32); + self->s.modelindex = gi.modelindex("models/monsters/brain/tris.md2"); + VectorSet(self->mins, -16, -16, -24); + VectorSet(self->maxs, 16, 16, 32); self->health = 300; self->gib_health = -150; @@ -667,10 +640,10 @@ void SP_monster_brain (edict_t *self) self->monsterinfo.power_armor_type = POWER_ARMOR_SCREEN; self->monsterinfo.power_armor_power = 100; - gi.linkentity (self); + gi.linkentity(self); - self->monsterinfo.currentmove = &brain_move_stand; + self->monsterinfo.currentmove = &brain_move_stand; self->monsterinfo.scale = MODEL_SCALE; - walkmonster_start (self); + walkmonster_start(self); } |