{ "bdx_player_with_bomb.xpos", "8" },
{ "bdx_player_with_bomb.ypos", "7" },
{ "bdx_player_with_bomb.frames", "1" },
+ { "bdx_player_with_bomb.turning", UNDEFINED_FILENAME },
+ { "bdx_player_with_bomb.turning.clone_from", "bdx_player_with_bomb" },
{ "bdx_player_with_rocket_launcher", "RocksBD.png" },
{ "bdx_player_with_rocket_launcher.xpos", "10" },
{ "bdx_player_with_rocket_launcher.ypos", "7" },
{ "bdx_player_with_rocket_launcher.frames", "1" },
+ { "bdx_player_with_rocket_launcher.turning", UNDEFINED_FILENAME },
+ { "bdx_player_with_rocket_launcher.turning.clone_from", "bdx_player_with_rocket_launcher" },
{ "bdx_player_stirring", "RocksBD.png" },
{ "bdx_player_stirring.xpos", "8" },
elemmapping[O_PLAYER_ROCKET_LAUNCHER] = map;
elemdrawing[O_PLAYER_ROCKET_LAUNCHER] = draw;
}
+ else if (cave->last_direction_2nd != GD_MV_STILL)
+ {
+ // player with bomb/rocketlauncher which just stopped moving may have separate graphics
+
+ elemmapping[O_PLAYER_BOMB] = O_PLAYER_BOMB_TURNING;
+ elemdrawing[O_PLAYER_BOMB] = gd_element_properties[O_PLAYER_BOMB_TURNING].image_game;
+
+ elemmapping[O_PLAYER_ROCKET_LAUNCHER] = O_PLAYER_ROCKET_LAUNCHER_TURNING;
+ elemdrawing[O_PLAYER_ROCKET_LAUNCHER] = gd_element_properties[O_PLAYER_ROCKET_LAUNCHER_TURNING].image_game;
+ }
elemmapping[O_INBOX] = (cave->inbox_flash_toggle ?
O_INBOX_OPEN :
P_PLAYER | P_PLAYER_PUSHING,
NULL, 0, 400, -400, -400
},
+ {
+ O_PLAYER_BOMB_TURNING, O_PLAYER_BOMB_TURNING, N_("Player with bomb (turning)"),
+ P_PLAYER,
+ NULL, 0, 42, 42, 42,
+ },
+ {
+ O_PLAYER_ROCKET_LAUNCHER_TURNING, O_PLAYER_ROCKET_LAUNCHER_TURNING, N_("Player with rocket launcher (turning)"),
+ P_PLAYER,
+ NULL, 0, 369, 369, 369,
+ },
{
O_CREATURE_SWITCH_ON, O_CREATURE_SWITCH_ON, NULL,
0,
O_PLAYER_TAP_BLINK,
O_PLAYER_PUSH_LEFT,
O_PLAYER_PUSH_RIGHT,
+ O_PLAYER_BOMB_TURNING,
+ O_PLAYER_ROCKET_LAUNCHER_TURNING,
O_CREATURE_SWITCH_ON,
O_EXPANDING_WALL_SWITCH_HORIZ,
O_EXPANDING_WALL_SWITCH_VERT,
if (!is_moving || !use_smooth_movements)
{
struct GraphicInfo_BD *g = &graphic_info_bd_object[draw][frame];
+ int itercycle_capped = MIN(game->itercycle * 8 / game->itermax, 7);
+
+ if (draw == O_PLAYER_BOMB_TURNING ||
+ draw == O_PLAYER_ROCKET_LAUNCHER_TURNING)
+ g = &graphic_info_bd_object[draw][itercycle_capped];
if (el_is_crumbled(draw))
gd_drawcave_crumbled(dest, game, x, y, draw_masked);
O_PLAYER_PUSH_RIGHT, FALSE,
EL_BDX_PLAYER, ACTION_PUSHING, MV_BIT_RIGHT
},
+ {
+ O_PLAYER_BOMB_TURNING, FALSE,
+ EL_BDX_PLAYER_WITH_BOMB, ACTION_TURNING, -1
+ },
+ {
+ O_PLAYER_ROCKET_LAUNCHER_TURNING, FALSE,
+ EL_BDX_PLAYER_WITH_ROCKET_LAUNCHER, ACTION_TURNING, -1
+ },
{
O_CREATURE_SWITCH_ON, FALSE,
EL_BDX_CREATURE_SWITCH_ACTIVE, -1, -1
e == O_DIRT2_DIGGING_LEFT_CRUMBLED ||
e == O_DIRT2_DIGGING_RIGHT_CRUMBLED ||
e == O_DIRT2_DIGGING_UP_CRUMBLED ||
- e == O_DIRT2_DIGGING_DOWN_CRUMBLED ? j :
+ e == O_DIRT2_DIGGING_DOWN_CRUMBLED ||
+ e == O_PLAYER_BOMB_TURNING ||
+ e == O_PLAYER_ROCKET_LAUNCHER_TURNING ? j :
j * 2);
int frame = getAnimationFrame(g->anim_frames,
g->anim_delay,