rnd-20140307-1-src
authorHolger Schemel <info@artsoft.org>
Fri, 7 Mar 2014 00:22:25 +0000 (01:22 +0100)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 09:01:14 +0000 (11:01 +0200)
13 files changed:
src/conf_gfx.c
src/conf_gfx.h
src/conf_var.c
src/conftime.h
src/editor.c
src/game.c
src/game.h
src/init.c
src/libgame/gadgets.c
src/main.c
src/main.h
src/tape.c
src/tools.c

index 5c8048dc0c9fb1af8a539272ba2e5324694c68b3..82f508fd6af3630670d6e7987dd62bf59b3aa2ae 100644 (file)
@@ -4744,6 +4744,9 @@ struct ConfigInfo image_config[] =
   { "game.button.gfx.sound_simple.pressed_xoffset", "-100"             },
   { "game.button.gfx.sound_simple.active_yoffset", "-30"               },
 
+  { "game.button.gfx.save",                    UNDEFINED_FILENAME      },
+  { "game.button.gfx.load",                    UNDEFINED_FILENAME      },
+
   { "tape.button.gfx.eject",                   "RocksDoor.png"         },
   { "tape.button.gfx.eject.x",                 "305"                   },
   { "tape.button.gfx.eject.y",                 "357"                   },
@@ -6020,6 +6023,8 @@ struct ConfigInfo image_config[] =
   { "main.input.name.valign",                  "top"                   },
   { "main.input.name.font",                    "font.input_1"          },
 
+  { "main.show_game_buttons",                  "false"                 },
+
   { "preview.x",                               "272"                   },
   { "preview.y",                               "380"                   },
   { "preview.align",                           "center"                },
@@ -6999,6 +7004,10 @@ struct ConfigInfo image_config[] =
   { "game.button.sound_loops.y",               "245"                   },
   { "game.button.sound_simple.x",              "65"                    },
   { "game.button.sound_simple.y",              "245"                   },
+  { "game.button.save.x",                      "-1"                    },
+  { "game.button.save.y",                      "-1"                    },
+  { "game.button.load.x",                      "-1"                    },
+  { "game.button.load.y",                      "-1"                    },
 
   { "tape.button.eject.x",                     "5"                     },
   { "tape.button.eject.y",                     "77"                    },
index 017b1a4147801363877b56f385d5c0e61d883b25..b9d67c4f7910c999e428ee2efcea7cc5ae0355da 100644 (file)
 #define IMG_GAME_BUTTON_GFX_SOUND_MUSIC                        1684
 #define IMG_GAME_BUTTON_GFX_SOUND_LOOPS                        1685
 #define IMG_GAME_BUTTON_GFX_SOUND_SIMPLE               1686
