g_item.c
来自「著名物理引擎Hawk的源代码」· C语言 代码 · 共 968 行 · 第 1/2 页
C
968 行
/* G_item.c, HAWK game engine
*
* Copyright 1997-1998 by Phil Frisbie, Jr.
* for Hawk Software
*
*/
#include "G_main.h"
#include "G_math.h"
void ItemNullUpdate(OBJECT *obj)
{
return;
}
void ItemRotateUpdate(OBJECT *obj)
{
obj->angles[Z] += Frames * 8;
}
void SP_item_health (entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "item_health";
item->next = NULL;
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/healing/medium/tris.md2");
item->update = ItemNullUpdate;
}
void SP_item_health_small (entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "item_health_small";
item->next = NULL;
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/healing/stimpack/tris.md2");
item->update = ItemNullUpdate;
}
void SP_item_health_large (entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "item_health_large";
item->next = NULL;
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/healing/large/tris.md2");
item->update = ItemNullUpdate;
}
void SP_item_health_mega (entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "item_health_mega";
item->next = NULL;
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/mega_h/tris.md2");
item->update = ItemNullUpdate;
}
void SP_item_armor_body(entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "item_armor_body";
item->next = NULL;
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/armor/body/tris.md2");
item->update = ItemRotateUpdate;
}
void SP_item_armor_combat(entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "item_armor_combat";
item->next = NULL;
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/armor/combat/tris.md2");
item->update = ItemRotateUpdate;
}
void SP_item_armor_jacket(entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "item_armor_jacket";
item->next = NULL;
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/armor/jacket/tris.md2");
item->update = ItemRotateUpdate;
}
void SP_item_armor_shard(entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "item_armor_shard";
item->next = NULL;
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/armor/shard/tris.md2");
item->update = ItemRotateUpdate;
}
void SP_item_power_screen(entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "item_power_screen";
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/armor/screen/tris.md2");
item->update = ItemRotateUpdate;
}
void SP_item_power_shield(entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "item_power_shield";
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/armor/shield/tris.md2");
item->update = ItemRotateUpdate;
}
void SP_item_quad(entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "item_quad";
item->next = NULL;
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/quaddama/tris.md2");
item->update = ItemRotateUpdate;
}
void SP_item_invulnerability(entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "item_invulnerability";
item->next = NULL;
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/invulner/tris.md2");
item->update = ItemRotateUpdate;
}
void SP_item_silencer(entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "item_silencer";
item->next = NULL;
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/silencer/tris.md2");
item->update = ItemRotateUpdate;
}
void SP_item_breather(entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "item_breather";
item->next = NULL;
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/breather/tris.md2");
item->update = ItemRotateUpdate;
}
void SP_item_enviro(entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "item_enviro";
item->next = NULL;
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/enviro/tris.md2");
item->update = ItemRotateUpdate;
}
void SP_item_ancient_head(entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "item_ancient_head";
item->next = NULL;
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/c_head/tris.md2");
item->update = ItemRotateUpdate;
}
void SP_item_adrenaline(entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "item_adrenaline";
item->next = NULL;
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/adrenal/tris.md2");
item->update = ItemRotateUpdate;
}
void SP_item_bandolier(entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "item_bandolier";
item->next = NULL;
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/band/tris.md2");
item->update = ItemRotateUpdate;
}
void SP_item_pack(entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "item_pack";
item->next = NULL;
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/pack/tris.md2");
item->update = ItemRotateUpdate;
}
void SP_key_data_cd(entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "key_data_cd";
item->next = NULL;
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/keys/data_cd/tris.md2");
item->update = ItemRotateUpdate;
}
void SP_key_power_cube(entity_t *entity)
{
OBJECT *item;
item = gi.ObjectAdd();
GetVectorForKey (entity, "origin", item->origin);
item->mins[X] = -16;
item->mins[Y] = -16;
item->mins[Z] = -16;
item->maxs[X] = 16;
item->maxs[Y] = 16;
item->maxs[Z] = 16;
item->type = O_ITEM|O_PULSE;
item->classname = "key_power_cube";
item->next = NULL;
item->animation = NO_ANIMATION;
item->model = gi.ModelLoad("models/items/keys/power/tris.md2");
item->update = ItemRotateUpdate;
}
void SP_key_pyramid(entity_t *entity)
{
OBJECT *item;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?