rnd-20061230-1-src
[rocksndiamonds.git] / src / main.c
index bb45da5484c23b3bed1771adac2f11f358ba2a2c..3b1eb05e423faa922287e0582bb2702c91e12e88 100644 (file)
@@ -59,6 +59,7 @@ short                 ChangeEvent[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  WasJustMoving[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  WasJustFalling[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  CheckCollision[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+short                  CheckImpact[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 short                  AmoebaCnt[MAX_NUM_AMOEBA];
 short                  AmoebaCnt2[MAX_NUM_AMOEBA];
@@ -105,6 +106,7 @@ struct SetupInfo    setup;
 struct GameInfo                game;
 struct GlobalInfo      global;
 struct BorderInfo      border;
+struct TitleInfo       title;
 struct MenuInfo                menu;
 struct DoorInfo                door_1, door_2;
 struct PreviewInfo     preview;
@@ -4618,6 +4620,7 @@ struct SpecialSuffixInfo special_suffix_info[NUM_SPECIAL_GFX_ARGS + 1 + 1] =
 {
   { ".[DEFAULT]",      GFX_SPECIAL_ARG_DEFAULT,        },
   { ".TITLE",          GFX_SPECIAL_ARG_TITLE,          },
+  { ".MESSAGE",                GFX_SPECIAL_ARG_MESSAGE,        },
   { ".MAIN",           GFX_SPECIAL_ARG_MAIN,           },
   { ".LEVELS",         GFX_SPECIAL_ARG_LEVELS          },
   { ".SCORES",         GFX_SPECIAL_ARG_SCORES,         },
@@ -4649,6 +4652,14 @@ struct TokenIntPtrInfo image_config_vars[] =
   { "border.draw_masked.PLAYING",&border.draw_masked[GFX_SPECIAL_ARG_PLAYING] },
   { "border.draw_masked.DOOR",  &border.draw_masked[GFX_SPECIAL_ARG_DOOR]    },
 
+  { "title.fade_delay",                &title.fade_delay                             },
+  { "title.post_delay",                &title.post_delay                             },
+  { "title.auto_delay",                &title.auto_delay                             },
+
+  { "menu.fade_delay",         &menu.fade_delay                              },
+  { "menu.post_delay",         &menu.post_delay                              },
+  { "menu.auto_delay",         &menu.auto_delay                              },
+
   { "menu.draw_xoffset",       &menu.draw_xoffset[GFX_SPECIAL_ARG_DEFAULT]   },
   { "menu.draw_yoffset",       &menu.draw_yoffset[GFX_SPECIAL_ARG_DEFAULT]   },
   { "menu.draw_xoffset.MAIN",  &menu.draw_xoffset[GFX_SPECIAL_ARG_MAIN]      },
@@ -4661,6 +4672,26 @@ struct TokenIntPtrInfo image_config_vars[] =
   { "menu.draw_yoffset.EDITOR",        &menu.draw_yoffset[GFX_SPECIAL_ARG_EDITOR]    },
   { "menu.draw_xoffset.INFO",  &menu.draw_xoffset[GFX_SPECIAL_ARG_INFO]      },
   { "menu.draw_yoffset.INFO",  &menu.draw_yoffset[GFX_SPECIAL_ARG_INFO]      },
+  { "menu.draw_xoffset.INFO[ELEMENTS]",
+    &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_ELEMENTS]                   },
+  { "menu.draw_yoffset.INFO[ELEMENTS]",
+    &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_ELEMENTS]                   },
+  { "menu.draw_xoffset.INFO[MUSIC]",
+    &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_MUSIC]                              },
+  { "menu.draw_yoffset.INFO[MUSIC]",
+    &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_MUSIC]                              },
+  { "menu.draw_xoffset.INFO[CREDITS]",
+    &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_CREDITS]                    },
+  { "menu.draw_yoffset.INFO[CREDITS]",
+    &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_CREDITS]                    },
+  { "menu.draw_xoffset.INFO[PROGRAM]",
+    &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_PROGRAM]                    },
+  { "menu.draw_yoffset.INFO[PROGRAM]",
+    &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_PROGRAM]                    },
+  { "menu.draw_xoffset.INFO[LEVELSET]",
+    &menu.draw_xoffset_info[GFX_SPECIAL_ARG_INFO_LEVELSET]                   },
+  { "menu.draw_yoffset.INFO[LEVELSET]",
+    &menu.draw_yoffset_info[GFX_SPECIAL_ARG_INFO_LEVELSET]                   },
   { "menu.draw_xoffset.SETUP", &menu.draw_xoffset[GFX_SPECIAL_ARG_SETUP]     },
   { "menu.draw_yoffset.SETUP", &menu.draw_yoffset[GFX_SPECIAL_ARG_SETUP]     },
 