-#define IMG_TAPE_BUTTON_GFX_EJECT                      1687
-#define IMG_TAPE_BUTTON_GFX_EXTRA                      1688
-#define IMG_TAPE_BUTTON_GFX_STOP                       1689
-#define IMG_TAPE_BUTTON_GFX_PAUSE                      1690
-#define IMG_TAPE_BUTTON_GFX_RECORD                     1691
-#define IMG_TAPE_BUTTON_GFX_PLAY                       1692
-#define IMG_TAPE_SYMBOL_GFX_EJECT                      1693
-#define IMG_TAPE_SYMBOL_GFX_STOP                       1694
-#define IMG_TAPE_SYMBOL_GFX_PAUSE                      1695
-#define IMG_TAPE_SYMBOL_GFX_RECORD                     1696
-#define IMG_TAPE_SYMBOL_GFX_PLAY                       1697
-#define IMG_TAPE_SYMBOL_GFX_FAST_FORWARD               1698
-#define IMG_TAPE_SYMBOL_GFX_WARP_FORWARD               1699
-#define IMG_TAPE_SYMBOL_GFX_WARP_FORWARD_BLIND         1700
-#define IMG_TAPE_SYMBOL_GFX_PAUSE_BEFORE_END           1701
-#define IMG_TAPE_SYMBOL_GFX_SINGLE_STEP                        1702
-#define IMG_TAPE_LABEL_GFX_EJECT                       1703
-#define IMG_TAPE_LABEL_GFX_STOP                                1704
-#define IMG_TAPE_LABEL_GFX_PAUSE                       1705
-#define IMG_TAPE_LABEL_GFX_RECORD                      1706
-#define IMG_TAPE_LABEL_GFX_PLAY                                1707
-#define IMG_TAPE_LABEL_GFX_FAST_FORWARD                        1708
-#define IMG_TAPE_LABEL_GFX_WARP_FORWARD                        1709
-#define IMG_TAPE_LABEL_GFX_WARP_FORWARD_BLIND          1710
-#define IMG_TAPE_LABEL_GFX_PAUSE_BEFORE_END            1711
-#define IMG_TAPE_LABEL_GFX_SINGLE_STEP                 1712
-#define IMG_TAPE_LABEL_GFX_DATE                                1713
-#define IMG_TAPE_LABEL_GFX_TIME                                1714
-#define IMG_REQUEST_BUTTON_GFX_YES                     1715
-#define IMG_REQUEST_BUTTON_GFX_NO                      1716
-#define IMG_REQUEST_BUTTON_GFX_CONFIRM                 1717
-#define IMG_REQUEST_BUTTON_GFX_PLAYER_1                        1718
-#define IMG_REQUEST_BUTTON_GFX_PLAYER_2                        1719
-#define IMG_REQUEST_BUTTON_GFX_PLAYER_3                        1720
-#define IMG_REQUEST_BUTTON_GFX_PLAYER_4                        1721
-#define IMG_FONT_INITIAL_1                             1722
-#define IMG_FONT_INITIAL_2                             1723
-#define IMG_FONT_INITIAL_3                             1724
-#define IMG_FONT_INITIAL_4                             1725
-#define IMG_FONT_TITLE_1                               1726
-#define IMG_FONT_TITLE_2                               1727
-#define IMG_FONT_TITLE_2_SETUP                         1728
-#define IMG_FONT_MENU_1                                        1729
-#define IMG_FONT_MENU_1_ACTIVE                         1730
-#define IMG_FONT_MENU_2                                        1731
-#define IMG_FONT_MENU_2_ACTIVE                         1732
-#define IMG_FONT_TEXT_1                                        1733
-#define IMG_FONT_TEXT_1_MAIN                           1734
-#define IMG_FONT_TEXT_1_LEVELS                         1735
-#define IMG_FONT_TEXT_1_LEVELNR                                1736
-#define IMG_FONT_TEXT_1_SETUP                          1737
-#define IMG_FONT_TEXT_1_PREVIEW                                1738
-#define IMG_FONT_TEXT_1_SCORES                         1739
-#define IMG_FONT_TEXT_1_ACTIVE_SCORES                  1740
-#define IMG_FONT_TEXT_1_PANEL                          1741
-#define IMG_FONT_TEXT_1_DOOR                           1742
-#define IMG_FONT_TEXT_2                                        1743
-#define IMG_FONT_TEXT_2_MAIN                           1744
-#define IMG_FONT_TEXT_2_LEVELS                         1745
-#define IMG_FONT_TEXT_2_LEVELNR                                1746
-#define IMG_FONT_TEXT_2_SETUP                          1747
-#define IMG_FONT_TEXT_2_PREVIEW                                1748
-#define IMG_FONT_TEXT_2_SCORES                         1749
-#define IMG_FONT_TEXT_2_ACTIVE_SCORES                  1750
-#define IMG_FONT_TEXT_3                                        1751
-#define IMG_FONT_TEXT_3_LEVELS                         1752
-#define IMG_FONT_TEXT_3_LEVELNR                                1753
-#define IMG_FONT_TEXT_3_SETUP                          1754
-#define IMG_FONT_TEXT_3_PREVIEW                                1755
-#define IMG_FONT_TEXT_3_SCORES                         1756
-#define IMG_FONT_TEXT_3_ACTIVE_SCORES                  1757
-#define IMG_FONT_TEXT_4                                        1758
-#define IMG_FONT_TEXT_4_MAIN                           1759
-#define IMG_FONT_TEXT_4_LEVELS                         1760
-#define IMG_FONT_TEXT_4_LEVELNR                                1761
-#define IMG_FONT_TEXT_4_SETUP                          1762
-#define IMG_FONT_TEXT_4_SCORES                         1763
-#define IMG_FONT_TEXT_4_ACTIVE_SCORES                  1764
-#define IMG_FONT_ENVELOPE_1                            1765
-#define IMG_FONT_ENVELOPE_2                            1766
-#define IMG_FONT_ENVELOPE_3                            1767
-#define IMG_FONT_ENVELOPE_4                            1768
-#define IMG_FONT_REQUEST                               1769
-#define IMG_FONT_INPUT_1                               1770
-#define IMG_FONT_INPUT_1_MAIN                          1771
-#define IMG_FONT_INPUT_1_ACTIVE                                1772
-#define IMG_FONT_INPUT_1_ACTIVE_MAIN                   1773
-#define IMG_FONT_INPUT_1_ACTIVE_SETUP                  1774
-#define IMG_FONT_INPUT_2                               1775
-#define IMG_FONT_INPUT_2_ACTIVE                                1776
-#define IMG_FONT_OPTION_OFF                            1777
-#define IMG_FONT_OPTION_ON                             1778
-#define IMG_FONT_VALUE_1                               1779
-#define IMG_FONT_VALUE_2                               1780
-#define IMG_FONT_VALUE_OLD                             1781
-#define IMG_FONT_LEVEL_NUMBER                          1782
-#define IMG_FONT_LEVEL_NUMBER_ACTIVE                   1783
-#define IMG_FONT_TAPE_RECORDER                         1784
-#define IMG_FONT_GAME_INFO                             1785
-#define IMG_FONT_INFO_ELEMENTS                         1786
-#define IMG_FONT_INFO_LEVELSET                         1787
-#define IMG_GLOBAL_BORDER                              1788
-#define IMG_GLOBAL_DOOR                                        1789
-#define IMG_GLOBAL_BUSY                                        1790
-#define IMG_EDITOR_ELEMENT_BORDER                      1791
-#define IMG_EDITOR_ELEMENT_BORDER_INPUT                        1792
-#define IMG_EDITOR_CASCADE_LIST                                1793
-#define IMG_EDITOR_CASCADE_LIST_ACTIVE                 1794
-#define IMG_EDITOR_PALETTE_BUTTON                      1795
-#define IMG_EDITOR_PALETTE_SCROLL_UP                   1796
-#define IMG_EDITOR_PALETTE_SCROLL_DOWN                 1797
-#define IMG_EDITOR_PALETTE_SCROLLBAR                   1798
-#define IMG_EDITOR_PLAYFIELD_SCROLL_UP                 1799
-#define IMG_EDITOR_PLAYFIELD_SCROLL_DOWN               1800
-#define IMG_EDITOR_PLAYFIELD_SCROLL_LEFT               1801
-#define IMG_EDITOR_PLAYFIELD_SCROLL_RIGHT              1802
-#define IMG_EDITOR_PLAYFIELD_SCROLLBAR                 1803
-#define IMG_EDITOR_BUTTON_GFX_PREV_LEVEL               1804
-#define IMG_EDITOR_BUTTON_GFX_NEXT_LEVEL               1805
-#define IMG_BACKGROUND                                 1806
-#define IMG_BACKGROUND_TITLE_INITIAL                   1807
-#define IMG_BACKGROUND_TITLE                           1808
-#define IMG_BACKGROUND_MAIN                            1809
-#define IMG_BACKGROUND_LEVELS                          1810
-#define IMG_BACKGROUND_LEVELNR                         1811
-#define IMG_BACKGROUND_SCORES                          1812
-#define IMG_BACKGROUND_EDITOR                          1813
-#define IMG_BACKGROUND_INFO                            1814
-#define IMG_BACKGROUND_INFO_ELEMENTS                   1815
-#define IMG_BACKGROUND_INFO_MUSIC                      1816
-#define IMG_BACKGROUND_INFO_CREDITS                    1817
-#define IMG_BACKGROUND_INFO_PROGRAM                    1818
-#define IMG_BACKGROUND_INFO_VERSION                    1819
-#define IMG_BACKGROUND_INFO_LEVELSET                   1820
-#define IMG_BACKGROUND_SETUP                           1821
-#define IMG_BACKGROUND_PLAYING                         1822
-#define IMG_BACKGROUND_DOOR                            1823
-#define IMG_BACKGROUND_TAPE                            1824
-#define IMG_BACKGROUND_PANEL                           1825
-#define IMG_BACKGROUND_PALETTE                         1826
-#define IMG_BACKGROUND_TOOLBOX                         1827
-#define IMG_BACKGROUND_TITLESCREEN_INITIAL_1           1828
-#define IMG_BACKGROUND_TITLESCREEN_INITIAL_2           1829
-#define IMG_BACKGROUND_TITLESCREEN_INITIAL_3           1830
-#define IMG_BACKGROUND_TITLESCREEN_INITIAL_4           1831
-#define IMG_BACKGROUND_TITLESCREEN_INITIAL_5           1832
-#define IMG_BACKGROUND_TITLESCREEN_1                   1833
-#define IMG_BACKGROUND_TITLESCREEN_2                   1834
-#define IMG_BACKGROUND_TITLESCREEN_3                   1835
-#define IMG_BACKGROUND_TITLESCREEN_4                   1836
-#define IMG_BACKGROUND_TITLESCREEN_5                   1837
-#define IMG_BACKGROUND_TITLEMESSAGE_INITIAL_1          1838
-#define IMG_BACKGROUND_TITLEMESSAGE_INITIAL_2          1839
-#define IMG_BACKGROUND_TITLEMESSAGE_INITIAL_3          1840
-#define IMG_BACKGROUND_TITLEMESSAGE_INITIAL_4          1841
-#define IMG_BACKGROUND_TITLEMESSAGE_INITIAL_5          1842
-#define IMG_BACKGROUND_TITLEMESSAGE_1                  1843
-#define IMG_BACKGROUND_TITLEMESSAGE_2                  1844
-#define IMG_BACKGROUND_TITLEMESSAGE_3                  1845
-#define IMG_BACKGROUND_TITLEMESSAGE_4                  1846
-#define IMG_BACKGROUND_TITLEMESSAGE_5                  1847
-#define IMG_BACKGROUND_ENVELOPE_1                      1848
-#define IMG_BACKGROUND_ENVELOPE_2                      1849
-#define IMG_BACKGROUND_ENVELOPE_3                      1850
-#define IMG_BACKGROUND_ENVELOPE_4                      1851
-#define IMG_BACKGROUND_REQUEST                         1852
-#define IMG_TITLESCREEN_INITIAL_1                      1853
-#define IMG_TITLESCREEN_INITIAL_2                      1854
-#define IMG_TITLESCREEN_INITIAL_3                      1855
-#define IMG_TITLESCREEN_INITIAL_4                      1856
-#define IMG_TITLESCREEN_INITIAL_5                      1857
-#define IMG_TITLESCREEN_1                              1858
-#define IMG_TITLESCREEN_2                              1859
-#define IMG_TITLESCREEN_3                              1860
-#define IMG_TITLESCREEN_4                              1861
-#define IMG_TITLESCREEN_5                              1862
-#define IMG_DOOR_1_GFX_PART_1                          1863
-#define IMG_DOOR_1_GFX_PART_2                          1864
-#define IMG_DOOR_1_GFX_PART_3                          1865
-#define IMG_DOOR_1_GFX_PART_4                          1866
-#define IMG_DOOR_1_GFX_PART_5                          1867
-#define IMG_DOOR_1_GFX_PART_6                          1868
-#define IMG_DOOR_1_GFX_PART_7                          1869
-#define IMG_DOOR_1_GFX_PART_8                          1870
-#define IMG_DOOR_2_GFX_PART_1                          1871
-#define IMG_DOOR_2_GFX_PART_2                          1872
-#define IMG_DOOR_2_GFX_PART_3                          1873
-#define IMG_DOOR_2_GFX_PART_4                          1874
-#define IMG_DOOR_2_GFX_PART_5                          1875
-#define IMG_DOOR_2_GFX_PART_6                          1876
-#define IMG_DOOR_2_GFX_PART_7                          1877
-#define IMG_DOOR_2_GFX_PART_8                          1878
-#define IMG_DOOR_2_TOP_BORDER_CORRECTION               1879
-#define IMG_LAST_IMAGE_ENTRY_BUG                       1880
+#define IMG_GAME_BUTTON_GFX_SAVE                       1687
+#define IMG_GAME_BUTTON_GFX_LOAD                       1688
+#define IMG_TAPE_BUTTON_GFX_EJECT                      1689
+#define IMG_TAPE_BUTTON_GFX_EXTRA                      1690
+#define IMG_TAPE_BUTTON_GFX_STOP                       1691
+#define IMG_TAPE_BUTTON_GFX_PAUSE                      1692
+#define IMG_TAPE_BUTTON_GFX_RECORD                     1693
+#define IMG_TAPE_BUTTON_GFX_PLAY                       1694
+#define IMG_TAPE_SYMBOL_GFX_EJECT                      1695
+#define IMG_TAPE_SYMBOL_GFX_STOP                       1696
+#define IMG_TAPE_SYMBOL_GFX_PAUSE                      1697
+#define IMG_TAPE_SYMBOL_GFX_RECORD                     1698
+#define IMG_TAPE_SYMBOL_GFX_PLAY                       1699
+#define IMG_TAPE_SYMBOL_GFX_FAST_FORWARD               1700
+#define IMG_TAPE_SYMBOL_GFX_WARP_FORWARD               1701
+#define IMG_TAPE_SYMBOL_GFX_WARP_FORWARD_BLIND         1702
+#define IMG_TAPE_SYMBOL_GFX_PAUSE_BEFORE_END           1703
+#define IMG_TAPE_SYMBOL_GFX_SINGLE_STEP                        1704
+#define IMG_TAPE_LABEL_GFX_EJECT                       1705
+#define IMG_TAPE_LABEL_GFX_STOP                                1706
+#define IMG_TAPE_LABEL_GFX_PAUSE                       1707
+#define IMG_TAPE_LABEL_GFX_RECORD                      1708
+#define IMG_TAPE_LABEL_GFX_PLAY                                1709
+#define IMG_TAPE_LABEL_GFX_FAST_FORWARD                        1710
+#define IMG_TAPE_LABEL_GFX_WARP_FORWARD                        1711
+#define IMG_TAPE_LABEL_GFX_WARP_FORWARD_BLIND          1712
+#define IMG_TAPE_LABEL_GFX_PAUSE_BEFORE_END            1713
+#define IMG_TAPE_LABEL_GFX_SINGLE_STEP                 1714
+#define IMG_TAPE_LABEL_GFX_DATE                                1715
+#define IMG_TAPE_LABEL_GFX_TIME                                1716
+#define IMG_REQUEST_BUTTON_GFX_YES                     1717
+#define IMG_REQUEST_BUTTON_GFX_NO                      1718
+#define IMG_REQUEST_BUTTON_GFX_CONFIRM                 1719
+#define IMG_REQUEST_BUTTON_GFX_PLAYER_1                        1720
+#define IMG_REQUEST_BUTTON_GFX_PLAYER_2                        1721
+#define IMG_REQUEST_BUTTON_GFX_PLAYER_3                        1722
+#define IMG_REQUEST_BUTTON_GFX_PLAYER_4                        1723
+#define IMG_FONT_INITIAL_1                             1724
+#define IMG_FONT_INITIAL_2                             1725
+#define IMG_FONT_INITIAL_3                             1726
+#define IMG_FONT_INITIAL_4                             1727
+#define IMG_FONT_TITLE_1                               1728
+#define IMG_FONT_TITLE_2                               1729
+#define IMG_FONT_TITLE_2_SETUP                         1730
+#define IMG_FONT_MENU_1                                        1731
+#define IMG_FONT_MENU_1_ACTIVE                         1732
+#define IMG_FONT_MENU_2                                        1733
+#define IMG_FONT_MENU_2_ACTIVE                         1734
+#define IMG_FONT_TEXT_1                                        1735
+#define IMG_FONT_TEXT_1_MAIN                           1736
+#define IMG_FONT_TEXT_1_LEVELS                         1737
+#define IMG_FONT_TEXT_1_LEVELNR                                1738
+#define IMG_FONT_TEXT_1_SETUP                          1739
+#define IMG_FONT_TEXT_1_PREVIEW                                1740
+#define IMG_FONT_TEXT_1_SCORES                         1741
+#define IMG_FONT_TEXT_1_ACTIVE_SCORES                  1742
+#define IMG_FONT_TEXT_1_PANEL                          1743
+#define IMG_FONT_TEXT_1_DOOR                           1744
+#define IMG_FONT_TEXT_2                                        1745
+#define IMG_FONT_TEXT_2_MAIN                           1746
+#define IMG_FONT_TEXT_2_LEVELS                         1747
+#define IMG_FONT_TEXT_2_LEVELNR                                1748
+#define IMG_FONT_TEXT_2_SETUP                          1749
+#define IMG_FONT_TEXT_2_PREVIEW                                1750
+#define IMG_FONT_TEXT_2_SCORES                         1751
+#define IMG_FONT_TEXT_2_ACTIVE_SCORES                  1752
+#define IMG_FONT_TEXT_3                                        1753
+#define IMG_FONT_TEXT_3_LEVELS                         1754
+#define IMG_FONT_TEXT_3_LEVELNR                                1755
+#define IMG_FONT_TEXT_3_SETUP                          1756
+#define IMG_FONT_TEXT_3_PREVIEW                                1757
+#define IMG_FONT_TEXT_3_SCORES                         1758
+#define IMG_FONT_TEXT_3_ACTIVE_SCORES                  1759
+#define IMG_FONT_TEXT_4                                        1760
+#define IMG_FONT_TEXT_4_MAIN                           1761
+#define IMG_FONT_TEXT_4_LEVELS                         1762
+#define IMG_FONT_TEXT_4_LEVELNR                                1763
+#define IMG_FONT_TEXT_4_SETUP                          1764
+#define IMG_FONT_TEXT_4_SCORES                         1765
+#define IMG_FONT_TEXT_4_ACTIVE_SCORES                  1766
+#define IMG_FONT_ENVELOPE_1                            1767
+#define IMG_FONT_ENVELOPE_2                            1768
+#define IMG_FONT_ENVELOPE_3                            1769
+#define IMG_FONT_ENVELOPE_4                            1770
+#define IMG_FONT_REQUEST                               1771
+#define IMG_FONT_INPUT_1                               1772
+#define IMG_FONT_INPUT_1_MAIN                          1773
+#define IMG_FONT_INPUT_1_ACTIVE                                1774
+#define IMG_FONT_INPUT_1_ACTIVE_MAIN                   1775
+#define IMG_FONT_INPUT_1_ACTIVE_SETUP                  1776
+#define IMG_FONT_INPUT_2                               1777
+#define IMG_FONT_INPUT_2_ACTIVE                                1778
+#define IMG_FONT_OPTION_OFF                            1779
+#define IMG_FONT_OPTION_ON                             1780
+#define IMG_FONT_VALUE_1                               1781
+#define IMG_FONT_VALUE_2                               1782
+#define IMG_FONT_VALUE_OLD                             1783
+#define IMG_FONT_LEVEL_NUMBER                          1784
+#define IMG_FONT_LEVEL_NUMBER_ACTIVE                   1785
+#define IMG_FONT_TAPE_RECORDER                         1786
+#define IMG_FONT_GAME_INFO                             1787
+#define IMG_FONT_INFO_ELEMENTS                         1788
+#define IMG_FONT_INFO_LEVELSET                         1789
+#define IMG_GLOBAL_BORDER                              1790
+#define IMG_GLOBAL_DOOR                                        1791
+#define IMG_GLOBAL_BUSY                                        1792
+#define IMG_EDITOR_ELEMENT_BORDER                      1793
+#define IMG_EDITOR_ELEMENT_BORDER_INPUT                        1794
+#define IMG_EDITOR_CASCADE_LIST                                1795
+#define IMG_EDITOR_CASCADE_LIST_ACTIVE                 1796
+#define IMG_EDITOR_PALETTE_BUTTON                      1797
+#define IMG_EDITOR_PALETTE_SCROLL_UP                   1798
+#define IMG_EDITOR_PALETTE_SCROLL_DOWN                 1799
+#define IMG_EDITOR_PALETTE_SCROLLBAR                   1800
+#define IMG_EDITOR_PLAYFIELD_SCROLL_UP                 1801
+#define IMG_EDITOR_PLAYFIELD_SCROLL_DOWN               1802
+#define IMG_EDITOR_PLAYFIELD_SCROLL_LEFT               1803
+#define IMG_EDITOR_PLAYFIELD_SCROLL_RIGHT              1804
+#define IMG_EDITOR_PLAYFIELD_SCROLLBAR                 1805
+#define IMG_EDITOR_BUTTON_GFX_PREV_LEVEL               1806
+#define IMG_EDITOR_BUTTON_GFX_NEXT_LEVEL               1807
+#define IMG_BACKGROUND                                 1808
+#define IMG_BACKGROUND_TITLE_INITIAL                   1809
+#define IMG_BACKGROUND_TITLE                           1810
+#define IMG_BACKGROUND_MAIN                            1811
+#define IMG_BACKGROUND_LEVELS                          1812
+#define IMG_BACKGROUND_LEVELNR                         1813
+#define IMG_BACKGROUND_SCORES                          1814
+#define IMG_BACKGROUND_EDITOR                          1815
+#define IMG_BACKGROUND_INFO                            1816
+#define IMG_BACKGROUND_INFO_ELEMENTS                   1817
+#define IMG_BACKGROUND_INFO_MUSIC                      1818
+#define IMG_BACKGROUND_INFO_CREDITS                    1819
+#define IMG_BACKGROUND_INFO_PROGRAM                    1820
+#define IMG_BACKGROUND_INFO_VERSION                    1821
+#define IMG_BACKGROUND_INFO_LEVELSET                   1822
+#define IMG_BACKGROUND_SETUP                           1823
+#define IMG_BACKGROUND_PLAYING                         1824
+#define IMG_BACKGROUND_DOOR                            1825
+#define IMG_BACKGROUND_TAPE                            1826
+#define IMG_BACKGROUND_PANEL                           1827
+#define IMG_BACKGROUND_PALETTE                         1828
+#define IMG_BACKGROUND_TOOLBOX                         1829
+#define IMG_BACKGROUND_TITLESCREEN_INITIAL_1           1830
+#define IMG_BACKGROUND_TITLESCREEN_INITIAL_2           1831
+#define IMG_BACKGROUND_TITLESCREEN_INITIAL_3           1832
+#define IMG_BACKGROUND_TITLESCREEN_INITIAL_4           1833
+#define IMG_BACKGROUND_TITLESCREEN_INITIAL_5           1834
+#define IMG_BACKGROUND_TITLESCREEN_1                   1835
+#define IMG_BACKGROUND_TITLESCREEN_2                   1836
+#define IMG_BACKGROUND_TITLESCREEN_3                   1837
+#define IMG_BACKGROUND_TITLESCREEN_4                   1838
+#define IMG_BACKGROUND_TITLESCREEN_5                   1839
+#define IMG_BACKGROUND_TITLEMESSAGE_INITIAL_1          1840
+#define IMG_BACKGROUND_TITLEMESSAGE_INITIAL_2          1841
+#define IMG_BACKGROUND_TITLEMESSAGE_INITIAL_3          1842
+#define IMG_BACKGROUND_TITLEMESSAGE_INITIAL_4          1843
+#define IMG_BACKGROUND_TITLEMESSAGE_INITIAL_5          1844
+#define IMG_BACKGROUND_TITLEMESSAGE_1                  1845
+#define IMG_BACKGROUND_TITLEMESSAGE_2                  1846
+#define IMG_BACKGROUND_TITLEMESSAGE_3                  1847
+#define IMG_BACKGROUND_TITLEMESSAGE_4                  1848
+#define IMG_BACKGROUND_TITLEMESSAGE_5                  1849
+#define IMG_BACKGROUND_ENVELOPE_1                      1850
+#define IMG_BACKGROUND_ENVELOPE_2                      1851
+#define IMG_BACKGROUND_ENVELOPE_3                      1852
+#define IMG_BACKGROUND_ENVELOPE_4                      1853
+#define IMG_BACKGROUND_REQUEST                         1854
+#define IMG_TITLESCREEN_INITIAL_1                      1855
+#define IMG_TITLESCREEN_INITIAL_2                      1856
+#define IMG_TITLESCREEN_INITIAL_3                      1857
+#define IMG_TITLESCREEN_INITIAL_4                      1858
+#define IMG_TITLESCREEN_INITIAL_5                      1859
+#define IMG_TITLESCREEN_1                              1860
+#define IMG_TITLESCREEN_2                              1861
+#define IMG_TITLESCREEN_3                              1862
+#define IMG_TITLESCREEN_4                              1863
+#define IMG_TITLESCREEN_5                              1864
+#define IMG_DOOR_1_GFX_PART_1                          1865
+#define IMG_DOOR_1_GFX_PART_2                          1866
+#define IMG_DOOR_1_GFX_PART_3                          1867
+#define IMG_DOOR_1_GFX_PART_4                          1868
+#define IMG_DOOR_1_GFX_PART_5                          1869
+#define IMG_DOOR_1_GFX_PART_6                          1870
+#define IMG_DOOR_1_GFX_PART_7                          1871
+#define IMG_DOOR_1_GFX_PART_8                          1872
+#define IMG_DOOR_2_GFX_PART_1                          1873
+#define IMG_DOOR_2_GFX_PART_2                          1874
+#define IMG_DOOR_2_GFX_PART_3                          1875
+#define IMG_DOOR_2_GFX_PART_4                          1876
+#define IMG_DOOR_2_GFX_PART_5                          1877
+#define IMG_DOOR_2_GFX_PART_6                          1878
+#define IMG_DOOR_2_GFX_PART_7                          1879
+#define IMG_DOOR_2_GFX_PART_8                          1880
+#define IMG_DOOR_2_TOP_BORDER_CORRECTION               1881
+#define IMG_LAST_IMAGE_ENTRY_BUG                       1882
 
