rnd-20030304-2-src
authorHolger Schemel <info@artsoft.org>
Tue, 4 Mar 2003 17:25:49 +0000 (18:25 +0100)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:40:36 +0000 (10:40 +0200)
13 files changed:
src/conf_gfx.c
src/conf_gfx.h
src/conftime.h
src/editor.c
src/files.c
src/game.c
src/init.c
src/libgame/image.c
src/libgame/misc.c
src/libgame/misc.h
src/libgame/sound.c
src/libgame/system.h
src/screens.c

index b20c77841b938510499d9e32fa4c6407ff58b8d6..afa0ffba4ad8dd928c80fb89eb53b15eb3164265 100644 (file)
@@ -3092,6 +3092,10 @@ struct ConfigInfo image_config[] =
   { "global.border",                           "RocksScreen.pcx"       },
   { "global.door",                             "RocksDoor.pcx"         },
 
+  { "editor.element_border",                   "RocksElements.pcx"     },
+  { "editor.element_border.xpos",              "0"                     },
+  { "editor.element_border.ypos",              "0"                     },
+
   { "background",                              UNDEFINED_FILENAME      },
   { "background.MAIN",                         UNDEFINED_FILENAME      },
   { "background.LEVELS",                       UNDEFINED_FILENAME      },
@@ -3132,7 +3136,5 @@ struct ConfigInfo image_config[] =
 
   { "global.num_toons",                                "20"                    },
 
-  { "menu.main.hide_static_text",              "false"                 },
-
   { NULL,                                      NULL                    }
 };
index c8a12e1f956d3fd842e2c8e3008384f5513f144b..09418f341333c05d5e94e1d271bc3b823bae0d8b 100644 (file)
 #define IMG_FONT_TAPE_RECORDER                         822
 #define IMG_GLOBAL_BORDER                              823
 #define IMG_GLOBAL_DOOR                                        824
-#define IMG_BACKGROUND                                 825
-#define IMG_BACKGROUND_MAIN                            826
-#define IMG_BACKGROUND_LEVELS                          827
-#define IMG_BACKGROUND_SCORES                          828
-#define IMG_BACKGROUND_EDITOR                          829
-#define IMG_BACKGROUND_INFO                            830
-#define IMG_BACKGROUND_SETUP                           831
-#define IMG_BACKGROUND_DOOR                            832
-#define IMG_INFO_FONT_EM_1                             833
-#define IMG_INFO_FONT_EM_2                             834
-#define IMG_INFO_FONT_EM_3                             835
-#define IMG_INFO_FONT_EM_4                             836
-#define IMG_INFO_FONT_EM_5                             837
+#define IMG_EDITOR_ELEMENT_BORDER                      825
+#define IMG_BACKGROUND                                 826
+#define IMG_BACKGROUND_MAIN                            827
+#define IMG_BACKGROUND_LEVELS                          828
+#define IMG_BACKGROUND_SCORES                          829
+#define IMG_BACKGROUND_EDITOR                          830
+#define IMG_BACKGROUND_INFO                            831
+#define IMG_BACKGROUND_SETUP                           832
+#define IMG_BACKGROUND_DOOR                            833
+#define IMG_INFO_FONT_EM_1                             834
+#define IMG_INFO_FONT_EM_2                             835
+#define IMG_INFO_FONT_EM_3                             836
+#define IMG_INFO_FONT_EM_4                             837
+#define IMG_INFO_FONT_EM_5                             838
 
-#define NUM_IMAGE_FILES                                        838
+#define NUM_IMAGE_FILES                                        839
 
 #endif /* CONF_GFX_H */
