diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/scenery.c | 9 | ||||
| -rw-r--r-- | src/scenes/world_map.c | 13 |
2 files changed, 16 insertions, 6 deletions
diff --git a/src/scenery.c b/src/scenery.c index aca9dfe..39c91e6 100644 --- a/src/scenery.c +++ b/src/scenery.c @@ -1,5 +1,6 @@ vec2f px_to_coords(platform_window* window, double x, double y);
+bool world_map_location_is_in_sun(vec2f px_pos);
static void update_render_path(world* world, boat_route *route)
{
@@ -22,9 +23,15 @@ static void update_render_path(world* world, boat_route *route) float rad = atan2(end_pos.y-start_pos.y, end_pos.x-start_pos.x);
gl_render_set_rotation(-rad);
- renderer->render_image(img_boat, map_pos.x-3, map_pos.y-3, 3*zoom, 3*zoom);
+ float boatsize = 3*zoom;
+ renderer->render_image(img_boat, map_pos.x-boatsize/2, map_pos.y-boatsize/2, boatsize, boatsize);
gl_render_set_rotation(0.0f);
+ if (!world_map_location_is_in_sun(map_pos)) {
+ float dotsize = 4*zoom;
+ renderer->render_image_tint(img_locationdot, map_pos.x-dotsize/2, map_pos.y-dotsize/2, dotsize, dotsize, rgba(255,255,0,10));
+ }
+
route->current_point_duration += (frame_delta*1000.0f)*world->simulation_speed;
if (route->current_point_duration > time_between_points) {
if (!route->reversed) route->current_point++;
diff --git a/src/scenes/world_map.c b/src/scenes/world_map.c index 39aa749..ec42a7b 100644 --- a/src/scenes/world_map.c +++ b/src/scenes/world_map.c @@ -1079,8 +1079,13 @@ static s32 shadow2_offset = 0; bool world_map_location_is_in_sun(vec2f px_pos)
{
- return !(img_get_px(img_shadow, shadow_offset + px_pos.x, px_pos.y).a == 255);
- // return img_get_px(img_shadow, shadow2_offset - px_pos.x, px_pos.y).a == 255;
+ //px_pos.x *= (float)area.w/img_shadow->width;
+ return !(img_get_px(img_shadow,
+ (px_pos.x - shadow_offset)/((float)area.w/img_shadow->width*zoom),
+ (px_pos.y - camera_y - area.y)/((float)area.h/img_shadow->height*zoom)).a == 255 ||
+ img_get_px(img_shadow,
+ (px_pos.x - shadow2_offset)/((float)area.w/img_shadow->width*zoom),
+ (px_pos.y - camera_y - area.y)/((float)area.h/img_shadow->height*zoom)).a == 255);
}
static void world_map_draw_night(platform_window* window)
@@ -1094,9 +1099,7 @@ static void world_map_draw_night(platform_window* window) shadow2_offset = area.x + camera_x + offset - area.w*zoom;
renderer->render_image_tint(img_shadow, shadow_offset, area.y + camera_y, area.w*zoom, area.h*zoom, rgba(255,255,255,100));
- //renderer->render_image_tint(img_shadow, shadow2_offset, area.y + camera_y, area.w*zoom, area.h*zoom, rgba(255,255,255,100));
-
- img_get_px(img_shadow, offset, img_shadow->height/2);
+ renderer->render_image_tint(img_shadow, shadow2_offset, area.y + camera_y, area.w*zoom, area.h*zoom, rgba(255,255,255,100));
}
void world_map_scene_render(platform_window* window)
|