-#define NUM_IMAGE_FILES                                        1881
+#define NUM_IMAGE_FILES                                        1883
 
 #endif /* CONF_GFX_H */
index 7710041e25ecd28957798819f65bfca47e2bc355..73f119678a6ebfe22cebcfcfed11cafe9c089cfd 100644 (file)
@@ -2044,6 +2044,10 @@ struct TokenIntPtrInfo image_config_vars[] =
     "main.input.name.font",
     &menu.main.input.name.font
   },
+  {
+    "main.show_game_buttons",
+    &menu.main.show_game_buttons
+  },
   {
     "preview.x",
     &preview.x
@@ -5804,6 +5808,22 @@ struct TokenIntPtrInfo image_config_vars[] =
     "game.button.sound_simple.y",
     &game.button.sound_simple.y
   },
+  {
+    "game.button.save.x",
+    &game.button.save.x
+  },
+  {
+    "game.button.save.y",
+    &game.button.save.y
+  },
+  {
+    "game.button.load.x",
+    &game.button.load.x
+  },
+  {
+    "game.button.load.y",
+    &game.button.load.y
+  },
   {
     "tape.button.eject.x",
     &tape.button.eject.x
index 15c21a674e169b8a33c3ac94c220627beaa5f284..45332a0ac05c50da0f3c2c33737ac9cb785d3afe 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "2014-03-06 00:24"
+#define COMPILE_DATE_STRING "2014-03-07 01:21"
index 2791934f678473d79b61c34a90eb875565adf6dc..7c513965ffb6b2ca7d3989d544488b8680a81fca 100644 (file)
@@ -7835,8 +7835,12 @@ void DrawLevelEd()
 #endif
 
   /* copy actual editor door content to door double buffer for OpenDoor() */
+#if 1
+  BlitBitmap(drawto, bitmap_db_door_1, DX, DY, DXSIZE, DYSIZE, 0, 0);
+#else
   BlitBitmap(drawto, bitmap_db_door,
             DX, DY, DXSIZE, DYSIZE, DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1);
+#endif
 
 #if 1
   /* draw new control window (with border) to window */
index cc32a2f4180582396ddeab1ca46c87f7356e19eb..11a6fed866271b03c2f5ff544ec29cd68827848c 100644 (file)
@@ -1014,8 +1014,10 @@ static struct GamePanelControlInfo game_panel_controls[] =
 #define SOUND_CTRL_ID_MUSIC            3
 #define SOUND_CTRL_ID_LOOPS            4
 #define SOUND_CTRL_ID_SIMPLE           5
+#define GAME_CTRL_ID_SAVE              6
+#define GAME_CTRL_ID_LOAD              7
 
-#define NUM_GAME_BUTTONS               6
+#define NUM_GAME_BUTTONS               8
 
 
 /* forward declaration for internal use */
@@ -1082,7 +1084,6 @@ static void PlayLevelSoundActionIfLoop(int, int, int);
 static void StopLevelSoundActionIfLoop(int, int, int);
 static void PlayLevelMusic();
 
-static void MapGameButtons();
 static void HandleGameButtons(struct GadgetInfo *);
 
 int AmoebeNachbarNr(int, int);
@@ -4516,8 +4517,12 @@ void InitGame()
     MapTapeButtons();
 
     /* copy actual game door content to door double buffer for OpenDoor() */
+#if 1
+    BlitBitmap(drawto, bitmap_db_door_1, DX, DY, DXSIZE, DYSIZE, 0, 0);
+#else
     BlitBitmap(drawto, bitmap_db_door,
               DX, DY, DXSIZE, DYSIZE, DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1);
+#endif
 
     OpenDoor(DOOR_OPEN_ALL);
 
@@ -16803,6 +16808,14 @@ static struct
   {
     IMG_GAME_BUTTON_GFX_SOUND_SIMPLE,  &game.button.sound_simple,
     SOUND_CTRL_ID_SIMPLE,              "normal sounds on/off"
+  },
+  {
+    IMG_GAME_BUTTON_GFX_SAVE,          &game.button.save,
+    GAME_CTRL_ID_SAVE,                 "save game"
+  },
+  {
+    IMG_GAME_BUTTON_GFX_LOAD,          &game.button.load,
+    GAME_CTRL_ID_LOAD,                 "load game"
   }
 };
 
