From 1cc82146a29bb905172486c6cff2f7b1ba6b3846 Mon Sep 17 00:00:00 2001 From: Yamagi Burmeister Date: Sun, 9 Oct 2011 15:46:18 +0000 Subject: [PATCH] cleanup flipper/ and add sanity checks --- src/game/baseq2/monster/flipper/flipper.c | 577 ++++++++++++++-------- src/game/baseq2/monster/flipper/flipper.h | 369 +++++++------- 2 files changed, 549 insertions(+), 397 deletions(-) diff --git a/src/game/baseq2/monster/flipper/flipper.c b/src/game/baseq2/monster/flipper/flipper.c index 52d3c7ca..d31cac16 100644 --- a/src/game/baseq2/monster/flipper/flipper.c +++ b/src/game/baseq2/monster/flipper/flipper.c @@ -1,67 +1,74 @@ /* -Copyright (C) 1997-2001 Id Software, Inc. - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -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. - -See the GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -*/ -/* -============================================================================== - -FLIPPER - -============================================================================== -*/ + * Copyright (C) 1997-2001 Id Software, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 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. + * + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * ======================================================================= + * + * Baracuda Shark. + * + * ======================================================================= + */ #include "../../header/local.h" #include "flipper.h" +#define FLIPPER_RUN_SPEED 24 -static int sound_chomp; -static int sound_attack; -static int sound_pain1; -static int sound_pain2; -static int sound_death; -static int sound_idle; -static int sound_search; -static int sound_sight; +static int sound_chomp; +static int sound_attack; +static int sound_pain1; +static int sound_pain2; +static int sound_death; +static int sound_idle; +static int sound_search; +static int sound_sight; +void flipper_stand(edict_t *self); -void flipper_stand (edict_t *self); - -mframe_t flipper_frames_stand [] = -{ +mframe_t flipper_frames_stand[] = { {ai_stand, 0, NULL} }; - -mmove_t flipper_move_stand = {FRAME_flphor01, FRAME_flphor01, flipper_frames_stand, NULL}; -void flipper_stand (edict_t *self) +mmove_t flipper_move_stand = { - self->monsterinfo.currentmove = &flipper_move_stand; + FRAME_flphor01, + FRAME_flphor01, + flipper_frames_stand, + NULL +}; + +void +flipper_stand(edict_t *self) +{ + if (!self) + { + return; + } + + self->monsterinfo.currentmove = &flipper_move_stand; } -#define FLIPPER_RUN_SPEED 24 - -mframe_t flipper_frames_run [] = -{ - {ai_run, FLIPPER_RUN_SPEED, NULL}, // 6 +mframe_t flipper_frames_run[] = { + {ai_run, FLIPPER_RUN_SPEED, NULL}, /* 6 */ {ai_run, FLIPPER_RUN_SPEED, NULL}, {ai_run, FLIPPER_RUN_SPEED, NULL}, {ai_run, FLIPPER_RUN_SPEED, NULL}, - {ai_run, FLIPPER_RUN_SPEED, NULL}, // 10 + {ai_run, FLIPPER_RUN_SPEED, NULL}, /* 10 */ {ai_run, FLIPPER_RUN_SPEED, NULL}, {ai_run, FLIPPER_RUN_SPEED, NULL}, @@ -72,7 +79,7 @@ mframe_t flipper_frames_run [] = {ai_run, FLIPPER_RUN_SPEED, NULL}, {ai_run, FLIPPER_RUN_SPEED, NULL}, {ai_run, FLIPPER_RUN_SPEED, NULL}, - {ai_run, FLIPPER_RUN_SPEED, NULL}, // 20 + {ai_run, FLIPPER_RUN_SPEED, NULL}, /* 20 */ {ai_run, FLIPPER_RUN_SPEED, NULL}, {ai_run, FLIPPER_RUN_SPEED, NULL}, @@ -82,17 +89,29 @@ mframe_t flipper_frames_run [] = {ai_run, FLIPPER_RUN_SPEED, NULL}, {ai_run, FLIPPER_RUN_SPEED, NULL}, {ai_run, FLIPPER_RUN_SPEED, NULL}, - {ai_run, FLIPPER_RUN_SPEED, NULL} // 29 + {ai_run, FLIPPER_RUN_SPEED, NULL} /* 29 */ }; -mmove_t flipper_move_run_loop = {FRAME_flpver06, FRAME_flpver29, flipper_frames_run, NULL}; -void flipper_run_loop (edict_t *self) +mmove_t flipper_move_run_loop = { + FRAME_flpver06, + FRAME_flpver29, + flipper_frames_run, + NULL +}; + +void +flipper_run_loop(edict_t *self) +{ + if (!self) + { + return; + } + self->monsterinfo.currentmove = &flipper_move_run_loop; } -mframe_t flipper_frames_run_start [] = -{ +mframe_t flipper_frames_run_start[] = { {ai_run, 8, NULL}, {ai_run, 8, NULL}, {ai_run, 8, NULL}, @@ -100,16 +119,28 @@ mframe_t flipper_frames_run_start [] = {ai_run, 8, NULL}, {ai_run, 8, NULL} }; -mmove_t flipper_move_run_start = {FRAME_flpver01, FRAME_flpver06, flipper_frames_run_start, flipper_run_loop}; -void flipper_run (edict_t *self) +mmove_t flipper_move_run_start = { + FRAME_flpver01, + FRAME_flpver06, + flipper_frames_run_start, + flipper_run_loop +}; + +void +flipper_run(edict_t *self) +{ + if (!self) + { + return; + } + self->monsterinfo.currentmove = &flipper_move_run_start; } -/* Standard Swimming */ -mframe_t flipper_frames_walk [] = -{ +/* Standard Swimming */ +mframe_t flipper_frames_walk[] = { {ai_walk, 4, NULL}, {ai_walk, 4, NULL}, {ai_walk, 4, NULL}, @@ -135,251 +166,369 @@ mframe_t flipper_frames_walk [] = {ai_walk, 4, NULL}, {ai_walk, 4, NULL} }; -mmove_t flipper_move_walk = {FRAME_flphor01, FRAME_flphor24, flipper_frames_walk, NULL}; -void flipper_walk (edict_t *self) +mmove_t flipper_move_walk = { + FRAME_flphor01, + FRAME_flphor24, + flipper_frames_walk, + NULL +}; + +void +flipper_walk(edict_t *self) +{ + if (!self) + { + return; + } + self->monsterinfo.currentmove = &flipper_move_walk; } -mframe_t flipper_frames_start_run [] = -{ +mframe_t flipper_frames_start_run[] = { {ai_run, 8, NULL}, {ai_run, 8, NULL}, {ai_run, 8, NULL}, {ai_run, 8, NULL}, {ai_run, 8, flipper_run} }; -mmove_t flipper_move_start_run = {FRAME_flphor01, FRAME_flphor05, flipper_frames_start_run, NULL}; -void flipper_start_run (edict_t *self) +mmove_t flipper_move_start_run = { + FRAME_flphor01, + FRAME_flphor05, + flipper_frames_start_run, + NULL +}; + +void +flipper_start_run(edict_t *self) +{ + if (!self) + { + return; + } + self->monsterinfo.currentmove = &flipper_move_start_run; } -mframe_t flipper_frames_pain2 [] = -{ +mframe_t flipper_frames_pain2[] = { + {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 flipper_move_pain2 = {FRAME_flppn101, FRAME_flppn105, flipper_frames_pain2, flipper_run}; -mframe_t flipper_frames_pain1 [] = +mmove_t flipper_move_pain2 = { + FRAME_flppn101, + FRAME_flppn105, + flipper_frames_pain2, + flipper_run +}; + +mframe_t flipper_frames_pain1[] = { + {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 flipper_move_pain1 = {FRAME_flppn201, FRAME_flppn205, flipper_frames_pain1, flipper_run}; - -void flipper_bite (edict_t *self) +mmove_t flipper_move_pain1 = { - vec3_t aim; - - VectorSet (aim, MELEE_DISTANCE, 0, 0); - fire_hit (self, aim, 5, 0); -} - -void flipper_preattack (edict_t *self) -{ - gi.sound (self, CHAN_WEAPON, sound_chomp, 1, ATTN_NORM, 0); -} - -mframe_t flipper_frames_attack [] = -{ - {ai_charge, 0, flipper_preattack}, - {ai_charge, 0, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, 0, flipper_bite}, - {ai_charge, 0, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, 0, NULL}, - {ai_charge, 0, flipper_bite}, - {ai_charge, 0, NULL} + FRAME_flppn201, + FRAME_flppn205, + flipper_frames_pain1, + flipper_run }; -mmove_t flipper_move_attack = {FRAME_flpbit01, FRAME_flpbit20, flipper_frames_attack, flipper_run}; -void flipper_melee(edict_t *self) +void +flipper_bite(edict_t *self) { + vec3_t aim; + + if (!self) + { + return; + } + + VectorSet(aim, MELEE_DISTANCE, 0, 0); + fire_hit(self, aim, 5, 0); +} + +void +flipper_preattack(edict_t *self) +{ + if (!self) + { + return; + } + + gi.sound(self, CHAN_WEAPON, sound_chomp, 1, ATTN_NORM, 0); +} + +mframe_t flipper_frames_attack[] = { + {ai_charge, 0, flipper_preattack}, + {ai_charge, 0, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, 0, flipper_bite}, + {ai_charge, 0, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, 0, NULL}, + {ai_charge, 0, flipper_bite}, + {ai_charge, 0, NULL} +}; + +mmove_t flipper_move_attack = +{ + FRAME_flpbit01, + FRAME_flpbit20, + flipper_frames_attack, + flipper_run +}; + +void +flipper_melee(edict_t *self) +{ + if (!self) + { + return; + } + self->monsterinfo.currentmove = &flipper_move_attack; } -void flipper_pain (edict_t *self, edict_t *other, float kick, int damage) +void +flipper_pain(edict_t *self, edict_t *other /* unused */, + float kick /* unused */, int damage) { - int n; - + int n; + + 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; - + if (skill->value == 3) - return; // no pain anims in nightmare + { + return; /* no pain anims in nightmare */ + } n = (rand() + 1) % 2; + if (n == 0) { - gi.sound (self, CHAN_VOICE, sound_pain1, 1, ATTN_NORM, 0); + gi.sound(self, CHAN_VOICE, sound_pain1, 1, ATTN_NORM, 0); self->monsterinfo.currentmove = &flipper_move_pain1; } else { - gi.sound (self, CHAN_VOICE, sound_pain2, 1, ATTN_NORM, 0); + gi.sound(self, CHAN_VOICE, sound_pain2, 1, ATTN_NORM, 0); self->monsterinfo.currentmove = &flipper_move_pain2; } } -void flipper_dead (edict_t *self) -{ - VectorSet (self->mins, -16, -16, -24); - VectorSet (self->maxs, 16, 16, -8); +void +flipper_dead(edict_t *self) +{ + if (!self) + { + return; + } + + 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); } -mframe_t flipper_frames_death [] = -{ - {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}, - {ai_move, 0, NULL}, - {ai_move, 0, NULL}, - {ai_move, 0, NULL}, +mframe_t flipper_frames_death[] = { + {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}, + {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}, - {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}, + {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}, + {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}, - {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}, + {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}, + {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}, - {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}, + {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}, - {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}, - {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}, + {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}, - {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}, + {ai_move, 0, NULL}, + {ai_move, 0, NULL}, + {ai_move, 0, NULL}, + {ai_move, 0, NULL} }; -mmove_t flipper_move_death = {FRAME_flpdth01, FRAME_flpdth56, flipper_frames_death, flipper_dead}; -void flipper_sight (edict_t *self, edict_t *other) +mmove_t flipper_move_death = { - gi.sound (self, CHAN_VOICE, sound_sight, 1, ATTN_NORM, 0); + FRAME_flpdth01, + FRAME_flpdth56, + flipper_frames_death, + flipper_dead +}; + +void +flipper_sight(edict_t *self, edict_t *other /* unused */) +{ + if (!self) + { + return; + } + + gi.sound(self, CHAN_VOICE, sound_sight, 1, ATTN_NORM, 0); } -void flipper_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point) +void +flipper_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 < 2; n++) - ThrowGib (self, "models/objects/gibs/sm_meat/tris.md2", damage, GIB_ORGANIC); - ThrowHead (self, "models/objects/gibs/sm_meat/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 < 2; n++) + { + ThrowGib(self, "models/objects/gibs/sm_meat/tris.md2", + damage, GIB_ORGANIC); + } + + ThrowHead(self, "models/objects/gibs/sm_meat/tris.md2", + damage, GIB_ORGANIC); self->deadflag = DEAD_DEAD; return; } if (self->deadflag == DEAD_DEAD) + { return; + } - // regular death - gi.sound (self, CHAN_VOICE, sound_death, 1, ATTN_NORM, 0); + /* regular death */ + gi.sound(self, CHAN_VOICE, sound_death, 1, ATTN_NORM, 0); self->deadflag = DEAD_DEAD; self->takedamage = DAMAGE_YES; self->monsterinfo.currentmove = &flipper_move_death; } -/*QUAKED monster_flipper (1 .5 0) (-16 -16 -24) (16 16 32) Ambush Trigger_Spawn Sight -*/ -void SP_monster_flipper (edict_t *self) -{ +/* + * QUAKED monster_flipper (1 .5 0) (-16 -16 -24) (16 16 32) Ambush Trigger_Spawn Sight + */ +void +SP_monster_flipper(edict_t *self) +{ + if (!self) + { + return; + } + if (deathmatch->value) { - G_FreeEdict (self); + G_FreeEdict(self); return; } - sound_pain1 = gi.soundindex ("flipper/flppain1.wav"); - sound_pain2 = gi.soundindex ("flipper/flppain2.wav"); - sound_death = gi.soundindex ("flipper/flpdeth1.wav"); - sound_chomp = gi.soundindex ("flipper/flpatck1.wav"); - sound_attack = gi.soundindex ("flipper/flpatck2.wav"); - sound_idle = gi.soundindex ("flipper/flpidle1.wav"); - sound_search = gi.soundindex ("flipper/flpsrch1.wav"); - sound_sight = gi.soundindex ("flipper/flpsght1.wav"); + sound_pain1 = gi.soundindex("flipper/flppain1.wav"); + sound_pain2 = gi.soundindex("flipper/flppain2.wav"); + sound_death = gi.soundindex("flipper/flpdeth1.wav"); + sound_chomp = gi.soundindex("flipper/flpatck1.wav"); + sound_attack = gi.soundindex("flipper/flpatck2.wav"); + sound_idle = gi.soundindex("flipper/flpidle1.wav"); + sound_search = gi.soundindex("flipper/flpsrch1.wav"); + sound_sight = gi.soundindex("flipper/flpsght1.wav"); self->movetype = MOVETYPE_STEP; self->solid = SOLID_BBOX; - self->s.modelindex = gi.modelindex ("models/monsters/flipper/tris.md2"); - VectorSet (self->mins, -16, -16, 0); - VectorSet (self->maxs, 16, 16, 32); + self->s.modelindex = gi.modelindex("models/monsters/flipper/tris.md2"); + VectorSet(self->mins, -16, -16, 0); + VectorSet(self->maxs, 16, 16, 32); self->health = 50; self->gib_health = -30; @@ -394,11 +543,11 @@ void SP_monster_flipper (edict_t *self) self->monsterinfo.melee = flipper_melee; self->monsterinfo.sight = flipper_sight; - gi.linkentity (self); + gi.linkentity(self); - self->monsterinfo.currentmove = &flipper_move_stand; + self->monsterinfo.currentmove = &flipper_move_stand; self->monsterinfo.scale = MODEL_SCALE; - swimmonster_start (self); + swimmonster_start(self); } diff --git a/src/game/baseq2/monster/flipper/flipper.h b/src/game/baseq2/monster/flipper/flipper.h index 24522c0b..1b3eb11d 100644 --- a/src/game/baseq2/monster/flipper/flipper.h +++ b/src/game/baseq2/monster/flipper/flipper.h @@ -1,185 +1,188 @@ /* -Copyright (C) 1997-2001 Id Software, Inc. + * Copyright (C) 1997-2001 Id Software, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 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. + * + * See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * ======================================================================= + * + * Baracuda Shark animations. + * + * ======================================================================= + */ + +#define FRAME_flpbit01 0 +#define FRAME_flpbit02 1 +#define FRAME_flpbit03 2 +#define FRAME_flpbit04 3 +#define FRAME_flpbit05 4 +#define FRAME_flpbit06 5 +#define FRAME_flpbit07 6 +#define FRAME_flpbit08 7 +#define FRAME_flpbit09 8 +#define FRAME_flpbit10 9 +#define FRAME_flpbit11 10 +#define FRAME_flpbit12 11 +#define FRAME_flpbit13 12 +#define FRAME_flpbit14 13 +#define FRAME_flpbit15 14 +#define FRAME_flpbit16 15 +#define FRAME_flpbit17 16 +#define FRAME_flpbit18 17 +#define FRAME_flpbit19 18 +#define FRAME_flpbit20 19 +#define FRAME_flptal01 20 +#define FRAME_flptal02 21 +#define FRAME_flptal03 22 +#define FRAME_flptal04 23 +#define FRAME_flptal05 24 +#define FRAME_flptal06 25 +#define FRAME_flptal07 26 +#define FRAME_flptal08 27 +#define FRAME_flptal09 28 +#define FRAME_flptal10 29 +#define FRAME_flptal11 30 +#define FRAME_flptal12 31 +#define FRAME_flptal13 32 +#define FRAME_flptal14 33 +#define FRAME_flptal15 34 +#define FRAME_flptal16 35 +#define FRAME_flptal17 36 +#define FRAME_flptal18 37 +#define FRAME_flptal19 38 +#define FRAME_flptal20 39 +#define FRAME_flptal21 40 +#define FRAME_flphor01 41 +#define FRAME_flphor02 42 +#define FRAME_flphor03 43 +#define FRAME_flphor04 44 +#define FRAME_flphor05 45 +#define FRAME_flphor06 46 +#define FRAME_flphor07 47 +#define FRAME_flphor08 48 +#define FRAME_flphor09 49 +#define FRAME_flphor10 50 +#define FRAME_flphor11 51 +#define FRAME_flphor12 52 +#define FRAME_flphor13 53 +#define FRAME_flphor14 54 +#define FRAME_flphor15 55 +#define FRAME_flphor16 56 +#define FRAME_flphor17 57 +#define FRAME_flphor18 58 +#define FRAME_flphor19 59 +#define FRAME_flphor20 60 +#define FRAME_flphor21 61 +#define FRAME_flphor22 62 +#define FRAME_flphor23 63 +#define FRAME_flphor24 64 +#define FRAME_flpver01 65 +#define FRAME_flpver02 66 +#define FRAME_flpver03 67 +#define FRAME_flpver04 68 +#define FRAME_flpver05 69 +#define FRAME_flpver06 70 +#define FRAME_flpver07 71 +#define FRAME_flpver08 72 +#define FRAME_flpver09 73 +#define FRAME_flpver10 74 +#define FRAME_flpver11 75 +#define FRAME_flpver12 76 +#define FRAME_flpver13 77 +#define FRAME_flpver14 78 +#define FRAME_flpver15 79 +#define FRAME_flpver16 80 +#define FRAME_flpver17 81 +#define FRAME_flpver18 82 +#define FRAME_flpver19 83 +#define FRAME_flpver20 84 +#define FRAME_flpver21 85 +#define FRAME_flpver22 86 +#define FRAME_flpver23 87 +#define FRAME_flpver24 88 +#define FRAME_flpver25 89 +#define FRAME_flpver26 90 +#define FRAME_flpver27 91 +#define FRAME_flpver28 92 +#define FRAME_flpver29 93 +#define FRAME_flppn101 94 +#define FRAME_flppn102 95 +#define FRAME_flppn103 96 +#define FRAME_flppn104 97 +#define FRAME_flppn105 98 +#define FRAME_flppn201 99 +#define FRAME_flppn202 100 +#define FRAME_flppn203 101 +#define FRAME_flppn204 102 +#define FRAME_flppn205 103 +#define FRAME_flpdth01 104 +#define FRAME_flpdth02 105 +#define FRAME_flpdth03 106 +#define FRAME_flpdth04 107 +#define FRAME_flpdth05 108 +#define FRAME_flpdth06 109 +#define FRAME_flpdth07 110 +#define FRAME_flpdth08 111 +#define FRAME_flpdth09 112 +#define FRAME_flpdth10 113 +#define FRAME_flpdth11 114 +#define FRAME_flpdth12 115 +#define FRAME_flpdth13 116 +#define FRAME_flpdth14 117 +#define FRAME_flpdth15 118 +#define FRAME_flpdth16 119 +#define FRAME_flpdth17 120 +#define FRAME_flpdth18 121 +#define FRAME_flpdth19 122 +#define FRAME_flpdth20 123 +#define FRAME_flpdth21 124 +#define FRAME_flpdth22 125 +#define FRAME_flpdth23 126 +#define FRAME_flpdth24 127 +#define FRAME_flpdth25 128 +#define FRAME_flpdth26 129 +#define FRAME_flpdth27 130 +#define FRAME_flpdth28 131 +#define FRAME_flpdth29 132 +#define FRAME_flpdth30 133 +#define FRAME_flpdth31 134 +#define FRAME_flpdth32 135 +#define FRAME_flpdth33 136 +#define FRAME_flpdth34 137 +#define FRAME_flpdth35 138 +#define FRAME_flpdth36 139 +#define FRAME_flpdth37 140 +#define FRAME_flpdth38 141 +#define FRAME_flpdth39 142 +#define FRAME_flpdth40 143 +#define FRAME_flpdth41 144 +#define FRAME_flpdth42 145 +#define FRAME_flpdth43 146 +#define FRAME_flpdth44 147 +#define FRAME_flpdth45 148 +#define FRAME_flpdth46 149 +#define FRAME_flpdth47 150 +#define FRAME_flpdth48 151 +#define FRAME_flpdth49 152 +#define FRAME_flpdth50 153 +#define FRAME_flpdth51 154 +#define FRAME_flpdth52 155 +#define FRAME_flpdth53 156 +#define FRAME_flpdth54 157 +#define FRAME_flpdth55 158 +#define FRAME_flpdth56 159 -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -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. - -See the GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -*/ -// G:\quake2\baseq2\models/monsters/flipper - -// This file generated by ModelGen - Do NOT Modify - -#define FRAME_flpbit01 0 -#define FRAME_flpbit02 1 -#define FRAME_flpbit03 2 -#define FRAME_flpbit04 3 -#define FRAME_flpbit05 4 -#define FRAME_flpbit06 5 -#define FRAME_flpbit07 6 -#define FRAME_flpbit08 7 -#define FRAME_flpbit09 8 -#define FRAME_flpbit10 9 -#define FRAME_flpbit11 10 -#define FRAME_flpbit12 11 -#define FRAME_flpbit13 12 -#define FRAME_flpbit14 13 -#define FRAME_flpbit15 14 -#define FRAME_flpbit16 15 -#define FRAME_flpbit17 16 -#define FRAME_flpbit18 17 -#define FRAME_flpbit19 18 -#define FRAME_flpbit20 19 -#define FRAME_flptal01 20 -#define FRAME_flptal02 21 -#define FRAME_flptal03 22 -#define FRAME_flptal04 23 -#define FRAME_flptal05 24 -#define FRAME_flptal06 25 -#define FRAME_flptal07 26 -#define FRAME_flptal08 27 -#define FRAME_flptal09 28 -#define FRAME_flptal10 29 -#define FRAME_flptal11 30 -#define FRAME_flptal12 31 -#define FRAME_flptal13 32 -#define FRAME_flptal14 33 -#define FRAME_flptal15 34 -#define FRAME_flptal16 35 -#define FRAME_flptal17 36 -#define FRAME_flptal18 37 -#define FRAME_flptal19 38 -#define FRAME_flptal20 39 -#define FRAME_flptal21 40 -#define FRAME_flphor01 41 -#define FRAME_flphor02 42 -#define FRAME_flphor03 43 -#define FRAME_flphor04 44 -#define FRAME_flphor05 45 -#define FRAME_flphor06 46 -#define FRAME_flphor07 47 -#define FRAME_flphor08 48 -#define FRAME_flphor09 49 -#define FRAME_flphor10 50 -#define FRAME_flphor11 51 -#define FRAME_flphor12 52 -#define FRAME_flphor13 53 -#define FRAME_flphor14 54 -#define FRAME_flphor15 55 -#define FRAME_flphor16 56 -#define FRAME_flphor17 57 -#define FRAME_flphor18 58 -#define FRAME_flphor19 59 -#define FRAME_flphor20 60 -#define FRAME_flphor21 61 -#define FRAME_flphor22 62 -#define FRAME_flphor23 63 -#define FRAME_flphor24 64 -#define FRAME_flpver01 65 -#define FRAME_flpver02 66 -#define FRAME_flpver03 67 -#define FRAME_flpver04 68 -#define FRAME_flpver05 69 -#define FRAME_flpver06 70 -#define FRAME_flpver07 71 -#define FRAME_flpver08 72 -#define FRAME_flpver09 73 -#define FRAME_flpver10 74 -#define FRAME_flpver11 75 -#define FRAME_flpver12 76 -#define FRAME_flpver13 77 -#define FRAME_flpver14 78 -#define FRAME_flpver15 79 -#define FRAME_flpver16 80 -#define FRAME_flpver17 81 -#define FRAME_flpver18 82 -#define FRAME_flpver19 83 -#define FRAME_flpver20 84 -#define FRAME_flpver21 85 -#define FRAME_flpver22 86 -#define FRAME_flpver23 87 -#define FRAME_flpver24 88 -#define FRAME_flpver25 89 -#define FRAME_flpver26 90 -#define FRAME_flpver27 91 -#define FRAME_flpver28 92 -#define FRAME_flpver29 93 -#define FRAME_flppn101 94 -#define FRAME_flppn102 95 -#define FRAME_flppn103 96 -#define FRAME_flppn104 97 -#define FRAME_flppn105 98 -#define FRAME_flppn201 99 -#define FRAME_flppn202 100 -#define FRAME_flppn203 101 -#define FRAME_flppn204 102 -#define FRAME_flppn205 103 -#define FRAME_flpdth01 104 -#define FRAME_flpdth02 105 -#define FRAME_flpdth03 106 -#define FRAME_flpdth04 107 -#define FRAME_flpdth05 108 -#define FRAME_flpdth06 109 -#define FRAME_flpdth07 110 -#define FRAME_flpdth08 111 -#define FRAME_flpdth09 112 -#define FRAME_flpdth10 113 -#define FRAME_flpdth11 114 -#define FRAME_flpdth12 115 -#define FRAME_flpdth13 116 -#define FRAME_flpdth14 117 -#define FRAME_flpdth15 118 -#define FRAME_flpdth16 119 -#define FRAME_flpdth17 120 -#define FRAME_flpdth18 121 -#define FRAME_flpdth19 122 -#define FRAME_flpdth20 123 -#define FRAME_flpdth21 124 -#define FRAME_flpdth22 125 -#define FRAME_flpdth23 126 -#define FRAME_flpdth24 127 -#define FRAME_flpdth25 128 -#define FRAME_flpdth26 129 -#define FRAME_flpdth27 130 -#define FRAME_flpdth28 131 -#define FRAME_flpdth29 132 -#define FRAME_flpdth30 133 -#define FRAME_flpdth31 134 -#define FRAME_flpdth32 135 -#define FRAME_flpdth33 136 -#define FRAME_flpdth34 137 -#define FRAME_flpdth35 138 -#define FRAME_flpdth36 139 -#define FRAME_flpdth37 140 -#define FRAME_flpdth38 141 -#define FRAME_flpdth39 142 -#define FRAME_flpdth40 143 -#define FRAME_flpdth41 144 -#define FRAME_flpdth42 145 -#define FRAME_flpdth43 146 -#define FRAME_flpdth44 147 -#define FRAME_flpdth45 148 -#define FRAME_flpdth46 149 -#define FRAME_flpdth47 150 -#define FRAME_flpdth48 151 -#define FRAME_flpdth49 152 -#define FRAME_flpdth50 153 -#define FRAME_flpdth51 154 -#define FRAME_flpdth52 155 -#define FRAME_flpdth53 156 -#define FRAME_flpdth54 157 -#define FRAME_flpdth55 158 -#define FRAME_flpdth56 159 - -#define MODEL_SCALE 1.000000 +#define MODEL_SCALE 1.000000