@@ -4671,9 +4702,6 @@ struct TokenIntPtrInfo image_config_vars[] =
   { "menu.list_size.SCORES",   &menu.list_size[GFX_SPECIAL_ARG_SCORES]       },
   { "menu.list_size.INFO",     &menu.list_size[GFX_SPECIAL_ARG_INFO]         },
 
-  { "menu.fade_delay",         &menu.fade_delay                              },
-  { "menu.post_delay",         &menu.post_delay                              },
-
   { "main.button.name.x",      &menu.main.button.name.x                      },
   { "main.button.name.y",      &menu.main.button.name.y                      },
   { "main.button.levels.x",    &menu.main.button.levels.x                    },
@@ -4690,6 +4718,7 @@ struct TokenIntPtrInfo image_config_vars[] =
   { "main.button.setup.y",     &menu.main.button.setup.y                     },
   { "main.button.quit.x",      &menu.main.button.quit.x                      },
   { "main.button.quit.y",      &menu.main.button.quit.y                      },
+
   { "main.button.prev_level.x",        &menu.main.button.prev_level.x                },
   { "main.button.prev_level.y",        &menu.main.button.prev_level.y                },
   { "main.button.next_level.x",        &menu.main.button.next_level.x                },
@@ -4699,56 +4728,83 @@ struct TokenIntPtrInfo image_config_vars[] =
   { "main.text.name.y",                &menu.main.text.name.y                        },
   { "main.text.name.width",    &menu.main.text.name.width                    },
   { "main.text.name.height",   &menu.main.text.name.height                   },
+  { "main.text.name.align",    &menu.main.text.name.align                    },
   { "main.text.levels.x",      &menu.main.text.levels.x                      },
   { "main.text.levels.y",      &menu.main.text.levels.y                      },
   { "main.text.levels.width",  &menu.main.text.levels.width                  },
   { "main.text.levels.height", &menu.main.text.levels.height                 },
+  { "main.text.levels.align",  &menu.main.text.levels.align                  },
   { "main.text.scores.x",      &menu.main.text.scores.x                      },
   { "main.text.scores.y",      &menu.main.text.scores.y                      },
   { "main.text.scores.width",  &menu.main.text.scores.width                  },
   { "main.text.scores.height", &menu.main.text.scores.height                 },
+  { "main.text.scores.align",  &menu.main.text.scores.align                  },
   { "main.text.editor.x",      &menu.main.text.editor.x                      },
   { "main.text.editor.y",      &menu.main.text.editor.y                      },
   { "main.text.editor.width",  &menu.main.text.editor.width                  },
   { "main.text.editor.height", &menu.main.text.editor.height                 },
+  { "main.text.editor.align",  &menu.main.text.editor.align                  },
   { "main.text.info.x",                &menu.main.text.info.x                        },
   { "main.text.info.y",                &menu.main.text.info.y                        },
   { "main.text.info.width",    &menu.main.text.info.width                    },
   { "main.text.info.height",   &menu.main.text.info.height                   },
+  { "main.text.info.align",    &menu.main.text.info.align                    },
   { "main.text.game.x",                &menu.main.text.game.x                        },
   { "main.text.game.y",                &menu.main.text.game.y                        },
   { "main.text.game.width",    &menu.main.text.game.width                    },
   { "main.text.game.height",   &menu.main.text.game.height                   },
+  { "main.text.game.align",    &menu.main.text.game.align                    },
   { "main.text.setup.x",       &menu.main.text.setup.x                       },
   { "main.text.setup.y",       &menu.main.text.setup.y                       },
   { "main.text.setup.width",   &menu.main.text.setup.width                   },
   { "main.text.setup.height",  &menu.main.text.setup.height                  },