@@ -16828,9 +16841,18 @@ void CreateGameButtons()
     int gd_yap = gfx->src_y + gfx->active_yoffset + gfx->pressed_yoffset;
     int id = i;
 
+    if (gfx->bitmap == NULL)
+    {
+      game_gadget[id] = NULL;
+
+      continue;
+    }
+
     if (id == GAME_CTRL_ID_STOP ||
        id == GAME_CTRL_ID_PAUSE ||
-       id == GAME_CTRL_ID_PLAY)
+       id == GAME_CTRL_ID_PLAY ||
+       id == GAME_CTRL_ID_SAVE ||
+       id == GAME_CTRL_ID_LOAD)
     {
       button_type = GD_TYPE_NORMAL_BUTTON;
       checked = FALSE;
@@ -16879,7 +16901,7 @@ void FreeGameButtons()
     FreeGadget(game_gadget[i]);
 }
 
-static void MapGameButtons()
+void MapGameButtons()
 {
   int i;
 
@@ -16985,6 +17007,14 @@ static void HandleGameButtonsExt(int id)
       }
       break;
 
+    case GAME_CTRL_ID_SAVE:
+      TapeQuickSave();
+      break;
+
+    case GAME_CTRL_ID_LOAD:
+      TapeQuickLoad();
+      break;
+
     default:
       break;
   }
