replaced preprocessor constants with enum values
[rocksndiamonds.git] / build-scripts / create_element_defs.pl
index d935b3fed230b851a37aaa27a8d21bff7084a159..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;
@@ -193,7 +198,7 @@ sub contains_image_file
 {
     my ($line) = @_;
 
-    return ($line =~ /\".+\.pcx\"/ ||
+    return ($line =~ /\".+\.png\"/ ||
            $line =~ /UNDEFINED_FILENAME/);
 }
 
@@ -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
@@ -609,7 +614,7 @@ sub print_chars_graphics_list_line
 
        my $tabs_left = get_tabs($left, 6);
 
-       my $right = ($ext eq '' ? $basename . '.pcx' :
+       my $right = ($ext eq '' ? $basename . '.png' :
                     $ext eq '.frames' ? '1' : '0');
 
        if ($ext eq '.xpos')
@@ -748,8 +753,8 @@ sub print_custom_graphics_list
 
            my $tabs_left = get_tabs($left, 6);
 
-           # my $right = ($ext eq '' ? 'RocksElements.pcx' :
-           my $right = ($ext eq '' ? 'RocksCE.pcx' :
+           # my $right = ($ext eq '' ? 'RocksElements.png' :
+           my $right = ($ext eq '' ? 'RocksCE.png' :
                         $ext eq '.frames' ? '1' : '0');
 
            if ($ext eq '.xpos')
@@ -776,8 +781,8 @@ sub print_custom_graphics_list
 
            my $tabs_left = get_tabs($left, 6);
 
-           # my $right = ($ext eq '' ? 'RocksElements.pcx' : '0');
-           my $right = ($ext eq '' ? 'RocksCE.pcx' : '0');
+           # my $right = ($ext eq '' ? 'RocksElements.png' : '0');
+           my $right = ($ext eq '' ? 'RocksCE.png' : '0');
 
            if ($ext eq '.xpos')
            {
@@ -829,8 +834,8 @@ sub print_group_graphics_list
 
            my $tabs_left = get_tabs($left, 6);
 
-           # my $right = ($ext eq '' ? 'RocksDC.pcx' :
-           my $right = ($ext eq '' ? 'RocksCE.pcx' :
+           # my $right = ($ext eq '' ? 'RocksDC.png' :
+           my $right = ($ext eq '' ? 'RocksCE.png' :
                         $ext eq '.frames' ? '1' : '0');
 
            if ($ext eq '.xpos')
@@ -857,8 +862,8 @@ sub print_group_graphics_list
 
            my $tabs_left = get_tabs($left, 6);
 
-           # my $right = ($ext eq '' ? 'RocksDC.pcx' : '0');
-           my $right = ($ext eq '' ? 'RocksCE.pcx' : '0');
+           # my $right = ($ext eq '' ? 'RocksDC.png' : '0');
+           my $right = ($ext eq '' ? 'RocksCE.png' : '0');
 
            if ($ext eq '.xpos')
            {
@@ -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,9 +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/;
 
@@ -2398,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;
            }
@@ -2408,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");
+           }
        }
     }