+ Xdecor_3, TRUE, FALSE,
+ EL_EMC_WALL_4, -1, -1
+ },
+ {
+ Xdecor_4, TRUE, FALSE,
+ EL_EMC_WALL_7, -1, -1
+ },
+ {
+ Xdecor_5, TRUE, FALSE,
+ EL_EMC_WALL_5, -1, -1
+ },
+ {
+ Xdecor_6, TRUE, FALSE,
+ EL_EMC_WALL_9, -1, -1
+ },
+ {
+ Xdecor_7, TRUE, FALSE,
+ EL_EMC_WALL_10, -1, -1
+ },
+ {
+ Xdecor_8, TRUE, FALSE,
+ EL_EMC_WALL_1, -1, -1
+ },
+ {
+ Xdecor_9, TRUE, FALSE,
+ EL_EMC_WALL_2, -1, -1
+ },
+ {
+ Xdecor_10, TRUE, FALSE,
+ EL_EMC_WALL_3, -1, -1
+ },
+ {
+ Xdecor_11, TRUE, FALSE,
+ EL_EMC_WALL_11, -1, -1
+ },
+ {
+ Xdecor_12, TRUE, FALSE,
+ EL_EMC_WALL_12, -1, -1
+ },
+
+ {
+ Xalpha_0, TRUE, FALSE,
+ EL_CHAR('0'), -1, -1
+ },
+ {
+ Xalpha_1, TRUE, FALSE,
+ EL_CHAR('1'), -1, -1
+ },
+ {
+ Xalpha_2, TRUE, FALSE,
+ EL_CHAR('2'), -1, -1
+ },
+ {
+ Xalpha_3, TRUE, FALSE,
+ EL_CHAR('3'), -1, -1
+ },
+ {
+ Xalpha_4, TRUE, FALSE,
+ EL_CHAR('4'), -1, -1
+ },
+ {
+ Xalpha_5, TRUE, FALSE,
+ EL_CHAR('5'), -1, -1
+ },
+ {
+ Xalpha_6, TRUE, FALSE,
+ EL_CHAR('6'), -1, -1
+ },
+ {
+ Xalpha_7, TRUE, FALSE,
+ EL_CHAR('7'), -1, -1
+ },
+ {
+ Xalpha_8, TRUE, FALSE,
+ EL_CHAR('8'), -1, -1
+ },
+ {
+ Xalpha_9, TRUE, FALSE,
+ EL_CHAR('9'), -1, -1
+ },
+ {
+ Xalpha_excla, TRUE, FALSE,
+ EL_CHAR('!'), -1, -1
+ },
+ {
+ Xalpha_apost, TRUE, FALSE,
+ EL_CHAR('\''), -1, -1
+ },
+ {
+ Xalpha_comma, TRUE, FALSE,
+ EL_CHAR(','), -1, -1
+ },
+ {
+ Xalpha_minus, TRUE, FALSE,
+ EL_CHAR('-'), -1, -1
+ },
+ {
+ Xalpha_perio, TRUE, FALSE,
+ EL_CHAR('.'), -1, -1
+ },
+ {
+ Xalpha_colon, TRUE, FALSE,
+ EL_CHAR(':'), -1, -1
+ },
+ {
+ Xalpha_quest, TRUE, FALSE,
+ EL_CHAR('?'), -1, -1
+ },
+ {
+ Xalpha_a, TRUE, FALSE,
+ EL_CHAR('A'), -1, -1
+ },
+ {
+ Xalpha_b, TRUE, FALSE,
+ EL_CHAR('B'), -1, -1
+ },
+ {
+ Xalpha_c, TRUE, FALSE,
+ EL_CHAR('C'), -1, -1
+ },
+ {
+ Xalpha_d, TRUE, FALSE,
+ EL_CHAR('D'), -1, -1
+ },
+ {
+ Xalpha_e, TRUE, FALSE,
+ EL_CHAR('E'), -1, -1
+ },
+ {
+ Xalpha_f, TRUE, FALSE,
+ EL_CHAR('F'), -1, -1
+ },
+ {
+ Xalpha_g, TRUE, FALSE,
+ EL_CHAR('G'), -1, -1
+ },
+ {
+ Xalpha_h, TRUE, FALSE,
+ EL_CHAR('H'), -1, -1
+ },
+ {
+ Xalpha_i, TRUE, FALSE,
+ EL_CHAR('I'), -1, -1
+ },
+ {
+ Xalpha_j, TRUE, FALSE,
+ EL_CHAR('J'), -1, -1
+ },
+ {
+ Xalpha_k, TRUE, FALSE,
+ EL_CHAR('K'), -1, -1
+ },
+ {
+ Xalpha_l, TRUE, FALSE,
+ EL_CHAR('L'), -1, -1
+ },
+ {
+ Xalpha_m, TRUE, FALSE,
+ EL_CHAR('M'), -1, -1
+ },
+ {
+ Xalpha_n, TRUE, FALSE,
+ EL_CHAR('N'), -1, -1
+ },
+ {
+ Xalpha_o, TRUE, FALSE,
+ EL_CHAR('O'), -1, -1
+ },
+ {
+ Xalpha_p, TRUE, FALSE,
+ EL_CHAR('P'), -1, -1
+ },
+ {
+ Xalpha_q, TRUE, FALSE,
+ EL_CHAR('Q'), -1, -1
+ },
+ {
+ Xalpha_r, TRUE, FALSE,
+ EL_CHAR('R'), -1, -1
+ },
+ {
+ Xalpha_s, TRUE, FALSE,
+ EL_CHAR('S'), -1, -1
+ },
+ {
+ Xalpha_t, TRUE, FALSE,
+ EL_CHAR('T'), -1, -1
+ },
+ {
+ Xalpha_u, TRUE, FALSE,
+ EL_CHAR('U'), -1, -1
+ },
+ {
+ Xalpha_v, TRUE, FALSE,
+ EL_CHAR('V'), -1, -1
+ },
+ {
+ Xalpha_w, TRUE, FALSE,
+ EL_CHAR('W'), -1, -1
+ },
+ {
+ Xalpha_x, TRUE, FALSE,
+ EL_CHAR('X'), -1, -1
+ },
+ {
+ Xalpha_y, TRUE, FALSE,
+ EL_CHAR('Y'), -1, -1
+ },
+ {
+ Xalpha_z, TRUE, FALSE,
+ EL_CHAR('Z'), -1, -1
+ },
+ {
+ Xalpha_arrow_e, TRUE, FALSE,
+ EL_CHAR('>'), -1, -1
+ },
+ {
+ Xalpha_arrow_w, TRUE, FALSE,
+ EL_CHAR('<'), -1, -1
+ },
+ {
+ Xalpha_copyr, TRUE, FALSE,
+ EL_CHAR(CHAR_BYTE_COPYRIGHT), -1, -1
+ },
+
+ {
+ Ykey_1_blank, FALSE, FALSE,
+ EL_EM_KEY_1, ACTION_COLLECTING, -1
+ },
+ {
+ Ykey_2_blank, FALSE, FALSE,
+ EL_EM_KEY_2, ACTION_COLLECTING, -1
+ },
+ {
+ Ykey_3_blank, FALSE, FALSE,
+ EL_EM_KEY_3, ACTION_COLLECTING, -1
+ },
+ {
+ Ykey_4_blank, FALSE, FALSE,
+ EL_EM_KEY_4, ACTION_COLLECTING, -1
+ },
+ {
+ Ykey_5_blank, FALSE, FALSE,
+ EL_EMC_KEY_5, ACTION_COLLECTING, -1
+ },
+ {
+ Ykey_6_blank, FALSE, FALSE,
+ EL_EMC_KEY_6, ACTION_COLLECTING, -1
+ },
+ {
+ Ykey_7_blank, FALSE, FALSE,
+ EL_EMC_KEY_7, ACTION_COLLECTING, -1
+ },
+ {
+ Ykey_8_blank, FALSE, FALSE,
+ EL_EMC_KEY_8, ACTION_COLLECTING, -1
+ },
+ {
+ Ylenses_blank, FALSE, FALSE,
+ EL_EMC_LENSES, ACTION_COLLECTING, -1
+ },
+ {
+ Ymagnify_blank, FALSE, FALSE,
+ EL_EMC_MAGNIFIER, ACTION_COLLECTING, -1
+ },
+ {
+ Ygrass_blank, FALSE, FALSE,
+ EL_EMC_GRASS, ACTION_SNAPPING, -1
+ },
+ {
+ Ydirt_blank, FALSE, FALSE,
+ EL_SAND, ACTION_SNAPPING, -1
+ },
+
+ {
+ -1, FALSE, FALSE,
+ -1, -1, -1
+ }
+};
+
+static struct Mapping_EM_to_RND_player
+{
+ int action_em;
+ int player_nr;
+
+ int element_rnd;
+ int action;
+ int direction;
+}
+em_player_mapping_list[MAX_PLAYERS * PLY_MAX + 1] =
+{
+ {
+ PLY_walk_n, 0,
+ EL_PLAYER_1, ACTION_MOVING, MV_BIT_UP,
+ },
+ {
+ PLY_walk_e, 0,
+ EL_PLAYER_1, ACTION_MOVING, MV_BIT_RIGHT,
+ },
+ {
+ PLY_walk_s, 0,
+ EL_PLAYER_1, ACTION_MOVING, MV_BIT_DOWN,
+ },
+ {
+ PLY_walk_w, 0,
+ EL_PLAYER_1, ACTION_MOVING, MV_BIT_LEFT,
+ },
+ {
+ PLY_push_n, 0,
+ EL_PLAYER_1, ACTION_PUSHING, MV_BIT_UP,
+ },
+ {
+ PLY_push_e, 0,
+ EL_PLAYER_1, ACTION_PUSHING, MV_BIT_RIGHT,
+ },
+ {
+ PLY_push_s, 0,
+ EL_PLAYER_1, ACTION_PUSHING, MV_BIT_DOWN,
+ },
+ {
+ PLY_push_w, 0,
+ EL_PLAYER_1, ACTION_PUSHING, MV_BIT_LEFT,
+ },
+ {
+ PLY_shoot_n, 0,
+ EL_PLAYER_1, ACTION_SNAPPING, MV_BIT_UP,
+ },
+ {
+ PLY_shoot_e, 0,
+ EL_PLAYER_1, ACTION_SNAPPING, MV_BIT_RIGHT,
+ },
+ {
+ PLY_shoot_s, 0,
+ EL_PLAYER_1, ACTION_SNAPPING, MV_BIT_DOWN,
+ },
+ {
+ PLY_shoot_w, 0,
+ EL_PLAYER_1, ACTION_SNAPPING, MV_BIT_LEFT,
+ },
+ {
+ PLY_walk_n, 1,
+ EL_PLAYER_2, ACTION_MOVING, MV_BIT_UP,
+ },
+ {
+ PLY_walk_e, 1,
+ EL_PLAYER_2, ACTION_MOVING, MV_BIT_RIGHT,
+ },
+ {
+ PLY_walk_s, 1,
+ EL_PLAYER_2, ACTION_MOVING, MV_BIT_DOWN,
+ },
+ {
+ PLY_walk_w, 1,
+ EL_PLAYER_2, ACTION_MOVING, MV_BIT_LEFT,
+ },
+ {
+ PLY_push_n, 1,
+ EL_PLAYER_2, ACTION_PUSHING, MV_BIT_UP,
+ },
+ {
+ PLY_push_e, 1,
+ EL_PLAYER_2, ACTION_PUSHING, MV_BIT_RIGHT,
+ },
+ {
+ PLY_push_s, 1,
+ EL_PLAYER_2, ACTION_PUSHING, MV_BIT_DOWN,
+ },
+ {
+ PLY_push_w, 1,
+ EL_PLAYER_2, ACTION_PUSHING, MV_BIT_LEFT,
+ },
+ {
+ PLY_shoot_n, 1,
+ EL_PLAYER_2, ACTION_SNAPPING, MV_BIT_UP,
+ },
+ {
+ PLY_shoot_e, 1,
+ EL_PLAYER_2, ACTION_SNAPPING, MV_BIT_RIGHT,
+ },
+ {
+ PLY_shoot_s, 1,
+ EL_PLAYER_2, ACTION_SNAPPING, MV_BIT_DOWN,
+ },
+ {
+ PLY_shoot_w, 1,
+ EL_PLAYER_2, ACTION_SNAPPING, MV_BIT_LEFT,
+ },
+ {
+ PLY_still, 0,
+ EL_PLAYER_1, ACTION_DEFAULT, -1,
+ },
+ {
+ PLY_still, 1,
+ EL_PLAYER_2, ACTION_DEFAULT, -1,
+ },
+ {
+ PLY_walk_n, 2,
+ EL_PLAYER_3, ACTION_MOVING, MV_BIT_UP,
+ },
+ {
+ PLY_walk_e, 2,
+ EL_PLAYER_3, ACTION_MOVING, MV_BIT_RIGHT,
+ },
+ {
+ PLY_walk_s, 2,
+ EL_PLAYER_3, ACTION_MOVING, MV_BIT_DOWN,
+ },
+ {
+ PLY_walk_w, 2,
+ EL_PLAYER_3, ACTION_MOVING, MV_BIT_LEFT,
+ },
+ {
+ PLY_push_n, 2,
+ EL_PLAYER_3, ACTION_PUSHING, MV_BIT_UP,
+ },
+ {
+ PLY_push_e, 2,
+ EL_PLAYER_3, ACTION_PUSHING, MV_BIT_RIGHT,
+ },
+ {
+ PLY_push_s, 2,
+ EL_PLAYER_3, ACTION_PUSHING, MV_BIT_DOWN,
+ },
+ {
+ PLY_push_w, 2,
+ EL_PLAYER_3, ACTION_PUSHING, MV_BIT_LEFT,
+ },
+ {
+ PLY_shoot_n, 2,
+ EL_PLAYER_3, ACTION_SNAPPING, MV_BIT_UP,
+ },
+ {
+ PLY_shoot_e, 2,
+ EL_PLAYER_3, ACTION_SNAPPING, MV_BIT_RIGHT,
+ },
+ {
+ PLY_shoot_s, 2,
+ EL_PLAYER_3, ACTION_SNAPPING, MV_BIT_DOWN,
+ },
+ {
+ PLY_shoot_w, 2,
+ EL_PLAYER_3, ACTION_SNAPPING, MV_BIT_LEFT,
+ },
+ {
+ PLY_walk_n, 3,
+ EL_PLAYER_4, ACTION_MOVING, MV_BIT_UP,
+ },
+ {
+ PLY_walk_e, 3,
+ EL_PLAYER_4, ACTION_MOVING, MV_BIT_RIGHT,
+ },
+ {
+ PLY_walk_s, 3,
+ EL_PLAYER_4, ACTION_MOVING, MV_BIT_DOWN,
+ },
+ {
+ PLY_walk_w, 3,
+ EL_PLAYER_4, ACTION_MOVING, MV_BIT_LEFT,
+ },
+ {
+ PLY_push_n, 3,
+ EL_PLAYER_4, ACTION_PUSHING, MV_BIT_UP,
+ },
+ {
+ PLY_push_e, 3,
+ EL_PLAYER_4, ACTION_PUSHING, MV_BIT_RIGHT,
+ },
+ {
+ PLY_push_s, 3,
+ EL_PLAYER_4, ACTION_PUSHING, MV_BIT_DOWN,
+ },
+ {
+ PLY_push_w, 3,
+ EL_PLAYER_4, ACTION_PUSHING, MV_BIT_LEFT,
+ },
+ {
+ PLY_shoot_n, 3,
+ EL_PLAYER_4, ACTION_SNAPPING, MV_BIT_UP,
+ },
+ {
+ PLY_shoot_e, 3,
+ EL_PLAYER_4, ACTION_SNAPPING, MV_BIT_RIGHT,
+ },
+ {
+ PLY_shoot_s, 3,
+ EL_PLAYER_4, ACTION_SNAPPING, MV_BIT_DOWN,
+ },
+ {
+ PLY_shoot_w, 3,
+ EL_PLAYER_4, ACTION_SNAPPING, MV_BIT_LEFT,
+ },
+ {
+ PLY_still, 2,
+ EL_PLAYER_3, ACTION_DEFAULT, -1,
+ },
+ {
+ PLY_still, 3,
+ EL_PLAYER_4, ACTION_DEFAULT, -1,
+ },