index d1431c22b8b236bd7812a8886ac40ab6da1a5e04..db61769a5ac04deb74627ec140f49d1b1477c424 100644 (file)
@@ -92,9 +92,13 @@ struct GameButtonInfo
   struct Rect stop;
   struct Rect pause;
   struct Rect play;
+
   struct Rect sound_music;
   struct Rect sound_loops;
   struct Rect sound_simple;
+
+  struct Rect save;
+  struct Rect load;
 };
 
 #else
@@ -365,6 +369,7 @@ boolean CheckEngineSnapshot();
 
 void CreateGameButtons();
 void FreeGameButtons();
+void MapGameButtons();
 void UnmapGameButtons();
 void RedrawGameButtons();
 
index 33bfb5ec409a4941074335f3372b23ceabae653e..ec2f8b2e9a2141181dae834099456b0d80f37ef9 100644 (file)
@@ -1771,6 +1771,7 @@ static void InitGraphicInfo()
     IMG_BACKGROUND_ENVELOPE_2,
     IMG_BACKGROUND_ENVELOPE_3,
     IMG_BACKGROUND_ENVELOPE_4,
+    IMG_BACKGROUND_REQUEST,
 
     IMG_BACKGROUND,
     IMG_BACKGROUND_TITLE_INITIAL,