+  { "main.text.setup.align",   &menu.main.text.setup.align                   },
   { "main.text.quit.x",                &menu.main.text.quit.x                        },
   { "main.text.quit.y",                &menu.main.text.quit.y                        },
   { "main.text.quit.width",    &menu.main.text.quit.width                    },
   { "main.text.quit.height",   &menu.main.text.quit.height                   },
+  { "main.text.quit.align",    &menu.main.text.quit.align                    },
 
-  { "main.text.current_level.x",&menu.main.text.current_level.x                      },
-  { "main.text.current_level.y",&menu.main.text.current_level.y                      },
-  { "main.text.first_level.x", &menu.main.text.first_level.x                 },
-  { "main.text.first_level.y", &menu.main.text.first_level.y                 },
-  { "main.text.last_level.x",  &menu.main.text.last_level.x                  },
-  { "main.text.last_level.y",  &menu.main.text.last_level.y                  },
-  { "main.text.levelset_info.x",&menu.main.text.levelset_info.x                      },
-  { "main.text.levelset_info.y",&menu.main.text.levelset_info.y                      },
-  { "main.text.level_info.x",  &menu.main.text.level_info.x                  },
-  { "main.text.level_info.y",  &menu.main.text.level_info.y                  },
+  { "main.text.current_level.x",       &menu.main.text.current_level.x       },
+  { "main.text.current_level.y",       &menu.main.text.current_level.y       },
+  { "main.text.current_level.align",   &menu.main.text.current_level.align   },
+  { "main.text.first_level.x",         &menu.main.text.first_level.x         },
+  { "main.text.first_level.y",         &menu.main.text.first_level.y         },
+  { "main.text.first_level.align",     &menu.main.text.first_level.align     },
+  { "main.text.last_level.x",          &menu.main.text.last_level.x          },
+  { "main.text.last_level.y",          &menu.main.text.last_level.y          },
+  { "main.text.last_level.align",      &menu.main.text.last_level.align      },
+  { "main.text.level_info_1.x",                &menu.main.text.level_info_1.x        },
+  { "main.text.level_info_1.y",                &menu.main.text.level_info_1.y        },
+  { "main.text.level_info_1.align",    &menu.main.text.level_info_1.align    },
+  { "main.text.level_info_2.x",                &menu.main.text.level_info_2.x        },
+  { "main.text.level_info_2.y",                &menu.main.text.level_info_2.y        },
+  { "main.text.level_info_2.align",    &menu.main.text.level_info_2.align    },
+  { "main.text.title_1.x",             &menu.main.text.title_1.x             },
+  { "main.text.title_1.y",             &menu.main.text.title_1.y             },
+  { "main.text.title_1.align",         &menu.main.text.title_1.align         },
+  { "main.text.title_2.x",             &menu.main.text.title_2.x             },
+  { "main.text.title_2.y",             &menu.main.text.title_2.y             },
+  { "main.text.title_2.align",         &menu.main.text.title_2.align         },
+  { "main.text.title_3.x",             &menu.main.text.title_3.x             },
+  { "main.text.title_3.y",             &menu.main.text.title_3.y             },
+  { "main.text.title_3.align",         &menu.main.text.title_3.align         },
 
   { "main.input.name.x",       &menu.main.input.name.x                       },
   { "main.input.name.y",       &menu.main.input.name.y                       },
+  { "main.input.name.align",   &menu.main.input.name.align                   },
 
   { "preview.x",               &preview.x                                    },
   { "preview.y",               &preview.y                                    },
+  { "preview.align",           &preview.align                                },
   { "preview.xsize",           &preview.xsize                                },
   { "preview.ysize",           &preview.ysize                                },
+  { "preview.xoffset",         &preview.xoffset                              },
+  { "preview.yoffset",         &preview.yoffset                              },
   { "preview.tile_size",       &preview.tile_size                            },
   { "preview.step_offset",     &preview.step_offset                          },
   { "preview.step_delay",      &preview.step_delay                           },
+  { "preview.anim_mode",       &preview.anim_mode                            },
 
   { "door_1.width",            &door_1.width                                 },
   { "door_1.height",           &door_1.height                                },