fixed bug in single button handling causing broken tapes (EM engine)
[rocksndiamonds.git] / src / game_em / tile.h
index 5f0f086c9f6919f232a22840733bc2868b4134f0..6b6dc3e20e8896ae5b1ccca43baa7f2e4701e713 100644 (file)
@@ -1,6 +1,19 @@
 #ifndef TILE_H
 #define TILE_H
 
+#include "main_em.h"
+
+#ifdef EM_ENGINE_BAD_ROLL
+#define BAD_ROLL
+#endif
+
+#ifdef EM_ENGINE_BAD_SPRING
+#define BAD_SPRING
+#endif
+
+
+#if 0
+
 /* 2000-07-30T11:06:03Z
  */
 
 #define BAD_ROLL
 #define BAD_SPRING
 
-enum {
-       Xblank = 0, /* still */
-       Yacid_splash_eB, /* hmm */
-       Yacid_splash_wB, /* hmm */
+enum
+{
+  Xblank = 0, /* still */
+  Yacid_splash_eB, /* hmm */
+  Yacid_splash_wB, /* hmm */
 
 #ifdef BAD_ROLL
-       Xstone_force_e, /* only use these in eater */
-       Xstone_force_w,
-       Xnut_force_e,
-       Xnut_force_w,
-       Xspring_force_e,
-       Xspring_force_w,
-       Xemerald_force_e,
-       Xemerald_force_w,
-       Xdiamond_force_e,
-       Xdiamond_force_w,
-       Xbomb_force_e,
-       Xbomb_force_w,
+  Xstone_force_e, /* only use these in eater */
+  Xstone_force_w,
+  Xnut_force_e,
+  Xnut_force_w,
+  Xspring_force_e,
+  Xspring_force_w,
+  Xemerald_force_e,
+  Xemerald_force_w,
+  Xdiamond_force_e,
+  Xdiamond_force_w,
+  Xbomb_force_e,
+  Xbomb_force_w,
 #endif
 
-       Xstone,
-       Xstone_pause,
-       Xstone_fall,
-       Ystone_s,
-       Ystone_sB,
-       Ystone_e,
-       Ystone_eB,
-       Ystone_w,
-       Ystone_wB,
-       Xnut,
-       Xnut_pause,
-       Xnut_fall,
-       Ynut_s,
-       Ynut_sB,
-       Ynut_e,
-       Ynut_eB,
-       Ynut_w,
-       Ynut_wB,
-       Xbug_n,
-       Xbug_e,
-       Xbug_s,
-       Xbug_w,
-       Xbug_gon,
-       Xbug_goe,
-       Xbug_gos,
-       Xbug_gow,
-       Ybug_n,
-       Ybug_nB,
-       Ybug_e,
-       Ybug_eB,
-       Ybug_s,
-       Ybug_sB,
-       Ybug_w,
-       Ybug_wB,
-       Ybug_w_n,
-       Ybug_n_e,
-       Ybug_e_s,
-       Ybug_s_w,
-       Ybug_e_n,
-       Ybug_s_e,
-       Ybug_w_s,
-       Ybug_n_w,
-       Ybug_stone,
-       Ybug_spring,
-       Xtank_n,
-       Xtank_e,
-       Xtank_s,
-       Xtank_w,
-       Xtank_gon,
-       Xtank_goe,
-       Xtank_gos,
-       Xtank_gow,
-       Ytank_n,
-       Ytank_nB,
-       Ytank_e,
-       Ytank_eB,
-       Ytank_s,
-       Ytank_sB,
-       Ytank_w,
-       Ytank_wB,
-       Ytank_w_n,
-       Ytank_n_e,
-       Ytank_e_s,
-       Ytank_s_w,
-       Ytank_e_n,
-       Ytank_s_e,
-       Ytank_w_s,
-       Ytank_n_w,
-       Ytank_stone,
-       Ytank_spring,
-       Xandroid,
-       Xandroid_1_n,
-       Xandroid_2_n,
-       Xandroid_1_e,
-       Xandroid_2_e,
-       Xandroid_1_w,
-       Xandroid_2_w,
-       Xandroid_1_s,
-       Xandroid_2_s,
-       Yandroid_n,
-       Yandroid_nB,
-       Yandroid_ne,
-       Yandroid_neB,
-       Yandroid_e,
-       Yandroid_eB,
-       Yandroid_se,
-       Yandroid_seB,
-       Yandroid_s,
-       Yandroid_sB,
-       Yandroid_sw,
-       Yandroid_swB,
-       Yandroid_w,
-       Yandroid_wB,
-       Yandroid_nw,
-       Yandroid_nwB,
-       Xspring,
-       Xspring_pause,
-       Xspring_e,
-       Xspring_w,
-       Xspring_fall,
-       Yspring_s,
-       Yspring_sB,
-       Yspring_e,
-       Yspring_eB,
-       Yspring_w,
-       Yspring_wB,
-       Yspring_kill_e,
-       Yspring_kill_eB,
-       Yspring_kill_w,
-       Yspring_kill_wB,
-       Xeater_n,
-       Xeater_e,
-       Xeater_w,
-       Xeater_s,
-       Yeater_n,
-       Yeater_nB,
-       Yeater_e,
-       Yeater_eB,
-       Yeater_s,
-       Yeater_sB,
-       Yeater_w,
-       Yeater_wB,
-       Yeater_stone,
-       Yeater_spring,
-       Xalien,
-       Xalien_pause,
-       Yalien_n,
-       Yalien_nB,
-       Yalien_e,
-       Yalien_eB,
-       Yalien_s,
-       Yalien_sB,
-       Yalien_w,
-       Yalien_wB,
-       Yalien_stone,
-       Yalien_spring,
-       Xemerald,
-       Xemerald_pause,
-       Xemerald_fall,
-       Xemerald_shine,
-       Yemerald_s,
-       Yemerald_sB,
-       Yemerald_e,
-       Yemerald_eB,
-       Yemerald_w,
-       Yemerald_wB,
-       Yemerald_eat,
-       Yemerald_stone,
-       Xdiamond,
-       Xdiamond_pause,
-       Xdiamond_fall,
-       Xdiamond_shine,
-       Ydiamond_s,
-       Ydiamond_sB,
-       Ydiamond_e,
-       Ydiamond_eB,
-       Ydiamond_w,
-       Ydiamond_wB,
-       Ydiamond_eat,
-       Ydiamond_stone,
-       Xdrip_fall,
-       Xdrip_stretch,
-       Xdrip_stretchB,
-       Xdrip_eat,
-       Ydrip_s1,
-       Ydrip_s1B,
-       Ydrip_s2,
-       Ydrip_s2B,
-       Xbomb,
-       Xbomb_pause,
-       Xbomb_fall,
-       Ybomb_s,
-       Ybomb_sB,
-       Ybomb_e,
-       Ybomb_eB,
-       Ybomb_w,
-       Ybomb_wB,
-       Ybomb_eat,
-       Xballoon,
-       Yballoon_n,
-       Yballoon_nB,
-       Yballoon_e,
-       Yballoon_eB,
-       Yballoon_s,
-       Yballoon_sB,
-       Yballoon_w,
-       Yballoon_wB,
-       Xgrass,
-       Ygrass_nB,
-       Ygrass_eB,
-       Ygrass_sB,
-       Ygrass_wB,
-       Xdirt,
-       Ydirt_nB,
-       Ydirt_eB,
-       Ydirt_sB,
-       Ydirt_wB,
-       Xacid_ne,
-       Xacid_se,
-       Xacid_s,
-       Xacid_sw,
-       Xacid_nw,
-       Xacid_1,
-       Xacid_2,
-       Xacid_3,
-       Xacid_4,
-       Xacid_5,
-       Xacid_6,
-       Xacid_7,
-       Xacid_8,
-       Xball_1,
-       Xball_1B,
-       Xball_2,
-       Xball_2B,
-       Yball_eat,
-       Xgrow_ns,
-       Ygrow_ns_eat,
-       Xgrow_ew,
-       Ygrow_ew_eat,
-       Xwonderwall,
-       XwonderwallB,
-       Xameuba_1,
-       Xameuba_2,
-       Xameuba_3,
-       Xameuba_4,
-       Xameuba_5,
-       Xameuba_6,
-       Xameuba_7,
-       Xameuba_8,
-       Xdoor_1,
-       Xdoor_2,
-       Xdoor_3,
-       Xdoor_4,
-       Xdoor_5,
-       Xdoor_6,
-       Xdoor_7,
-       Xdoor_8,
-       Xkey_1,
-       Xkey_2,
-       Xkey_3,
-       Xkey_4,
-       Xkey_5,
-       Xkey_6,
-       Xkey_7,
-       Xkey_8,
-       Xwind_n,
-       Xwind_e,
-       Xwind_s,
-       Xwind_w,
-       Xwind_nesw,
-       Xwind_stop,
-       Xexit,
-       Xexit_1,
-       Xexit_2,
-       Xexit_3,
-       Xdynamite,
-       Ydynamite_eat,
-       Xdynamite_1,
-       Xdynamite_2,
-       Xdynamite_3,
-       Xdynamite_4,
-       Xbumper,
-       XbumperB,
-       Xwheel,
-       XwheelB,
-       Xswitch,
-       XswitchB,
-       Xsand,
-       Xsand_stone,
-       Xsand_stonein_1,
-       Xsand_stonein_2,
-       Xsand_stonein_3,
-       Xsand_stonein_4,
-       Xsand_stonesand_1,
-       Xsand_stonesand_2,
-       Xsand_stonesand_3,
-       Xsand_stonesand_4,
-       Xsand_stoneout_1,
-       Xsand_stoneout_2,
-       Xsand_sandstone_1,
-       Xsand_sandstone_2,
-       Xsand_sandstone_3,
-       Xsand_sandstone_4,
-       Xplant,
-       Yplant,
-       Xlenses,
-       Xmagnify,
-       Xdripper,
-       XdripperB,
-       Xfake_blank,
-       Xfake_blankB,
-       Xfake_grass,
-       Xfake_grassB,
-       Xfake_door_1,
-       Xfake_door_2,
-       Xfake_door_3,
-       Xfake_door_4,
-       Xfake_door_5,
-       Xfake_door_6,
-       Xfake_door_7,
-       Xfake_door_8,
-       Xsteel_1,
-       Xsteel_2,
-       Xsteel_3,
-       Xsteel_4,
-       Xwall_1,
-       Xwall_2,
-       Xwall_3,
-       Xwall_4,
-       Xround_wall_1,
-       Xround_wall_2,
-       Xround_wall_3,
-       Xround_wall_4,
-       Xdecor_1,
-       Xdecor_2,
-       Xdecor_3,
-       Xdecor_4,
-       Xdecor_5,
-       Xdecor_6,
-       Xdecor_7,
-       Xdecor_8,
-       Xdecor_9,
-       Xdecor_10,
-       Xdecor_11,
-       Xdecor_12,
-       Xalpha_0,
-       Xalpha_1,
-       Xalpha_2,
-       Xalpha_3,
-       Xalpha_4,
-       Xalpha_5,
-       Xalpha_6,
-       Xalpha_7,
-       Xalpha_8,
-       Xalpha_9,
-       Xalpha_excla,
-       Xalpha_quote,
-       Xalpha_comma,
-       Xalpha_minus,
-       Xalpha_perio,
-       Xalpha_colon,
-       Xalpha_quest,
-       Xalpha_a,
-       Xalpha_b,
-       Xalpha_c,
-       Xalpha_d,
-       Xalpha_e,
-       Xalpha_f,
-       Xalpha_g,
-       Xalpha_h,
-       Xalpha_i,
-       Xalpha_j,
-       Xalpha_k,
-       Xalpha_l,
-       Xalpha_m,
-       Xalpha_n,
-       Xalpha_o,
-       Xalpha_p,
-       Xalpha_q,
-       Xalpha_r,
-       Xalpha_s,
-       Xalpha_t,
-       Xalpha_u,
-       Xalpha_v,
-       Xalpha_w,
-       Xalpha_x,
-       Xalpha_y,
-       Xalpha_z,
-       Xalpha_arrow_e,
-       Xalpha_arrow_w,
-       Xalpha_copyr,
+  Xstone,
+  Xstone_pause,
+  Xstone_fall,
+  Ystone_s,
+  Ystone_sB,
+  Ystone_e,
+  Ystone_eB,
+  Ystone_w,
+  Ystone_wB,
+  Xnut,
+  Xnut_pause,
+  Xnut_fall,
+  Ynut_s,
+  Ynut_sB,
+  Ynut_e,
+  Ynut_eB,
+  Ynut_w,
+  Ynut_wB,
+  Xbug_n,
+  Xbug_e,
+  Xbug_s,
+  Xbug_w,
+  Xbug_gon,
+  Xbug_goe,
+  Xbug_gos,
+  Xbug_gow,
+  Ybug_n,
+  Ybug_nB,
+  Ybug_e,
+  Ybug_eB,
+  Ybug_s,
+  Ybug_sB,
+  Ybug_w,
+  Ybug_wB,
+  Ybug_w_n,
+  Ybug_n_e,
+  Ybug_e_s,
+  Ybug_s_w,
+  Ybug_e_n,
+  Ybug_s_e,
+  Ybug_w_s,
+  Ybug_n_w,
+  Ybug_stone,
+  Ybug_spring,
+  Xtank_n,
+  Xtank_e,
+  Xtank_s,
+  Xtank_w,
+  Xtank_gon,
+  Xtank_goe,
+  Xtank_gos,
+  Xtank_gow,
+  Ytank_n,
+  Ytank_nB,
+  Ytank_e,
+  Ytank_eB,
+  Ytank_s,
+  Ytank_sB,
+  Ytank_w,
+  Ytank_wB,
+  Ytank_w_n,
+  Ytank_n_e,
+  Ytank_e_s,
+  Ytank_s_w,
+  Ytank_e_n,
+  Ytank_s_e,
+  Ytank_w_s,
+  Ytank_n_w,
+  Ytank_stone,
+  Ytank_spring,
+  Xandroid,
+  Xandroid_1_n,
+  Xandroid_2_n,
+  Xandroid_1_e,
+  Xandroid_2_e,
+  Xandroid_1_w,
+  Xandroid_2_w,
+  Xandroid_1_s,
+  Xandroid_2_s,
+  Yandroid_n,
+  Yandroid_nB,
+  Yandroid_ne,
+  Yandroid_neB,
+  Yandroid_e,
+  Yandroid_eB,
+  Yandroid_se,
+  Yandroid_seB,
+  Yandroid_s,
+  Yandroid_sB,
+  Yandroid_sw,
+  Yandroid_swB,
+  Yandroid_w,
+  Yandroid_wB,
+  Yandroid_nw,
+  Yandroid_nwB,
+  Xspring,
+  Xspring_pause,
+  Xspring_e,
+  Xspring_w,
+  Xspring_fall,
+  Yspring_s,
+  Yspring_sB,
+  Yspring_e,
+  Yspring_eB,
+  Yspring_w,
+  Yspring_wB,
+  Yspring_kill_e,
+  Yspring_kill_eB,
+  Yspring_kill_w,
+  Yspring_kill_wB,
+  Xeater_n,
+  Xeater_e,
+  Xeater_w,
+  Xeater_s,
+  Yeater_n,
+  Yeater_nB,
+  Yeater_e,
+  Yeater_eB,
+  Yeater_s,
+  Yeater_sB,
+  Yeater_w,
+  Yeater_wB,
+  Yeater_stone,
+  Yeater_spring,
+  Xalien,
+  Xalien_pause,
+  Yalien_n,
+  Yalien_nB,
+  Yalien_e,
+  Yalien_eB,
+  Yalien_s,
+  Yalien_sB,
+  Yalien_w,
+  Yalien_wB,
+  Yalien_stone,
+  Yalien_spring,
+  Xemerald,
+  Xemerald_pause,
+  Xemerald_fall,
+  Xemerald_shine,
+  Yemerald_s,
+  Yemerald_sB,
+  Yemerald_e,
+  Yemerald_eB,
+  Yemerald_w,
+  Yemerald_wB,
+  Yemerald_eat,
+  Yemerald_stone,
+  Xdiamond,
+  Xdiamond_pause,
+  Xdiamond_fall,
+  Xdiamond_shine,
+  Ydiamond_s,
+  Ydiamond_sB,
+  Ydiamond_e,
+  Ydiamond_eB,
+  Ydiamond_w,
+  Ydiamond_wB,
+  Ydiamond_eat,
+  Ydiamond_stone,
+  Xdrip_fall,
+  Xdrip_stretch,
+  Xdrip_stretchB,
+  Xdrip_eat,
+  Ydrip_s1,
+  Ydrip_s1B,
+  Ydrip_s2,
+  Ydrip_s2B,
+  Xbomb,
+  Xbomb_pause,
+  Xbomb_fall,
+  Ybomb_s,
+  Ybomb_sB,
+  Ybomb_e,
+  Ybomb_eB,
+  Ybomb_w,
+  Ybomb_wB,
+  Ybomb_eat,
+  Xballoon,
+  Yballoon_n,
+  Yballoon_nB,
+  Yballoon_e,
+  Yballoon_eB,
+  Yballoon_s,
+  Yballoon_sB,
+  Yballoon_w,
+  Yballoon_wB,
+  Xgrass,
+  Ygrass_nB,
+  Ygrass_eB,
+  Ygrass_sB,
+  Ygrass_wB,
+  Xdirt,
+  Ydirt_nB,
+  Ydirt_eB,
+  Ydirt_sB,
+  Ydirt_wB,
+  Xacid_ne,
+  Xacid_se,
+  Xacid_s,
+  Xacid_sw,
+  Xacid_nw,
+  Xacid_1,
+  Xacid_2,
+  Xacid_3,
+  Xacid_4,
+  Xacid_5,
+  Xacid_6,
+  Xacid_7,
+  Xacid_8,
+  Xball_1,
+  Xball_1B,
+  Xball_2,
+  Xball_2B,
+  Yball_eat,
+  Xgrow_ns,
+  Ygrow_ns_eat,
+  Xgrow_ew,
+  Ygrow_ew_eat,
+  Xwonderwall,
+  XwonderwallB,
+  Xamoeba_1,
+  Xamoeba_2,
+  Xamoeba_3,
+  Xamoeba_4,
+  Xamoeba_5,
+  Xamoeba_6,
+  Xamoeba_7,
+  Xamoeba_8,
+  Xdoor_1,
+  Xdoor_2,
+  Xdoor_3,
+  Xdoor_4,
+  Xdoor_5,
+  Xdoor_6,
+  Xdoor_7,
+  Xdoor_8,
+  Xkey_1,
+  Xkey_2,
+  Xkey_3,
+  Xkey_4,
+  Xkey_5,
+  Xkey_6,
+  Xkey_7,
+  Xkey_8,
+  Xwind_n,
+  Xwind_e,
+  Xwind_s,
+  Xwind_w,
+  Xwind_nesw,
+  Xwind_stop,
+  Xexit,
+  Xexit_1,
+  Xexit_2,
+  Xexit_3,
+  Xdynamite,
+  Ydynamite_eat,
+  Xdynamite_1,
+  Xdynamite_2,
+  Xdynamite_3,
+  Xdynamite_4,
+  Xbumper,
+  XbumperB,
+  Xwheel,
+  XwheelB,
+  Xswitch,
+  XswitchB,
+  Xsand,
+  Xsand_stone,
+  Xsand_stonein_1,
+  Xsand_stonein_2,
+  Xsand_stonein_3,
+  Xsand_stonein_4,
+  Xsand_stonesand_1,
+  Xsand_stonesand_2,
+  Xsand_stonesand_3,
+  Xsand_stonesand_4,
+  Xsand_stoneout_1,
+  Xsand_stoneout_2,
+  Xsand_sandstone_1,
+  Xsand_sandstone_2,
+  Xsand_sandstone_3,
+  Xsand_sandstone_4,
+  Xplant,
+  Yplant,
+  Xlenses,
+  Xmagnify,
+  Xdripper,
+  XdripperB,
+  Xfake_blank,
+  Xfake_blankB,
+  Xfake_grass,
+  Xfake_grassB,
+  Xfake_door_1,
+  Xfake_door_2,
+  Xfake_door_3,
+  Xfake_door_4,
+  Xfake_door_5,
+  Xfake_door_6,
+  Xfake_door_7,
+  Xfake_door_8,
+  Xsteel_1,
+  Xsteel_2,
+  Xsteel_3,
+  Xsteel_4,
+  Xwall_1,
+  Xwall_2,
+  Xwall_3,
+  Xwall_4,
+  Xround_wall_1,
+  Xround_wall_2,
+  Xround_wall_3,
+  Xround_wall_4,
+  Xdecor_1,
+  Xdecor_2,
+  Xdecor_3,
+  Xdecor_4,
+  Xdecor_5,
+  Xdecor_6,
+  Xdecor_7,
+  Xdecor_8,
+  Xdecor_9,
+  Xdecor_10,
+  Xdecor_11,
+  Xdecor_12,
+  Xalpha_0,
+  Xalpha_1,
+  Xalpha_2,
+  Xalpha_3,
+  Xalpha_4,
+  Xalpha_5,
+  Xalpha_6,
+  Xalpha_7,
+  Xalpha_8,
+  Xalpha_9,
+  Xalpha_excla,
+  Xalpha_quote,
+  Xalpha_comma,
+  Xalpha_minus,
+  Xalpha_perio,
+  Xalpha_colon,
+  Xalpha_quest,
+  Xalpha_a,
+  Xalpha_b,
+  Xalpha_c,
+  Xalpha_d,
+  Xalpha_e,
+  Xalpha_f,
+  Xalpha_g,
+  Xalpha_h,
+  Xalpha_i,
+  Xalpha_j,
+  Xalpha_k,
+  Xalpha_l,
+  Xalpha_m,
+  Xalpha_n,
+  Xalpha_o,
+  Xalpha_p,
+  Xalpha_q,
+  Xalpha_r,
+  Xalpha_s,
+  Xalpha_t,
+  Xalpha_u,
+  Xalpha_v,
+  Xalpha_w,
+  Xalpha_x,
+  Xalpha_y,
+  Xalpha_z,
+  Xalpha_arrow_e,
+  Xalpha_arrow_w,
+  Xalpha_copyr,
 
-       Xboom_bug, /* passed from explode to synchro (linked explosion); transition to explode_normal */
-       Xboom_bomb, /* passed from explode to synchro (linked explosion); transition to explode_normal */
-       Xboom_android, /* passed from explode to synchro; transition to boom_2 */
-       Xboom_1, /* passed from explode to synchro; transition to boom_2 */
-       Xboom_2, /* transition to boom[] */
+  Xboom_bug, /* passed from explode to synchro (linked explosion); transition to explode_normal */
+  Xboom_bomb, /* passed from explode to synchro (linked explosion); transition to explode_normal */
+  Xboom_android, /* passed from explode to synchro; transition to boom_2 */
+  Xboom_1, /* passed from explode to synchro; transition to boom_2 */
+  Xboom_2, /* transition to boom[] */
 
-       Znormal, /* no picture */ /* this tile is passed from synchro to explode, only in next[] */
-       Zdynamite, /* no picture */ /* this tile is passed from synchro to explode, only in next[] */
-       Zplayer, /* no picture */ /* special code to indicate player */
-       ZBORDER, /* no picture */ /* special code to indicate border */
+  Znormal, /* no picture */ /* this tile is passed from synchro to explode, only in next[] */
+  Zdynamite, /* no picture */ /* this tile is passed from synchro to explode, only in next[] */
+  Zplayer, /* no picture */ /* special code to indicate player */
+  ZBORDER, /* no picture */ /* special code to indicate border */
 
-       TILE_MAX
+  TILE_MAX
 };
 
-enum {
-       SPR_still = 0,
-       SPR_walk = 1,
-       SPR_push = 5,
-       SPR_spray = 9,
-       SPR_MAX = 13
+enum
+{
+  SPR_still = 0,
+  SPR_walk  = 1,
+  SPR_push  = 5,
+  SPR_spray = 9,
+
+  SPR_MAX   = 13
 };
 
+#endif
+
 extern unsigned char tab_blank[TILE_MAX];
 extern unsigned char tab_acid[TILE_MAX];
-extern unsigned char tab_ameuba[TILE_MAX];
+extern unsigned char tab_amoeba[TILE_MAX];
 extern unsigned char tab_android_move[TILE_MAX];
 extern unsigned short tab_explode_normal[TILE_MAX];
 extern unsigned short tab_explode_dynamite[TILE_MAX];