@@ -1785,11 +1786,15 @@ static void InitGraphicInfo()
     IMG_BACKGROUND_INFO_MUSIC,
     IMG_BACKGROUND_INFO_CREDITS,
     IMG_BACKGROUND_INFO_PROGRAM,
+    IMG_BACKGROUND_INFO_VERSION,
     IMG_BACKGROUND_INFO_LEVELSET,
     IMG_BACKGROUND_SETUP,
+    IMG_BACKGROUND_PLAYING,
     IMG_BACKGROUND_DOOR,
     IMG_BACKGROUND_TAPE,
     IMG_BACKGROUND_PANEL,
+    IMG_BACKGROUND_PALETTE,
+    IMG_BACKGROUND_TOOLBOX,
 
     IMG_TITLESCREEN_INITIAL_1,
     IMG_TITLESCREEN_INITIAL_2,
@@ -1802,6 +1807,17 @@ static void InitGraphicInfo()
     IMG_TITLESCREEN_4,
     IMG_TITLESCREEN_5,
 
+    IMG_BACKGROUND_TITLEMESSAGE_INITIAL_1,
+    IMG_BACKGROUND_TITLEMESSAGE_INITIAL_2,
+    IMG_BACKGROUND_TITLEMESSAGE_INITIAL_3,
+    IMG_BACKGROUND_TITLEMESSAGE_INITIAL_4,
+    IMG_BACKGROUND_TITLEMESSAGE_INITIAL_5,
+    IMG_BACKGROUND_TITLEMESSAGE_1,
+    IMG_BACKGROUND_TITLEMESSAGE_2,
+    IMG_BACKGROUND_TITLEMESSAGE_3,
+    IMG_BACKGROUND_TITLEMESSAGE_4,
+    IMG_BACKGROUND_TITLEMESSAGE_5,
+
     -1
   };
 
