rnd-20021005-1-src
[rocksndiamonds.git] / src / main.c
index 0a821b2f429afe78c144317da7a0923e79f3e43f..ccd297a68af2450981075e97d86d70f47fff60a2 100644 (file)
@@ -164,17 +164,19 @@ struct ConfigInfo image_config_suffix[] =
 {
   { ".xpos",                           "0"                     },
   { ".ypos",                           "0"                     },
+  { ".offset",                         "32"                    },
+  { ".vertical",                       "0"                     },
   { ".frames",                         "1"                     },
 #if 0
   { ".start_frame",                    "-1"                    },
 #endif
   { ".delay",                          "1"                     },
+  { ".mode_loop",                      "0"                     },
   { ".mode_linear",                    "0"                     },
   { ".mode_pingpong",                  "0"                     },
   { ".mode_pingpong2",                 "0"                     },
   { ".mode_reverse",                   "0"                     },
   { ".global_sync",                    "0"                     },
-  { ".vertical",                       "0"                     },
 
   { NULL,                              NULL                    }
 };
@@ -210,6 +212,8 @@ struct ConfigInfo image_config[] =
   { "bd_diamond.xpos",                         "0"                     },
   { "bd_diamond.ypos",                         "10"                    },
   { "bd_diamond.frames",                       "4"                     },
+  { "bd_diamond.delay",                                "4"                     },
+  { "bd_diamond.mode_reverse",                 "1"                     },
   { "bd_diamond.falling",                      "RocksElements.pcx"     },
   { "bd_diamond.falling.xpos",                 "3"                     },
   { "bd_diamond.falling.ypos",                 "10"                    },
@@ -736,6 +740,7 @@ struct ConfigInfo image_config[] =
   { "nut.cracking.xpos",                       "13"                    },
   { "nut.cracking.ypos",                       "1"                     },
   { "nut.cracking.frames",                     "3"                     },
+  { "nut.cracking.delay",                      "2"                     },
   { "nut.cracking.mode_linear",                        "1"                     },
 
   { "dynamite",                                        "RocksElements.pcx"     },
@@ -805,7 +810,7 @@ struct ConfigInfo image_config[] =
   { "yamyam.xpos",                             "0"                     },
   { "yamyam.ypos",                             "5"                     },
   { "yamyam.frames",                           "4"                     },
-  { "yamyam.mode_pingpong",                    "1"                     },
+  { "yamyam.mode_pingpong2",                   "1"                     },
   { "yamyam.moving",                           "RocksElements.pcx"     },
   { "yamyam.moving.xpos",                      "0"                     },
   { "yamyam.moving.ypos",                      "5"                     },
@@ -815,7 +820,7 @@ struct ConfigInfo image_config[] =
   { "robot.xpos",                              "4"                     },
   { "robot.ypos",                              "5"                     },
   { "robot.frames",                            "4"                     },
-  { "robot.mode_pingpong",                     "1"                     },
+  { "robot.mode_pingpong2",                    "1"                     },
 
   { "robot_wheel",                             "RocksElements.pcx"     },
   { "robot_wheel.xpos",                                "0"                     },
@@ -907,10 +912,12 @@ struct ConfigInfo image_config[] =
   { "acid.splashing_left.xpos",                        "8"                     },
   { "acid.splashing_left.ypos",                        "10"                    },
   { "acid.splashing_left.frames",              "4"                     },
+  { "acid.splashing_left.delay",               "2"                     },
   { "acid.splashing_right",                    "RocksHeroes.pcx"       },
   { "acid.splashing_right.xpos",               "12"                    },
   { "acid.splashing_right.ypos",               "10"                    },
   { "acid.splashing_right.frames",             "4"                     },
+  { "acid.splashing_right.delay",              "2"                     },
 
   { "amoeba_drop",                             "RocksElements.pcx"     },
   { "amoeba_drop.xpos",                                "5"                     },
@@ -920,22 +927,79 @@ struct ConfigInfo image_config[] =
   { "amoeba.creating.xpos",                    "5"                     },
   { "amoeba.creating.ypos",                    "6"                     },
   { "amoeba.creating.frames",                  "3"                     },
