@@ -248,27 +248,21 @@ int building_dock::window_info_handle_mouse(const mouse *m, object_info &c) {
248
248
}
249
249
250
250
bool building_dock::draw_ornaments_and_animations_height (painter &ctx, vec2i point, tile2i t, color color_mask) {
251
- int num_dockers = count_idle_dockers ();
252
- if (num_dockers > 0 ) {
251
+ int num_idle_dockers = count_idle_dockers ();
252
+ if (num_idle_dockers > 0 ) {
253
253
int image_dock = map_image_at (t);
254
- int image_dockers = image_id_from_group (GROUP_BUILDING_DOCK_DOCKERS) ;
254
+ animation_t anim_dockers ;
255
255
int image_dock_base = dock_m.anim [" base" ].first_img ();
256
- if (image_dock == image_dock_base)
257
- image_dockers += 0 ;
258
- else if (image_dock == image_dock_base + 1 )
259
- image_dockers += 3 ;
260
- else if (image_dock == image_dock_base + 2 )
261
- image_dockers += 6 ;
262
- else
263
- image_dockers += 9 ;
264
-
265
- if (num_dockers == 2 )
266
- image_dockers += 1 ;
267
- else if (num_dockers == 3 )
268
- image_dockers += 2 ;
269
-
270
- const image_t * img = image_get (image_dockers);
271
- ImageDraw::img_generic (ctx, image_dockers, t.x () + img->animation .sprite_offset .x , t.y () + img->animation .sprite_offset .y , color_mask);
256
+ if (image_dock == image_dock_base) anim_dockers = dock_m.anim [" work_n" ];
257
+ else if (image_dock == image_dock_base + 1 ) anim_dockers = dock_m.anim [" work_w" ];
258
+ else if (image_dock == image_dock_base + 2 ) anim_dockers = dock_m.anim [" work_s" ];
259
+ else anim_dockers = dock_m.anim [" work_e" ];
260
+
261
+ data.dock .docker_anim_frame ++;
262
+ data.dock .docker_anim_frame %= (anim_dockers.max_frames * anim_dockers.duration );
263
+ int img_id = anim_dockers.first_img () + (data.dock .docker_anim_frame / anim_dockers.duration ) * 4 ;
264
+ const image_t * img = image_get (img_id);
265
+ ImageDraw::img_generic (ctx, img_id, point + anim_dockers.pos , color_mask);
272
266
}
273
267
return false ;
274
268
}
0 commit comments