@@ -5548,7 +5564,11 @@ void InitGfxBuffers()
   ReCreateBitmap(&bitmap_db_cross, WIN_XSIZE, WIN_YSIZE, DEFAULT_DEPTH);
   ReCreateBitmap(&bitmap_db_field, FXSIZE, FYSIZE, DEFAULT_DEPTH);
   ReCreateBitmap(&bitmap_db_panel, DXSIZE, DYSIZE, DEFAULT_DEPTH);
+#if 0
   ReCreateBitmap(&bitmap_db_door, 3 * DXSIZE, DYSIZE + VYSIZE, DEFAULT_DEPTH);
+#endif
+  ReCreateBitmap(&bitmap_db_door_1, 3 * DXSIZE, DYSIZE, DEFAULT_DEPTH);
+  ReCreateBitmap(&bitmap_db_door_2, 3 * VXSIZE, VYSIZE, DEFAULT_DEPTH);
   ReCreateBitmap(&bitmap_db_toons, FULL_SXSIZE, FULL_SYSIZE, DEFAULT_DEPTH);
 
   /* initialize screen properties */
index 3781aeb416c1497163820c819992baad3fb222bd..8b99078ebfd62d3963eaa65777eee631192b0ccc 100644 (file)
@@ -1263,6 +1263,9 @@ void FreeGadget(struct GadgetInfo *gi)
 {
   struct GadgetInfo *gi_previous = gadget_list_first_entry;
 
+  if (gi == NULL)
+    return;
+
   /* prevent "last_info_gi" from pointing to memory that will be freed */
   if (last_info_gi == gi)
     last_info_gi = NULL;
index c1762fe842349d2030e26cad2d8d455131499763..c1982ccf5b19128369dbfa551b4633a14eadf394 100644 (file)
@@ -25,7 +25,11 @@ Bitmap                      *bitmap_db_store;
 Bitmap                *bitmap_db_cross;
 Bitmap                *bitmap_db_field;
 Bitmap                *bitmap_db_panel;
+#if 0
 Bitmap                *bitmap_db_door;
+#endif
+Bitmap                *bitmap_db_door_1;
+Bitmap                *bitmap_db_door_2;
 Bitmap                *bitmap_db_toons;
 DrawBuffer            *fieldbuffer;
 DrawBuffer            *drawto_field;
index f9ed5ac485fb0361a02f25a96667b0c72efbd708..5653a982b81c2a393c22e44c89bd39ec5aec74ad 100644 (file)
@@ -2240,6 +2240,8 @@ struct MenuMainInfo
   struct MenuMainButtonInfo button;
   struct MenuMainTextInfo text;
   struct MenuMainInputInfo input;
+
+  boolean show_game_buttons;
 };
 
 struct TitleFadingInfo
@@ -2906,7 +2908,11 @@ extern Bitmap                   *bitmap_db_store;
 extern Bitmap                 *bitmap_db_cross;
 extern Bitmap                 *bitmap_db_field;
 extern Bitmap                 *bitmap_db_panel;
+#if 0
 extern Bitmap                 *bitmap_db_door;
+#endif
+extern Bitmap                 *bitmap_db_door_1;
+extern Bitmap                 *bitmap_db_door_2;
 extern Bitmap                 *bitmap_db_toons;
 extern Pixmap                  tile_clipmask[];
 extern DrawBuffer             *fieldbuffer;
index 2ab6f4be8bbcdced5b641be9e27e10d2f5ca718b..cebc92890274fa9331dfe881bfcfe97db6d21f06 100644 (file)
@@ -544,6 +544,38 @@ void DrawCompleteVideoDisplay()
         tape.date, tape.length);
 #endif
 
+#if 1
+  struct GraphicInfo *g_tape = &graphic_info[IMG_BACKGROUND_TAPE];
+  int tape_button_graphics[] =
+  {
+    IMG_TAPE_BUTTON_GFX_EJECT,
+    IMG_TAPE_BUTTON_GFX_STOP,
+    IMG_TAPE_BUTTON_GFX_PAUSE,
+    IMG_TAPE_BUTTON_GFX_RECORD,
+    IMG_TAPE_BUTTON_GFX_PLAY
+  };
+  struct Rect *tape_button_positions[] =
+  {
+    &tape.button.eject,
+    &tape.button.stop,
+    &tape.button.pause,
+    &tape.button.record,
+    &tape.button.play
+  };
+  int i;
+
+  BlitBitmap(g_tape->bitmap, drawto, g_tape->src_x, g_tape->src_y,
+            gfx.vxsize, gfx.vysize, gfx.vx, gfx.vy);
+
+  for (i = 0; i < SIZEOF_ARRAY_INT(tape_button_graphics); i++)
+  {
+    struct GraphicInfo *g = &graphic_info[tape_button_graphics[i]];
+    struct Rect *pos = tape_button_positions[i];
+
+    BlitBitmap(g->bitmap, drawto, g->src_x, g->src_y,
+              g->width, g->height, gfx.vx + pos->x, gfx.vy + pos->y);
+  }
+#else
   BlitBitmap(graphic_info[IMG_GLOBAL_DOOR].bitmap, drawto,
             DOOR_GFX_PAGEX3, DOOR_GFX_PAGEY2,
             gfx.vxsize, gfx.vysize, gfx.vx, gfx.vy);
@@ -552,6 +584,7 @@ void DrawCompleteVideoDisplay()
             DOOR_GFX_PAGEY2 + VIDEO_CONTROL_YPOS,
             VIDEO_CONTROL_XSIZE, VIDEO_CONTROL_YSIZE,
             gfx.vx + VIDEO_CONTROL_XPOS, gfx.vy + VIDEO_CONTROL_YPOS);
