-static int getPlayerAction(struct PlayerInfo *player, int move_dir)
-{
- int action = (player->is_pushing ? ACTION_PUSHING :
- player->is_digging ? ACTION_DIGGING :
- player->is_collecting ? ACTION_COLLECTING :
- player->is_moving ? ACTION_MOVING :
- player->is_snapping ? ACTION_SNAPPING :
- player->is_sleeping ? ACTION_SLEEPING :
- player->is_bored ? ACTION_BORING :
- player->is_waiting ? ACTION_WAITING : ACTION_DEFAULT);
-
- if (player->is_sleeping)
- {
- if (player->num_special_action_sleeping > 0)
- {
- if (player->anim_delay_counter == 0 && player->post_delay_counter == 0)
- {
- int special_action =
- ACTION_BORING_1 + SimpleRND(player->num_special_action_sleeping);
- int special_graphic =
- el_act_dir2img(player->element_nr, special_action, move_dir);
-
- player->anim_delay_counter =
- graphic_info[special_graphic].anim_delay_fixed +
- SimpleRND(graphic_info[special_graphic].anim_delay_random);
- player->post_delay_counter =
- graphic_info[special_graphic].post_delay_fixed +
- SimpleRND(graphic_info[special_graphic].post_delay_random);
-
- player->special_action_sleeping = special_action;
- }
-
- if (player->anim_delay_counter > 0)
- {
- action = player->special_action_sleeping;
- player->anim_delay_counter--;
- }
- else if (player->post_delay_counter > 0)
- {
- player->post_delay_counter--;
- }
- }
- }
- else if (player->is_bored)
- {
- if (player->num_special_action_bored > 0)
- {
- if (player->anim_delay_counter == 0 && player->post_delay_counter == 0)
- {
- int special_action =
- ACTION_BORING_1 + SimpleRND(player->num_special_action_bored);
- int special_graphic =
- el_act_dir2img(player->element_nr, special_action, move_dir);
-
- player->anim_delay_counter =
- graphic_info[special_graphic].anim_delay_fixed +
- SimpleRND(graphic_info[special_graphic].anim_delay_random);
- player->post_delay_counter =
- graphic_info[special_graphic].post_delay_fixed +
- SimpleRND(graphic_info[special_graphic].post_delay_random);
-
- player->special_action_bored = special_action;
- }
-
- if (player->anim_delay_counter > 0)
- {
- action = player->special_action_bored;
- player->anim_delay_counter--;
- }
- else if (player->post_delay_counter > 0)
- {
- player->post_delay_counter--;
- }
- }
- }
-
- return action;
-}
-