-  { "amoeba.part1",                            "RocksElements.pcx"     },
-  { "amoeba.part1.xpos",                       "8"                     },
-  { "amoeba.part1.ypos",                       "6"                     },
-  { "amoeba.part1.frames",                     "1"                     },
-  { "amoeba.part2",                            "RocksElements.pcx"     },
-  { "amoeba.part2.xpos",                       "9"                     },
-  { "amoeba.part2.ypos",                       "6"                     },
-  { "amoeba.part2.frames",                     "1"                     },
-  { "amoeba.part3",                            "RocksElements.pcx"     },
-  { "amoeba.part3.xpos",                       "10"                    },
-  { "amoeba.part3.ypos",                       "6"                     },
-  { "amoeba.part3.frames",                     "1"                     },
-  { "amoeba.part4",                            "RocksElements.pcx"     },
-  { "amoeba.part4.xpos",                       "11"                    },
-  { "amoeba.part4.ypos",                       "6"                     },
-  { "amoeba.part4.frames",                     "1"                     },
+  { "amoeba.creating.delay",                   "2"                     },
+  { "amoeba.creating.mode_linear",             "1"                     },
+  { "amoeba.shrinking",                                "RocksElements.pcx"     },
+  { "amoeba.shrinking.xpos",                   "5"                     },
+  { "amoeba.shrinking.ypos",                   "6"                     },
+  { "amoeba.shrinking.frames",                 "3"                     },
+  { "amoeba.shrinking.delay",                  "2"                     },
+  { "amoeba.shrinking.mode_linear",            "1"                     },
+  { "amoeba.shrinking.mode_reverse",           "1"                     },
+  { "amoeba_wet",                              "RocksElements.pcx"     },
+  { "amoeba_wet.xpos",                         "8"                     },
+  { "amoeba_wet.ypos",                         "6"                     },
+  { "amoeba_wet.frames",                       "1"                     },
+  { "amoeba_wet.part1",                                "RocksElements.pcx"     },
+  { "amoeba_wet.part1.xpos",                   "8"                     },
+  { "amoeba_wet.part1.ypos",                   "6"                     },
+  { "amoeba_wet.part1.frames",                 "1"                     },
+  { "amoeba_wet.part2",                                "RocksElements.pcx"     },
+  { "amoeba_wet.part2.xpos",                   "9"                     },
+  { "amoeba_wet.part2.ypos",                   "6"                     },
+  { "amoeba_wet.part2.frames",                 "1"                     },
+  { "amoeba_wet.part3",                                "RocksElements.pcx"     },
+  { "amoeba_wet.part3.xpos",                   "10"                    },
+  { "amoeba_wet.part3.ypos",                   "6"                     },
+  { "amoeba_wet.part3.frames",                 "1"                     },
+  { "amoeba_wet.part4",                                "RocksElements.pcx"     },
+  { "amoeba_wet.part4.xpos",                   "11"                    },
+  { "amoeba_wet.part4.ypos",                   "6"                     },
+  { "amoeba_wet.part4.frames",                 "1"                     },
+  { "amoeba_dry",                              "RocksElements.pcx"     },
+  { "amoeba_dry.xpos",                         "8"                     },
+  { "amoeba_dry.ypos",                         "6"                     },
+  { "amoeba_dry.frames",                       "1"                     },
+  { "amoeba_dry.part1",                                "RocksElements.pcx"     },
+  { "amoeba_dry.part1.xpos",                   "8"                     },
+  { "amoeba_dry.part1.ypos",                   "6"                     },
+  { "amoeba_dry.part1.frames",                 "1"                     },
+  { "amoeba_dry.part2",                                "RocksElements.pcx"     },
+  { "amoeba_dry.part2.xpos",                   "9"                     },
+  { "amoeba_dry.part2.ypos",                   "6"                     },
+  { "amoeba_dry.part2.frames",                 "1"                     },
+  { "amoeba_dry.part3",                                "RocksElements.pcx"     },
+  { "amoeba_dry.part3.xpos",                   "10"                    },
+  { "amoeba_dry.part3.ypos",                   "6"                     },
+  { "amoeba_dry.part3.frames",                 "1"                     },
+  { "amoeba_dry.part4",                                "RocksElements.pcx"     },
+  { "amoeba_dry.part4.xpos",                   "11"                    },
+  { "amoeba_dry.part4.ypos",                   "6"                     },
+  { "amoeba_dry.part4.frames",                 "1"                     },
+  { "amoeba_full",                             "RocksElements.pcx"     },
+  { "amoeba_full.xpos",                                "8"                     },
+  { "amoeba_full.ypos",                                "6"                     },
+  { "amoeba_full.frames",                      "1"                     },
+  { "amoeba_full.part1",                       "RocksElements.pcx"     },
+  { "amoeba_full.part1.xpos",                  "8"                     },
+  { "amoeba_full.part1.ypos",                  "6"                     },
+  { "amoeba_full.part1.frames",                        "1"                     },
+  { "amoeba_full.part2",                       "RocksElements.pcx"     },
+  { "amoeba_full.part2.xpos",                  "9"                     },
+  { "amoeba_full.part2.ypos",                  "6"                     },
+  { "amoeba_full.part2.frames",                        "1"                     },
+  { "amoeba_full.part3",                       "RocksElements.pcx"     },
+  { "amoeba_full.part3.xpos",                  "10"                    },
+  { "amoeba_full.part3.ypos",                  "6"                     },
+  { "amoeba_full.part3.frames",                        "1"                     },
+  { "amoeba_full.part4",                       "RocksElements.pcx"     },
+  { "amoeba_full.part4.xpos",                  "11"                    },
+  { "amoeba_full.part4.ypos",                  "6"                     },
+  { "amoeba_full.part4.frames",                        "1"                     },
+  { "amoeba_dead",                             "RocksElements.pcx"     },
+  { "amoeba_dead.xpos",                                "12"                    },
+  { "amoeba_dead.ypos",                                "6"                     },
+  { "amoeba_dead.frames",                      "1"                     },
   { "amoeba_dead.part1",                       "RocksElements.pcx"     },
   { "amoeba_dead.part1.xpos",                  "12"                    },
   { "amoeba_dead.part1.ypos",                  "6"                     },
