Ejemplo n.º 1
0
// -----------------------------------------------------------------------------
int LightIncreaseLightVertex(void)
{
	const vmsegptr_t segp = Cursegp;
	set_light_intensity(segp, Curside, Curvert, get_light_intensity(segp, Curside, Curvert) + F1_0 / NUM_LIGHTING_LEVELS);

	return	1;
}
Ejemplo n.º 2
0
static boolean switch_can_be_toggled(
	short side_index,
	boolean player_hit)
{
	boolean valid_toggle= TRUE;
	struct side_data *side= get_side_data(side_index);
	struct control_panel_definition *definition= get_control_panel_definition(side->control_panel_type);
	
	if (side->flags&_side_is_lighted_switch)
	{
		valid_toggle= get_light_intensity(side->primary_lightsource_index)>(3*FIXED_ONE/4) ? TRUE : FALSE;
	}

	if (definition->item!=NONE && !player_hit) valid_toggle= FALSE;
	if (player_hit && (side->flags&_side_switch_can_only_be_hit_by_projectiles)) valid_toggle= FALSE;
	
	if (valid_toggle && (side->flags&_side_switch_can_be_destroyed))
	{
		// destroy switch
		SET_SIDE_CONTROL_PANEL(side, FALSE);
	}
	
	if (!valid_toggle && player_hit) play_control_panel_sound(side_index, _unusuable_sound);
	
	return valid_toggle;
}
Ejemplo n.º 3
0
// -----------------------------------------------------------------------------
int LightIncreaseLightSide(void)
{
	const vmsegptr_t segp = Cursegp;
	range_for (const int v, xrange(4u))
		set_light_intensity(segp, Curside, v, get_light_intensity(segp, Curside, v) + F1_0 / NUM_LIGHTING_LEVELS);

	return	1;
}
Ejemplo n.º 4
0
Archivo: elight.c Proyecto: btb/d2x
// -----------------------------------------------------------------------------
int LightIncreaseLightSide(void)
{
	int	v;

	for (v=0; v<4; v++)
		set_light_intensity(Cursegp, Curside, v, get_light_intensity(Cursegp, Curside, v)+F1_0/NUM_LIGHTING_LEVELS);

	return	1;
}
Ejemplo n.º 5
0
// -----------------------------------------------------------------------------
int LightIncreaseLightSegment(void)
{
	const vmsegptr_t segp = Cursegp;
	for (int s=0; s<MAX_SIDES_PER_SEGMENT; s++)
		range_for (const int v, xrange(4u))
			set_light_intensity(segp, s, v, get_light_intensity(segp, s, v) + F1_0 / NUM_LIGHTING_LEVELS);

	return	1;
}
Ejemplo n.º 6
0
Archivo: elight.c Proyecto: btb/d2x
// -----------------------------------------------------------------------------
int LightIncreaseLightSegment(void)
{
	int	s,v;

	for (s=0; s<MAX_SIDES_PER_SEGMENT; s++)
		for (v=0; v<4; v++)
			set_light_intensity(Cursegp, s, v, get_light_intensity(Cursegp, s, v)+F1_0/NUM_LIGHTING_LEVELS);

	return	1;
}
Ejemplo n.º 7
0
Archivo: elight.c Proyecto: btb/d2x
// -----------------------------------------------------------------------------
//	Copy intensity from current vertex to all other vertices on side.
int LightCopyIntensity(void)
{
	int	v,intensity;

	intensity = get_light_intensity(Cursegp, Curside, Curvert);

	for (v=0; v<4; v++)
		if (v != Curvert)
			set_light_intensity(Cursegp, Curside, v, intensity);

	return	1;
}
Ejemplo n.º 8
0
Archivo: elight.c Proyecto: btb/d2x
// -----------------------------------------------------------------------------
//	Copy intensity from current vertex to all other vertices on side.
int LightCopyIntensitySegment(void)
{
	int	s,v,intensity;

	intensity = get_light_intensity(Cursegp, Curside, Curvert);

	for (s=0; s<MAX_SIDES_PER_SEGMENT; s++)
		for (v=0; v<4; v++)
			if ((s != Curside) || (v != Curvert))
				set_light_intensity(Cursegp, s, v, intensity);

	return	1;
}
Ejemplo n.º 9
0
// -----------------------------------------------------------------------------
//	Copy intensity from current vertex to all other vertices on side.
int LightCopyIntensity(void)
{
	int	intensity;

	const vmsegptr_t segp = Cursegp;
	intensity = get_light_intensity(segp, Curside, Curvert);

	range_for (const int v, xrange(4u))
		if (v != Curvert)
			set_light_intensity(segp, Curside, v, intensity);

	return	1;
}
Ejemplo n.º 10
0
// -----------------------------------------------------------------------------
//	Copy intensity from current vertex to all other vertices on side.
int LightCopyIntensitySegment(void)
{
	int	intensity;

	const vmsegptr_t segp = Cursegp;
	intensity = get_light_intensity(segp, Curside, Curvert);

	for (int s=0; s<MAX_SIDES_PER_SEGMENT; s++)
		range_for (const int v, xrange(4u))
			if ((s != Curside) || (v != Curvert))
				set_light_intensity(segp, s, v, intensity);

	return	1;
}
Ejemplo n.º 11
0
Archivo: elight.c Proyecto: btb/d2x
// -----------------------------------------------------------------------------
int LightIncreaseLightVertex(void)
{
	set_light_intensity(Cursegp, Curside, Curvert, get_light_intensity(Cursegp, Curside, Curvert)+F1_0/NUM_LIGHTING_LEVELS);

	return	1;
}
Ejemplo n.º 12
0
static fix get_light_intensity(const unique_segment &segp, const uint_fast32_t sidenum, const uint_fast32_t vert)
{
	Assert(sidenum <= MAX_SIDES_PER_SEGMENT);
	return get_light_intensity(segp.sides[sidenum], vert);
}