From 61eaa25861d6a0d0ac8f52a50f28b25d857d0efd Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Wed, 16 Jun 2010 17:01:52 +0200 Subject: [PATCH] rnd-20100616-1-src --- src/conf_gfx.c | 156 +++++++++++++++++++++++++ src/conf_gfx.h | 264 +++++++++++++++++++++++-------------------- src/conf_var.c | 224 ++++++++++++++++++++++++++++++++++++ src/conftime.h | 2 +- src/files.c | 29 ++--- src/init.c | 25 ++++ src/libgame/system.h | 2 + src/screens.c | 28 ++--- src/tape.c | 15 ++- src/tape.h | 39 +++++++ 10 files changed, 634 insertions(+), 150 deletions(-) diff --git a/src/conf_gfx.c b/src/conf_gfx.c index 5fb78493..1e318e41 100644 --- a/src/conf_gfx.c +++ b/src/conf_gfx.c @@ -4773,6 +4773,95 @@ struct ConfigInfo image_config[] = { "tape.button.gfx.play.height", "18" }, { "tape.button.gfx.play.pressed_xoffset", "-100" }, + { "tape.symbol.gfx.eject", UNDEFINED_FILENAME }, + { "tape.symbol.gfx.stop", UNDEFINED_FILENAME }, + { "tape.symbol.gfx.pause", "RocksDoor.pcx" }, + { "tape.symbol.gfx.pause.x", "340" }, + { "tape.symbol.gfx.pause.y", "321" }, + { "tape.symbol.gfx.pause.width", "17" }, + { "tape.symbol.gfx.pause.height", "13" }, + { "tape.symbol.gfx.record", "RocksDoor.pcx" }, + { "tape.symbol.gfx.record.x", "325" }, + { "tape.symbol.gfx.record.y", "321" }, + { "tape.symbol.gfx.record.width", "16" }, + { "tape.symbol.gfx.record.height", "16" }, + { "tape.symbol.gfx.play", "RocksDoor.pcx" }, + { "tape.symbol.gfx.play.x", "357" }, + { "tape.symbol.gfx.play.y", "321" }, + { "tape.symbol.gfx.play.width", "11" }, + { "tape.symbol.gfx.play.height", "13" }, + { "tape.symbol.gfx.fast_forward", "RocksDoor.pcx" }, + { "tape.symbol.gfx.fast_forward.x", "539" }, + { "tape.symbol.gfx.fast_forward.y", "193" }, + { "tape.symbol.gfx.fast_forward.width", "27" }, + { "tape.symbol.gfx.fast_forward.height", "13" }, + { "tape.symbol.gfx.warp_forward", "RocksDoor.pcx" }, + { "tape.symbol.gfx.warp_forward.x", "539" }, + { "tape.symbol.gfx.warp_forward.y", "152" }, + { "tape.symbol.gfx.warp_forward.width", "27" }, + { "tape.symbol.gfx.warp_forward.height", "13" }, + { "tape.symbol.gfx.warp_forward_blind", "RocksDoor.pcx" }, + { "tape.symbol.gfx.warp_forward_blind.x", "539" }, + { "tape.symbol.gfx.warp_forward_blind.y", "165" }, + { "tape.symbol.gfx.warp_forward_blind.width", "27" }, + { "tape.symbol.gfx.warp_forward_blind.height","13" }, + { "tape.symbol.gfx.pause_before_end", "RocksDoor.pcx" }, + { "tape.symbol.gfx.pause_before_end.x", "539" }, + { "tape.symbol.gfx.pause_before_end.y", "221" }, + { "tape.symbol.gfx.pause_before_end.width", "27" }, + { "tape.symbol.gfx.pause_before_end.height", "13" }, + { "tape.symbol.gfx.single_step", UNDEFINED_FILENAME }, + + { "tape.label.gfx.eject", UNDEFINED_FILENAME }, + { "tape.label.gfx.stop", UNDEFINED_FILENAME }, + { "tape.label.gfx.pause", "RocksDoor.pcx" }, + { "tape.label.gfx.pause.x", "305" }, + { "tape.label.gfx.pause.y", "341" }, + { "tape.label.gfx.pause.width", "35" }, + { "tape.label.gfx.pause.height", "8" }, + { "tape.label.gfx.record", "RocksDoor.pcx" }, + { "tape.label.gfx.record.x", "305" }, + { "tape.label.gfx.record.y", "321" }, + { "tape.label.gfx.record.width", "20" }, + { "tape.label.gfx.record.height", "12" }, + { "tape.label.gfx.play", "RocksDoor.pcx" }, + { "tape.label.gfx.play.x", "370" }, + { "tape.label.gfx.play.y", "321" }, + { "tape.label.gfx.play.width", "22" }, + { "tape.label.gfx.play.height", "12" }, + { "tape.label.gfx.fast_forward", "RocksDoor.pcx" }, + { "tape.label.gfx.fast_forward.x", "505" }, + { "tape.label.gfx.fast_forward.y", "193" }, + { "tape.label.gfx.fast_forward.width", "40" }, + { "tape.label.gfx.fast_forward.height", "28" }, + { "tape.label.gfx.warp_forward", "RocksDoor.pcx" }, + { "tape.label.gfx.warp_forward.x", "505" }, + { "tape.label.gfx.warp_forward.y", "165" }, + { "tape.label.gfx.warp_forward.width", "40" }, + { "tape.label.gfx.warp_forward.height", "28" }, + { "tape.label.gfx.warp_forward_blind", "RocksDoor.pcx" }, + { "tape.label.gfx.warp_forward_blind.x", "505" }, + { "tape.label.gfx.warp_forward_blind.y", "165" }, + { "tape.label.gfx.warp_forward_blind.width", "40" }, + { "tape.label.gfx.warp_forward_blind.height", "28" }, + { "tape.label.gfx.pause_before_end", "RocksDoor.pcx" }, + { "tape.label.gfx.pause_before_end.x", "505" }, + { "tape.label.gfx.pause_before_end.y", "221" }, + { "tape.label.gfx.pause_before_end.width", "40" }, + { "tape.label.gfx.pause_before_end.height", "28" }, + { "tape.label.gfx.single_step", "RocksDoor.pcx" }, + { "tape.label.gfx.single_step.x", "557" }, + { "tape.label.gfx.single_step.y", "139" }, + { "tape.label.gfx.single_step.width", "38" }, + { "tape.label.gfx.single_step.height", "13" }, + + { "tape.label.gfx.date", "RocksDoor.pcx" }, + { "tape.label.gfx.date.x", "305" }, + { "tape.label.gfx.date.y", "285" }, + { "tape.label.gfx.date.width", "90" }, + { "tape.label.gfx.date.height", "13" }, + { "tape.label.gfx.time", UNDEFINED_FILENAME }, + { "font.initial_1", "RocksFontSmall.pcx" }, { "font.initial_1.x", "0" }, { "font.initial_1.y", "0" }, @@ -5097,6 +5186,12 @@ struct ConfigInfo image_config[] = { "background.SETUP", UNDEFINED_FILENAME }, { "background.PLAYING", UNDEFINED_FILENAME }, { "background.DOOR", UNDEFINED_FILENAME }, + { "background.PANEL", UNDEFINED_FILENAME }, + { "background.TAPE", "RocksDoor.pcx" }, + { "background.TAPE.x", "200" }, + { "background.TAPE.y", "280" }, + { "background.TAPE.width", "100" }, + { "background.TAPE.height", "100" }, { "background.titlescreen_initial_1", UNDEFINED_FILENAME }, { "background.titlescreen_initial_2", UNDEFINED_FILENAME }, @@ -6488,6 +6583,67 @@ struct ConfigInfo image_config[] = { "tape.button.play.x", "77" }, { "tape.button.play.y", "77" }, + { "tape.symbol.eject.x", "-1" }, + { "tape.symbol.eject.y", "-1" }, + { "tape.symbol.stop.x", "-1" }, + { "tape.symbol.stop.y", "-1" }, + { "tape.symbol.pause.x", "40" }, + { "tape.symbol.pause.y", "41" }, + { "tape.symbol.record.x", "25" }, + { "tape.symbol.record.y", "5" }, + { "tape.symbol.play.x", "57" }, + { "tape.symbol.play.y", "41" }, + { "tape.symbol.fast_forward.x", "39" }, + { "tape.symbol.fast_forward.y", "42" }, + { "tape.symbol.warp_forward.x", "39" }, + { "tape.symbol.warp_forward.y", "42" }, + { "tape.symbol.warp_forward_blind.x", "39" }, + { "tape.symbol.warp_forward_blind.y", "42" }, + { "tape.symbol.pause_before_end.x", "39" }, + { "tape.symbol.pause_before_end.y", "42" }, + { "tape.symbol.single_step.x", "-1" }, + { "tape.symbol.single_step.y", "-1" }, + + { "tape.label.eject.x", "-1" }, + { "tape.label.eject.y", "-1" }, + { "tape.label.stop.x", "-1" }, + { "tape.label.stop.y", "-1" }, + { "tape.label.pause.x", "5" }, + { "tape.label.pause.y", "61" }, + { "tape.label.record.x", "5" }, + { "tape.label.record.y", "5" }, + { "tape.label.play.x", "70" }, + { "tape.label.play.y", "41" }, + { "tape.label.fast_forward.x", "5" }, + { "tape.label.fast_forward.y", "42" }, + { "tape.label.warp_forward.x", "5" }, + { "tape.label.warp_forward.y", "42" }, + { "tape.label.warp_forward_blind.x", "5" }, + { "tape.label.warp_forward_blind.y", "42" }, + { "tape.label.pause_before_end.x", "5" }, + { "tape.label.pause_before_end.y", "42" }, + { "tape.label.single_step.x", "57" }, + { "tape.label.single_step.y", "42" }, + + { "tape.label.date.x", "5" }, + { "tape.label.date.y", "5" }, + { "tape.label.time.x", "-1" }, + { "tape.label.time.y", "-1" }, + + { "tape.text.date.x", "7" }, + { "tape.text.date.y", "19" }, + { "tape.text.date.align", "left" }, + { "tape.text.date.valign", "top" }, + { "tape.text.date.digits", "-1" }, + { "tape.text.date.font", "font.tape_recorder" }, + + { "tape.text.time.x", "44" }, + { "tape.text.time.y", "55" }, + { "tape.text.time.align", "left" }, + { "tape.text.time.valign", "top" }, + { "tape.text.time.digits", "-1" }, + { "tape.text.time.font", "font.tape_recorder" }, + { "game.forced_scroll_delay_value", "-1" }, { "game.use_native_emc_graphics_engine", "false" }, { "game.use_native_sp_graphics_engine", "true" }, diff --git a/src/conf_gfx.h b/src/conf_gfx.h index 8ecb3d87..9549f18e 100644 --- a/src/conf_gfx.h +++ b/src/conf_gfx.h @@ -1711,126 +1711,150 @@ #define IMG_TAPE_BUTTON_GFX_PAUSE 1690 #define IMG_TAPE_BUTTON_GFX_RECORD 1691 #define IMG_TAPE_BUTTON_GFX_PLAY 1692 -#define IMG_FONT_INITIAL_1 1693 -#define IMG_FONT_INITIAL_2 1694 -#define IMG_FONT_INITIAL_3 1695 -#define IMG_FONT_INITIAL_4 1696 -#define IMG_FONT_TITLE_1 1697 -#define IMG_FONT_TITLE_2 1698 -#define IMG_FONT_TITLE_2_SETUP 1699 -#define IMG_FONT_MENU_1 1700 -#define IMG_FONT_MENU_1_ACTIVE 1701 -#define IMG_FONT_MENU_2 1702 -#define IMG_FONT_MENU_2_ACTIVE 1703 -#define IMG_FONT_TEXT_1 1704 -#define IMG_FONT_TEXT_1_MAIN 1705 -#define IMG_FONT_TEXT_1_LEVELS 1706 -#define IMG_FONT_TEXT_1_SETUP 1707 -#define IMG_FONT_TEXT_1_PREVIEW 1708 -#define IMG_FONT_TEXT_1_SCORES 1709 -#define IMG_FONT_TEXT_1_ACTIVE_SCORES 1710 -#define IMG_FONT_TEXT_1_PANEL 1711 -#define IMG_FONT_TEXT_1_DOOR 1712 -#define IMG_FONT_TEXT_2 1713 -#define IMG_FONT_TEXT_2_MAIN 1714 -#define IMG_FONT_TEXT_2_LEVELS 1715 -#define IMG_FONT_TEXT_2_SETUP 1716 -#define IMG_FONT_TEXT_2_PREVIEW 1717 -#define IMG_FONT_TEXT_2_SCORES 1718 -#define IMG_FONT_TEXT_2_ACTIVE_SCORES 1719 -#define IMG_FONT_TEXT_3 1720 -#define IMG_FONT_TEXT_3_LEVELS 1721 -#define IMG_FONT_TEXT_3_SETUP 1722 -#define IMG_FONT_TEXT_3_PREVIEW 1723 -#define IMG_FONT_TEXT_3_SCORES 1724 -#define IMG_FONT_TEXT_3_ACTIVE_SCORES 1725 -#define IMG_FONT_TEXT_4 1726 -#define IMG_FONT_TEXT_4_MAIN 1727 -#define IMG_FONT_TEXT_4_LEVELS 1728 -#define IMG_FONT_TEXT_4_SETUP 1729 -#define IMG_FONT_TEXT_4_SCORES 1730 -#define IMG_FONT_TEXT_4_ACTIVE_SCORES 1731 -#define IMG_FONT_ENVELOPE_1 1732 -#define IMG_FONT_ENVELOPE_2 1733 -#define IMG_FONT_ENVELOPE_3 1734 -#define IMG_FONT_ENVELOPE_4 1735 -#define IMG_FONT_INPUT_1 1736 -#define IMG_FONT_INPUT_1_MAIN 1737 -#define IMG_FONT_INPUT_1_ACTIVE 1738 -#define IMG_FONT_INPUT_1_ACTIVE_MAIN 1739 -#define IMG_FONT_INPUT_1_ACTIVE_SETUP 1740 -#define IMG_FONT_INPUT_2 1741 -#define IMG_FONT_INPUT_2_ACTIVE 1742 -#define IMG_FONT_OPTION_OFF 1743 -#define IMG_FONT_OPTION_ON 1744 -#define IMG_FONT_VALUE_1 1745 -#define IMG_FONT_VALUE_2 1746 -#define IMG_FONT_VALUE_OLD 1747 -#define IMG_FONT_LEVEL_NUMBER 1748 -#define IMG_FONT_LEVEL_NUMBER_ACTIVE 1749 -#define IMG_FONT_TAPE_RECORDER 1750 -#define IMG_FONT_GAME_INFO 1751 -#define IMG_FONT_INFO_ELEMENTS 1752 -#define IMG_FONT_INFO_LEVELSET 1753 -#define IMG_GLOBAL_BORDER 1754 -#define IMG_GLOBAL_DOOR 1755 -#define IMG_GLOBAL_BUSY 1756 -#define IMG_EDITOR_ELEMENT_BORDER 1757 -#define IMG_EDITOR_ELEMENT_BORDER_INPUT 1758 -#define IMG_EDITOR_CASCADE_LIST 1759 -#define IMG_EDITOR_CASCADE_LIST_ACTIVE 1760 -#define IMG_BACKGROUND 1761 -#define IMG_BACKGROUND_TITLE_INITIAL 1762 -#define IMG_BACKGROUND_TITLE 1763 -#define IMG_BACKGROUND_MAIN 1764 -#define IMG_BACKGROUND_LEVELS 1765 -#define IMG_BACKGROUND_SCORES 1766 -#define IMG_BACKGROUND_EDITOR 1767 -#define IMG_BACKGROUND_INFO 1768 -#define IMG_BACKGROUND_INFO_ELEMENTS 1769 -#define IMG_BACKGROUND_INFO_MUSIC 1770 -#define IMG_BACKGROUND_INFO_CREDITS 1771 -#define IMG_BACKGROUND_INFO_PROGRAM 1772 -#define IMG_BACKGROUND_INFO_VERSION 1773 -#define IMG_BACKGROUND_INFO_LEVELSET 1774 -#define IMG_BACKGROUND_SETUP 1775 -#define IMG_BACKGROUND_PLAYING 1776 -#define IMG_BACKGROUND_DOOR 1777 -#define IMG_BACKGROUND_TITLESCREEN_INITIAL_1 1778 -#define IMG_BACKGROUND_TITLESCREEN_INITIAL_2 1779 -#define IMG_BACKGROUND_TITLESCREEN_INITIAL_3 1780 -#define IMG_BACKGROUND_TITLESCREEN_INITIAL_4 1781 -#define IMG_BACKGROUND_TITLESCREEN_INITIAL_5 1782 -#define IMG_BACKGROUND_TITLESCREEN_1 1783 -#define IMG_BACKGROUND_TITLESCREEN_2 1784 -#define IMG_BACKGROUND_TITLESCREEN_3 1785 -#define IMG_BACKGROUND_TITLESCREEN_4 1786 -#define IMG_BACKGROUND_TITLESCREEN_5 1787 -#define IMG_BACKGROUND_TITLEMESSAGE_INITIAL_1 1788 -#define IMG_BACKGROUND_TITLEMESSAGE_INITIAL_2 1789 -#define IMG_BACKGROUND_TITLEMESSAGE_INITIAL_3 1790 -#define IMG_BACKGROUND_TITLEMESSAGE_INITIAL_4 1791 -#define IMG_BACKGROUND_TITLEMESSAGE_INITIAL_5 1792 -#define IMG_BACKGROUND_TITLEMESSAGE_1 1793 -#define IMG_BACKGROUND_TITLEMESSAGE_2 1794 -#define IMG_BACKGROUND_TITLEMESSAGE_3 1795 -#define IMG_BACKGROUND_TITLEMESSAGE_4 1796 -#define IMG_BACKGROUND_TITLEMESSAGE_5 1797 -#define IMG_BACKGROUND_ENVELOPE_1 1798 -#define IMG_BACKGROUND_ENVELOPE_2 1799 -#define IMG_BACKGROUND_ENVELOPE_3 1800 -#define IMG_BACKGROUND_ENVELOPE_4 1801 -#define IMG_TITLESCREEN_INITIAL_1 1802 -#define IMG_TITLESCREEN_INITIAL_2 1803 -#define IMG_TITLESCREEN_INITIAL_3 1804 -#define IMG_TITLESCREEN_INITIAL_4 1805 -#define IMG_TITLESCREEN_INITIAL_5 1806 -#define IMG_TITLESCREEN_1 1807 -#define IMG_TITLESCREEN_2 1808 -#define IMG_TITLESCREEN_3 1809 -#define IMG_TITLESCREEN_4 1810 -#define IMG_TITLESCREEN_5 1811 +#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_FONT_INITIAL_1 1715 +#define IMG_FONT_INITIAL_2 1716 +#define IMG_FONT_INITIAL_3 1717 +#define IMG_FONT_INITIAL_4 1718 +#define IMG_FONT_TITLE_1 1719 +#define IMG_FONT_TITLE_2 1720 +#define IMG_FONT_TITLE_2_SETUP 1721 +#define IMG_FONT_MENU_1 1722 +#define IMG_FONT_MENU_1_ACTIVE 1723 +#define IMG_FONT_MENU_2 1724 +#define IMG_FONT_MENU_2_ACTIVE 1725 +#define IMG_FONT_TEXT_1 1726 +#define IMG_FONT_TEXT_1_MAIN 1727 +#define IMG_FONT_TEXT_1_LEVELS 1728 +#define IMG_FONT_TEXT_1_SETUP 1729 +#define IMG_FONT_TEXT_1_PREVIEW 1730 +#define IMG_FONT_TEXT_1_SCORES 1731 +#define IMG_FONT_TEXT_1_ACTIVE_SCORES 1732 +#define IMG_FONT_TEXT_1_PANEL 1733 +#define IMG_FONT_TEXT_1_DOOR 1734 +#define IMG_FONT_TEXT_2 1735 +#define IMG_FONT_TEXT_2_MAIN 1736 +#define IMG_FONT_TEXT_2_LEVELS 1737 +#define IMG_FONT_TEXT_2_SETUP 1738 +#define IMG_FONT_TEXT_2_PREVIEW 1739 +#define IMG_FONT_TEXT_2_SCORES 1740 +#define IMG_FONT_TEXT_2_ACTIVE_SCORES 1741 +#define IMG_FONT_TEXT_3 1742 +#define IMG_FONT_TEXT_3_LEVELS 1743 +#define IMG_FONT_TEXT_3_SETUP 1744 +#define IMG_FONT_TEXT_3_PREVIEW 1745 +#define IMG_FONT_TEXT_3_SCORES 1746 +#define IMG_FONT_TEXT_3_ACTIVE_SCORES 1747 +#define IMG_FONT_TEXT_4 1748 +#define IMG_FONT_TEXT_4_MAIN 1749 +#define IMG_FONT_TEXT_4_LEVELS 1750 +#define IMG_FONT_TEXT_4_SETUP 1751 +#define IMG_FONT_TEXT_4_SCORES 1752 +#define IMG_FONT_TEXT_4_ACTIVE_SCORES 1753 +#define IMG_FONT_ENVELOPE_1 1754 +#define IMG_FONT_ENVELOPE_2 1755 +#define IMG_FONT_ENVELOPE_3 1756 +#define IMG_FONT_ENVELOPE_4 1757 +#define IMG_FONT_INPUT_1 1758 +#define IMG_FONT_INPUT_1_MAIN 1759 +#define IMG_FONT_INPUT_1_ACTIVE 1760 +#define IMG_FONT_INPUT_1_ACTIVE_MAIN 1761 +#define IMG_FONT_INPUT_1_ACTIVE_SETUP 1762 +#define IMG_FONT_INPUT_2 1763 +#define IMG_FONT_INPUT_2_ACTIVE 1764 +#define IMG_FONT_OPTION_OFF 1765 +#define IMG_FONT_OPTION_ON 1766 +#define IMG_FONT_VALUE_1 1767 +#define IMG_FONT_VALUE_2 1768 +#define IMG_FONT_VALUE_OLD 1769 +#define IMG_FONT_LEVEL_NUMBER 1770 +#define IMG_FONT_LEVEL_NUMBER_ACTIVE 1771 +#define IMG_FONT_TAPE_RECORDER 1772 +#define IMG_FONT_GAME_INFO 1773 +#define IMG_FONT_INFO_ELEMENTS 1774 +#define IMG_FONT_INFO_LEVELSET 1775 +#define IMG_GLOBAL_BORDER 1776 +#define IMG_GLOBAL_DOOR 1777 +#define IMG_GLOBAL_BUSY 1778 +#define IMG_EDITOR_ELEMENT_BORDER 1779 +#define IMG_EDITOR_ELEMENT_BORDER_INPUT 1780 +#define IMG_EDITOR_CASCADE_LIST 1781 +#define IMG_EDITOR_CASCADE_LIST_ACTIVE 1782 +#define IMG_BACKGROUND 1783 +#define IMG_BACKGROUND_TITLE_INITIAL 1784 +#define IMG_BACKGROUND_TITLE 1785 +#define IMG_BACKGROUND_MAIN 1786 +#define IMG_BACKGROUND_LEVELS 1787 +#define IMG_BACKGROUND_SCORES 1788 +#define IMG_BACKGROUND_EDITOR 1789 +#define IMG_BACKGROUND_INFO 1790 +#define IMG_BACKGROUND_INFO_ELEMENTS 1791 +#define IMG_BACKGROUND_INFO_MUSIC 1792 +#define IMG_BACKGROUND_INFO_CREDITS 1793 +#define IMG_BACKGROUND_INFO_PROGRAM 1794 +#define IMG_BACKGROUND_INFO_VERSION 1795 +#define IMG_BACKGROUND_INFO_LEVELSET 1796 +#define IMG_BACKGROUND_SETUP 1797 +#define IMG_BACKGROUND_PLAYING 1798 +#define IMG_BACKGROUND_DOOR 1799 +#define IMG_BACKGROUND_PANEL 1800 +#define IMG_BACKGROUND_TAPE 1801 +#define IMG_BACKGROUND_TITLESCREEN_INITIAL_1 1802 +#define IMG_BACKGROUND_TITLESCREEN_INITIAL_2 1803 +#define IMG_BACKGROUND_TITLESCREEN_INITIAL_3 1804 +#define IMG_BACKGROUND_TITLESCREEN_INITIAL_4 1805 +#define IMG_BACKGROUND_TITLESCREEN_INITIAL_5 1806 +#define IMG_BACKGROUND_TITLESCREEN_1 1807 +#define IMG_BACKGROUND_TITLESCREEN_2 1808 +#define IMG_BACKGROUND_TITLESCREEN_3 1809 +#define IMG_BACKGROUND_TITLESCREEN_4 1810 +#define IMG_BACKGROUND_TITLESCREEN_5 1811 +#define IMG_BACKGROUND_TITLEMESSAGE_INITIAL_1 1812 +#define IMG_BACKGROUND_TITLEMESSAGE_INITIAL_2 1813 +#define IMG_BACKGROUND_TITLEMESSAGE_INITIAL_3 1814 +#define IMG_BACKGROUND_TITLEMESSAGE_INITIAL_4 1815 +#define IMG_BACKGROUND_TITLEMESSAGE_INITIAL_5 1816 +#define IMG_BACKGROUND_TITLEMESSAGE_1 1817 +#define IMG_BACKGROUND_TITLEMESSAGE_2 1818 +#define IMG_BACKGROUND_TITLEMESSAGE_3 1819 +#define IMG_BACKGROUND_TITLEMESSAGE_4 1820 +#define IMG_BACKGROUND_TITLEMESSAGE_5 1821 +#define IMG_BACKGROUND_ENVELOPE_1 1822 +#define IMG_BACKGROUND_ENVELOPE_2 1823 +#define IMG_BACKGROUND_ENVELOPE_3 1824 +#define IMG_BACKGROUND_ENVELOPE_4 1825 +#define IMG_TITLESCREEN_INITIAL_1 1826 +#define IMG_TITLESCREEN_INITIAL_2 1827 +#define IMG_TITLESCREEN_INITIAL_3 1828 +#define IMG_TITLESCREEN_INITIAL_4 1829 +#define IMG_TITLESCREEN_INITIAL_5 1830 +#define IMG_TITLESCREEN_1 1831 +#define IMG_TITLESCREEN_2 1832 +#define IMG_TITLESCREEN_3 1833 +#define IMG_TITLESCREEN_4 1834 +#define IMG_TITLESCREEN_5 1835 -#define NUM_IMAGE_FILES 1812 +#define NUM_IMAGE_FILES 1836 #endif /* CONF_GFX_H */ diff --git a/src/conf_var.c b/src/conf_var.c index 3739d0de..17cc2aee 100644 --- a/src/conf_var.c +++ b/src/conf_var.c @@ -5100,6 +5100,230 @@ struct TokenIntPtrInfo image_config_vars[] = "tape.button.play.y", &tape.button.play.y }, + { + "tape.symbol.eject.x", + &tape.symbol.eject.x + }, + { + "tape.symbol.eject.y", + &tape.symbol.eject.y + }, + { + "tape.symbol.stop.x", + &tape.symbol.stop.x + }, + { + "tape.symbol.stop.y", + &tape.symbol.stop.y + }, + { + "tape.symbol.pause.x", + &tape.symbol.pause.x + }, + { + "tape.symbol.pause.y", + &tape.symbol.pause.y + }, + { + "tape.symbol.record.x", + &tape.symbol.record.x + }, + { + "tape.symbol.record.y", + &tape.symbol.record.y + }, + { + "tape.symbol.play.x", + &tape.symbol.play.x + }, + { + "tape.symbol.play.y", + &tape.symbol.play.y + }, + { + "tape.symbol.fast_forward.x", + &tape.symbol.fast_forward.x + }, + { + "tape.symbol.fast_forward.y", + &tape.symbol.fast_forward.y + }, + { + "tape.symbol.warp_forward.x", + &tape.symbol.warp_forward.x + }, + { + "tape.symbol.warp_forward.y", + &tape.symbol.warp_forward.y + }, + { + "tape.symbol.warp_forward_blind.x", + &tape.symbol.warp_forward_blind.x + }, + { + "tape.symbol.warp_forward_blind.y", + &tape.symbol.warp_forward_blind.y + }, + { + "tape.symbol.pause_before_end.x", + &tape.symbol.pause_before_end.x + }, + { + "tape.symbol.pause_before_end.y", + &tape.symbol.pause_before_end.y + }, + { + "tape.symbol.single_step.x", + &tape.symbol.single_step.x + }, + { + "tape.symbol.single_step.y", + &tape.symbol.single_step.y + }, + { + "tape.label.eject.x", + &tape.label.eject.x + }, + { + "tape.label.eject.y", + &tape.label.eject.y + }, + { + "tape.label.stop.x", + &tape.label.stop.x + }, + { + "tape.label.stop.y", + &tape.label.stop.y + }, + { + "tape.label.pause.x", + &tape.label.pause.x + }, + { + "tape.label.pause.y", + &tape.label.pause.y + }, + { + "tape.label.record.x", + &tape.label.record.x + }, + { + "tape.label.record.y", + &tape.label.record.y + }, + { + "tape.label.play.x", + &tape.label.play.x + }, + { + "tape.label.play.y", + &tape.label.play.y + }, + { + "tape.label.fast_forward.x", + &tape.label.fast_forward.x + }, + { + "tape.label.fast_forward.y", + &tape.label.fast_forward.y + }, + { + "tape.label.warp_forward.x", + &tape.label.warp_forward.x + }, + { + "tape.label.warp_forward.y", + &tape.label.warp_forward.y + }, + { + "tape.label.warp_forward_blind.x", + &tape.label.warp_forward_blind.x + }, + { + "tape.label.warp_forward_blind.y", + &tape.label.warp_forward_blind.y + }, + { + "tape.label.pause_before_end.x", + &tape.label.pause_before_end.x + }, + { + "tape.label.pause_before_end.y", + &tape.label.pause_before_end.y + }, + { + "tape.label.single_step.x", + &tape.label.single_step.x + }, + { + "tape.label.single_step.y", + &tape.label.single_step.y + }, + { + "tape.label.date.x", + &tape.label.date.x + }, + { + "tape.label.date.y", + &tape.label.date.y + }, + { + "tape.label.time.x", + &tape.label.time.x + }, + { + "tape.label.time.y", + &tape.label.time.y + }, + { + "tape.text.date.x", + &tape.text.date.x + }, + { + "tape.text.date.y", + &tape.text.date.y + }, + { + "tape.text.date.align", + &tape.text.date.align + }, + { + "tape.text.date.valign", + &tape.text.date.valign + }, + { + "tape.text.date.digits", + &tape.text.date.size + }, + { + "tape.text.date.font", + &tape.text.date.font + }, + { + "tape.text.time.x", + &tape.text.time.x + }, + { + "tape.text.time.y", + &tape.text.time.y + }, + { + "tape.text.time.align", + &tape.text.time.align + }, + { + "tape.text.time.valign", + &tape.text.time.valign + }, + { + "tape.text.time.digits", + &tape.text.time.size + }, + { + "tape.text.time.font", + &tape.text.time.font + }, { "game.forced_scroll_delay_value", &game.forced_scroll_delay_value diff --git a/src/conftime.h b/src/conftime.h index 15b7eb6b..8fce68a3 100644 --- a/src/conftime.h +++ b/src/conftime.h @@ -1 +1 @@ -#define COMPILE_DATE_STRING "2010-06-15 22:47" +#define COMPILE_DATE_STRING "2010-06-16 16:44" diff --git a/src/files.c b/src/files.c index 349d2d52..8f018be0 100644 --- a/src/files.c +++ b/src/files.c @@ -9060,19 +9060,20 @@ void SaveScore(int nr) #define SETUP_TOKEN_SHORTCUT_FOCUS_PLAYER_4 6 #define SETUP_TOKEN_SHORTCUT_FOCUS_PLAYER_ALL 7 #define SETUP_TOKEN_SHORTCUT_TAPE_EJECT 8 -#define SETUP_TOKEN_SHORTCUT_TAPE_STOP 9 -#define SETUP_TOKEN_SHORTCUT_TAPE_PAUSE 10 -#define SETUP_TOKEN_SHORTCUT_TAPE_RECORD 11 -#define SETUP_TOKEN_SHORTCUT_TAPE_PLAY 12 -#define SETUP_TOKEN_SHORTCUT_SOUND_SIMPLE 13 -#define SETUP_TOKEN_SHORTCUT_SOUND_LOOPS 14 -#define SETUP_TOKEN_SHORTCUT_SOUND_MUSIC 15 -#define SETUP_TOKEN_SHORTCUT_SNAP_LEFT 16 -#define SETUP_TOKEN_SHORTCUT_SNAP_RIGHT 17 -#define SETUP_TOKEN_SHORTCUT_SNAP_UP 18 -#define SETUP_TOKEN_SHORTCUT_SNAP_DOWN 19 - -#define NUM_SHORTCUT_SETUP_TOKENS 20 +#define SETUP_TOKEN_SHORTCUT_TAPE_EXTRA 9 +#define SETUP_TOKEN_SHORTCUT_TAPE_STOP 10 +#define SETUP_TOKEN_SHORTCUT_TAPE_PAUSE 11 +#define SETUP_TOKEN_SHORTCUT_TAPE_RECORD 12 +#define SETUP_TOKEN_SHORTCUT_TAPE_PLAY 13 +#define SETUP_TOKEN_SHORTCUT_SOUND_SIMPLE 14 +#define SETUP_TOKEN_SHORTCUT_SOUND_LOOPS 15 +#define SETUP_TOKEN_SHORTCUT_SOUND_MUSIC 16 +#define SETUP_TOKEN_SHORTCUT_SNAP_LEFT 17 +#define SETUP_TOKEN_SHORTCUT_SNAP_RIGHT 18 +#define SETUP_TOKEN_SHORTCUT_SNAP_UP 19 +#define SETUP_TOKEN_SHORTCUT_SNAP_DOWN 20 + +#define NUM_SHORTCUT_SETUP_TOKENS 21 /* player setup */ #define SETUP_TOKEN_PLAYER_USE_JOYSTICK 0 @@ -9218,6 +9219,7 @@ static struct TokenInfo shortcut_setup_tokens[] = { TYPE_KEY_X11, &ssi.focus_player[3], "shortcut.focus_player_4" }, { TYPE_KEY_X11, &ssi.focus_player_all,"shortcut.focus_player_all" }, { TYPE_KEY_X11, &ssi.tape_eject, "shortcut.tape_eject" }, + { TYPE_KEY_X11, &ssi.tape_extra, "shortcut.tape_extra" }, { TYPE_KEY_X11, &ssi.tape_stop, "shortcut.tape_stop" }, { TYPE_KEY_X11, &ssi.tape_pause, "shortcut.tape_pause" }, { TYPE_KEY_X11, &ssi.tape_record, "shortcut.tape_record" }, @@ -9346,6 +9348,7 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) si->shortcut.focus_player_all = DEFAULT_KEY_FOCUS_PLAYER_ALL; si->shortcut.tape_eject = DEFAULT_KEY_TAPE_EJECT; + si->shortcut.tape_extra = DEFAULT_KEY_TAPE_EXTRA; si->shortcut.tape_stop = DEFAULT_KEY_TAPE_STOP; si->shortcut.tape_pause = DEFAULT_KEY_TAPE_PAUSE; si->shortcut.tape_record = DEFAULT_KEY_TAPE_RECORD; diff --git a/src/init.c b/src/init.c index 4f7ca41a..5fe252ff 100644 --- a/src/init.c +++ b/src/init.c @@ -1334,6 +1334,29 @@ static void set_graphic_parameters_ext(int graphic, int *parameter, if (parameter[GFX_ARG_HEIGHT] != ARG_UNDEFINED_VALUE) g->height = parameter[GFX_ARG_HEIGHT]; + if (src_bitmap) + { + if (g->width <= 0) + { + Error(ERR_INFO_LINE, "-"); + Error(ERR_WARN, "invalid value %d for '%s.width' (fallback done to %d)", + g->width, getTokenFromImageID(graphic), TILEX); + Error(ERR_INFO_LINE, "-"); + + g->width = TILEX; /* will be checked to be inside bitmap later */ + } + + if (g->height <= 0) + { + Error(ERR_INFO_LINE, "-"); + Error(ERR_WARN, "invalid value %d for '%s.height' (fallback done to %d)", + g->height, getTokenFromImageID(graphic), TILEY); + Error(ERR_INFO_LINE, "-"); + + g->height = TILEY; /* will be checked to be inside bitmap later */ + } + } + #if 0 /* optional zoom factor for scaling up the image to a larger size */ if (parameter[GFX_ARG_SCALE_UP_FACTOR] != ARG_UNDEFINED_VALUE) @@ -1864,6 +1887,8 @@ static void InitGraphicInfo() IMG_BACKGROUND_INFO_LEVELSET, IMG_BACKGROUND_SETUP, IMG_BACKGROUND_DOOR, + IMG_BACKGROUND_TAPE, + IMG_BACKGROUND_PANEL, IMG_TITLESCREEN_INITIAL_1, IMG_TITLESCREEN_INITIAL_2, diff --git a/src/libgame/system.h b/src/libgame/system.h index 4383b60b..176085d4 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -73,6 +73,7 @@ #define DEFAULT_KEY_FOCUS_PLAYER_4 KSYM_F8 #define DEFAULT_KEY_FOCUS_PLAYER_ALL KSYM_F9 #define DEFAULT_KEY_TAPE_EJECT KSYM_UNDEFINED +#define DEFAULT_KEY_TAPE_EXTRA KSYM_UNDEFINED #define DEFAULT_KEY_TAPE_STOP KSYM_UNDEFINED #define DEFAULT_KEY_TAPE_PAUSE KSYM_UNDEFINED #define DEFAULT_KEY_TAPE_RECORD KSYM_UNDEFINED @@ -863,6 +864,7 @@ struct SetupShortcutInfo Key focus_player_all; Key tape_eject; + Key tape_extra; Key tape_stop; Key tape_pause; Key tape_record; diff --git a/src/screens.c b/src/screens.c index de24626a..fb511433 100644 --- a/src/screens.c +++ b/src/screens.c @@ -4312,11 +4312,11 @@ static struct TokenInfo setup_info_input[] = static struct TokenInfo setup_info_shortcuts[] = { - { TYPE_ENTER_MENU, execSetupShortcuts1, "Various Keys" }, - { TYPE_ENTER_MENU, execSetupShortcuts2, "Player Focus" }, - { TYPE_ENTER_MENU, execSetupShortcuts3, "Tape Buttons" }, - { TYPE_ENTER_MENU, execSetupShortcuts4, "Sound & Music" }, - { TYPE_ENTER_MENU, execSetupShortcuts5, "TAS Snap Keys" }, + { TYPE_ENTER_MENU, execSetupShortcuts1, "Various Keys" }, + { TYPE_ENTER_MENU, execSetupShortcuts2, "Player Focus" }, + { TYPE_ENTER_MENU, execSetupShortcuts3, "Tape Buttons" }, + { TYPE_ENTER_MENU, execSetupShortcuts4, "Sound & Music" }, + { TYPE_ENTER_MENU, execSetupShortcuts5, "TAS Snap Keys" }, { TYPE_EMPTY, NULL, "" }, { TYPE_LEAVE_MENU, execSetupMain, "Back" }, @@ -4360,15 +4360,17 @@ static struct TokenInfo setup_info_shortcuts_2[] = static struct TokenInfo setup_info_shortcuts_3[] = { - { TYPE_KEYTEXT, NULL, "Tape Eject:", }, + { TYPE_KEYTEXT, NULL, "Eject Tape:", }, { TYPE_KEY, &setup.shortcut.tape_eject, "" }, - { TYPE_KEYTEXT, NULL, "Tape Stop:", }, + { TYPE_KEYTEXT, NULL, "Warp / Single Step:", }, + { TYPE_KEY, &setup.shortcut.tape_extra, "" }, + { TYPE_KEYTEXT, NULL, "Stop Tape:", }, { TYPE_KEY, &setup.shortcut.tape_stop, "" }, - { TYPE_KEYTEXT, NULL, "Tape Pause:", }, + { TYPE_KEYTEXT, NULL, "Pause / Unpause Tape:",}, { TYPE_KEY, &setup.shortcut.tape_pause, "" }, - { TYPE_KEYTEXT, NULL, "Tape Record:", }, + { TYPE_KEYTEXT, NULL, "Record Tape:", }, { TYPE_KEY, &setup.shortcut.tape_record, "" }, - { TYPE_KEYTEXT, NULL, "Tape Play:", }, + { TYPE_KEYTEXT, NULL, "Play Tape:", }, { TYPE_KEY, &setup.shortcut.tape_play, "" }, { TYPE_EMPTY, NULL, "" }, { TYPE_LEAVE_MENU, execSetupShortcuts, "Back" }, @@ -4378,11 +4380,11 @@ static struct TokenInfo setup_info_shortcuts_3[] = static struct TokenInfo setup_info_shortcuts_4[] = { - { TYPE_KEYTEXT, NULL, "Sound Effects (Normal):", }, + { TYPE_KEYTEXT, NULL, "Toggle Sound Effects (Normal):", }, { TYPE_KEY, &setup.shortcut.sound_simple, "" }, - { TYPE_KEYTEXT, NULL, "Sound Effects (Looping):", }, + { TYPE_KEYTEXT, NULL, "Toggle Sound Effects (Looping):", }, { TYPE_KEY, &setup.shortcut.sound_loops, "" }, - { TYPE_KEYTEXT, NULL, "Music:", }, + { TYPE_KEYTEXT, NULL, "Toggle Music:", }, { TYPE_KEY, &setup.shortcut.sound_music, "" }, { TYPE_EMPTY, NULL, "" }, { TYPE_LEAVE_MENU, execSetupShortcuts, "Back" }, diff --git a/src/tape.c b/src/tape.c index 1b9d64ae..e9868159 100644 --- a/src/tape.c +++ b/src/tape.c @@ -345,6 +345,11 @@ void DrawVideoDisplay(unsigned long state, unsigned long value) }, }; +#if 0 + /* !!! ADD NEW STUFF HERE :-) !!! */ + +#else + for (k = 0; k < NUM_TAPE_FUNCTION_STATES; k++) /* on or off states */ { for (i = 0; i < NUM_TAPE_FUNCTIONS; i++) /* record, play, ... */ @@ -379,6 +384,7 @@ void DrawVideoDisplay(unsigned long state, unsigned long value) } } } +#endif if (state & VIDEO_STATE_DATE_ON) { @@ -1423,10 +1429,13 @@ static void HandleTapeButtons(struct GadgetInfo *gi) void HandleTapeButtonKeys(Key key) { - boolean use_extra = (tape.recording || tape.playing); + boolean eject_button_is_active = TAPE_IS_STOPPED(tape); + boolean extra_button_is_active = !eject_button_is_active; - if (key == setup.shortcut.tape_eject) - HandleTapeButtonsExt(use_extra ? TAPE_CTRL_ID_EXTRA : TAPE_CTRL_ID_EJECT); + if (key == setup.shortcut.tape_eject && eject_button_is_active) + HandleTapeButtonsExt(TAPE_CTRL_ID_EJECT); + else if (key == setup.shortcut.tape_extra && extra_button_is_active) + HandleTapeButtonsExt(TAPE_CTRL_ID_EXTRA); else if (key == setup.shortcut.tape_stop) HandleTapeButtonsExt(TAPE_CTRL_ID_STOP); else if (key == setup.shortcut.tape_pause) diff --git a/src/tape.h b/src/tape.h index 396d298c..af32eb38 100644 --- a/src/tape.h +++ b/src/tape.h @@ -102,6 +102,42 @@ struct TapeButtonInfo struct Rect play; }; +struct TapeSymbolInfo +{ + struct Rect eject; + struct Rect stop; + struct Rect pause; + struct Rect record; + struct Rect play; + struct Rect fast_forward; + struct Rect warp_forward; + struct Rect warp_forward_blind; + struct Rect pause_before_end; + struct Rect single_step; +}; + +struct TapeLabelInfo +{ + struct Rect eject; + struct Rect stop; + struct Rect pause; + struct Rect record; + struct Rect play; + struct Rect fast_forward; + struct Rect warp_forward; + struct Rect warp_forward_blind; + struct Rect pause_before_end; + struct Rect single_step; + struct Rect date; + struct Rect time; +}; + +struct TapeTextInfo +{ + struct TextPosInfo date; + struct TextPosInfo time; +}; + struct TapeInfo { int file_version; /* file format version the tape is stored with */ @@ -138,6 +174,9 @@ struct TapeInfo } pos[MAX_TAPE_LEN]; struct TapeButtonInfo button; + struct TapeSymbolInfo symbol; + struct TapeLabelInfo label; + struct TapeTextInfo text; boolean no_valid_file; /* set when tape file missing or invalid */ }; -- 2.34.1