@@ -1008,13 +1072,16 @@ struct ConfigInfo image_config[] =
   { "exit_closed.ypos",                                "11"                    },
   { "exit_closed.frames",                      "1"                     },
   { "exit.opening",                            "RocksElements.pcx"     },
-  { "exit.opening.xpos",                       "1"                     },
+  { "exit.opening.xpos",                       "0"                     },
   { "exit.opening.ypos",                       "11"                    },
-  { "exit.opening.frames",                     "4"                     },
+  { "exit.opening.frames",                     "5"                     },
+  { "exit.opening.delay",                      "6"                     },
+  { "exit.opening.mode_linear",                        "1"                     },
   { "exit_open",                               "RocksElements.pcx"     },
   { "exit_open.xpos",                          "4"                     },
   { "exit_open.ypos",                          "11"                    },
   { "exit_open.frames",                                "4"                     },
+  { "exit_open.delay",                         "4"                     },
   { "exit_open.mode_pingpong",                 "1"                     },
 
   /* images for Emerald Mine Club style elements and actions */
@@ -1375,6 +1442,7 @@ struct ConfigInfo image_config[] =
   { "switchgate.opening.xpos",                 "8"                     },
   { "switchgate.opening.ypos",                 "5"                     },
   { "switchgate.opening.frames",               "5"                     },
+  { "switchgate.opening.delay",                        "6"                     },
   { "switchgate_open",                         "RocksDC.pcx"           },
   { "switchgate_open.xpos",                    "12"                    },
   { "switchgate_open.ypos",                    "5"                     },
@@ -1383,6 +1451,7 @@ struct ConfigInfo image_config[] =
   { "switchgate.closing.xpos",                 "8"                     },
   { "switchgate.closing.ypos",                 "5"                     },
   { "switchgate.closing.frames",               "5"                     },
+  { "switchgate.closing.delay",                        "6"                     },
   { "switchgate.closing.mode_reverse",         "1"                     },
 
   { "timegate_closed",                         "RocksDC.pcx"           },
@@ -1393,6 +1462,7 @@ struct ConfigInfo image_config[] =
   { "timegate.opening.xpos",                   "8"                     },
   { "timegate.opening.ypos",                   "6"                     },
   { "timegate.opening.frames",                 "5"                     },
+  { "timegate.opening.delay",                  "6"                     },
   { "timegate_open",                           "RocksDC.pcx"           },
   { "timegate_open.xpos",                      "12"                    },
   { "timegate_open.ypos",                      "6"                     },
@@ -1401,6 +1471,7 @@ struct ConfigInfo image_config[] =
   { "timegate.closing.xpos",                   "8"                     },
   { "timegate.closing.ypos",                   "6"                     },
   { "timegate.closing.frames",                 "5"                     },
+  { "timegate.closing.delay",                  "6"                     },
   { "timegate.closing.mode_reverse",           "1"                     },
 
   { "pearl",                                   "RocksMore.pcx"         },
@@ -1411,6 +1482,7 @@ struct ConfigInfo image_config[] =
   { "pearl.breaking.xpos",                     "0"                     },
   { "pearl.breaking.ypos",                     "4"                     },
   { "pearl.breaking.frames",                   "4"                     },
+  { "pearl.breaking.delay",                    "2"                     },
   { "pearl.breaking.mode_linear",              "4"                     },
 
   { "crystal",                                 "RocksMore.pcx"         },
@@ -1690,7 +1762,7 @@ struct ConfigInfo image_config[] =
   { "dark_yamyam.xpos",                                "8"                     },
   { "dark_yamyam.ypos",                                "11"                    },
   { "dark_yamyam.frames",                      "4"                     },
-  { "dark_yamyam.mode_pingpong",               "1"                     },
+  { "dark_yamyam.mode_pingpong2",              "1"                     },
 
   { "dynabomb.active",                         "RocksElements.pcx"     },
   { "dynabomb.active.xpos",                    "12"                    },