index fab0507b75b910b554e51c96572845048590878a..d0b39e1bb4fce8080b3824d1639456853fbead69 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2003-03-04 02:56]"
+#define COMPILE_DATE_STRING "[2003-03-04 17:59]"
index 42926f06e77f695bccaa90b349a43b4985788764..075bed040f75ec6b4d8324ac02a604de4de27a48 100644 (file)
@@ -2791,7 +2791,7 @@ static void DrawDrawingWindow()
 
 static void DrawElementBorder(int dest_x, int dest_y, int width, int height)
 {
-  int border_graphic = IMG_SAND;
+  int border_graphic = IMG_EDITOR_ELEMENT_BORDER;
   Bitmap *src_bitmap;
   int src_x, src_y;
   int num_mini_tilex = width / MINI_TILEX + 1;
index a0e203572a7b13ad69de974a15fbe51f6e0c96f5..0c2a98d147cf600d40d72de71838a1ca86225be1 100644 (file)
@@ -1702,16 +1702,11 @@ void LoadSpecialMenuDesignSettings()
   char *value;
 
   /* !!! CHANGE THIS !!! (redundant initialization) !!! */
-  gfx.menu_main_hide_static_text = FALSE;
   global.num_toons = 20;
 
   if ((setup_file_list = loadSetupFileList(filename)) == NULL)
     return;
 
-  value = getTokenValue(setup_file_list, "menu.main.hide_static_text");
-  if (value != NULL)
-    gfx.menu_main_hide_static_text = get_boolean_from_string(value);
-
   value = getTokenValue(setup_file_list, "global.num_toons");
   if (value != NULL)
     global.num_toons = get_integer_from_string(value);
index c95f398b8b51908de424165fdba307b8e0e4a708..6a62ab77dfb49fdeae9289a7d94a9b7ff0608d64 100644 (file)
@@ -3724,6 +3724,7 @@ void AmoebeAbleger(int ax, int ay)
 {
   int i;
   int element = Feld[ax][ay];
+  int graphic = el2img(element);
   int newax = ax, neway = ay;
   static int xy[4][2] =
   {
@@ -3740,6 +3741,9 @@ void AmoebeAbleger(int ax, int ay)
     return;
   }
 
+  if (IS_ANIMATED(graphic))
+    DrawLevelGraphicAnimationIfNeeded(ax, ay, graphic);
+
   if (!MovDelay[ax][ay])       /* start making new amoeba field */
     MovDelay[ax][ay] = RND(FRAMES_PER_SECOND * 25 / (1 + level.amoeba_speed));
 
@@ -3871,8 +3875,12 @@ void Life(int ax, int ay)
   static int life[4] = { 2, 3, 3, 3 }; /* parameters for "game of life" */
   int life_time = 40;
   int element = Feld[ax][ay];
+  int graphic = el2img(element);
   boolean changed = FALSE;
 
+  if (IS_ANIMATED(graphic))
+    DrawLevelGraphicAnimationIfNeeded(ax, ay, graphic);
+
   if (Stop[ax][ay])
     return;
 
@@ -3969,7 +3977,15 @@ void CheckExit(int x, int y)
   if (local_player->gems_still_needed > 0 ||
       local_player->sokobanfields_still_needed > 0 ||
       local_player->lights_still_needed > 0)
+  {
+    int element = Feld[x][y];
+    int graphic = el2img(element);
+
+    if (IS_ANIMATED(graphic))
+      DrawLevelGraphicAnimationIfNeeded(x, y, graphic);
+
     return;
+  }
 
   Feld[x][y] = EL_EXIT_OPENING;
 
@@ -3979,7 +3995,15 @@ void CheckExit(int x, int y)
 void CheckExitSP(int x, int y)
 {
   if (local_player->gems_still_needed > 0)
+  {
+    int element = Feld[x][y];
+    int graphic = el2img(element);
+
+    if (IS_ANIMATED(graphic))
+      DrawLevelGraphicAnimationIfNeeded(x, y, graphic);
+
     return;
+  }
 
   Feld[x][y] = EL_SP_EXIT_OPEN;
 
@@ -4100,12 +4124,16 @@ void MauerWaechst(int x, int y)
 void MauerAbleger(int ax, int ay)
 {
   int element = Feld[ax][ay];
+  int graphic = el2img(element);
   boolean oben_frei = FALSE, unten_frei = FALSE;
   boolean links_frei = FALSE, rechts_frei = FALSE;
   boolean oben_massiv = FALSE, unten_massiv = FALSE;
   boolean links_massiv = FALSE, rechts_massiv = FALSE;
   boolean new_wall = FALSE;
 
+  if (IS_ANIMATED(graphic))
+    DrawLevelGraphicAnimationIfNeeded(ax, ay, graphic);
+
   if (!MovDelay[ax][ay])       /* start building new wall */
     MovDelay[ax][ay] = 6;
 
@@ -4529,10 +4557,8 @@ void GameActions()
     element = Feld[x][y];
     graphic = el2img(element);
 
-#if 1
     if (graphic_info[graphic].anim_global_sync)
       GfxFrame[x][y] = FrameCounter;
-#endif
 
     if (ANIM_MODE(graphic) == ANIM_RANDOM &&
        IS_NEXT_FRAME(GfxFrame[x][y], graphic))
@@ -4542,11 +4568,8 @@ void GameActions()
 
     if (IS_INACTIVE(element))
     {
-
-#if 1
       if (IS_ANIMATED(graphic))
        DrawLevelGraphicAnimationIfNeeded(x, y, graphic);
-#endif
 
       continue;
     }
@@ -4563,8 +4586,6 @@ void GameActions()
       if (IS_GEM(element) || element == EL_SP_INFOTRON)
        EdelsteinFunkeln(x, y);
     }
-
-#if 1
     else if ((element == EL_ACID ||
              element == EL_EXIT_OPEN ||
              element == EL_SP_EXIT_OPEN ||
@@ -4575,8 +4596,6 @@ void GameActions()
              element == EL_SHIELD_DEADLY) &&
             IS_ANIMATED(graphic))
       DrawLevelGraphicAnimationIfNeeded(x, y, graphic);
-#endif
-
     else if (IS_MOVING(x, y))
       ContinueMoving(x, y);
     else if (IS_ACTIVE_BOMB(element))
@@ -4589,39 +4608,16 @@ void GameActions()
       AmoebeWaechst(x, y);
     else if (element == EL_AMOEBA_SHRINKING)
       AmoebaDisappearing(x, y);
-
 #if !USE_NEW_AMOEBA_CODE
     else if (IS_AMOEBALIVE(element))
       AmoebeAbleger(x, y);
 #endif
-
     else if (element == EL_GAMEOFLIFE || element == EL_BIOMAZE)
       Life(x, y);
-#if 0
-    else if (element == EL_ROBOT_WHEEL_ACTIVE)
-      RobotWheel(x, y);
-    else if (element == EL_TIMEGATE_SWITCH_ACTIVE)
-      TimegateWheel(x, y);
-#endif
-#if 0
-    else if (element == EL_ACID_SPLASH_LEFT ||
-            element == EL_ACID_SPLASH_RIGHT)
-      SplashAcid(x, y);
-#endif
-#if 0
-    else if (element == EL_NUT_CRACKING)
-      NussKnacken(x, y);
-    else if (element == EL_PEARL_BREAKING)
-      BreakingPearl(x, y);
-#endif
     else if (element == EL_EXIT_CLOSED)
       CheckExit(x, y);
     else if (element == EL_SP_EXIT_CLOSED)
       CheckExitSP(x, y);
-#if 0
-    else if (element == EL_EXIT_OPENING)
-      AusgangstuerOeffnen(x, y);
-#endif
     else if (element == EL_WALL_GROWING_ACTIVE)
       MauerWaechst(x, y);
     else if (element == EL_WALL_GROWING ||
@@ -4631,35 +4627,12 @@ void GameActions()
       MauerAbleger(x, y);
     else if (element == EL_FLAMES)
       CheckForDragon(x, y);
-#if 0
-    else if (element == EL_SP_BUGGY_BASE ||
-            element == EL_SP_BUGGY_BASE_ACTIVATING ||
-            element == EL_SP_BUGGY_BASE_ACTIVE)
-      CheckBuggyBase(x, y);
-    else if (element == EL_TRAP ||
-            element == EL_TRAP_ACTIVE)
-      CheckTrap(x, y);
-    else if (IS_BELT_ACTIVE(element))
-      DrawBeltAnimation(x, y, element);
-    else if (element == EL_SWITCHGATE_OPENING)
-      OpenSwitchgate(x, y);
-    else if (element == EL_SWITCHGATE_CLOSING)
-      CloseSwitchgate(x, y);
-    else if (element == EL_TIMEGATE_OPENING)
-      OpenTimegate(x, y);
-    else if (element == EL_TIMEGATE_CLOSING)
-      CloseTimegate(x, y);
-#endif
-
     else if (IS_AUTO_CHANGING(element))
       ChangeElement(x, y);
-
-#if 1
     else if (element == EL_EXPLOSION)
       ;        /* drawing of correct explosion animation is handled separately */
     else if (IS_ANIMATED(graphic))
       DrawLevelGraphicAnimationIfNeeded(x, y, graphic);
-#endif
 
     if (IS_BELT_ACTIVE(element))
       PlaySoundLevelAction(x, y, ACTION_ACTIVE);
index b24944ee7aa95eb5302e9a8f29ecd48e4f2f2d12..5f05b082af4a6367e2bbffe75b4eecc38b828f8b 100644 (file)
@@ -176,7 +176,6 @@ static void InitArtworkConfig()
   {
     "name",
     "sort_priority",
-    "menu.main.hide_static_text",
     "global.num_toons",
     NULL
   };
index a1cc38651d10dbc7d90a8d42b7b55509f9f51a09..c841ffed244c9fc66fecc62feda0c463a59120df 100644 (file)
@@ -837,7 +837,7 @@ void InitImageList(struct ConfigInfo *config_list, int num_file_list_entries,
   image_info->num_dynamic_file_list_entries = 0;
 
   image_info->file_list =
-    getFileListFromConfigList(config_list, config_suffix_list,
+    getFileListFromConfigList(config_list, config_suffix_list, ignore_tokens,
                              num_file_list_entries);
   image_info->dynamic_file_list = NULL;
 
index b6ec4fda6353c2494c1c15f0eeca311ea6733887..2bc5444c0c5daebff2abc914c6b7a78889acebb8 100644 (file)
@@ -1591,6 +1591,7 @@ static void FreeCustomArtworkList(struct ArtworkListInfo *,
 
 struct FileInfo *getFileListFromConfigList(struct ConfigInfo *config_list,
                                           struct ConfigInfo *suffix_list,
+                                          char **ignore_tokens,
                                           int num_file_list_entries)
 {
   struct FileInfo *file_list;
@@ -1651,9 +1652,9 @@ struct FileInfo *getFileListFromConfigList(struct ConfigInfo *config_list,
     }
 
     /* the following tokens are no file definitions, but other config tokens */
-    if (strcmp(config_list[i].token, "global.num_toons") == 0 ||
-       strcmp(config_list[i].token, "menu.main.hide_static_text") == 0)
-      is_file_entry = FALSE;
+    for (j=0; ignore_tokens[j] != NULL; j++)
+      if (strcmp(config_list[i].token, ignore_tokens[j]) == 0)
+       is_file_entry = FALSE;
 
     if (is_file_entry)
     {
index a93b2baa3f1b8bbb0cca0e2646b56437a4c64378..18565c7210fb57e142154c3cb60919d9184581b2 100644 (file)
@@ -140,7 +140,7 @@ boolean FileIsArtworkType(char *, int);
 int get_parameter_value(char *, char *, int);
 
 struct FileInfo *getFileListFromConfigList(struct ConfigInfo *,
-                                          struct ConfigInfo *, int);
+                                          struct ConfigInfo *, char **, int);
 void LoadArtworkConfig(struct ArtworkListInfo *);
 void ReloadCustomArtworkList(struct ArtworkListInfo *);
 void FreeCustomArtworkLists(struct ArtworkListInfo *);
index d5bd45b4d6034cda46c09d7bfd749402df5a0a18..7ded74fb980289ec9d0e19c43d9de5d1b1c9534e 100644 (file)
@@ -1834,7 +1834,7 @@ void InitSoundList(struct ConfigInfo *config_list, int num_file_list_entries,
   sound_info->num_dynamic_file_list_entries = 0;
 
   sound_info->file_list =
-    getFileListFromConfigList(config_list, config_suffix_list,
+    getFileListFromConfigList(config_list, config_suffix_list, ignore_tokens,
                              num_file_list_entries);
   sound_info->dynamic_file_list = NULL;
 
index 672a9d1d5afe840063530be2a119890767844010..9b914a8aadf64935a00ebe1c60c0617cb130d9d9 100644 (file)
@@ -331,8 +331,6 @@ struct GfxInfo
   Bitmap *background_bitmap;
   int background_bitmap_mask;
 
-  boolean menu_main_hide_static_text;
-
   int num_fonts;
   struct FontBitmapInfo *font_bitmap_info;
   int (*select_font_function)(int);
index cc5ecf0b1fd562d68b292d6d4b086887e2e3691a..88f6987587652a447f619a432696ae5db4ef7a3c 100644 (file)
@@ -129,14 +129,6 @@ static void PlaySound_Menu_Continue(int sound)
     PlaySoundLoop(sound);
 }
 
-void DrawTextStatic(int x, int y, char *text, int font_nr)
-{
-  if (game_status == MAINMENU && gfx.menu_main_hide_static_text)
-    return;
-
-  DrawText(x, y, text, font_nr);
-}
-
 void DrawHeadline()
 {
   int font1_xsize = getFontWidth(FONT_TITLE_1);
@@ -144,8 +136,8 @@ void DrawHeadline()
   int x1 = SX + (SXSIZE - strlen(PROGRAM_TITLE_STRING)   * font1_xsize) / 2;
   int x2 = SX + (SXSIZE - strlen(WINDOW_SUBTITLE_STRING) * font2_xsize) / 2;
 
-  DrawTextStatic(x1, SY + 8,  PROGRAM_TITLE_STRING,   FONT_TITLE_1);
-  DrawTextStatic(x2, SY + 46, WINDOW_SUBTITLE_STRING, FONT_TITLE_2);
+  DrawText(x1, SY + 8,  PROGRAM_TITLE_STRING,   FONT_TITLE_1);
+  DrawText(x2, SY + 46, WINDOW_SUBTITLE_STRING, FONT_TITLE_2);
 }
 
 static void ToggleFullscreenIfNeeded()
@@ -233,16 +225,16 @@ void DrawMainMenu()
 
   DrawHeadline();
 
-  DrawTextStatic(SX + 32,    SY + 2*32, name_text, FONT_MENU_1);
+  DrawText(SX + 32,    SY + 2*32, name_text, FONT_MENU_1);
   DrawText(SX + 32 + name_width, SY + 2*32, setup.player_name, FONT_INPUT);
-  DrawTextStatic(SX + 32,    SY + 3*32, "Level:", FONT_MENU_1);
+  DrawText(SX + 32,    SY + 3*32, "Level:", FONT_MENU_1);
   DrawText(SX + 11 * 32, SY + 3*32, int2str(level_nr,3), FONT_VALUE_1);
-  DrawTextStatic(SX + 32,    SY + 4*32, "Hall Of Fame", FONT_MENU_1);
-  DrawTextStatic(SX + 32,    SY + 5*32, "Level Creator", FONT_MENU_1);
-  DrawTextStatic(SY + 32,    SY + 6*32, "Info Screen", FONT_MENU_1);
-  DrawTextStatic(SX + 32,    SY + 7*32, "Start Game", FONT_MENU_1);
-  DrawTextStatic(SX + 32,    SY + 8*32, "Setup", FONT_MENU_1);
-  DrawTextStatic(SX + 32,    SY + 9*32, "Quit", FONT_MENU_1);
+  DrawText(SX + 32,    SY + 4*32, "Hall Of Fame", FONT_MENU_1);
+  DrawText(SX + 32,    SY + 5*32, "Level Creator", FONT_MENU_1);
+  DrawText(SY + 32,    SY + 6*32, "Info Screen", FONT_MENU_1);
+  DrawText(SX + 32,    SY + 7*32, "Start Game", FONT_MENU_1);
+  DrawText(SX + 32,    SY + 8*32, "Setup", FONT_MENU_1);
+  DrawText(SX + 32,    SY + 9*32, "Quit", FONT_MENU_1);
 
   DrawMicroLevel(MICROLEV_XPOS, MICROLEV_YPOS, TRUE);
 
@@ -267,8 +259,7 @@ void DrawMainMenu()
   drawCursorXY(14, 1, IMG_MENU_BUTTON_RIGHT);
 #endif
 
-  DrawTextStatic(SX + 56, SY + 326, "A Game by Artsoft Entertainment",
-                FONT_TEXT_3);
+  DrawText(SX + 56, SY + 326, "A Game by Artsoft Entertainment", FONT_TITLE_2);
 
   FadeToFront();
   InitAnimation();
@@ -1197,8 +1188,9 @@ void HandleHelpScreen(int button)
     else
     {
       FadeSounds();
-      DrawMainMenu();
+
       game_status = MAINMENU;
+      DrawMainMenu();
     }
   }
   else