Ejemplo n.º 1
0
const Pic *GetHeadPic(
	const CharacterClass *c, const direction_e dir, const gunstate_e gunState)
{
	// If firing, draw the firing head pic
	const int row =
		(gunState == GUNSTATE_FIRING || gunState == GUNSTATE_RECOIL) ? 1 : 0;
	const int idx = (int)dir + row * 8;
	return CPicGetPic(&c->HeadPics, idx);
}
Ejemplo n.º 2
0
void DrawKey(UIObject *o, GraphicsDevice *g, struct vec2i pos, void *vData)
{
	const IndexedEditorBrush *data = vData;
	if (data->u.ItemIndex == -1)
	{
		// No key; don't draw
		return;
	}
	const Mission *m = CampaignGetCurrentMission(&gCampaign);
	const Pic *pic = CPicGetPic(
		&KeyPickupClass(m->KeyStyle, data->u.ItemIndex)->Pic, 0);
	pos = svec2i_add(svec2i_add(pos, o->Pos), svec2i_scale_divide(o->Size, 2));
	pos = svec2i_subtract(pos, svec2i_scale_divide(pic->size, 2));
	Blit(g, pic, pos);
}
Ejemplo n.º 3
0
static CPicDrawContext GetBulletDrawContext(const int id)
{
	const TMobileObject *obj = CArrayGet(&gMobObjs, id);
	CASSERT(obj->isInUse, "Cannot draw non-existent mobobj");
	// Calculate direction based on velocity
	const direction_e dir = RadiansToDirection(Vec2iToRadians(obj->vel));
	const Pic *pic = CPicGetPic(&obj->tileItem.CPic, dir);
	CPicDrawContext c;
	c.Dir = dir;
	if (pic != NULL)
	{
		c.Offset = Vec2iNew(
			pic->size.x / -2, pic->size.y / -2 - obj->z / Z_FACTOR);
	}
	return c;
}
Ejemplo n.º 4
0
void CPicDraw(
	GraphicsDevice *g, const CPic *p,
	const Vec2i pos, const CPicDrawContext *context)
{
	const Pic *pic = CPicGetPic(p, context->Dir);
	if (pic == NULL)
	{
		return;
	}
	const Vec2i picPos = Vec2iAdd(pos, context->Offset);
	if (p->UseMask)
	{
		BlitMasked(g, pic, picPos, p->u1.Mask, true);
	}
	else
	{
		BlitBackground(g, pic, picPos, &p->u1.Tint, true);
	}
}
Ejemplo n.º 5
0
static const Pic *GetHeadPic(
	const CharacterClass *c, const direction_e dir, const int state)
{
	const int idx = (int)dir + (state >= STATE_COUNT ? DIRECTION_COUNT : 0);
	return CPicGetPic(&c->HeadPics, idx);
}
Ejemplo n.º 6
0
const Pic *MapObjectGetPic(const MapObject *mo, Vec2i *offset)
{
	*offset = mo->Offset;
	return CPicGetPic(&mo->Pic, 0);
}