@@ -1954,53 +2026,65 @@ struct ConfigInfo image_config[] =
   { "flames_left1.xpos",                       "8"                     },
   { "flames_left1.ypos",                       "12"                    },
   { "flames_left1.frames",                     "2"                     },
+  { "flames_left1.offset",                     "96"                    },
   { "flames_left2",                            "RocksHeroes.pcx"       },
   { "flames_left2.xpos",                       "9"                     },
   { "flames_left2.ypos",                       "12"                    },
   { "flames_left2.frames",                     "2"                     },
+  { "flames_left2.offset",                     "96"                    },
   { "flames_left3",                            "RocksHeroes.pcx"       },
   { "flames_left3.xpos",                       "10"                    },
   { "flames_left3.ypos",                       "12"                    },
   { "flames_left3.frames",                     "2"                     },
+  { "flames_left3.offset",                     "96"                    },
 
   { "flames_right1",                           "RocksHeroes.pcx"       },
   { "flames_right1.xpos",                      "8"                     },
   { "flames_right1.ypos",                      "13"                    },
   { "flames_right1.frames",                    "2"                     },
+  { "flames_right1.offset",                    "96"                    },
   { "flames_right2",                           "RocksHeroes.pcx"       },
   { "flames_right2.xpos",                      "9"                     },
   { "flames_right2.ypos",                      "13"                    },
   { "flames_right2.frames",                    "2"                     },
+  { "flames_right2.offset",                    "96"                    },
   { "flames_right3",                           "RocksHeroes.pcx"       },
   { "flames_right3.xpos",                      "10"                    },
   { "flames_right3.ypos",                      "13"                    },
   { "flames_right3.frames",                    "2"                     },
+  { "flames_right3.offset",                    "96"                    },
 
   { "flames_up1",                              "RocksHeroes.pcx"       },
   { "flames_up1.xpos",                         "8"                     },
   { "flames_up1.ypos",                         "14"                    },
   { "flames_up1.frames",                       "2"                     },
+  { "flames_up1.offset",                       "96"                    },
   { "flames_up2",                              "RocksHeroes.pcx"       },
   { "flames_up2.xpos",                         "9"                     },
   { "flames_up2.ypos",                         "14"                    },
   { "flames_up2.frames",                       "2"                     },
+  { "flames_up2.offset",                       "96"                    },
   { "flames_up3",                              "RocksHeroes.pcx"       },
   { "flames_up3.xpos",                         "10"                    },
   { "flames_up3.ypos",                         "14"                    },
   { "flames_up3.frames",                       "2"                     },
+  { "flames_up3.offset",                       "96"                    },
 
   { "flames_down1",                            "RocksHeroes.pcx"       },
   { "flames_down1.xpos",                       "8"                     },
   { "flames_down1.ypos",                       "15"                    },
   { "flames_down1.frames",                     "2"                     },
+  { "flames_down1.offset",                     "96"                    },
   { "flames_down2",                            "RocksHeroes.pcx"       },
   { "flames_down2.xpos",                       "9"                     },
   { "flames_down2.ypos",                       "15"                    },
   { "flames_down2.frames",                     "2"                     },
+  { "flames_down2.offset",                     "96"                    },
   { "flames_down3",                            "RocksHeroes.pcx"       },
   { "flames_down3.xpos",                       "10"                    },
   { "flames_down3.ypos",                       "15"                    },
   { "flames_down3.frames",                     "2"                     },
+  { "flames_down3.offset",                     "96"                    },
 
   { "stoneblock",                              "RocksElements.pcx"     },
   { "stoneblock.xpos",                         "10"                    },
@@ -2355,14 +2439,16 @@ struct ConfigInfo image_config[] =
   { "explosion.frames",                                "8"                     },
 
   { "twinkle_blue",                            "RocksHeroes.pcx"       },
-  { "twinkle_blue.xpos",                       "8"                     },
+  { "twinkle_blue.xpos",                       "9"                     },
   { "twinkle_blue.ypos",                       "11"                    },
   { "twinkle_blue.frames",                     "3"                     },
+  { "twinkle_blue.delay",                      "2"                     },
   { "twinkle_blue.mode_pingpong",              "1"                     },
   { "twinkle_white",                           "RocksHeroes.pcx"       },
-  { "twinkle_white.xpos",                      "8"                     },
+  { "twinkle_white.xpos",                      "13"                    },
   { "twinkle_white.ypos",                      "11"                    },
   { "twinkle_white.frames",                    "3"                     },
+  { "twinkle_white.delay",                     "2"                     },
   { "twinkle_white.mode_pingpong",             "1"                     },
 
   { "steelwall_topleft",                       "RocksElements.pcx"     },