// ----------------------------------------------------------------------------- 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; }
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; }
// ----------------------------------------------------------------------------- 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; }
// ----------------------------------------------------------------------------- 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; }
// ----------------------------------------------------------------------------- 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; }
// ----------------------------------------------------------------------------- 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; }
// ----------------------------------------------------------------------------- // 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; }
// ----------------------------------------------------------------------------- // 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; }
// ----------------------------------------------------------------------------- // 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; }
// ----------------------------------------------------------------------------- // 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; }
// ----------------------------------------------------------------------------- int LightIncreaseLightVertex(void) { set_light_intensity(Cursegp, Curside, Curvert, get_light_intensity(Cursegp, Curside, Curvert)+F1_0/NUM_LIGHTING_LEVELS); return 1; }
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); }