m_soldier.c

来自「著名物理引擎Hawk的源代码」· C语言 代码 · 共 127 行

C
127
字号
/* M_soldier.c, HAWK game engine
 *
 * Copyright 1997-1998 by Phil Frisbie, Jr.
 * for Hawk Software
 *
 */

#include "G_main.h"
#include "G_math.h"
#include "M_soldier.h"


void monster_soldierUpdate(OBJECT *obj)
{
	return;
}


void SP_monster_soldier_light (entity_t *entity)
{
	OBJECT		*monster;

	monster = gi.ObjectAdd();

	GetVectorForKey (entity, "origin", monster->origin);
	monster->angles[Z] = FloatForKey(entity, "angle");
	monster->mins[X] = -16;
	monster->mins[Y] = -16;
	monster->mins[Z] = -24;
	monster->maxs[X] = 16;
	monster->maxs[Y] = 16;
	monster->maxs[Z] = 32;
	monster->pitch = 0;
	monster->radius = 16;
	monster->height = 24;
	monster->speed = 0;
	monster->maxspeed = 20;
	monster->strafeSpeed = 0;
	monster->vertSpeed = 0;
	monster->classname = "monster_soldier_light";
	monster->health = 20;
	monster->turn = 2;
	monster->acc = 2;
	monster->type = O_MONSTER;
	monster->next = NULL;
	monster->model = gi.ModelLoad("models/monsters/soldier/tris.md2");
	monster->skin = 0;
	monster->weapon = NO_MODEL;
	monster->animation = gi.AnimationAdd();
	gi.AnimationSetDefault(monster->animation, FRAME_stand101, FRAME_stand130);
	gi.AnimationSetCurrentFrame(monster->animation, FRAME_stand101 + rand() % 30);
	monster->update = monster_soldierUpdate;
}

void SP_monster_soldier (entity_t *entity)
{
	OBJECT		*monster;

	monster = gi.ObjectAdd();

	GetVectorForKey (entity, "origin", monster->origin);
	monster->angles[Z] = FloatForKey(entity, "angle");
	monster->mins[X] = -16;
	monster->mins[Y] = -16;
	monster->mins[Z] = -24;
	monster->maxs[X] = 16;
	monster->maxs[Y] = 16;
	monster->maxs[Z] = 32;
	monster->pitch = 0;
	monster->radius = 16;
	monster->height = 24;
	monster->speed = 0;
	monster->maxspeed = 20;
	monster->strafeSpeed = 0;
	monster->vertSpeed = 0;
	monster->classname = "monster_soldier";
	monster->health = 30;
	monster->turn = 2;
	monster->acc = 2;
	monster->type = O_MONSTER;
	monster->next = NULL;
	monster->model = gi.ModelLoad("models/monsters/soldier/tris.md2");
	monster->skin = 2;
	monster->weapon = NO_MODEL;
	monster->animation = gi.AnimationAdd();
	gi.AnimationSetDefault(monster->animation, FRAME_stand101, FRAME_stand130);
	gi.AnimationSetCurrentFrame(monster->animation, FRAME_stand101 + rand() % 30);
	monster->update = monster_soldierUpdate;
}

void SP_monster_soldier_ss (entity_t *entity)
{
	OBJECT		*monster;

	monster = gi.ObjectAdd();

	GetVectorForKey (entity, "origin", monster->origin);
	monster->angles[Z] = FloatForKey(entity, "angle");
	monster->mins[X] = -16;
	monster->mins[Y] = -16;
	monster->mins[Z] = -24;
	monster->maxs[X] = 16;
	monster->maxs[Y] = 16;
	monster->maxs[Z] = 32;
	monster->pitch = 0;
	monster->radius = 16;
	monster->height = 24;
	monster->speed = 0;
	monster->maxspeed = 20;
	monster->strafeSpeed = 0;
	monster->vertSpeed = 0;
	monster->classname = "monster_soldier_ss";
	monster->health = 20;
	monster->turn = 2;
	monster->acc = 2;
	monster->type = O_MONSTER;
	monster->next = NULL;
	monster->model = gi.ModelLoad("models/monsters/soldier/tris.md2");
	monster->skin = 4;
	monster->weapon = NO_MODEL;
	monster->animation = gi.AnimationAdd();
	gi.AnimationSetDefault(monster->animation, FRAME_stand101, FRAME_stand130);
	gi.AnimationSetCurrentFrame(monster->animation, FRAME_stand101 + rand() % 30);
	monster->update = monster_soldierUpdate;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?