- uint16_t pos_in_map = yx_to_map_pos(test_pos);
- set_shadow(left_angle, right_angle_1st, shadows, pos_in_map, fov_map);
- if (right_angle_1st != right_angle)
+ uint32_t middle_angle = 0;
+ if (right_angle_1st)
+ {
+ middle_angle = right_angle + ((left_angle - right_angle) / 2);
+ }
+ uint16_t pos_in_map = test_pos->y * world.map.length + test_pos->x;
+ uint8_t all_shaded = shade_hex(left_angle, right_angle_1st, middle_angle,
+ shadows, pos_in_map, fov_map);
+ if (!all_shaded && 'X' == world.map.cells[pos_in_map])
+ {
+ set_shadow(left_angle, right_angle_1st, shadows);
+ if (right_angle_1st != right_angle)
+ {
+ left_angle = CIRCLE;
+ set_shadow(left_angle, right_angle, shadows);
+ }
+ }
+}
+
+
+
+static void update_map_memory(struct Thing * t, uint32_t map_size)
+{
+ if (!t->mem_map)