mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2024-11-10 07:12:07 +00:00
game: restore rerelease target_actor used in biggun
This commit is contained in:
parent
081d0fffa4
commit
6aece83adb
4 changed files with 1179 additions and 0 deletions
1
Makefile
1
Makefile
|
@ -891,6 +891,7 @@ GAME_OBJS_ = \
|
|||
src/game/dm/ball.o \
|
||||
src/game/dm/tag.o \
|
||||
src/game/menu/menu.o \
|
||||
src/game/monster/actor/actor.o \
|
||||
src/game/monster/arachnid/arachnid.o \
|
||||
src/game/monster/berserker/berserker.o \
|
||||
src/game/monster/boss2/boss2.o \
|
||||
|
|
|
@ -275,6 +275,7 @@ static spawn_t spawns[] = {
|
|||
{"target_crosslevel_target", SP_target_crosslevel_target},
|
||||
{"target_laser", SP_target_laser},
|
||||
{"target_help", SP_target_help},
|
||||
{"target_actor", SP_target_actor},
|
||||
{"target_lightramp", SP_target_lightramp},
|
||||
{"target_earthquake", SP_target_earthquake},
|
||||
{"target_music", SP_target_music},
|
||||
|
@ -299,6 +300,7 @@ static spawn_t spawns[] = {
|
|||
{"misc_banner", SP_misc_banner},
|
||||
{"misc_ctf_banner", SP_misc_ctf_banner},
|
||||
{"misc_ctf_small_banner", SP_misc_ctf_small_banner},
|
||||
{"misc_actor", SP_misc_actor},
|
||||
{"misc_satellite_dish", SP_misc_satellite_dish},
|
||||
{"misc_gib_arm", SP_misc_gib_arm},
|
||||
{"misc_gib_leg", SP_misc_gib_leg},
|
||||
|
|
671
src/game/monster/actor/actor.c
Normal file
671
src/game/monster/actor/actor.c
Normal file
|
@ -0,0 +1,671 @@
|
|||
/*
|
||||
* Copyright (C) 1997-2001 Id Software, Inc.
|
||||
* Copyright (c) ZeniMax Media 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "../../header/local.h"
|
||||
#include "actor.h"
|
||||
|
||||
#define MAX_ACTOR_NAMES 8
|
||||
char *actor_names[MAX_ACTOR_NAMES] =
|
||||
{
|
||||
"Hellrot",
|
||||
"Tokay",
|
||||
"Killme",
|
||||
"Disruptor",
|
||||
"Adrianator",
|
||||
"Rambear",
|
||||
"Titus",
|
||||
"Bitterman"
|
||||
};
|
||||
|
||||
static mframe_t actor_frames_stand [] =
|
||||
{
|
||||
{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},
|
||||
{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 actor_move_stand = {
|
||||
FRAME_stand101,
|
||||
FRAME_stand140,
|
||||
actor_frames_stand,
|
||||
NULL
|
||||
};
|
||||
|
||||
void actor_stand (edict_t *self)
|
||||
{
|
||||
self->monsterinfo.currentmove = &actor_move_stand;
|
||||
|
||||
// randomize on startup
|
||||
if (level.time < 1.0)
|
||||
{
|
||||
self->s.frame = self->monsterinfo.currentmove->firstframe + (rand() % (self->monsterinfo.currentmove->lastframe - self->monsterinfo.currentmove->firstframe + 1));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static mframe_t actor_frames_walk [] =
|
||||
{
|
||||
{ai_walk, 0, NULL},
|
||||
{ai_walk, 6, NULL},
|
||||
{ai_walk, 10, NULL},
|
||||
{ai_walk, 3, NULL},
|
||||
{ai_walk, 2, NULL},
|
||||
{ai_walk, 7, NULL},
|
||||
{ai_walk, 10, NULL},
|
||||
{ai_walk, 1, NULL},
|
||||
{ai_walk, 4, NULL},
|
||||
{ai_walk, 0, NULL},
|
||||
{ai_walk, 0, NULL}
|
||||
};
|
||||
mmove_t actor_move_walk = {
|
||||
FRAME_walk01,
|
||||
FRAME_walk08,
|
||||
actor_frames_walk,
|
||||
NULL
|
||||
};
|
||||
|
||||
void actor_walk (edict_t *self)
|
||||
{
|
||||
self->monsterinfo.currentmove = &actor_move_walk;
|
||||
}
|
||||
|
||||
|
||||
static mframe_t actor_frames_run [] =
|
||||
{
|
||||
{ai_run, 4, NULL},
|
||||
{ai_run, 15, NULL},
|
||||
{ai_run, 15, NULL},
|
||||
{ai_run, 8, NULL},
|
||||
{ai_run, 20, NULL},
|
||||
{ai_run, 15, NULL},
|
||||
{ai_run, 8, NULL},
|
||||
{ai_run, 17, NULL},
|
||||
{ai_run, 12, NULL},
|
||||
{ai_run, -2, NULL},
|
||||
{ai_run, -2, NULL},
|
||||
{ai_run, -1, NULL}
|
||||
};
|
||||
mmove_t actor_move_run = {FRAME_run02, FRAME_run07, actor_frames_run, NULL};
|
||||
|
||||
void actor_run (edict_t *self)
|
||||
{
|
||||
if ((level.time < self->pain_debounce_time) && (!self->enemy))
|
||||
{
|
||||
if (self->movetarget)
|
||||
{
|
||||
actor_walk(self);
|
||||
}
|
||||
else
|
||||
{
|
||||
actor_stand(self);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (self->monsterinfo.aiflags & AI_STAND_GROUND)
|
||||
{
|
||||
actor_stand(self);
|
||||
return;
|
||||
}
|
||||
|
||||
self->monsterinfo.currentmove = &actor_move_run;
|
||||
}
|
||||
|
||||
|
||||
static mframe_t actor_frames_pain1 [] =
|
||||
{
|
||||
{ai_move, -5, NULL},
|
||||
{ai_move, 4, NULL},
|
||||
{ai_move, 1, NULL}
|
||||
};
|
||||
mmove_t actor_move_pain1 = {
|
||||
FRAME_pain101,
|
||||
FRAME_pain103,
|
||||
actor_frames_pain1,
|
||||
actor_run
|
||||
};
|
||||
|
||||
static mframe_t actor_frames_pain2 [] =
|
||||
{
|
||||
{ai_move, -4, NULL},
|
||||
{ai_move, 4, NULL},
|
||||
{ai_move, 0, NULL}
|
||||
};
|
||||
|
||||
mmove_t actor_move_pain2 = {
|
||||
FRAME_pain201,
|
||||
FRAME_pain203,
|
||||
actor_frames_pain2,
|
||||
actor_run
|
||||
};
|
||||
|
||||
static mframe_t actor_frames_pain3 [] =
|
||||
{
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, 1, NULL},
|
||||
{ai_move, 0, NULL}
|
||||
};
|
||||
mmove_t actor_move_pain3 = {
|
||||
FRAME_pain301,
|
||||
FRAME_pain303,
|
||||
actor_frames_pain3,
|
||||
actor_run
|
||||
};
|
||||
|
||||
static mframe_t actor_frames_flipoff [] =
|
||||
{
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL}
|
||||
};
|
||||
mmove_t actor_move_flipoff = {
|
||||
FRAME_flip01,
|
||||
FRAME_flip14,
|
||||
actor_frames_flipoff,
|
||||
actor_run
|
||||
};
|
||||
|
||||
static mframe_t actor_frames_taunt [] =
|
||||
{
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL},
|
||||
{ai_turn, 0, NULL}
|
||||
};
|
||||
mmove_t actor_move_taunt = {
|
||||
FRAME_taunt01,
|
||||
FRAME_taunt17,
|
||||
actor_frames_taunt,
|
||||
actor_run
|
||||
};
|
||||
|
||||
char *messages[] =
|
||||
{
|
||||
"Watch it",
|
||||
"#$@*&",
|
||||
"Idiot",
|
||||
"Check your targets"
|
||||
};
|
||||
|
||||
void actor_pain (edict_t *self, edict_t *other, float kick, int damage)
|
||||
{
|
||||
int n;
|
||||
|
||||
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;
|
||||
// gi.sound (self, CHAN_VOICE, actor.sound_pain, 1, ATTN_NORM, 0);
|
||||
|
||||
if ((other->client) && (random() < 0.4))
|
||||
{
|
||||
vec3_t v;
|
||||
char *name;
|
||||
|
||||
VectorSubtract (other->s.origin, self->s.origin, v);
|
||||
self->ideal_yaw = vectoyaw (v);
|
||||
if (random() < 0.5)
|
||||
self->monsterinfo.currentmove = &actor_move_flipoff;
|
||||
else
|
||||
self->monsterinfo.currentmove = &actor_move_taunt;
|
||||
name = actor_names[(self - g_edicts)%MAX_ACTOR_NAMES];
|
||||
gi.cprintf (other, PRINT_CHAT, "%s: %s!\n", name, messages[rand()%3]);
|
||||
return;
|
||||
}
|
||||
|
||||
n = rand() % 3;
|
||||
if (n == 0)
|
||||
self->monsterinfo.currentmove = &actor_move_pain1;
|
||||
else if (n == 1)
|
||||
self->monsterinfo.currentmove = &actor_move_pain2;
|
||||
else
|
||||
self->monsterinfo.currentmove = &actor_move_pain3;
|
||||
}
|
||||
|
||||
|
||||
void actorMachineGun (edict_t *self)
|
||||
{
|
||||
vec3_t start, target;
|
||||
vec3_t forward, right;
|
||||
|
||||
AngleVectors (self->s.angles, forward, right, NULL);
|
||||
G_ProjectSource (self->s.origin, monster_flash_offset[MZ2_ACTOR_MACHINEGUN_1], forward, right, start);
|
||||
if (self->enemy)
|
||||
{
|
||||
if (self->enemy->health > 0)
|
||||
{
|
||||
VectorMA (self->enemy->s.origin, -0.2, self->enemy->velocity, target);
|
||||
target[2] += self->enemy->viewheight;
|
||||
}
|
||||
else
|
||||
{
|
||||
VectorCopy (self->enemy->absmin, target);
|
||||
target[2] += (self->enemy->size[2] / 2);
|
||||
}
|
||||
VectorSubtract (target, start, forward);
|
||||
VectorNormalize (forward);
|
||||
}
|
||||
else
|
||||
{
|
||||
AngleVectors (self->s.angles, forward, NULL, NULL);
|
||||
}
|
||||
monster_fire_bullet (self, start, forward, 3, 4, DEFAULT_BULLET_HSPREAD, DEFAULT_BULLET_VSPREAD, MZ2_ACTOR_MACHINEGUN_1);
|
||||
}
|
||||
|
||||
|
||||
void actor_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);
|
||||
}
|
||||
|
||||
static mframe_t actor_frames_death1 [] =
|
||||
{
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, -13, NULL},
|
||||
{ai_move, 14, NULL},
|
||||
{ai_move, 3, NULL},
|
||||
{ai_move, -2, NULL},
|
||||
{ai_move, 1, NULL}
|
||||
};
|
||||
mmove_t actor_move_death1 = {
|
||||
FRAME_death101,
|
||||
FRAME_death107,
|
||||
actor_frames_death1,
|
||||
actor_dead
|
||||
};
|
||||
|
||||
static mframe_t actor_frames_death2 [] =
|
||||
{
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 7, NULL},
|
||||
{ai_move, -6, NULL},
|
||||
{ai_move, -5, NULL},
|
||||
{ai_move, 1, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, -2, NULL},
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, -9, NULL},
|
||||
{ai_move, -13, NULL},
|
||||
{ai_move, -13, NULL},
|
||||
{ai_move, 0, NULL}
|
||||
};
|
||||
mmove_t actor_move_death2 = {
|
||||
FRAME_death201,
|
||||
FRAME_death213,
|
||||
actor_frames_death2,
|
||||
actor_dead
|
||||
};
|
||||
|
||||
void actor_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
|
||||
{
|
||||
int n;
|
||||
|
||||
// check for gib
|
||||
if (self->health <= -80)
|
||||
{
|
||||
// gi.sound (self, CHAN_VOICE, actor.sound_gib, 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
|
||||
// gi.sound (self, CHAN_VOICE, actor.sound_die, 1, ATTN_NORM, 0);
|
||||
self->deadflag = DEAD_DEAD;
|
||||
self->takedamage = DAMAGE_YES;
|
||||
|
||||
n = rand() % 2;
|
||||
if (n == 0)
|
||||
self->monsterinfo.currentmove = &actor_move_death1;
|
||||
else
|
||||
self->monsterinfo.currentmove = &actor_move_death2;
|
||||
}
|
||||
|
||||
|
||||
void actor_fire (edict_t *self)
|
||||
{
|
||||
actorMachineGun (self);
|
||||
|
||||
if (level.time >= self->monsterinfo.pausetime)
|
||||
self->monsterinfo.aiflags &= ~AI_HOLD_FRAME;
|
||||
else
|
||||
self->monsterinfo.aiflags |= AI_HOLD_FRAME;
|
||||
}
|
||||
|
||||
static mframe_t actor_frames_attack [] =
|
||||
{
|
||||
{ai_charge, -2, actor_fire},
|
||||
{ai_charge, -2, NULL},
|
||||
{ai_charge, 3, NULL},
|
||||
{ai_charge, 2, NULL}
|
||||
};
|
||||
|
||||
mmove_t actor_move_attack = {
|
||||
FRAME_attak01,
|
||||
FRAME_attak04,
|
||||
actor_frames_attack,
|
||||
actor_run
|
||||
};
|
||||
|
||||
void actor_attack(edict_t *self)
|
||||
{
|
||||
int n;
|
||||
|
||||
self->monsterinfo.currentmove = &actor_move_attack;
|
||||
n = (rand() & 15) + 3 + 7;
|
||||
self->monsterinfo.pausetime = level.time + n * FRAMETIME;
|
||||
}
|
||||
|
||||
|
||||
void actor_use (edict_t *self, edict_t *other, edict_t *activator)
|
||||
{
|
||||
vec3_t v;
|
||||
|
||||
self->goalentity = self->movetarget = G_PickTarget(self->target);
|
||||
if ((!self->movetarget) || (strcmp(self->movetarget->classname, "target_actor") != 0))
|
||||
{
|
||||
gi.dprintf ("%s has bad target %s at %s\n", self->classname, self->target, vtos(self->s.origin));
|
||||
self->target = NULL;
|
||||
self->monsterinfo.pausetime = 100000000;
|
||||
self->monsterinfo.stand (self);
|
||||
return;
|
||||
}
|
||||
|
||||
VectorSubtract (self->goalentity->s.origin, self->s.origin, v);
|
||||
self->ideal_yaw = self->s.angles[YAW] = vectoyaw(v);
|
||||
self->monsterinfo.walk (self);
|
||||
self->target = NULL;
|
||||
}
|
||||
|
||||
|
||||
/*QUAKED misc_actor (1 .5 0) (-16 -16 -24) (16 16 32)
|
||||
*/
|
||||
|
||||
void SP_misc_actor (edict_t *self)
|
||||
{
|
||||
if (deathmatch->value)
|
||||
{
|
||||
G_FreeEdict (self);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!self->targetname)
|
||||
{
|
||||
gi.dprintf("untargeted %s at %s\n", self->classname, vtos(self->s.origin));
|
||||
G_FreeEdict (self);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!self->target)
|
||||
{
|
||||
gi.dprintf("%s with no target at %s\n", self->classname, vtos(self->s.origin));
|
||||
G_FreeEdict (self);
|
||||
return;
|
||||
}
|
||||
|
||||
self->movetype = MOVETYPE_STEP;
|
||||
self->solid = SOLID_BBOX;
|
||||
self->s.modelindex = gi.modelindex("players/male/tris.md2");
|
||||
VectorSet (self->mins, -16, -16, -24);
|
||||
VectorSet (self->maxs, 16, 16, 32);
|
||||
|
||||
if (!self->health)
|
||||
self->health = 100;
|
||||
self->mass = 200;
|
||||
|
||||
self->pain = actor_pain;
|
||||
self->die = actor_die;
|
||||
|
||||
self->monsterinfo.stand = actor_stand;
|
||||
self->monsterinfo.walk = actor_walk;
|
||||
self->monsterinfo.run = actor_run;
|
||||
self->monsterinfo.attack = actor_attack;
|
||||
self->monsterinfo.melee = NULL;
|
||||
self->monsterinfo.sight = NULL;
|
||||
|
||||
self->monsterinfo.aiflags |= AI_GOOD_GUY;
|
||||
|
||||
gi.linkentity (self);
|
||||
|
||||
self->monsterinfo.currentmove = &actor_move_stand;
|
||||
self->monsterinfo.scale = MODEL_SCALE;
|
||||
|
||||
walkmonster_start (self);
|
||||
|
||||
// actors always start in a dormant state, they *must* be used to get going
|
||||
self->use = actor_use;
|
||||
}
|
||||
|
||||
|
||||
/*QUAKED target_actor (.5 .3 0) (-8 -8 -8) (8 8 8) JUMP SHOOT ATTACK x HOLD BRUTAL
|
||||
JUMP jump in set direction upon reaching this target
|
||||
SHOOT take a single shot at the pathtarget
|
||||
ATTACK attack pathtarget until it or actor is dead
|
||||
|
||||
"target" next target_actor
|
||||
"pathtarget" target of any action to be taken at this point
|
||||
"wait" amount of time actor should pause at this point
|
||||
"message" actor will "say" this to the player
|
||||
|
||||
for JUMP only:
|
||||
"speed" speed thrown forward (default 200)
|
||||
"height" speed thrown upwards (default 200)
|
||||
*/
|
||||
|
||||
void target_actor_touch (edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
|
||||
{
|
||||
vec3_t v;
|
||||
|
||||
if (other->movetarget != self)
|
||||
return;
|
||||
|
||||
if (other->enemy)
|
||||
return;
|
||||
|
||||
other->goalentity = other->movetarget = NULL;
|
||||
|
||||
if (self->message)
|
||||
{
|
||||
int n;
|
||||
edict_t *ent;
|
||||
|
||||
for (n = 1; n <= game.maxclients; n++)
|
||||
{
|
||||
ent = &g_edicts[n];
|
||||
if (!ent->inuse)
|
||||
continue;
|
||||
gi.cprintf (ent, PRINT_CHAT, "%s: %s\n", actor_names[(other - g_edicts)%MAX_ACTOR_NAMES], self->message);
|
||||
}
|
||||
}
|
||||
|
||||
if (self->spawnflags & 1) //jump
|
||||
{
|
||||
other->velocity[0] = self->movedir[0] * self->speed;
|
||||
other->velocity[1] = self->movedir[1] * self->speed;
|
||||
|
||||
if (other->groundentity)
|
||||
{
|
||||
other->groundentity = NULL;
|
||||
other->velocity[2] = self->movedir[2];
|
||||
gi.sound(other, CHAN_VOICE, gi.soundindex("player/male/jump1.wav"), 1, ATTN_NORM, 0);
|
||||
}
|
||||
}
|
||||
|
||||
if (self->spawnflags & 2) //shoot
|
||||
{
|
||||
}
|
||||
else if (self->spawnflags & 4) //attack
|
||||
{
|
||||
other->enemy = G_PickTarget(self->pathtarget);
|
||||
if (other->enemy)
|
||||
{
|
||||
other->goalentity = other->enemy;
|
||||
if (self->spawnflags & 32)
|
||||
other->monsterinfo.aiflags |= AI_BRUTAL;
|
||||
if (self->spawnflags & 16)
|
||||
{
|
||||
other->monsterinfo.aiflags |= AI_STAND_GROUND;
|
||||
actor_stand (other);
|
||||
}
|
||||
else
|
||||
{
|
||||
actor_run (other);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!(self->spawnflags & 6) && (self->pathtarget))
|
||||
{
|
||||
char *savetarget;
|
||||
|
||||
savetarget = self->target;
|
||||
self->target = self->pathtarget;
|
||||
G_UseTargets (self, other);
|
||||
self->target = savetarget;
|
||||
}
|
||||
|
||||
other->movetarget = G_PickTarget(self->target);
|
||||
|
||||
if (!other->goalentity)
|
||||
other->goalentity = other->movetarget;
|
||||
|
||||
if (!other->movetarget && !other->enemy)
|
||||
{
|
||||
other->monsterinfo.pausetime = level.time + 100000000;
|
||||
other->monsterinfo.stand (other);
|
||||
}
|
||||
else if (other->movetarget == other->goalentity)
|
||||
{
|
||||
VectorSubtract (other->movetarget->s.origin, other->s.origin, v);
|
||||
other->ideal_yaw = vectoyaw (v);
|
||||
}
|
||||
}
|
||||
|
||||
void SP_target_actor (edict_t *self)
|
||||
{
|
||||
if (!self->targetname)
|
||||
{
|
||||
gi.dprintf ("%s with no targetname at %s\n",
|
||||
self->classname, vtos(self->s.origin));
|
||||
}
|
||||
|
||||
self->solid = SOLID_TRIGGER;
|
||||
self->touch = target_actor_touch;
|
||||
VectorSet (self->mins, -8, -8, -8);
|
||||
VectorSet (self->maxs, 8, 8, 8);
|
||||
self->svflags = SVF_NOCLIENT;
|
||||
|
||||
if (self->spawnflags & 1)
|
||||
{
|
||||
if (!self->speed)
|
||||
self->speed = 200;
|
||||
if (!st.height)
|
||||
st.height = 200;
|
||||
if (self->s.angles[YAW] == 0)
|
||||
self->s.angles[YAW] = 360;
|
||||
G_SetMovedir (self->s.angles, self->movedir);
|
||||
self->movedir[2] = st.height;
|
||||
}
|
||||
|
||||
gi.linkentity (self);
|
||||
}
|
505
src/game/monster/actor/actor.h
Normal file
505
src/game/monster/actor/actor.h
Normal file
|
@ -0,0 +1,505 @@
|
|||
/*
|
||||
* Copyright (C) 1997-2001 Id Software, Inc.
|
||||
* Copyright (c) ZeniMax Media 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#define FRAME_attak01 0
|
||||
#define FRAME_attak02 1
|
||||
#define FRAME_attak03 2
|
||||
#define FRAME_attak04 3
|
||||
#define FRAME_death101 4
|
||||
#define FRAME_death102 5
|
||||
#define FRAME_death103 6
|
||||
#define FRAME_death104 7
|
||||
#define FRAME_death105 8
|
||||
#define FRAME_death106 9
|
||||
#define FRAME_death107 10
|
||||
#define FRAME_death201 11
|
||||
#define FRAME_death202 12
|
||||
#define FRAME_death203 13
|
||||
#define FRAME_death204 14
|
||||
#define FRAME_death205 15
|
||||
#define FRAME_death206 16
|
||||
#define FRAME_death207 17
|
||||
#define FRAME_death208 18
|
||||
#define FRAME_death209 19
|
||||
#define FRAME_death210 20
|
||||
#define FRAME_death211 21
|
||||
#define FRAME_death212 22
|
||||
#define FRAME_death213 23
|
||||
#define FRAME_death301 24
|
||||
#define FRAME_death302 25
|
||||
#define FRAME_death303 26
|
||||
#define FRAME_death304 27
|
||||
#define FRAME_death305 28
|
||||
#define FRAME_death306 29
|
||||
#define FRAME_death307 30
|
||||
#define FRAME_death308 31
|
||||
#define FRAME_death309 32
|
||||
#define FRAME_death310 33
|
||||
#define FRAME_death311 34
|
||||
#define FRAME_death312 35
|
||||
#define FRAME_death313 36
|
||||
#define FRAME_death314 37
|
||||
#define FRAME_death315 38
|
||||
#define FRAME_flip01 39
|
||||
#define FRAME_flip02 40
|
||||
#define FRAME_flip03 41
|
||||
#define FRAME_flip04 42
|
||||
#define FRAME_flip05 43
|
||||
#define FRAME_flip06 44
|
||||
#define FRAME_flip07 45
|
||||
#define FRAME_flip08 46
|
||||
#define FRAME_flip09 47
|
||||
#define FRAME_flip10 48
|
||||
#define FRAME_flip11 49
|
||||
#define FRAME_flip12 50
|
||||
#define FRAME_flip13 51
|
||||
#define FRAME_flip14 52
|
||||
#define FRAME_grenad01 53
|
||||
#define FRAME_grenad02 54
|
||||
#define FRAME_grenad03 55
|
||||
#define FRAME_grenad04 56
|
||||
#define FRAME_grenad05 57
|
||||
#define FRAME_grenad06 58
|
||||
#define FRAME_grenad07 59
|
||||
#define FRAME_grenad08 60
|
||||
#define FRAME_grenad09 61
|
||||
#define FRAME_grenad10 62
|
||||
#define FRAME_grenad11 63
|
||||
#define FRAME_grenad12 64
|
||||
#define FRAME_grenad13 65
|
||||
#define FRAME_grenad14 66
|
||||
#define FRAME_grenad15 67
|
||||
#define FRAME_jump01 68
|
||||
#define FRAME_jump02 69
|
||||
#define FRAME_jump03 70
|
||||
#define FRAME_jump04 71
|
||||
#define FRAME_jump05 72
|
||||
#define FRAME_jump06 73
|
||||
#define FRAME_pain101 74
|
||||
#define FRAME_pain102 75
|
||||
#define FRAME_pain103 76
|
||||
#define FRAME_pain201 77
|
||||
#define FRAME_pain202 78
|
||||
#define FRAME_pain203 79
|
||||
#define FRAME_pain301 80
|
||||
#define FRAME_pain302 81
|
||||
#define FRAME_pain303 82
|
||||
#define FRAME_push01 83
|
||||
#define FRAME_push02 84
|
||||
#define FRAME_push03 85
|
||||
#define FRAME_push04 86
|
||||
#define FRAME_push05 87
|
||||
#define FRAME_push06 88
|
||||
#define FRAME_push07 89
|
||||
#define FRAME_push08 90
|
||||
#define FRAME_push09 91
|
||||
#define FRAME_run01 92
|
||||
#define FRAME_run02 93
|
||||
#define FRAME_run03 94
|
||||
#define FRAME_run04 95
|
||||
#define FRAME_run05 96
|
||||
#define FRAME_run06 97
|
||||
#define FRAME_run07 98
|
||||
#define FRAME_run08 99
|
||||
#define FRAME_run09 100
|
||||
#define FRAME_run10 101
|
||||
#define FRAME_run11 102
|
||||
#define FRAME_run12 103
|
||||
#define FRAME_runs01 104
|
||||
#define FRAME_runs02 105
|
||||
#define FRAME_runs03 106
|
||||
#define FRAME_runs04 107
|
||||
#define FRAME_runs05 108
|
||||
#define FRAME_runs06 109
|
||||
#define FRAME_runs07 110
|
||||
#define FRAME_runs08 111
|
||||
#define FRAME_runs09 112
|
||||
#define FRAME_runs10 113
|
||||
#define FRAME_runs11 114
|
||||
#define FRAME_runs12 115
|
||||
#define FRAME_salute01 116
|
||||
#define FRAME_salute02 117
|
||||
#define FRAME_salute03 118
|
||||
#define FRAME_salute04 119
|
||||
#define FRAME_salute05 120
|
||||
#define FRAME_salute06 121
|
||||
#define FRAME_salute07 122
|
||||
#define FRAME_salute08 123
|
||||
#define FRAME_salute09 124
|
||||
#define FRAME_salute10 125
|
||||
#define FRAME_salute11 126
|
||||
#define FRAME_salute12 127
|
||||
#define FRAME_stand101 128
|
||||
#define FRAME_stand102 129
|
||||
#define FRAME_stand103 130
|
||||
#define FRAME_stand104 131
|
||||
#define FRAME_stand105 132
|
||||
#define FRAME_stand106 133
|
||||
#define FRAME_stand107 134
|
||||
#define FRAME_stand108 135
|
||||
#define FRAME_stand109 136
|
||||
#define FRAME_stand110 137
|
||||
#define FRAME_stand111 138
|
||||
#define FRAME_stand112 139
|
||||
#define FRAME_stand113 140
|
||||
#define FRAME_stand114 141
|
||||
#define FRAME_stand115 142
|
||||
#define FRAME_stand116 143
|
||||
#define FRAME_stand117 144
|
||||
#define FRAME_stand118 145
|
||||
#define FRAME_stand119 146
|
||||
#define FRAME_stand120 147
|
||||
#define FRAME_stand121 148
|
||||
#define FRAME_stand122 149
|
||||
#define FRAME_stand123 150
|
||||
#define FRAME_stand124 151
|
||||
#define FRAME_stand125 152
|
||||
#define FRAME_stand126 153
|
||||
#define FRAME_stand127 154
|
||||
#define FRAME_stand128 155
|
||||
#define FRAME_stand129 156
|
||||
#define FRAME_stand130 157
|
||||
#define FRAME_stand131 158
|
||||
#define FRAME_stand132 159
|
||||
#define FRAME_stand133 160
|
||||
#define FRAME_stand134 161
|
||||
#define FRAME_stand135 162
|
||||
#define FRAME_stand136 163
|
||||
#define FRAME_stand137 164
|
||||
#define FRAME_stand138 165
|
||||
#define FRAME_stand139 166
|
||||
#define FRAME_stand140 167
|
||||
#define FRAME_stand201 168
|
||||
#define FRAME_stand202 169
|
||||
#define FRAME_stand203 170
|
||||
#define FRAME_stand204 171
|
||||
#define FRAME_stand205 172
|
||||
#define FRAME_stand206 173
|
||||
#define FRAME_stand207 174
|
||||
#define FRAME_stand208 175
|
||||
#define FRAME_stand209 176
|
||||
#define FRAME_stand210 177
|
||||
#define FRAME_stand211 178
|
||||
#define FRAME_stand212 179
|
||||
#define FRAME_stand213 180
|
||||
#define FRAME_stand214 181
|
||||
#define FRAME_stand215 182
|
||||
#define FRAME_stand216 183
|
||||
#define FRAME_stand217 184
|
||||
#define FRAME_stand218 185
|
||||
#define FRAME_stand219 186
|
||||
#define FRAME_stand220 187
|
||||
#define FRAME_stand221 188
|
||||
#define FRAME_stand222 189
|
||||
#define FRAME_stand223 190
|
||||
#define FRAME_swim01 191
|
||||
#define FRAME_swim02 192
|
||||
#define FRAME_swim03 193
|
||||
#define FRAME_swim04 194
|
||||
#define FRAME_swim05 195
|
||||
#define FRAME_swim06 196
|
||||
#define FRAME_swim07 197
|
||||
#define FRAME_swim08 198
|
||||
#define FRAME_swim09 199
|
||||
#define FRAME_swim10 200
|
||||
#define FRAME_swim11 201
|
||||
#define FRAME_swim12 202
|
||||
#define FRAME_sw_atk01 203
|
||||
#define FRAME_sw_atk02 204
|
||||
#define FRAME_sw_atk03 205
|
||||
#define FRAME_sw_atk04 206
|
||||
#define FRAME_sw_atk05 207
|
||||
#define FRAME_sw_atk06 208
|
||||
#define FRAME_sw_pan01 209
|
||||
#define FRAME_sw_pan02 210
|
||||
#define FRAME_sw_pan03 211
|
||||
#define FRAME_sw_pan04 212
|
||||
#define FRAME_sw_pan05 213
|
||||
#define FRAME_sw_std01 214
|
||||
#define FRAME_sw_std02 215
|
||||
#define FRAME_sw_std03 216
|
||||
#define FRAME_sw_std04 217
|
||||
#define FRAME_sw_std05 218
|
||||
#define FRAME_sw_std06 219
|
||||
#define FRAME_sw_std07 220
|
||||
#define FRAME_sw_std08 221
|
||||
#define FRAME_sw_std09 222
|
||||
#define FRAME_sw_std10 223
|
||||
#define FRAME_sw_std11 224
|
||||
#define FRAME_sw_std12 225
|
||||
#define FRAME_sw_std13 226
|
||||
#define FRAME_sw_std14 227
|
||||
#define FRAME_sw_std15 228
|
||||
#define FRAME_sw_std16 229
|
||||
#define FRAME_sw_std17 230
|
||||
#define FRAME_sw_std18 231
|
||||
#define FRAME_sw_std19 232
|
||||
#define FRAME_sw_std20 233
|
||||
#define FRAME_taunt01 234
|
||||
#define FRAME_taunt02 235
|
||||
#define FRAME_taunt03 236
|
||||
#define FRAME_taunt04 237
|
||||
#define FRAME_taunt05 238
|
||||
#define FRAME_taunt06 239
|
||||
#define FRAME_taunt07 240
|
||||
#define FRAME_taunt08 241
|
||||
#define FRAME_taunt09 242
|
||||
#define FRAME_taunt10 243
|
||||
#define FRAME_taunt11 244
|
||||
#define FRAME_taunt12 245
|
||||
#define FRAME_taunt13 246
|
||||
#define FRAME_taunt14 247
|
||||
#define FRAME_taunt15 248
|
||||
#define FRAME_taunt16 249
|
||||
#define FRAME_taunt17 250
|
||||
#define FRAME_walk01 251
|
||||
#define FRAME_walk02 252
|
||||
#define FRAME_walk03 253
|
||||
#define FRAME_walk04 254
|
||||
#define FRAME_walk05 255
|
||||
#define FRAME_walk06 256
|
||||
#define FRAME_walk07 257
|
||||
#define FRAME_walk08 258
|
||||
#define FRAME_walk09 259
|
||||
#define FRAME_walk10 260
|
||||
#define FRAME_walk11 261
|
||||
#define FRAME_wave01 262
|
||||
#define FRAME_wave02 263
|
||||
#define FRAME_wave03 264
|
||||
#define FRAME_wave04 265
|
||||
#define FRAME_wave05 266
|
||||
#define FRAME_wave06 267
|
||||
#define FRAME_wave07 268
|
||||
#define FRAME_wave08 269
|
||||
#define FRAME_wave09 270
|
||||
#define FRAME_wave10 271
|
||||
#define FRAME_wave11 272
|
||||
#define FRAME_wave12 273
|
||||
#define FRAME_wave13 274
|
||||
#define FRAME_wave14 275
|
||||
#define FRAME_wave15 276
|
||||
#define FRAME_wave16 277
|
||||
#define FRAME_wave17 278
|
||||
#define FRAME_wave18 279
|
||||
#define FRAME_wave19 280
|
||||
#define FRAME_wave20 281
|
||||
#define FRAME_wave21 282
|
||||
#define FRAME_bl_atk01 283
|
||||
#define FRAME_bl_atk02 284
|
||||
#define FRAME_bl_atk03 285
|
||||
#define FRAME_bl_atk04 286
|
||||
#define FRAME_bl_atk05 287
|
||||
#define FRAME_bl_atk06 288
|
||||
#define FRAME_bl_flp01 289
|
||||
#define FRAME_bl_flp02 290
|
||||
#define FRAME_bl_flp13 291
|
||||
#define FRAME_bl_flp14 292
|
||||
#define FRAME_bl_flp15 293
|
||||
#define FRAME_bl_jmp01 294
|
||||
#define FRAME_bl_jmp02 295
|
||||
#define FRAME_bl_jmp03 296
|
||||
#define FRAME_bl_jmp04 297
|
||||
#define FRAME_bl_jmp05 298
|
||||
#define FRAME_bl_jmp06 299
|
||||
#define FRAME_bl_pn101 300
|
||||
#define FRAME_bl_pn102 301
|
||||
#define FRAME_bl_pn103 302
|
||||
#define FRAME_bl_pn201 303
|
||||
#define FRAME_bl_pn202 304
|
||||
#define FRAME_bl_pn203 305
|
||||
#define FRAME_bl_pn301 306
|
||||
#define FRAME_bl_pn302 307
|
||||
#define FRAME_bl_pn303 308
|
||||
#define FRAME_bl_psh08 309
|
||||
#define FRAME_bl_psh09 310
|
||||
#define FRAME_bl_run01 311
|
||||
#define FRAME_bl_run02 312
|
||||
#define FRAME_bl_run03 313
|
||||
#define FRAME_bl_run04 314
|
||||
#define FRAME_bl_run05 315
|
||||
#define FRAME_bl_run06 316
|
||||
#define FRAME_bl_run07 317
|
||||
#define FRAME_bl_run08 318
|
||||
#define FRAME_bl_run09 319
|
||||
#define FRAME_bl_run10 320
|
||||
#define FRAME_bl_run11 321
|
||||
#define FRAME_bl_run12 322
|
||||
#define FRAME_bl_rns03 323
|
||||
#define FRAME_bl_rns04 324
|
||||
#define FRAME_bl_rns05 325
|
||||
#define FRAME_bl_rns06 326
|
||||
#define FRAME_bl_rns07 327
|
||||
#define FRAME_bl_rns08 328
|
||||
#define FRAME_bl_rns09 329
|
||||
#define FRAME_bl_sal10 330
|
||||
#define FRAME_bl_sal11 331
|
||||
#define FRAME_bl_sal12 332
|
||||
#define FRAME_bl_std01 333
|
||||
#define FRAME_bl_std02 334
|
||||
#define FRAME_bl_std03 335
|
||||
#define FRAME_bl_std04 336
|
||||
#define FRAME_bl_std05 337
|
||||
#define FRAME_bl_std06 338
|
||||
#define FRAME_bl_std07 339
|
||||
#define FRAME_bl_std08 340
|
||||
#define FRAME_bl_std09 341
|
||||
#define FRAME_bl_std10 342
|
||||
#define FRAME_bl_std11 343
|
||||
#define FRAME_bl_std12 344
|
||||
#define FRAME_bl_std13 345
|
||||
#define FRAME_bl_std14 346
|
||||
#define FRAME_bl_std15 347
|
||||
#define FRAME_bl_std16 348
|
||||
#define FRAME_bl_std17 349
|
||||
#define FRAME_bl_std18 350
|
||||
#define FRAME_bl_std19 351
|
||||
#define FRAME_bl_std20 352
|
||||
#define FRAME_bl_std21 353
|
||||
#define FRAME_bl_std22 354
|
||||
#define FRAME_bl_std23 355
|
||||
#define FRAME_bl_std24 356
|
||||
#define FRAME_bl_std25 357
|
||||
#define FRAME_bl_std26 358
|
||||
#define FRAME_bl_std27 359
|
||||
#define FRAME_bl_std28 360
|
||||
#define FRAME_bl_std29 361
|
||||
#define FRAME_bl_std30 362
|
||||
#define FRAME_bl_std31 363
|
||||
#define FRAME_bl_std32 364
|
||||
#define FRAME_bl_std33 365
|
||||
#define FRAME_bl_std34 366
|
||||
#define FRAME_bl_std35 367
|
||||
#define FRAME_bl_std36 368
|
||||
#define FRAME_bl_std37 369
|
||||
#define FRAME_bl_std38 370
|
||||
#define FRAME_bl_std39 371
|
||||
#define FRAME_bl_std40 372
|
||||
#define FRAME_bl_swm01 373
|
||||
#define FRAME_bl_swm02 374
|
||||
#define FRAME_bl_swm03 375
|
||||
#define FRAME_bl_swm04 376
|
||||
#define FRAME_bl_swm05 377
|
||||
#define FRAME_bl_swm06 378
|
||||
#define FRAME_bl_swm07 379
|
||||
#define FRAME_bl_swm08 380
|
||||
#define FRAME_bl_swm09 381
|
||||
#define FRAME_bl_swm10 382
|
||||
#define FRAME_bl_swm11 383
|
||||
#define FRAME_bl_swm12 384
|
||||
#define FRAME_bl_swk01 385
|
||||
#define FRAME_bl_swk02 386
|
||||
#define FRAME_bl_swk03 387
|
||||
#define FRAME_bl_swk04 388
|
||||
#define FRAME_bl_swk05 389
|
||||
#define FRAME_bl_swk06 390
|
||||
#define FRAME_bl_swp01 391
|
||||
#define FRAME_bl_swp02 392
|
||||
#define FRAME_bl_swp03 393
|
||||
#define FRAME_bl_swp04 394
|
||||
#define FRAME_bl_swp05 395
|
||||
#define FRAME_bl_sws01 396
|
||||
#define FRAME_bl_sws02 397
|
||||
#define FRAME_bl_sws03 398
|
||||
#define FRAME_bl_sws04 399
|
||||
#define FRAME_bl_sws05 400
|
||||
#define FRAME_bl_sws06 401
|
||||
#define FRAME_bl_sws07 402
|
||||
#define FRAME_bl_sws08 403
|
||||
#define FRAME_bl_sws09 404
|
||||
#define FRAME_bl_sws10 405
|
||||
#define FRAME_bl_sws11 406
|
||||
#define FRAME_bl_sws12 407
|
||||
#define FRAME_bl_sws13 408
|
||||
#define FRAME_bl_sws14 409
|
||||
#define FRAME_bl_tau14 410
|
||||
#define FRAME_bl_tau15 411
|
||||
#define FRAME_bl_tau16 412
|
||||
#define FRAME_bl_tau17 413
|
||||
#define FRAME_bl_wlk01 414
|
||||
#define FRAME_bl_wlk02 415
|
||||
#define FRAME_bl_wlk03 416
|
||||
#define FRAME_bl_wlk04 417
|
||||
#define FRAME_bl_wlk05 418
|
||||
#define FRAME_bl_wlk06 419
|
||||
#define FRAME_bl_wlk07 420
|
||||
#define FRAME_bl_wlk08 421
|
||||
#define FRAME_bl_wlk09 422
|
||||
#define FRAME_bl_wlk10 423
|
||||
#define FRAME_bl_wlk11 424
|
||||
#define FRAME_bl_wav19 425
|
||||
#define FRAME_bl_wav20 426
|
||||
#define FRAME_bl_wav21 427
|
||||
#define FRAME_cr_atk01 428
|
||||
#define FRAME_cr_atk02 429
|
||||
#define FRAME_cr_atk03 430
|
||||
#define FRAME_cr_atk04 431
|
||||
#define FRAME_cr_atk05 432
|
||||
#define FRAME_cr_atk06 433
|
||||
#define FRAME_cr_atk07 434
|
||||
#define FRAME_cr_atk08 435
|
||||
#define FRAME_cr_pan01 436
|
||||
#define FRAME_cr_pan02 437
|
||||
#define FRAME_cr_pan03 438
|
||||
#define FRAME_cr_pan04 439
|
||||
#define FRAME_cr_std01 440
|
||||
#define FRAME_cr_std02 441
|
||||
#define FRAME_cr_std03 442
|
||||
#define FRAME_cr_std04 443
|
||||
#define FRAME_cr_std05 444
|
||||
#define FRAME_cr_std06 445
|
||||
#define FRAME_cr_std07 446
|
||||
#define FRAME_cr_std08 447
|
||||
#define FRAME_cr_wlk01 448
|
||||
#define FRAME_cr_wlk02 449
|
||||
#define FRAME_cr_wlk03 450
|
||||
#define FRAME_cr_wlk04 451
|
||||
#define FRAME_cr_wlk05 452
|
||||
#define FRAME_cr_wlk06 453
|
||||
#define FRAME_cr_wlk07 454
|
||||
#define FRAME_crbl_a01 455
|
||||
#define FRAME_crbl_a02 456
|
||||
#define FRAME_crbl_a03 457
|
||||
#define FRAME_crbl_a04 458
|
||||
#define FRAME_crbl_a05 459
|
||||
#define FRAME_crbl_a06 460
|
||||
#define FRAME_crbl_a07 461
|
||||
#define FRAME_crbl_p01 462
|
||||
#define FRAME_crbl_p02 463
|
||||
#define FRAME_crbl_p03 464
|
||||
#define FRAME_crbl_p04 465
|
||||
#define FRAME_crbl_s01 466
|
||||
#define FRAME_crbl_s02 467
|
||||
#define FRAME_crbl_s03 468
|
||||
#define FRAME_crbl_s04 469
|
||||
#define FRAME_crbl_s05 470
|
||||
#define FRAME_crbl_s06 471
|
||||
#define FRAME_crbl_s07 472
|
||||
#define FRAME_crbl_s08 473
|
||||
#define FRAME_crbl_w01 474
|
||||
#define FRAME_crbl_w02 475
|
||||
#define FRAME_crbl_w03 476
|
||||
#define FRAME_crbl_w04 477
|
||||
#define FRAME_crbl_w05 478
|
||||
#define FRAME_crbl_w06 479
|
||||
#define FRAME_crbl_w07 480
|
||||
|
||||
#define MODEL_SCALE 1.000000
|
Loading…
Reference in a new issue