fixed bug with not fading menu music on title screen when changing level set
[rocksndiamonds.git] / build-scripts / create_element_defs.pl
index bd90162428addaf2edd0caaa8d684364b5d7dbfd..91ea130d0d17936001cca82b5fe0c7ac4332d59b 100755 (executable)
@@ -1,9 +1,14 @@
 #!/usr/bin/perl -w
 
 # =============================================================================
-# create_element_defs.pl
+# Rocks'n'Diamonds - McDuffin Strikes Back!
+# -----------------------------------------------------------------------------
+# (c) 1995-2014 by Artsoft Entertainment
+#                  Holger Schemel
+#                  info@artsoft.org
+#                  http://www.artsoft.org/
 # -----------------------------------------------------------------------------
-# 2002-09-19 holger.schemel@mediaways.net
+# create_element_defs.pl
 # =============================================================================
 
 use strict;
@@ -238,12 +243,12 @@ sub print_file_header
     close FILE;
 
     print "\n";
-    print "/* ----- $text_auto ----- */\n";
+    print "// ------- $text_auto -------\n";
     print "\n";
     print "#ifndef $filename_def\n";
     print "#define $filename_def\n";
     print "\n";
-    print "/* $comment */\n";
+    print "// $comment\n";
     print "\n";
 }
 
@@ -254,7 +259,7 @@ sub print_file_footer
     $filename_def =~ s/\./_/;
 
     print "\n";
-    print "#endif      /* $filename_def */\n";
+    print "#endif      // $filename_def\n";
 }
 
 sub get_tabs
@@ -1069,7 +1074,7 @@ sub get_known_action_definitions
        chomp;                          # cut trailing newline
 
        # process line with action definition
-       if (/^\#define ACTION_([A-Z0-9_]+)\s/)
+       if (/^  ACTION_([A-Z0-9_]+)[, ]/)
        {
            $known_action{$1} = 1;
 
@@ -1096,7 +1101,7 @@ sub get_known_special_arg_definitions
        chomp;                          # cut trailing newline
 
        # process line with special arg definition
-       if (/^\#define GFX_SPECIAL_ARG_([A-Z0-9_]+)\s/)
+       if (/^  GFX_SPECIAL_ARG_([A-Z0-9_]+)[, ]/)
        {
            if ($1 eq 'CRUMBLED')
            {
@@ -1155,7 +1160,7 @@ sub get_known_font_definitions
        chomp;                          # cut trailing newline
 
        # process line with font definition
-       if (/^\#define (FONT_[A-Z0-9_]+)\s/)
+       if (/^  (FONT_[A-Z0-9_]+)[, ]/)
        {
            $known_font{$1} = 1;
 
@@ -1568,7 +1573,7 @@ sub print_element_to_graphic_list
        {
            print_element_to_graphic_entry($element_without_action,
                                           $gfx_action,
-                                          '-1',
+                                          $gfx_direction,
                                           $gfx_crumbled,
                                           $graphic);
        }
@@ -2357,10 +2362,13 @@ sub print_image_config_vars
            $var =~ s/^\[player\]\./game.player_/;
            $var =~ s/^\[title_initial\]/title_initial_default/;
            $var =~ s/^\[title\]/title_default/;
+           $var =~ s/^\[titlescreen_initial\]/titlescreen_initial_default/;
+           $var =~ s/^\[titlescreen\]/titlescreen_default/;
            $var =~ s/^\[titlemessage_initial\]/titlemessage_initial_default/;
            $var =~ s/^\[titlemessage\]/titlemessage_default/;
 
-           if ($var =~ /^titlemessage.*(\d)/ ||
+           if ($var =~ /^titlescreen.*(\d)/ ||
+               $var =~ /^titlemessage.*(\d)/ ||
                $var =~ /^game.panel.key_(\d)/ ||
                $var =~ /^game.panel.inventory_first_(\d)/ ||
                $var =~ /^game.panel.inventory_last_(\d)/ ||
@@ -2386,10 +2394,14 @@ sub print_image_config_vars
            # --- some suffix replacements ---
 
            $var =~ s/^(menu\.main\..*)\.chars$/$1.size/;
+           $var =~ s/^(tape\.text\..*)\.chars$/$1.size/;
            $var =~ s/^(game\.panel\..*)\.chars$/$1.size/;
            $var =~ s/^(game\.panel\..*)\.tile_size$/$1.size/;
            $var =~ s/^(request\.button\..*)\.tile_size$/$1.size/;
            $var =~ s/\.digits$/.size/;
+           $var =~ s/\.2nd_offset$/.offset2/;
+           $var =~ s/\.2nd_xoffset$/.xoffset2/;
+           $var =~ s/\.2nd_yoffset$/.yoffset2/;
            $var =~ s/\.element$/.id/;
            $var =~ s/\.draw_order$/.sort_priority/;
 
@@ -2399,7 +2411,7 @@ sub print_image_config_vars
            $var =~ s/\.([A-Z]+)$/\[GFX_SPECIAL_ARG_$1\]/;
            $var =~ s/\.([A-Z]+)\./\[GFX_SPECIAL_ARG_$1\]./;
 
-           if ($var =~ /^(menu.(enter|leave)_screen)(.[a-z_]+)$/)
+           if ($var =~ /^(menu.(enter|leave|next)_screen)(.[a-z_]+)$/)
            {
                $var = $1 . "[GFX_SPECIAL_ARG_DEFAULT]" . $3;
            }
@@ -2409,12 +2421,23 @@ sub print_image_config_vars
                $var .= "[GFX_SPECIAL_ARG_DEFAULT]";
            }
 
-           if ($var =~ /^(viewport.(playfield|door_[12]))(.[a-z_]+)$/)
+           if ($var =~ /^(viewport.(window|playfield|door_[12]))(.[a-z_]+)$/)
            {
                $var = $1 . "[GFX_SPECIAL_ARG_DEFAULT]" . $3;
            }
 
            print_image_config_var_entry("\"$token\"", "&$var");
+
+           if ($var =~ /^(title)_default/ ||
+               $var =~ /^(title_initial)_default/ ||
+               $var =~ /^(titlescreen.*)\[\d\]/ ||
+               $var =~ /^(titlemessage.*)\[\d\]/)
+           {
+               my $prefix = $1;
+               $var =~ s/^$prefix/${prefix}_first/;
+
+               print_image_config_var_entry("\"$token\"", "&$var");
+           }
        }
     }