+#endif
 
   DrawVideoDisplay(VIDEO_ALL_OFF, 0);
 
@@ -587,8 +620,13 @@ void DrawCompleteVideoDisplay()
   }
 #endif
 
+#if 1
+  BlitBitmap(drawto, bitmap_db_door_2, gfx.vx, gfx.vy, gfx.vxsize, gfx.vysize,
+            0, 0);
+#else
   BlitBitmap(drawto, bitmap_db_door, gfx.vx, gfx.vy, gfx.vxsize, gfx.vysize,
             DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY2);
+#endif
 }
 
 void TapeDeactivateDisplayOn()
index 0387f05d4cba20ff90ad5e5cf08fe423dc6895ca..21728e5a081efa7910da8dbcb3bfdf0f07c39c22 100644 (file)
@@ -4568,9 +4568,14 @@ static boolean RequestDoor(char *text, unsigned int req_state)
     CloseDoor(DOOR_CLOSE_1);
 
     /* save old door content */
+#if 1
+    BlitBitmap(bitmap_db_door_1, bitmap_db_door_1,
+              0 * DXSIZE, 0, DXSIZE, DYSIZE, 1 * DXSIZE, 0);
+#else
     BlitBitmap(bitmap_db_door, bitmap_db_door,
               DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1, DXSIZE, DYSIZE,
               DOOR_GFX_PAGEX2, DOOR_GFX_PAGEY1);
+#endif
   }
 
   SetDoorBackgroundImage(IMG_BACKGROUND_DOOR);
@@ -4640,9 +4645,13 @@ static boolean RequestDoor(char *text, unsigned int req_state)
   }
 
   /* copy request gadgets to door backbuffer */
+#if 1
+  BlitBitmap(drawto, bitmap_db_door_1, DX, DY, DXSIZE, DYSIZE, 0, 0);
+#else
   BlitBitmap(drawto, bitmap_db_door,
             DX, DY, DXSIZE, DYSIZE,
             DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1);
+#endif
 
   OpenDoor(DOOR_OPEN_1);
 
@@ -5537,6 +5546,15 @@ unsigned int OpenDoor(unsigned int door_state)
 {
   if (door_state & DOOR_COPY_BACK)
   {
+#if 1
+    if (door_state & DOOR_OPEN_1)
+      BlitBitmap(bitmap_db_door_1, bitmap_db_door_1,
+                1 * DXSIZE, 0, DXSIZE, DYSIZE, 0 * DXSIZE, 0);
+
+    if (door_state & DOOR_OPEN_2)
+      BlitBitmap(bitmap_db_door_2, bitmap_db_door_2,
+                1 * VXSIZE, 0, VXSIZE, VYSIZE, 0 * VXSIZE, 0);
+#else
     if (door_state & DOOR_OPEN_1)
       BlitBitmap(bitmap_db_door, bitmap_db_door,
                 DOOR_GFX_PAGEX2, DOOR_GFX_PAGEY1, DXSIZE, DYSIZE,
@@ -5546,6 +5564,7 @@ unsigned int OpenDoor(unsigned int door_state)
       BlitBitmap(bitmap_db_door, bitmap_db_door,
                 DOOR_GFX_PAGEX2, DOOR_GFX_PAGEY2, VXSIZE, VYSIZE,
                 DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY2);
+#endif
 
     door_state &= ~DOOR_COPY_BACK;
   }
@@ -5559,6 +5578,15 @@ unsigned int CloseDoor(unsigned int door_state)
 
   if (!(door_state & DOOR_NO_COPY_BACK))
   {
+#if 1
+    if (old_door_state & DOOR_OPEN_1)
+      BlitBitmap(backbuffer, bitmap_db_door_1,
+                DX, DY, DXSIZE, DYSIZE, 0, 0);
+
+    if (old_door_state & DOOR_OPEN_2)
+      BlitBitmap(backbuffer, bitmap_db_door_2,
+                VX, VY, VXSIZE, VYSIZE, 0, 0);
+#else
     if (old_door_state & DOOR_OPEN_1)
       BlitBitmap(backbuffer, bitmap_db_door,
                 DX, DY, DXSIZE, DYSIZE, DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1);
@@ -5566,6 +5594,7 @@ unsigned int CloseDoor(unsigned int door_state)
     if (old_door_state & DOOR_OPEN_2)
       BlitBitmap(backbuffer, bitmap_db_door,
                 VX, VY, VXSIZE, VYSIZE, DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY2);
+#endif
 
     door_state &= ~DOOR_NO_COPY_BACK;
   }
@@ -5594,11 +5623,13 @@ int euclid(int a, int b)
 
 unsigned int MoveDoor(unsigned int door_state)
 {
+#if 0
   struct XY panel_pos_list[] =
   {
     { DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1 },
     { DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY2 },
   };
+#endif
   struct Rect door_rect_list[] =
   {
     { DX, DY, DXSIZE, DYSIZE },
@@ -5778,8 +5809,12 @@ unsigned int MoveDoor(unsigned int door_state)
        int door_token = dpc->door_token;
        int door_index = DOOR_INDEX_FROM_TOKEN(door_token);
        boolean is_panel = DOOR_PART_IS_PANEL(nr);
+#if 0
        struct XY *panel_pos = &panel_pos_list[door_index];
+#endif
        struct Rect *door_rect = &door_rect_list[door_index];
+       Bitmap *bitmap_db_door = (door_token == DOOR_1 ? bitmap_db_door_1 :
+                                 bitmap_db_door_2);
        Bitmap *bitmap = (is_panel ? bitmap_db_door : g->bitmap);
        int current_door_state = door_state & door_token;
        boolean door_opening = ((current_door_state & DOOR_OPEN)  != 0);
@@ -5797,6 +5832,11 @@ unsigned int MoveDoor(unsigned int door_state)
        int dst_x, dst_y, dst_xx, dst_yy;
        int width, height;
 
+#if 0
+       if (k == 0 && is_panel && door_token == DOOR_2)
+         printf("::: %d, %d\n", g->width, g->height);
+#endif
+
 #if 0
        if (DOOR_PART_IS_PANEL(nr))
        {
@@ -5903,8 +5943,13 @@ unsigned int MoveDoor(unsigned int door_state)
 
        if (is_panel)
        {
+#if 1
+         src_x = src_xx;
+         src_y = src_yy;
+#else
          src_x = panel_pos->x + src_xx;
          src_y = panel_pos->y + src_yy;
+#endif
        }
        else
        {