diff --git a/src/monster/chick/chick.c b/src/monster/chick/chick.c index 04a7d03..2273b5c 100644 --- a/src/monster/chick/chick.c +++ b/src/monster/chick/chick.c @@ -1,92 +1,115 @@ -/* -============================================================================== - -chick - -============================================================================== -*/ +/* ======================================================================= + * + * Iron Maiden. + * + * ======================================================================= + */ #include "../../header/local.h" #include "chick.h" -qboolean visible (edict_t *self, edict_t *other); +qboolean visible(edict_t *self, edict_t *other); -void chick_stand (edict_t *self); -void chick_run (edict_t *self); +void chick_stand(edict_t *self); +void chick_run(edict_t *self); void chick_reslash(edict_t *self); void chick_rerocket(edict_t *self); void chick_attack1(edict_t *self); -static int sound_missile_prelaunch; -static int sound_missile_launch; -static int sound_melee_swing; -static int sound_melee_hit; -static int sound_missile_reload; -static int sound_death1; -static int sound_death2; -static int sound_fall_down; -static int sound_idle1; -static int sound_idle2; -static int sound_pain1; -static int sound_pain2; -static int sound_pain3; -static int sound_sight; -static int sound_search; +static int sound_missile_prelaunch; +static int sound_missile_launch; +static int sound_melee_swing; +static int sound_melee_hit; +static int sound_missile_reload; +static int sound_death1; +static int sound_death2; +static int sound_fall_down; +static int sound_idle1; +static int sound_idle2; +static int sound_pain1; +static int sound_pain2; +static int sound_pain3; +static int sound_sight; +static int sound_search; - -void ChickMoan (edict_t *self) -{ - if (random() < 0.5) - gi.sound (self, CHAN_VOICE, sound_idle1, 1, ATTN_IDLE, 0); - else - gi.sound (self, CHAN_VOICE, sound_idle2, 1, ATTN_IDLE, 0); -} - -mframe_t chick_frames_fidget [] = -{ - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, ChickMoan}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL}, - {ai_stand, 0, NULL} -}; -mmove_t chick_move_fidget = {FRAME_stand201, FRAME_stand230, chick_frames_fidget, chick_stand}; - -void chick_fidget (edict_t *self) -{ - if (self->monsterinfo.aiflags & AI_STAND_GROUND) +void +ChickMoan(edict_t *self) +{ + if (!self) + { return; - if (random() <= 0.3) - self->monsterinfo.currentmove = &chick_move_fidget; + } + + if (random() < 0.5) + { + gi.sound(self, CHAN_VOICE, sound_idle1, 1, ATTN_IDLE, 0); + } + else + { + gi.sound(self, CHAN_VOICE, sound_idle2, 1, ATTN_IDLE, 0); + } } -mframe_t chick_frames_stand [] = -{ +mframe_t chick_frames_fidget[] = { + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, ChickMoan}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL}, + {ai_stand, 0, NULL} +}; + +mmove_t chick_move_fidget = { + FRAME_stand201, + FRAME_stand230, + chick_frames_fidget, + chick_stand +}; + +void +chick_fidget(edict_t *self) +{ + if (!self) + { + return; + } + + if (self->monsterinfo.aiflags & AI_STAND_GROUND) + { + return; + } + + if (random() <= 0.3) + { + self->monsterinfo.currentmove = &chick_move_fidget; + } +} + +mframe_t chick_frames_stand[] = { {ai_stand, 0, NULL}, {ai_stand, 0, NULL}, {ai_stand, 0, NULL}, @@ -117,78 +140,113 @@ mframe_t chick_frames_stand [] = {ai_stand, 0, NULL}, {ai_stand, 0, NULL}, {ai_stand, 0, chick_fidget}, - }; -mmove_t chick_move_stand = {FRAME_stand101, FRAME_stand130, chick_frames_stand, NULL}; -void chick_stand (edict_t *self) -{ +mmove_t chick_move_stand = { + FRAME_stand101, + FRAME_stand130, + chick_frames_stand, + NULL +}; + +void +chick_stand(edict_t *self) +{ + if (!self) + { + return; + } + self->monsterinfo.currentmove = &chick_move_stand; } -mframe_t chick_frames_start_run [] = -{ - {ai_run, 1, NULL}, - {ai_run, 0, NULL}, - {ai_run, 0, NULL}, - {ai_run, -1, NULL}, - {ai_run, -1, NULL}, - {ai_run, 0, NULL}, - {ai_run, 1, NULL}, - {ai_run, 3, NULL}, - {ai_run, 6, NULL}, - {ai_run, 3, NULL} +mframe_t chick_frames_start_run[] = { + {ai_run, 1, NULL}, + {ai_run, 0, NULL}, + {ai_run, 0, NULL}, + {ai_run, -1, NULL}, + {ai_run, -1, NULL}, + {ai_run, 0, NULL}, + {ai_run, 1, NULL}, + {ai_run, 3, NULL}, + {ai_run, 6, NULL}, + {ai_run, 3, NULL} }; -mmove_t chick_move_start_run = {FRAME_walk01, FRAME_walk10, chick_frames_start_run, chick_run}; -mframe_t chick_frames_run [] = -{ - {ai_run, 6, NULL}, - {ai_run, 8, NULL}, +mmove_t chick_move_start_run = { + FRAME_walk01, + FRAME_walk10, + chick_frames_start_run, + chick_run +}; + +mframe_t chick_frames_run[] = { + {ai_run, 6, NULL}, + {ai_run, 8, NULL}, {ai_run, 13, NULL}, - {ai_run, 5, NULL}, - {ai_run, 7, NULL}, - {ai_run, 4, NULL}, + {ai_run, 5, NULL}, + {ai_run, 7, NULL}, + {ai_run, 4, NULL}, {ai_run, 11, NULL}, - {ai_run, 5, NULL}, - {ai_run, 9, NULL}, - {ai_run, 7, NULL} - + {ai_run, 5, NULL}, + {ai_run, 9, NULL}, + {ai_run, 7, NULL} }; -mmove_t chick_move_run = {FRAME_walk11, FRAME_walk20, chick_frames_run, NULL}; +mmove_t chick_move_run = { + FRAME_walk11, + FRAME_walk20, + chick_frames_run, + NULL +}; -mframe_t chick_frames_walk [] = -{ - {ai_walk, 6, NULL}, - {ai_walk, 8, NULL}, +mframe_t chick_frames_walk[] = { + {ai_walk, 6, NULL}, + {ai_walk, 8, NULL}, {ai_walk, 13, NULL}, - {ai_walk, 5, NULL}, - {ai_walk, 7, NULL}, - {ai_walk, 4, NULL}, + {ai_walk, 5, NULL}, + {ai_walk, 7, NULL}, + {ai_walk, 4, NULL}, {ai_walk, 11, NULL}, - {ai_walk, 5, NULL}, - {ai_walk, 9, NULL}, - {ai_walk, 7, NULL} + {ai_walk, 5, NULL}, + {ai_walk, 9, NULL}, + {ai_walk, 7, NULL} }; -mmove_t chick_move_walk = {FRAME_walk11, FRAME_walk20, chick_frames_walk, NULL}; +mmove_t chick_move_walk = { + FRAME_walk11, + FRAME_walk20, + chick_frames_walk, + NULL +}; -void chick_walk (edict_t *self) -{ +void +chick_walk(edict_t *self) +{ + if (!self) + { + return; + } + self->monsterinfo.currentmove = &chick_move_walk; } -void chick_run (edict_t *self) -{ +void +chick_run(edict_t *self) +{ + if (!self) + { + return; + } + if (self->monsterinfo.aiflags & AI_STAND_GROUND) { self->monsterinfo.currentmove = &chick_move_stand; return; } - if (self->monsterinfo.currentmove == &chick_move_walk || - self->monsterinfo.currentmove == &chick_move_start_run) + if ((self->monsterinfo.currentmove == &chick_move_walk) || + (self->monsterinfo.currentmove == &chick_move_start_run)) { self->monsterinfo.currentmove = &chick_move_run; } @@ -198,371 +256,559 @@ void chick_run (edict_t *self) } } -mframe_t chick_frames_pain1 [] = -{ +mframe_t chick_frames_pain1[] = { {ai_move, 0, NULL}, {ai_move, 0, NULL}, {ai_move, 0, NULL}, {ai_move, 0, NULL}, {ai_move, 0, NULL} }; -mmove_t chick_move_pain1 = {FRAME_pain101, FRAME_pain105, chick_frames_pain1, chick_run}; -mframe_t chick_frames_pain2 [] = -{ +mmove_t chick_move_pain1 = { + FRAME_pain101, + FRAME_pain105, + chick_frames_pain1, + chick_run +}; + +mframe_t chick_frames_pain2[] = { {ai_move, 0, NULL}, {ai_move, 0, NULL}, {ai_move, 0, NULL}, {ai_move, 0, NULL}, {ai_move, 0, NULL} }; -mmove_t chick_move_pain2 = {FRAME_pain201, FRAME_pain205, chick_frames_pain2, chick_run}; -mframe_t chick_frames_pain3 [] = -{ - {ai_move, 0, NULL}, - {ai_move, 0, NULL}, - {ai_move, -6, NULL}, - {ai_move, 3, NULL}, - {ai_move, 11, NULL}, - {ai_move, 3, NULL}, - {ai_move, 0, NULL}, - {ai_move, 0, NULL}, - {ai_move, 4, NULL}, - {ai_move, 1, NULL}, - {ai_move, 0, NULL}, - {ai_move, -3, NULL}, - {ai_move, -4, NULL}, - {ai_move, 5, NULL}, - {ai_move, 7, NULL}, - {ai_move, -2, NULL}, - {ai_move, 3, NULL}, - {ai_move, -5, NULL}, - {ai_move, -2, NULL}, - {ai_move, -8, NULL}, - {ai_move, 2, NULL} +mmove_t chick_move_pain2 = { + FRAME_pain201, + FRAME_pain205, + chick_frames_pain2, + chick_run }; -mmove_t chick_move_pain3 = {FRAME_pain301, FRAME_pain321, chick_frames_pain3, chick_run}; -void chick_pain (edict_t *self, edict_t *other, float kick, int damage) +mframe_t chick_frames_pain3[] = { + {ai_move, 0, NULL}, + {ai_move, 0, NULL}, + {ai_move, -6, NULL}, + {ai_move, 3, NULL}, + {ai_move, 11, NULL}, + {ai_move, 3, NULL}, + {ai_move, 0, NULL}, + {ai_move, 0, NULL}, + {ai_move, 4, NULL}, + {ai_move, 1, NULL}, + {ai_move, 0, NULL}, + {ai_move, -3, NULL}, + {ai_move, -4, NULL}, + {ai_move, 5, NULL}, + {ai_move, 7, NULL}, + {ai_move, -2, NULL}, + {ai_move, 3, NULL}, + {ai_move, -5, NULL}, + {ai_move, -2, NULL}, + {ai_move, -8, NULL}, + {ai_move, 2, NULL} +}; + +mmove_t chick_move_pain3 = { + FRAME_pain301, + FRAME_pain321, + chick_frames_pain3, + chick_run +}; + +void +chick_pain(edict_t *self, edict_t *other /* unused */, + float kick /* unused */, int damage) { - float r; - + float r; + + if (!self) + { + return; + } + if (self->health < (self->max_health / 2)) + { self->s.skinnum = 1; + } if (level.time < self->pain_debounce_time) + { return; + } self->pain_debounce_time = level.time + 3; r = random(); + if (r < 0.33) - gi.sound (self, CHAN_VOICE, sound_pain1, 1, ATTN_NORM, 0); + { + gi.sound(self, CHAN_VOICE, sound_pain1, 1, ATTN_NORM, 0); + } else if (r < 0.66) - gi.sound (self, CHAN_VOICE, sound_pain2, 1, ATTN_NORM, 0); + { + gi.sound(self, CHAN_VOICE, sound_pain2, 1, ATTN_NORM, 0); + } 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) - return; // no pain anims in nightmare + { + return; /* no pain anims in nightmare */ + } if (damage <= 10) + { self->monsterinfo.currentmove = &chick_move_pain1; + } else if (damage <= 25) + { self->monsterinfo.currentmove = &chick_move_pain2; + } else + { self->monsterinfo.currentmove = &chick_move_pain3; + } } -void chick_dead (edict_t *self) -{ - VectorSet (self->mins, -16, -16, 0); - VectorSet (self->maxs, 16, 16, 16); +void +chick_dead(edict_t *self) +{ + if (!self) + { + return; + } + + VectorSet(self->mins, -16, -16, 0); + VectorSet(self->maxs, 16, 16, 16); self->movetype = MOVETYPE_TOSS; self->svflags |= SVF_DEADMONSTER; self->nextthink = 0; - gi.linkentity (self); + gi.linkentity(self); } -mframe_t chick_frames_death2 [] = -{ +mframe_t chick_frames_death2[] = { {ai_move, -6, NULL}, - {ai_move, 0, NULL}, - {ai_move, -1, NULL}, + {ai_move, 0, NULL}, + {ai_move, -1, NULL}, {ai_move, -5, NULL}, {ai_move, 0, NULL}, - {ai_move, -1, NULL}, - {ai_move, -2, NULL}, - {ai_move, 1, NULL}, + {ai_move, -1, NULL}, + {ai_move, -2, NULL}, + {ai_move, 1, NULL}, {ai_move, 10, NULL}, - {ai_move, 2, NULL}, - {ai_move, 3, NULL}, - {ai_move, 1, NULL}, {ai_move, 2, NULL}, - {ai_move, 0, NULL}, - {ai_move, 3, NULL}, - {ai_move, 3, NULL}, - {ai_move, 1, NULL}, - {ai_move, -3, NULL}, + {ai_move, 3, NULL}, + {ai_move, 1, NULL}, + {ai_move, 2, NULL}, + {ai_move, 0, NULL}, + {ai_move, 3, NULL}, + {ai_move, 3, NULL}, + {ai_move, 1, NULL}, + {ai_move, -3, NULL}, {ai_move, -5, NULL}, {ai_move, 4, NULL}, {ai_move, 15, NULL}, {ai_move, 14, NULL}, {ai_move, 1, NULL} }; -mmove_t chick_move_death2 = {FRAME_death201, FRAME_death223, chick_frames_death2, chick_dead}; -mframe_t chick_frames_death1 [] = -{ - {ai_move, 0, NULL}, - {ai_move, 0, NULL}, - {ai_move, -7, NULL}, - {ai_move, 4, NULL}, - {ai_move, 11, NULL}, - {ai_move, 0, NULL}, - {ai_move, 0, NULL}, - {ai_move, 0, NULL}, - {ai_move, 0, NULL}, - {ai_move, 0, NULL}, - {ai_move, 0, NULL}, - {ai_move, 0, NULL} - +mmove_t chick_move_death2 = { + FRAME_death201, + FRAME_death223, + chick_frames_death2, + chick_dead }; -mmove_t chick_move_death1 = {FRAME_death101, FRAME_death112, chick_frames_death1, chick_dead}; -void chick_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point) +mframe_t chick_frames_death1[] = { + {ai_move, 0, NULL}, + {ai_move, 0, NULL}, + {ai_move, -7, NULL}, + {ai_move, 4, NULL}, + {ai_move, 11, NULL}, + {ai_move, 0, NULL}, + {ai_move, 0, NULL}, + {ai_move, 0, NULL}, + {ai_move, 0, NULL}, + {ai_move, 0, NULL}, + {ai_move, 0, NULL}, + {ai_move, 0, NULL} +}; + +mmove_t chick_move_death1 = { + FRAME_death101, + FRAME_death112, + chick_frames_death1, + chick_dead +}; + +void +chick_die(edict_t *self, edict_t *inflictor /* unused */, + edict_t *attacker /* unused */, int damage, + vec3_t point /*unused */) { - int n; - - // check for gib + int n; + + if (!self) + { + return; + } + + /* 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); + 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; } if (self->deadflag == DEAD_DEAD) + { return; + } - // regular death + /* regular death */ self->deadflag = DEAD_DEAD; self->takedamage = DAMAGE_YES; n = rand() % 2; + if (n == 0) { self->monsterinfo.currentmove = &chick_move_death1; - gi.sound (self, CHAN_VOICE, sound_death1, 1, ATTN_NORM, 0); + gi.sound(self, CHAN_VOICE, sound_death1, 1, ATTN_NORM, 0); } else { self->monsterinfo.currentmove = &chick_move_death2; - gi.sound (self, CHAN_VOICE, sound_death2, 1, ATTN_NORM, 0); + gi.sound(self, CHAN_VOICE, sound_death2, 1, ATTN_NORM, 0); } } - -void chick_duck_down (edict_t *self) -{ - if (self->monsterinfo.aiflags & AI_DUCKED) +void +chick_duck_down(edict_t *self) +{ + if (!self) + { return; + } + + if (self->monsterinfo.aiflags & AI_DUCKED) + { + return; + } + self->monsterinfo.aiflags |= AI_DUCKED; self->maxs[2] -= 32; self->takedamage = DAMAGE_YES; self->monsterinfo.pausetime = level.time + 1; - gi.linkentity (self); + gi.linkentity(self); } -void chick_duck_hold (edict_t *self) -{ +void +chick_duck_hold(edict_t *self) +{ + if (!self) + { + return; + } + if (level.time >= self->monsterinfo.pausetime) + { self->monsterinfo.aiflags &= ~AI_HOLD_FRAME; + } else + { self->monsterinfo.aiflags |= AI_HOLD_FRAME; + } } -void chick_duck_up (edict_t *self) -{ +void +chick_duck_up(edict_t *self) +{ + if (!self) + { + return; + } + self->monsterinfo.aiflags &= ~AI_DUCKED; self->maxs[2] += 32; self->takedamage = DAMAGE_AIM; - gi.linkentity (self); + gi.linkentity(self); } -mframe_t chick_frames_duck [] = -{ +mframe_t chick_frames_duck[] = { {ai_move, 0, chick_duck_down}, {ai_move, 1, NULL}, {ai_move, 4, chick_duck_hold}, - {ai_move, -4, NULL}, - {ai_move, -5, chick_duck_up}, + {ai_move, -4, NULL}, + {ai_move, -5, chick_duck_up}, {ai_move, 3, NULL}, - {ai_move, 1, NULL} + {ai_move, 1, NULL} }; -mmove_t chick_move_duck = {FRAME_duck01, FRAME_duck07, chick_frames_duck, chick_run}; -void chick_dodge (edict_t *self, edict_t *attacker, float eta) +mmove_t chick_move_duck = { + FRAME_duck01, + FRAME_duck07, + chick_frames_duck, + chick_run +}; + +void +chick_dodge(edict_t *self, edict_t *attacker, float eta) { - if (random() > 0.25) + if (!self || !attacker) + { return; + } + + if (random() > 0.25) + { + return; + } if (!self->enemy) + { self->enemy = attacker; + } self->monsterinfo.currentmove = &chick_move_duck; } -void ChickSlash (edict_t *self) +void +ChickSlash(edict_t *self) { - vec3_t aim; - - VectorSet (aim, MELEE_DISTANCE, self->mins[0], 10); - gi.sound (self, CHAN_WEAPON, sound_melee_swing, 1, ATTN_NORM, 0); - fire_hit (self, aim, (10 + (rand() %6)), 100); + vec3_t aim; + + if (!self) + { + return; + } + + VectorSet(aim, MELEE_DISTANCE, self->mins[0], 10); + gi.sound(self, CHAN_WEAPON, sound_melee_swing, 1, ATTN_NORM, 0); + fire_hit(self, aim, (10 + (rand() % 6)), 100); } - -void ChickRocket (edict_t *self) +void +ChickRocket(edict_t *self) { - vec3_t forward, right; - vec3_t start; - vec3_t dir; - vec3_t vec; + vec3_t forward, right; + vec3_t start; + vec3_t dir; + vec3_t vec; + + if (!self) + { + return; + } + + AngleVectors(self->s.angles, forward, right, NULL); + G_ProjectSource(self->s.origin, monster_flash_offset[MZ2_CHICK_ROCKET_1], + forward, right, start); - AngleVectors (self->s.angles, forward, right, NULL); - G_ProjectSource (self->s.origin, monster_flash_offset[MZ2_CHICK_ROCKET_1], forward, right, start); - - VectorCopy (self->enemy->s.origin, vec); + VectorCopy(self->enemy->s.origin, vec); vec[2] += self->enemy->viewheight; - VectorSubtract (vec, start, dir); - VectorNormalize (dir); + VectorSubtract(vec, start, dir); + VectorNormalize(dir); if (self->s.skinnum > 1) - monster_fire_heat (self, start, dir, 50, 500, MZ2_CHICK_ROCKET_1); + { + monster_fire_heat(self, start, dir, 50, 500, MZ2_CHICK_ROCKET_1); + } else - monster_fire_rocket (self, start, dir, 50, 500, MZ2_CHICK_ROCKET_1); - -} - -void Chick_PreAttack1 (edict_t *self) -{ - gi.sound (self, CHAN_VOICE, sound_missile_prelaunch, 1, ATTN_NORM, 0); + { + monster_fire_rocket(self, start, dir, 50, 500, MZ2_CHICK_ROCKET_1); + } } -void ChickReload (edict_t *self) -{ - gi.sound (self, CHAN_VOICE, sound_missile_reload, 1, ATTN_NORM, 0); +void +Chick_PreAttack1(edict_t *self) +{ + if (!self) + { + return; + } + + gi.sound(self, CHAN_VOICE, sound_missile_prelaunch, 1, ATTN_NORM, 0); } +void +ChickReload(edict_t *self) +{ + if (!self) + { + return; + } + + gi.sound(self, CHAN_VOICE, sound_missile_reload, 1, ATTN_NORM, 0); +} -mframe_t chick_frames_start_attack1 [] = -{ - {ai_charge, 0, Chick_PreAttack1}, - {ai_charge, 0, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, 4, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, -3, NULL}, - {ai_charge, 3, NULL}, - {ai_charge, 5, NULL}, - {ai_charge, 7, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, 0, chick_attack1} +mframe_t chick_frames_start_attack1[] = { + {ai_charge, 0, Chick_PreAttack1}, + {ai_charge, 0, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, 4, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, -3, NULL}, + {ai_charge, 3, NULL}, + {ai_charge, 5, NULL}, + {ai_charge, 7, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, 0, chick_attack1} }; -mmove_t chick_move_start_attack1 = {FRAME_attak101, FRAME_attak113, chick_frames_start_attack1, NULL}; - - -mframe_t chick_frames_attack1 [] = -{ - {ai_charge, 19, ChickRocket}, - {ai_charge, -6, NULL}, - {ai_charge, -5, NULL}, - {ai_charge, -2, NULL}, - {ai_charge, -7, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, 1, NULL}, - {ai_charge, 10, ChickReload}, - {ai_charge, 4, NULL}, - {ai_charge, 5, NULL}, - {ai_charge, 6, NULL}, - {ai_charge, 6, NULL}, - {ai_charge, 4, NULL}, - {ai_charge, 3, chick_rerocket} +mmove_t chick_move_start_attack1 = { + FRAME_attak101, + FRAME_attak113, + chick_frames_start_attack1, + NULL }; -mmove_t chick_move_attack1 = {FRAME_attak114, FRAME_attak127, chick_frames_attack1, NULL}; -mframe_t chick_frames_end_attack1 [] = -{ - {ai_charge, -3, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, -6, NULL}, - {ai_charge, -4, NULL}, - {ai_charge, -2, NULL} +mframe_t chick_frames_attack1[] = { + {ai_charge, 19, ChickRocket}, + {ai_charge, -6, NULL}, + {ai_charge, -5, NULL}, + {ai_charge, -2, NULL}, + {ai_charge, -7, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, 1, NULL}, + {ai_charge, 10, ChickReload}, + {ai_charge, 4, NULL}, + {ai_charge, 5, NULL}, + {ai_charge, 6, NULL}, + {ai_charge, 6, NULL}, + {ai_charge, 4, NULL}, + {ai_charge, 3, chick_rerocket} }; -mmove_t chick_move_end_attack1 = {FRAME_attak128, FRAME_attak132, chick_frames_end_attack1, chick_run}; -void chick_rerocket(edict_t *self) -{ +mmove_t chick_move_attack1 = { + FRAME_attak114, + FRAME_attak127, + chick_frames_attack1, + NULL +}; + +mframe_t chick_frames_end_attack1[] = { + {ai_charge, -3, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, -6, NULL}, + {ai_charge, -4, NULL}, + {ai_charge, -2, NULL} +}; + +mmove_t chick_move_end_attack1 = { + FRAME_attak128, + FRAME_attak132, + chick_frames_end_attack1, + chick_run +}; + +void +chick_rerocket(edict_t *self) +{ + if (!self) + { + return; + } + if (self->enemy->health > 0) { - if (range (self, self->enemy) > RANGE_MELEE) - if ( visible (self, self->enemy) ) + if (range(self, self->enemy) > RANGE_MELEE) + { + if (visible(self, self->enemy)) + { if (random() <= 0.6) { self->monsterinfo.currentmove = &chick_move_attack1; return; } - } + } + } + } + self->monsterinfo.currentmove = &chick_move_end_attack1; } -void chick_attack1(edict_t *self) -{ +void +chick_attack1(edict_t *self) +{ + if (!self) + { + return; + } + self->monsterinfo.currentmove = &chick_move_attack1; } -mframe_t chick_frames_slash [] = -{ - {ai_charge, 1, NULL}, - {ai_charge, 7, ChickSlash}, - {ai_charge, -7, NULL}, - {ai_charge, 1, NULL}, - {ai_charge, -1, NULL}, - {ai_charge, 1, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, 1, NULL}, - {ai_charge, -2, chick_reslash} +mframe_t chick_frames_slash[] = { + {ai_charge, 1, NULL}, + {ai_charge, 7, ChickSlash}, + {ai_charge, -7, NULL}, + {ai_charge, 1, NULL}, + {ai_charge, -1, NULL}, + {ai_charge, 1, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, 1, NULL}, + {ai_charge, -2, chick_reslash} }; -mmove_t chick_move_slash = {FRAME_attak204, FRAME_attak212, chick_frames_slash, NULL}; -mframe_t chick_frames_end_slash [] = -{ - {ai_charge, -6, NULL}, - {ai_charge, -1, NULL}, - {ai_charge, -6, NULL}, - {ai_charge, 0, NULL} +mmove_t chick_move_slash = { + FRAME_attak204, + FRAME_attak212, + chick_frames_slash, + NULL }; -mmove_t chick_move_end_slash = {FRAME_attak213, FRAME_attak216, chick_frames_end_slash, chick_run}; +mframe_t chick_frames_end_slash[] = { + {ai_charge, -6, NULL}, + {ai_charge, -1, NULL}, + {ai_charge, -6, NULL}, + {ai_charge, 0, NULL} +}; -void chick_reslash(edict_t *self) -{ +mmove_t chick_move_end_slash = { + FRAME_attak213, + FRAME_attak216, + chick_frames_end_slash, + chick_run +}; + +void +chick_reslash(edict_t *self) +{ + if (!self) + { + return; + } + if (self->enemy->health > 0) { - if (range (self, self->enemy) == RANGE_MELEE) + if (range(self, self->enemy) == RANGE_MELEE) { if (random() <= 0.9) - { + { self->monsterinfo.currentmove = &chick_move_slash; return; } @@ -573,72 +819,100 @@ void chick_reslash(edict_t *self) } } } + self->monsterinfo.currentmove = &chick_move_end_slash; } -void chick_slash(edict_t *self) +void +chick_slash(edict_t *self) { self->monsterinfo.currentmove = &chick_move_slash; } - -mframe_t chick_frames_start_slash [] = -{ - {ai_charge, 1, NULL}, - {ai_charge, 8, NULL}, - {ai_charge, 3, NULL} +mframe_t chick_frames_start_slash[] = { + {ai_charge, 1, NULL}, + {ai_charge, 8, NULL}, + {ai_charge, 3, NULL} }; -mmove_t chick_move_start_slash = {FRAME_attak201, FRAME_attak203, chick_frames_start_slash, chick_slash}; +mmove_t chick_move_start_slash = { + FRAME_attak201, + FRAME_attak203, + chick_frames_start_slash, + chick_slash +}; - -void chick_melee(edict_t *self) -{ +void +chick_melee(edict_t *self) +{ + if (!self) + { + return; + } + self->monsterinfo.currentmove = &chick_move_start_slash; } - -void chick_attack(edict_t *self) -{ +void +chick_attack(edict_t *self) +{ + if (!self) + { + return; + } + self->monsterinfo.currentmove = &chick_move_start_attack1; } -void chick_sight(edict_t *self, edict_t *other) -{ - gi.sound (self, CHAN_VOICE, sound_sight, 1, ATTN_NORM, 0); +void +chick_sight(edict_t *self, edict_t *other /* unused */) +{ + if (!self) + { + return; + } + + gi.sound(self, CHAN_VOICE, sound_sight, 1, ATTN_NORM, 0); } -/*QUAKED monster_chick (1 .5 0) (-16 -16 -24) (16 16 32) Ambush Trigger_Spawn Sight -*/ -void SP_monster_chick (edict_t *self) -{ +/* + * QUAKED monster_chick (1 .5 0) (-16 -16 -24) (16 16 32) Ambush Trigger_Spawn Sight + */ +void +SP_monster_chick(edict_t *self) +{ + if (!self) + { + return; + } + if (deathmatch->value) { - G_FreeEdict (self); + G_FreeEdict(self); return; } - sound_missile_prelaunch = gi.soundindex ("chick/chkatck1.wav"); - sound_missile_launch = gi.soundindex ("chick/chkatck2.wav"); - sound_melee_swing = gi.soundindex ("chick/chkatck3.wav"); - sound_melee_hit = gi.soundindex ("chick/chkatck4.wav"); - sound_missile_reload = gi.soundindex ("chick/chkatck5.wav"); - sound_death1 = gi.soundindex ("chick/chkdeth1.wav"); - sound_death2 = gi.soundindex ("chick/chkdeth2.wav"); - sound_fall_down = gi.soundindex ("chick/chkfall1.wav"); - sound_idle1 = gi.soundindex ("chick/chkidle1.wav"); - sound_idle2 = gi.soundindex ("chick/chkidle2.wav"); - sound_pain1 = gi.soundindex ("chick/chkpain1.wav"); - sound_pain2 = gi.soundindex ("chick/chkpain2.wav"); - sound_pain3 = gi.soundindex ("chick/chkpain3.wav"); - sound_sight = gi.soundindex ("chick/chksght1.wav"); - sound_search = gi.soundindex ("chick/chksrch1.wav"); + sound_missile_prelaunch = gi.soundindex("chick/chkatck1.wav"); + sound_missile_launch = gi.soundindex("chick/chkatck2.wav"); + sound_melee_swing = gi.soundindex("chick/chkatck3.wav"); + sound_melee_hit = gi.soundindex("chick/chkatck4.wav"); + sound_missile_reload = gi.soundindex("chick/chkatck5.wav"); + sound_death1 = gi.soundindex("chick/chkdeth1.wav"); + sound_death2 = gi.soundindex("chick/chkdeth2.wav"); + sound_fall_down = gi.soundindex("chick/chkfall1.wav"); + sound_idle1 = gi.soundindex("chick/chkidle1.wav"); + sound_idle2 = gi.soundindex("chick/chkidle2.wav"); + sound_pain1 = gi.soundindex("chick/chkpain1.wav"); + sound_pain2 = gi.soundindex("chick/chkpain2.wav"); + sound_pain3 = gi.soundindex("chick/chkpain3.wav"); + sound_sight = gi.soundindex("chick/chksght1.wav"); + sound_search = gi.soundindex("chick/chksrch1.wav"); self->movetype = MOVETYPE_STEP; self->solid = SOLID_BBOX; - self->s.modelindex = gi.modelindex ("models/monsters/bitch/tris.md2"); - VectorSet (self->mins, -16, -16, 0); - VectorSet (self->maxs, 16, 16, 56); + self->s.modelindex = gi.modelindex("models/monsters/bitch/tris.md2"); + VectorSet(self->mins, -16, -16, 0); + VectorSet(self->maxs, 16, 16, 56); self->health = 175; self->gib_health = -70; @@ -655,20 +929,25 @@ void SP_monster_chick (edict_t *self) self->monsterinfo.melee = chick_melee; self->monsterinfo.sight = chick_sight; - gi.linkentity (self); + gi.linkentity(self); self->monsterinfo.currentmove = &chick_move_stand; self->monsterinfo.scale = MODEL_SCALE; - walkmonster_start (self); + walkmonster_start(self); } - -/*QUAKED monster_chick_heat (1 .5 0) (-16 -16 -24) (16 16 32) Ambush Trigger_Spawn Sight -*/ -void SP_monster_chick_heat (edict_t *self) -{ - SP_monster_chick (self); +/* + * QUAKED monster_chick_heat (1 .5 0) (-16 -16 -24) (16 16 32) Ambush Trigger_Spawn Sight + */ +void +SP_monster_chick_heat(edict_t *self) +{ + if (!self) + { + return; + } + + SP_monster_chick(self); self->s.skinnum = 3; } - diff --git a/src/monster/chick/chick.h b/src/monster/chick/chick.h index a61f8ca..14be3b2 100644 --- a/src/monster/chick/chick.h +++ b/src/monster/chick/chick.h @@ -1,294 +1,297 @@ -// G:\quake2\baseq2\models/monsters/bitch +/* ======================================================================= + * + * Iron Maiden animations. + * + * ======================================================================= + */ -// This file generated by qdata - Do NOT Modify +#define FRAME_attak101 0 +#define FRAME_attak102 1 +#define FRAME_attak103 2 +#define FRAME_attak104 3 +#define FRAME_attak105 4 +#define FRAME_attak106 5 +#define FRAME_attak107 6 +#define FRAME_attak108 7 +#define FRAME_attak109 8 +#define FRAME_attak110 9 +#define FRAME_attak111 10 +#define FRAME_attak112 11 +#define FRAME_attak113 12 +#define FRAME_attak114 13 +#define FRAME_attak115 14 +#define FRAME_attak116 15 +#define FRAME_attak117 16 +#define FRAME_attak118 17 +#define FRAME_attak119 18 +#define FRAME_attak120 19 +#define FRAME_attak121 20 +#define FRAME_attak122 21 +#define FRAME_attak123 22 +#define FRAME_attak124 23 +#define FRAME_attak125 24 +#define FRAME_attak126 25 +#define FRAME_attak127 26 +#define FRAME_attak128 27 +#define FRAME_attak129 28 +#define FRAME_attak130 29 +#define FRAME_attak131 30 +#define FRAME_attak132 31 +#define FRAME_attak201 32 +#define FRAME_attak202 33 +#define FRAME_attak203 34 +#define FRAME_attak204 35 +#define FRAME_attak205 36 +#define FRAME_attak206 37 +#define FRAME_attak207 38 +#define FRAME_attak208 39 +#define FRAME_attak209 40 +#define FRAME_attak210 41 +#define FRAME_attak211 42 +#define FRAME_attak212 43 +#define FRAME_attak213 44 +#define FRAME_attak214 45 +#define FRAME_attak215 46 +#define FRAME_attak216 47 +#define FRAME_death101 48 +#define FRAME_death102 49 +#define FRAME_death103 50 +#define FRAME_death104 51 +#define FRAME_death105 52 +#define FRAME_death106 53 +#define FRAME_death107 54 +#define FRAME_death108 55 +#define FRAME_death109 56 +#define FRAME_death110 57 +#define FRAME_death111 58 +#define FRAME_death112 59 +#define FRAME_death201 60 +#define FRAME_death202 61 +#define FRAME_death203 62 +#define FRAME_death204 63 +#define FRAME_death205 64 +#define FRAME_death206 65 +#define FRAME_death207 66 +#define FRAME_death208 67 +#define FRAME_death209 68 +#define FRAME_death210 69 +#define FRAME_death211 70 +#define FRAME_death212 71 +#define FRAME_death213 72 +#define FRAME_death214 73 +#define FRAME_death215 74 +#define FRAME_death216 75 +#define FRAME_death217 76 +#define FRAME_death218 77 +#define FRAME_death219 78 +#define FRAME_death220 79 +#define FRAME_death221 80 +#define FRAME_death222 81 +#define FRAME_death223 82 +#define FRAME_duck01 83 +#define FRAME_duck02 84 +#define FRAME_duck03 85 +#define FRAME_duck04 86 +#define FRAME_duck05 87 +#define FRAME_duck06 88 +#define FRAME_duck07 89 +#define FRAME_pain101 90 +#define FRAME_pain102 91 +#define FRAME_pain103 92 +#define FRAME_pain104 93 +#define FRAME_pain105 94 +#define FRAME_pain201 95 +#define FRAME_pain202 96 +#define FRAME_pain203 97 +#define FRAME_pain204 98 +#define FRAME_pain205 99 +#define FRAME_pain301 100 +#define FRAME_pain302 101 +#define FRAME_pain303 102 +#define FRAME_pain304 103 +#define FRAME_pain305 104 +#define FRAME_pain306 105 +#define FRAME_pain307 106 +#define FRAME_pain308 107 +#define FRAME_pain309 108 +#define FRAME_pain310 109 +#define FRAME_pain311 110 +#define FRAME_pain312 111 +#define FRAME_pain313 112 +#define FRAME_pain314 113 +#define FRAME_pain315 114 +#define FRAME_pain316 115 +#define FRAME_pain317 116 +#define FRAME_pain318 117 +#define FRAME_pain319 118 +#define FRAME_pain320 119 +#define FRAME_pain321 120 +#define FRAME_stand101 121 +#define FRAME_stand102 122 +#define FRAME_stand103 123 +#define FRAME_stand104 124 +#define FRAME_stand105 125 +#define FRAME_stand106 126 +#define FRAME_stand107 127 +#define FRAME_stand108 128 +#define FRAME_stand109 129 +#define FRAME_stand110 130 +#define FRAME_stand111 131 +#define FRAME_stand112 132 +#define FRAME_stand113 133 +#define FRAME_stand114 134 +#define FRAME_stand115 135 +#define FRAME_stand116 136 +#define FRAME_stand117 137 +#define FRAME_stand118 138 +#define FRAME_stand119 139 +#define FRAME_stand120 140 +#define FRAME_stand121 141 +#define FRAME_stand122 142 +#define FRAME_stand123 143 +#define FRAME_stand124 144 +#define FRAME_stand125 145 +#define FRAME_stand126 146 +#define FRAME_stand127 147 +#define FRAME_stand128 148 +#define FRAME_stand129 149 +#define FRAME_stand130 150 +#define FRAME_stand201 151 +#define FRAME_stand202 152 +#define FRAME_stand203 153 +#define FRAME_stand204 154 +#define FRAME_stand205 155 +#define FRAME_stand206 156 +#define FRAME_stand207 157 +#define FRAME_stand208 158 +#define FRAME_stand209 159 +#define FRAME_stand210 160 +#define FRAME_stand211 161 +#define FRAME_stand212 162 +#define FRAME_stand213 163 +#define FRAME_stand214 164 +#define FRAME_stand215 165 +#define FRAME_stand216 166 +#define FRAME_stand217 167 +#define FRAME_stand218 168 +#define FRAME_stand219 169 +#define FRAME_stand220 170 +#define FRAME_stand221 171 +#define FRAME_stand222 172 +#define FRAME_stand223 173 +#define FRAME_stand224 174 +#define FRAME_stand225 175 +#define FRAME_stand226 176 +#define FRAME_stand227 177 +#define FRAME_stand228 178 +#define FRAME_stand229 179 +#define FRAME_stand230 180 +#define FRAME_walk01 181 +#define FRAME_walk02 182 +#define FRAME_walk03 183 +#define FRAME_walk04 184 +#define FRAME_walk05 185 +#define FRAME_walk06 186 +#define FRAME_walk07 187 +#define FRAME_walk08 188 +#define FRAME_walk09 189 +#define FRAME_walk10 190 +#define FRAME_walk11 191 +#define FRAME_walk12 192 +#define FRAME_walk13 193 +#define FRAME_walk14 194 +#define FRAME_walk15 195 +#define FRAME_walk16 196 +#define FRAME_walk17 197 +#define FRAME_walk18 198 +#define FRAME_walk19 199 +#define FRAME_walk20 200 +#define FRAME_walk21 201 +#define FRAME_walk22 202 +#define FRAME_walk23 203 +#define FRAME_walk24 204 +#define FRAME_walk25 205 +#define FRAME_walk26 206 +#define FRAME_walk27 207 +#define FRAME_recln201 208 +#define FRAME_recln202 209 +#define FRAME_recln203 210 +#define FRAME_recln204 211 +#define FRAME_recln205 212 +#define FRAME_recln206 213 +#define FRAME_recln207 214 +#define FRAME_recln208 215 +#define FRAME_recln209 216 +#define FRAME_recln210 217 +#define FRAME_recln211 218 +#define FRAME_recln212 219 +#define FRAME_recln213 220 +#define FRAME_recln214 221 +#define FRAME_recln215 222 +#define FRAME_recln216 223 +#define FRAME_recln217 224 +#define FRAME_recln218 225 +#define FRAME_recln219 226 +#define FRAME_recln220 227 +#define FRAME_recln221 228 +#define FRAME_recln222 229 +#define FRAME_recln223 230 +#define FRAME_recln224 231 +#define FRAME_recln225 232 +#define FRAME_recln226 233 +#define FRAME_recln227 234 +#define FRAME_recln228 235 +#define FRAME_recln229 236 +#define FRAME_recln230 237 +#define FRAME_recln231 238 +#define FRAME_recln232 239 +#define FRAME_recln233 240 +#define FRAME_recln234 241 +#define FRAME_recln235 242 +#define FRAME_recln236 243 +#define FRAME_recln237 244 +#define FRAME_recln238 245 +#define FRAME_recln239 246 +#define FRAME_recln240 247 +#define FRAME_recln101 248 +#define FRAME_recln102 249 +#define FRAME_recln103 250 +#define FRAME_recln104 251 +#define FRAME_recln105 252 +#define FRAME_recln106 253 +#define FRAME_recln107 254 +#define FRAME_recln108 255 +#define FRAME_recln109 256 +#define FRAME_recln110 257 +#define FRAME_recln111 258 +#define FRAME_recln112 259 +#define FRAME_recln113 260 +#define FRAME_recln114 261 +#define FRAME_recln115 262 +#define FRAME_recln116 263 +#define FRAME_recln117 264 +#define FRAME_recln118 265 +#define FRAME_recln119 266 +#define FRAME_recln120 267 +#define FRAME_recln121 268 +#define FRAME_recln122 269 +#define FRAME_recln123 270 +#define FRAME_recln124 271 +#define FRAME_recln125 272 +#define FRAME_recln126 273 +#define FRAME_recln127 274 +#define FRAME_recln128 275 +#define FRAME_recln129 276 +#define FRAME_recln130 277 +#define FRAME_recln131 278 +#define FRAME_recln132 279 +#define FRAME_recln133 280 +#define FRAME_recln134 281 +#define FRAME_recln135 282 +#define FRAME_recln136 283 +#define FRAME_recln137 284 +#define FRAME_recln138 285 +#define FRAME_recln139 286 +#define FRAME_recln140 287 -#define FRAME_attak101 0 -#define FRAME_attak102 1 -#define FRAME_attak103 2 -#define FRAME_attak104 3 -#define FRAME_attak105 4 -#define FRAME_attak106 5 -#define FRAME_attak107 6 -#define FRAME_attak108 7 -#define FRAME_attak109 8 -#define FRAME_attak110 9 -#define FRAME_attak111 10 -#define FRAME_attak112 11 -#define FRAME_attak113 12 -#define FRAME_attak114 13 -#define FRAME_attak115 14 -#define FRAME_attak116 15 -#define FRAME_attak117 16 -#define FRAME_attak118 17 -#define FRAME_attak119 18 -#define FRAME_attak120 19 -#define FRAME_attak121 20 -#define FRAME_attak122 21 -#define FRAME_attak123 22 -#define FRAME_attak124 23 -#define FRAME_attak125 24 -#define FRAME_attak126 25 -#define FRAME_attak127 26 -#define FRAME_attak128 27 -#define FRAME_attak129 28 -#define FRAME_attak130 29 -#define FRAME_attak131 30 -#define FRAME_attak132 31 -#define FRAME_attak201 32 -#define FRAME_attak202 33 -#define FRAME_attak203 34 -#define FRAME_attak204 35 -#define FRAME_attak205 36 -#define FRAME_attak206 37 -#define FRAME_attak207 38 -#define FRAME_attak208 39 -#define FRAME_attak209 40 -#define FRAME_attak210 41 -#define FRAME_attak211 42 -#define FRAME_attak212 43 -#define FRAME_attak213 44 -#define FRAME_attak214 45 -#define FRAME_attak215 46 -#define FRAME_attak216 47 -#define FRAME_death101 48 -#define FRAME_death102 49 -#define FRAME_death103 50 -#define FRAME_death104 51 -#define FRAME_death105 52 -#define FRAME_death106 53 -#define FRAME_death107 54 -#define FRAME_death108 55 -#define FRAME_death109 56 -#define FRAME_death110 57 -#define FRAME_death111 58 -#define FRAME_death112 59 -#define FRAME_death201 60 -#define FRAME_death202 61 -#define FRAME_death203 62 -#define FRAME_death204 63 -#define FRAME_death205 64 -#define FRAME_death206 65 -#define FRAME_death207 66 -#define FRAME_death208 67 -#define FRAME_death209 68 -#define FRAME_death210 69 -#define FRAME_death211 70 -#define FRAME_death212 71 -#define FRAME_death213 72 -#define FRAME_death214 73 -#define FRAME_death215 74 -#define FRAME_death216 75 -#define FRAME_death217 76 -#define FRAME_death218 77 -#define FRAME_death219 78 -#define FRAME_death220 79 -#define FRAME_death221 80 -#define FRAME_death222 81 -#define FRAME_death223 82 -#define FRAME_duck01 83 -#define FRAME_duck02 84 -#define FRAME_duck03 85 -#define FRAME_duck04 86 -#define FRAME_duck05 87 -#define FRAME_duck06 88 -#define FRAME_duck07 89 -#define FRAME_pain101 90 -#define FRAME_pain102 91 -#define FRAME_pain103 92 -#define FRAME_pain104 93 -#define FRAME_pain105 94 -#define FRAME_pain201 95 -#define FRAME_pain202 96 -#define FRAME_pain203 97 -#define FRAME_pain204 98 -#define FRAME_pain205 99 -#define FRAME_pain301 100 -#define FRAME_pain302 101 -#define FRAME_pain303 102 -#define FRAME_pain304 103 -#define FRAME_pain305 104 -#define FRAME_pain306 105 -#define FRAME_pain307 106 -#define FRAME_pain308 107 -#define FRAME_pain309 108 -#define FRAME_pain310 109 -#define FRAME_pain311 110 -#define FRAME_pain312 111 -#define FRAME_pain313 112 -#define FRAME_pain314 113 -#define FRAME_pain315 114 -#define FRAME_pain316 115 -#define FRAME_pain317 116 -#define FRAME_pain318 117 -#define FRAME_pain319 118 -#define FRAME_pain320 119 -#define FRAME_pain321 120 -#define FRAME_stand101 121 -#define FRAME_stand102 122 -#define FRAME_stand103 123 -#define FRAME_stand104 124 -#define FRAME_stand105 125 -#define FRAME_stand106 126 -#define FRAME_stand107 127 -#define FRAME_stand108 128 -#define FRAME_stand109 129 -#define FRAME_stand110 130 -#define FRAME_stand111 131 -#define FRAME_stand112 132 -#define FRAME_stand113 133 -#define FRAME_stand114 134 -#define FRAME_stand115 135 -#define FRAME_stand116 136 -#define FRAME_stand117 137 -#define FRAME_stand118 138 -#define FRAME_stand119 139 -#define FRAME_stand120 140 -#define FRAME_stand121 141 -#define FRAME_stand122 142 -#define FRAME_stand123 143 -#define FRAME_stand124 144 -#define FRAME_stand125 145 -#define FRAME_stand126 146 -#define FRAME_stand127 147 -#define FRAME_stand128 148 -#define FRAME_stand129 149 -#define FRAME_stand130 150 -#define FRAME_stand201 151 -#define FRAME_stand202 152 -#define FRAME_stand203 153 -#define FRAME_stand204 154 -#define FRAME_stand205 155 -#define FRAME_stand206 156 -#define FRAME_stand207 157 -#define FRAME_stand208 158 -#define FRAME_stand209 159 -#define FRAME_stand210 160 -#define FRAME_stand211 161 -#define FRAME_stand212 162 -#define FRAME_stand213 163 -#define FRAME_stand214 164 -#define FRAME_stand215 165 -#define FRAME_stand216 166 -#define FRAME_stand217 167 -#define FRAME_stand218 168 -#define FRAME_stand219 169 -#define FRAME_stand220 170 -#define FRAME_stand221 171 -#define FRAME_stand222 172 -#define FRAME_stand223 173 -#define FRAME_stand224 174 -#define FRAME_stand225 175 -#define FRAME_stand226 176 -#define FRAME_stand227 177 -#define FRAME_stand228 178 -#define FRAME_stand229 179 -#define FRAME_stand230 180 -#define FRAME_walk01 181 -#define FRAME_walk02 182 -#define FRAME_walk03 183 -#define FRAME_walk04 184 -#define FRAME_walk05 185 -#define FRAME_walk06 186 -#define FRAME_walk07 187 -#define FRAME_walk08 188 -#define FRAME_walk09 189 -#define FRAME_walk10 190 -#define FRAME_walk11 191 -#define FRAME_walk12 192 -#define FRAME_walk13 193 -#define FRAME_walk14 194 -#define FRAME_walk15 195 -#define FRAME_walk16 196 -#define FRAME_walk17 197 -#define FRAME_walk18 198 -#define FRAME_walk19 199 -#define FRAME_walk20 200 -#define FRAME_walk21 201 -#define FRAME_walk22 202 -#define FRAME_walk23 203 -#define FRAME_walk24 204 -#define FRAME_walk25 205 -#define FRAME_walk26 206 -#define FRAME_walk27 207 -#define FRAME_recln201 208 -#define FRAME_recln202 209 -#define FRAME_recln203 210 -#define FRAME_recln204 211 -#define FRAME_recln205 212 -#define FRAME_recln206 213 -#define FRAME_recln207 214 -#define FRAME_recln208 215 -#define FRAME_recln209 216 -#define FRAME_recln210 217 -#define FRAME_recln211 218 -#define FRAME_recln212 219 -#define FRAME_recln213 220 -#define FRAME_recln214 221 -#define FRAME_recln215 222 -#define FRAME_recln216 223 -#define FRAME_recln217 224 -#define FRAME_recln218 225 -#define FRAME_recln219 226 -#define FRAME_recln220 227 -#define FRAME_recln221 228 -#define FRAME_recln222 229 -#define FRAME_recln223 230 -#define FRAME_recln224 231 -#define FRAME_recln225 232 -#define FRAME_recln226 233 -#define FRAME_recln227 234 -#define FRAME_recln228 235 -#define FRAME_recln229 236 -#define FRAME_recln230 237 -#define FRAME_recln231 238 -#define FRAME_recln232 239 -#define FRAME_recln233 240 -#define FRAME_recln234 241 -#define FRAME_recln235 242 -#define FRAME_recln236 243 -#define FRAME_recln237 244 -#define FRAME_recln238 245 -#define FRAME_recln239 246 -#define FRAME_recln240 247 -#define FRAME_recln101 248 -#define FRAME_recln102 249 -#define FRAME_recln103 250 -#define FRAME_recln104 251 -#define FRAME_recln105 252 -#define FRAME_recln106 253 -#define FRAME_recln107 254 -#define FRAME_recln108 255 -#define FRAME_recln109 256 -#define FRAME_recln110 257 -#define FRAME_recln111 258 -#define FRAME_recln112 259 -#define FRAME_recln113 260 -#define FRAME_recln114 261 -#define FRAME_recln115 262 -#define FRAME_recln116 263 -#define FRAME_recln117 264 -#define FRAME_recln118 265 -#define FRAME_recln119 266 -#define FRAME_recln120 267 -#define FRAME_recln121 268 -#define FRAME_recln122 269 -#define FRAME_recln123 270 -#define FRAME_recln124 271 -#define FRAME_recln125 272 -#define FRAME_recln126 273 -#define FRAME_recln127 274 -#define FRAME_recln128 275 -#define FRAME_recln129 276 -#define FRAME_recln130 277 -#define FRAME_recln131 278 -#define FRAME_recln132 279 -#define FRAME_recln133 280 -#define FRAME_recln134 281 -#define FRAME_recln135 282 -#define FRAME_recln136 283 -#define FRAME_recln137 284 -#define FRAME_recln138 285 -#define FRAME_recln139 286 -#define FRAME_recln140 287 - -#define MODEL_SCALE 1.000000 +#define MODEL_SCALE 1.000000