diff options
author | Mike Swanson | 2016-08-08 18:58:19 -0700 |
---|---|---|
committer | Mike Swanson | 2016-08-08 18:58:19 -0700 |
commit | cda4c43bb8a7868665b0ce618d5ecfeecfef7522 (patch) | |
tree | a7bc7b7a284f6dde932aa21c95d0fcef7d1078d4 | |
parent | 440e03b34fd600cf6422eff2fd12d780dc428da2 (diff) | |
download | aur-cda4c43bb8a7868665b0ce618d5ecfeecfef7522.tar.gz |
Update to 1:3.7.4
-rw-r--r-- | .SRCINFO | 12 | ||||
-rw-r--r-- | PKGBUILD | 28 | ||||
-rwxr-xr-x | fs2_open | 2 | ||||
-rw-r--r-- | increase_joy_buttons_fixed.patch | 166 |
4 files changed, 114 insertions, 94 deletions
@@ -1,6 +1,8 @@ +# Generated by mksrcinfo v8 +# Tue Aug 9 01:58:01 UTC 2016 pkgbase = fs2_open pkgdesc = An enhancement of the FreeSpace 2 engine - pkgver = 3.7.2 + pkgver = 3.7.4 pkgrel = 1 epoch = 1 url = http://scp.indiegames.us @@ -19,15 +21,15 @@ pkgbase = fs2_open depends = openal depends = sdl optdepends = fs2_open-mediavps: extensive audiovisual enhancements - source = http://swc.fs2downloads.com/builds/fs2_open_3_7_2_src.tgz + source = http://swc.fs2downloads.com/builds/fs2_open_3_7_4_src.tgz source = fs2_open source = fs2_open.desktop source = increase_joy_buttons_fixed.patch source = options - sha256sums = 3e266eb84a4c289e21cb08f3bde8e6e6e0d1bf97953e8cc06db1a179cc127ea2 - sha256sums = c978c91ced574a0904a883d41c72248796e0cf50a0c5e06bc5f890d92bb244c1 + sha256sums = 092b88ecf2ec13506a18e84be1d48cc03f65abba4b2cb5329450e9cae7cdbb25 + sha256sums = b2032f44400f172fad769a94b9a3b5af16d46ac3901f855b7a5693870876ad24 sha256sums = cac8914fb96eb4f09d8dec0005ccb3626499ab9f3f4c5f64c11bd8d2e913e372 - sha256sums = 015b57bafd327e7b549a09e0a03619fabdc7be63afe88860fbe0f4114dc81731 + sha256sums = 44b46f3aa70c515d6ea28f85703479cb53238c2dca8c005d9eca56c301d78efd sha256sums = c593dacd19705f1aaf23170d7b65b4621945200d3a496e256f77e3f1f0279741 pkgname = fs2_open @@ -1,4 +1,5 @@ -# Maintainer: Jacob Emmert-Aronson <jacob at mlaronson dot com> +# Maintainer: Mike Swanson <mikeonthecomputer@gmail.com> +# Contributor: Jacob Emmert-Aronson <jacob at mlaronson dot com> # Contributor: Rene Schoebel <schoebel.r at gmail dot com> # Contributor: ZekeSulastin <zekesulastin@gmail.com> # Contributor: Mr_Robotic_Evil <mr.robotic.evil@googlemail.com> @@ -12,8 +13,8 @@ # Check the AUR package 'fs2_open-data' for details. pkgname=fs2_open -pkgver=3.7.2 -_pkgver=3_7_2 # Upstream's url/dirs ... +pkgver=3.7.4 +_pkgver=3_7_4 # Upstream's url/dirs pkgrel=1 epoch=1 pkgdesc="An enhancement of the FreeSpace 2 engine" @@ -29,37 +30,36 @@ source=(http://swc.fs2downloads.com/builds/fs2_open_${_pkgver}_src.tgz 'fs2_open.desktop' 'increase_joy_buttons_fixed.patch' 'options') -sha256sums=('3e266eb84a4c289e21cb08f3bde8e6e6e0d1bf97953e8cc06db1a179cc127ea2' - 'c978c91ced574a0904a883d41c72248796e0cf50a0c5e06bc5f890d92bb244c1' +sha256sums=('092b88ecf2ec13506a18e84be1d48cc03f65abba4b2cb5329450e9cae7cdbb25' + 'b2032f44400f172fad769a94b9a3b5af16d46ac3901f855b7a5693870876ad24' 'cac8914fb96eb4f09d8dec0005ccb3626499ab9f3f4c5f64c11bd8d2e913e372' - '015b57bafd327e7b549a09e0a03619fabdc7be63afe88860fbe0f4114dc81731' + '44b46f3aa70c515d6ea28f85703479cb53238c2dca8c005d9eca56c301d78efd' 'c593dacd19705f1aaf23170d7b65b4621945200d3a496e256f77e3f1f0279741') prepare() { - cd "$srcdir/${pkgname}_${_pkgver}" + cd "${pkgname}_${_pkgver}" # Increases hard limit of joystick buttons for better use with HOTAS etc. patch -p1 -i "$srcdir/increase_joy_buttons_fixed.patch" } build() { - cd "$srcdir/${pkgname}_${_pkgver}" + cd "${pkgname}_${_pkgver}" # Add --enable-debug to make a debug build. These are NOT meant for # general play; only make a debug build if generating logs/bug-reports. - env LDFLAGS="-l:liblua.so.5.1 $LDFLAGS" \ - CXXFLAGS="-I/usr/include/lua5.1 $CXXFLAGS" \ + env LUA_CFLAGS="$(pkg-config --cflags lua51)" \ + LUA_LIBS="$(pkg-config --libs lua51)" \ ./autogen.sh --enable-speech make } package() { - cd "$srcdir/${pkgname}_${_pkgver}" + cd "${pkgname}_${_pkgver}" - _pkgver=${pkgver//~rc/_RC} install -D -m644 COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE" install -D -m644 ../fs2_open.desktop "$pkgdir/usr/share/applications/fs2_open.desktop" install -D -m644 ../options "$pkgdir/usr/share/$pkgname/options" - install -D -m755 code/fs2_open_$_pkgver "$pkgdir/opt/$pkgname/fs2_open_$_pkgver" - install -D -m755 "$srcdir/fs2_open" "$pkgdir/usr/bin/fs2_open" + install -D -m755 code/fs2_open_$pkgver "$pkgdir/opt/$pkgname/fs2_open_$pkgver" + install -D -m755 "../fs2_open" "$pkgdir/usr/bin/fs2_open" } @@ -8,4 +8,4 @@ fi cd /opt/fs2_open -/opt/fs2_open/fs2_open_3.7.2 "$@" "$FS2OPTS" +/opt/fs2_open/fs2_open_3.7.4 "$@" "$FS2OPTS" diff --git a/increase_joy_buttons_fixed.patch b/increase_joy_buttons_fixed.patch index e91c512cda2e..2709d5931b13 100644 --- a/increase_joy_buttons_fixed.patch +++ b/increase_joy_buttons_fixed.patch @@ -1,89 +1,107 @@ -diff -u -r fs2_open_3_7_2.orig/code/controlconfig/controlsconfigcommon.cpp fs2_open_3_7_2/code/controlconfig/controlsconfigcommon.cpp ---- fs2_open_3_7_2.orig/code/controlconfig/controlsconfigcommon.cpp 2015-01-22 11:32:23.000000000 -0800 -+++ fs2_open_3_7_2/code/controlconfig/controlsconfigcommon.cpp 2015-04-30 01:07:59.747265442 -0700 -@@ -238,12 +238,23 @@ - }; - - char *Joy_button_text_german[] = { -- "Knopf 1", "Knopf 2", "Knopf 3", "Knopf 4", "Knopf 5", "Knopf 6", -- "Knopf 7", "Knopf 8", "Knopf 9", "Knopf 10", "Knopf 11", "Knopf 12", -- "Knopf 13", "Knopf 14", "Knopf 15", "Knopf 16", "Knopf 17", "Knopf 18", -- "Knopf 19", "Knopf 20", "Knopf 21", "Knopf 22", "Knopf 23", "Knopf 24", -- "Knopf 25", "Knopf 26", "Knopf 27", "Knopf 28", "Knopf 29", "Knopf 30", +diff --git a/code/controlconfig/controlsconfigcommon.cpp b/code/controlconfig/controlsconfigcommon.cpp +index e7d414c..c212e59 100644 +--- a/code/controlconfig/controlsconfigcommon.cpp ++++ b/code/controlconfig/controlsconfigcommon.cpp +@@ -243,7 +243,18 @@ char *Joy_button_text_german[] = { + "Knopf 13", "Knopf 14", "Knopf 15", "Knopf 16", "Knopf 17", "Knopf 18", + "Knopf 19", "Knopf 20", "Knopf 21", "Knopf 22", "Knopf 23", "Knopf 24", + "Knopf 25", "Knopf 26", "Knopf 27", "Knopf 28", "Knopf 29", "Knopf 30", - "Knopf 31", "Knopf 32", "Hut Hinten", "Hut Vorne", "Hut Links", "Hut Rechts" -+ "Knopf 1", "Knopf 2", "Knopf 3", "Knopf 4", "Knopf 5", "Knopf 6", -+ "Knopf 7", "Knopf 8", "Knopf 9", "Knopf 10", "Knopf 11", "Knopf 12", -+ "Knopf 13", "Knopf 14", "Knopf 15", "Knopf 16", "Knopf 17", "Knopf 18", -+ "Knopf 19", "Knopf 20", "Knopf 21", "Knopf 22", "Knopf 23", "Knopf 24", -+ "Knopf 25", "Knopf 26", "Knopf 27", "Knopf 28", "Knopf 29", "Knopf 30", -+ "Knopf 31", "Knopf 32", "Knopf 33", "Knopf 34", "Knopf 35", "Knopf 36", -+ "Knopf 37", "Knopf 38", "Knopf 39", "Knopf 40", "Knopf 41", "Knopf 42", -+ "Knopf 43", "Knopf 44", "Knopf 45", "Knopf 46", "Knopf 47", "Knopf 48", -+ "Knopf 49", "Knopf 50", "Knopf 51", "Knopf 52", "Knopf 53", "Knopf 54", -+ "Knopf 55", "Knopf 56", "Knopf 57", "Knopf 58", "Knopf 59", "Knopf 60", -+ "Knopf 61", "Knopf 62", "Knopf 63", "Knopf 64", "Knopf 65", "Knopf 66", -+ "Knopf 67", "Knopf 68", "Knopf 69", "Knopf 70", "Knopf 71", "Knopf 72", -+ "Knopf 73", "Knopf 74", "Knopf 75", "Knopf 76", "Knopf 77", "Knopf 78", -+ "Knopf 79", "Knopf 80", "Knopf 81", "Knopf 82", "Knopf 83", "Knopf 84", -+ "Knopf 85", "Knopf 86", "Knopf 87", "Knopf 88", "Knopf 89", "Knopf 90", -+ "Knopf 91", "Knopf 92", "Knopf 93", "Knopf 94", "Knopf 95", "Knopf 96", -+ "Knopf 97", "Knopf 98", "Hut Hinten", "Hut Vorne", "Hut Links", "Hut Rechts" ++ "Knopf 31", "Knopf 32", "Knopf 33", "Knopf 34", "Knopf 35", "Knopf 36", ++ "Knopf 37", "Knopf 38", "Knopf 39", "Knopf 40", "Knopf 41", "Knopf 42", ++ "Knopf 43", "Knopf 44", "Knopf 45", "Knopf 46", "Knopf 47", "Knopf 48", ++ "Knopf 49", "Knopf 50", "Knopf 51", "Knopf 52", "Knopf 53", "Knopf 54", ++ "Knopf 55", "Knopf 56", "Knopf 57", "Knopf 58", "Knopf 59", "Knopf 60", ++ "Knopf 61", "Knopf 62", "Knopf 63", "Knopf 64", "Knopf 65", "Knopf 66", ++ "Knopf 67", "Knopf 68", "Knopf 69", "Knopf 70", "Knopf 71", "Knopf 72", ++ "Knopf 73", "Knopf 74", "Knopf 75", "Knopf 76", "Knopf 77", "Knopf 78", ++ "Knopf 79", "Knopf 80", "Knopf 81", "Knopf 82", "Knopf 83", "Knopf 84", ++ "Knopf 85", "Knopf 86", "Knopf 87", "Knopf 88", "Knopf 89", "Knopf 90", ++ "Knopf 91", "Knopf 92", "Knopf 93", "Knopf 94", "Knopf 95", "Knopf 96", ++ "Knopf 97", "Knopf 98", "Hut Hinten", "Hut Vorne", "Hut Links", "Hut Rechts" }; char *Scan_code_text_french[] = { -@@ -289,12 +300,23 @@ - }; - - char *Joy_button_text_french[] = { -- "Bouton 1", "Bouton 2", "Bouton 3", "Bouton 4", "Bouton 5", "Bouton 6", -- "Bouton 7", "Bouton 8", "Bouton 9", "Bouton 10", "Bouton 11", "Bouton 12", -- "Bouton 13", "Bouton 14", "Bouton 15", "Bouton 16", "Bouton 17", "Bouton 18", -- "Bouton 19", "Bouton 20", "Bouton 21", "Bouton 22", "Bouton 23", "Bouton 24", -- "Bouton 25", "Bouton 26", "Bouton 27", "Bouton 28", "Bouton 29", "Bouton 30", +@@ -294,7 +305,18 @@ char *Joy_button_text_french[] = { + "Bouton 13", "Bouton 14", "Bouton 15", "Bouton 16", "Bouton 17", "Bouton 18", + "Bouton 19", "Bouton 20", "Bouton 21", "Bouton 22", "Bouton 23", "Bouton 24", + "Bouton 25", "Bouton 26", "Bouton 27", "Bouton 28", "Bouton 29", "Bouton 30", - "Bouton 31", "Bouton 32", "Chapeau Arri\x8Are", "Chapeau Avant", "Chapeau Gauche", "Chapeau Droite" -+ "Bouton 1", "Bouton 2", "Bouton 3", "Bouton 4", "Bouton 5", "Bouton 6", -+ "Bouton 7", "Bouton 8", "Bouton 9", "Bouton 10", "Bouton 11", "Bouton 12", -+ "Bouton 13", "Bouton 14", "Bouton 15", "Bouton 16", "Bouton 17", "Bouton 18", -+ "Bouton 19", "Bouton 20", "Bouton 21", "Bouton 22", "Bouton 23", "Bouton 24", -+ "Bouton 25", "Bouton 26", "Bouton 27", "Bouton 28", "Bouton 29", "Bouton 30", -+ "Bouton 31", "Bouton 32", "Bouton 33", "Bouton 34", "Bouton 35", "Bouton 36", -+ "Bouton 37", "Bouton 38", "Bouton 39", "Bouton 40", "Bouton 41", "Bouton 42", -+ "Bouton 43", "Bouton 44", "Bouton 45", "Bouton 46", "Bouton 47", "Bouton 48", -+ "Bouton 49", "Bouton 50", "Bouton 51", "Bouton 52", "Bouton 53", "Bouton 54", -+ "Bouton 55", "Bouton 56", "Bouton 57", "Bouton 58", "Bouton 59", "Bouton 60", -+ "Bouton 61", "Bouton 62", "Bouton 63", "Bouton 64", "Bouton 65", "Bouton 66", -+ "Bouton 67", "Bouton 68", "Bouton 69", "Bouton 70", "Bouton 71", "Bouton 72", -+ "Bouton 73", "Bouton 74", "Bouton 75", "Bouton 76", "Bouton 77", "Bouton 78", -+ "Bouton 79", "Bouton 80", "Bouton 81", "Bouton 82", "Bouton 83", "Bouton 84", -+ "Bouton 85", "Bouton 86", "Bouton 87", "Bouton 88", "Bouton 89", "Bouton 90", -+ "Bouton 91", "Bouton 92", "Bouton 93", "Bouton 94", "Bouton 95", "Bouton 96", -+ "Bouton 97", "Bouton 98", "Chapeau Arri\x8Are", "Chapeau Avant", "Chapeau Gauche", "Chapeau Droite" ++ "Bouton 31", "Bouton 32", "Bouton 33", "Bouton 34", "Bouton 35", "Bouton 36", ++ "Bouton 37", "Bouton 38", "Bouton 39", "Bouton 40", "Bouton 41", "Bouton 42", ++ "Bouton 43", "Bouton 44", "Bouton 45", "Bouton 46", "Bouton 47", "Bouton 48", ++ "Bouton 49", "Bouton 50", "Bouton 51", "Bouton 52", "Bouton 53", "Bouton 54", ++ "Bouton 55", "Bouton 56", "Bouton 57", "Bouton 58", "Bouton 59", "Bouton 60", ++ "Bouton 61", "Bouton 62", "Bouton 63", "Bouton 64", "Bouton 65", "Bouton 66", ++ "Bouton 67", "Bouton 68", "Bouton 69", "Bouton 70", "Bouton 71", "Bouton 72", ++ "Bouton 73", "Bouton 74", "Bouton 75", "Bouton 76", "Bouton 77", "Bouton 78", ++ "Bouton 79", "Bouton 80", "Bouton 81", "Bouton 82", "Bouton 83", "Bouton 84", ++ "Bouton 85", "Bouton 86", "Bouton 87", "Bouton 88", "Bouton 89", "Bouton 90", ++ "Bouton 91", "Bouton 92", "Bouton 93", "Bouton 94", "Bouton 95", "Bouton 96", ++ "Bouton 97", "Bouton 98", "Chapeau Arri\x8Are", "Chapeau Avant", "Chapeau Gauche", "Chapeau Droite" }; char *Scan_code_text_polish[] = { -@@ -397,7 +419,18 @@ - "Button 13", "Button 14", "Button 15", "Button 16", "Button 17", "Button 18", - "Button 19", "Button 20", "Button 21", "Button 22", "Button 23", "Button 24", - "Button 25", "Button 26", "Button 27", "Button 28", "Button 29", "Button 30", +@@ -341,11 +363,22 @@ char *Scan_code_text_polish[] = { + + char *Joy_button_text_polish[] = { + "Przyc.1", "Przyc.2", "Przyc.3", "Przyc.4", "Przyc.5", "Przyc.6", +- "Przyc.7", "Przyc.8", "Przyc.9", "Przyc.10", "Przyc.11", "Przyc.12", +- "Przyc.13", "Przyc.14", "Przyc.15", "Przyc.16", "Przyc.17", "Przyc.18", +- "Przyc.19", "Przyc.20", "Przyc.21", "Przyc.22", "Przyc.23", "Przyc.24", +- "Przyc.25", "Przyc.26", "Przyc.27", "Przyc.28", "Przyc.29", "Przyc.30", +- "Przyc.31", "Przyc.32", "Hat Ty\xB3", "Hat Prz\xF3\x64", "Hat Lewo", "Hat Prawo" ++ "Przyc.7", "Przyc.8", "Przyc.9", "Przyc.10", "Przyc.11", "Przyc.12", ++ "Przyc.13", "Przyc.14", "Przyc.15", "Przyc.16", "Przyc.17", "Przyc.18", ++ "Przyc.19", "Przyc.20", "Przyc.21", "Przyc.22", "Przyc.23", "Przyc.24", ++ "Przyc.25", "Przyc.26", "Przyc.27", "Przyc.28", "Przyc.29", "Przyc.30", ++ "Przyc.31", "Przyc.32", "Przyc.33", "Przyc.34", "Przyc.35", "Przyc.36", ++ "Przyc.37", "Przyc.38", "Przyc.39", "Przyc.40", "Przyc.41", "Przyc.42", ++ "Przyc.43", "Przyc.44", "Przyc.45", "Przyc.46", "Przyc.47", "Przyc.48", ++ "Przyc.49", "Przyc.50", "Przyc.51", "Przyc.52", "Przyc.53", "Przyc.54", ++ "Przyc.55", "Przyc.56", "Przyc.57", "Przyc.58", "Przyc.59", "Przyc.60", ++ "Przyc.61", "Przyc.62", "Przyc.63", "Przyc.64", "Przyc.65", "Przyc.66", ++ "Przyc.67", "Przyc.68", "Przyc.69", "Przyc.70", "Przyc.71", "Przyc.72", ++ "Przyc.73", "Przyc.74", "Przyc.75", "Przyc.76", "Przyc.77", "Przyc.78", ++ "Przyc.79", "Przyc.80", "Przyc.81", "Przyc.82", "Przyc.83", "Przyc.84", ++ "Przyc.85", "Przyc.86", "Przyc.87", "Przyc.88", "Przyc.89", "Przyc.90", ++ "Przyc.91", "Przyc.92", "Przyc.93", "Przyc.94", "Przyc.95", "Przyc.96", ++ "Przyc.97", "Przyc.98", "Hat Ty\xB3", "Hat Prz\xF3\x64", "Hat Lewo", "Hat Prawo" + }; + + //! This is the text that is displayed on the screen for the keys a player selects +@@ -393,11 +426,22 @@ char *Scan_code_text_english[] = { + + char *Joy_button_text_english[] = { + "Button 1", "Button 2", "Button 3", "Button 4", "Button 5", "Button 6", +- "Button 7", "Button 8", "Button 9", "Button 10", "Button 11", "Button 12", +- "Button 13", "Button 14", "Button 15", "Button 16", "Button 17", "Button 18", +- "Button 19", "Button 20", "Button 21", "Button 22", "Button 23", "Button 24", +- "Button 25", "Button 26", "Button 27", "Button 28", "Button 29", "Button 30", - "Button 31", "Button 32", "Hat Back", "Hat Forward", "Hat Left", "Hat Right" -+ "Button 31", "Button 32", "Button 33", "Button 34", "Button 35", "Button 36", -+ "Button 37", "Button 38", "Button 39", "Button 40", "Button 41", "Button 42", -+ "Button 43", "Button 44", "Button 45", "Button 46", "Button 47", "Button 48", -+ "Button 49", "Button 50", "Button 51", "Button 52", "Button 53", "Button 54", -+ "Button 55", "Button 56", "Button 57", "Button 58", "Button 59", "Button 60", -+ "Button 61", "Button 62", "Button 63", "Button 64", "Button 65", "Button 66", -+ "Button 67", "Button 68", "Button 69", "Button 70", "Button 71", "Button 72", -+ "Button 73", "Button 74", "Button 75", "Button 76", "Button 77", "Button 78", -+ "Button 79", "Button 80", "Button 81", "Button 82", "Button 83", "Button 84", -+ "Button 85", "Button 86", "Button 87", "Button 88", "Button 89", "Button 90", -+ "Button 91", "Button 92", "Button 93", "Button 94", "Button 95", "Button 96", -+ "Button 97", "Button 98", "Hat Back", "Hat Forward", "Hat Left", "Hat Right" ++ "Button 7", "Button 8", "Button 9", "Button 10", "Button 11", "Button 12", ++ "Button 13", "Button 14", "Button 15", "Button 16", "Button 17", "Button 18", ++ "Button 19", "Button 20", "Button 21", "Button 22", "Button 23", "Button 24", ++ "Button 25", "Button 26", "Button 27", "Button 28", "Button 29", "Button 30", ++ "Button 31", "Button 32", "Button 33", "Button 34", "Button 35", "Button 36", ++ "Button 37", "Button 38", "Button 39", "Button 40", "Button 41", "Button 42", ++ "Button 43", "Button 44", "Button 45", "Button 46", "Button 47", "Button 48", ++ "Button 49", "Button 50", "Button 51", "Button 52", "Button 53", "Button 54", ++ "Button 55", "Button 56", "Button 57", "Button 58", "Button 59", "Button 60", ++ "Button 61", "Button 62", "Button 63", "Button 64", "Button 65", "Button 66", ++ "Button 67", "Button 68", "Button 69", "Button 70", "Button 71", "Button 72", ++ "Button 73", "Button 74", "Button 75", "Button 76", "Button 77", "Button 78", ++ "Button 79", "Button 80", "Button 81", "Button 82", "Button 83", "Button 84", ++ "Button 85", "Button 86", "Button 87", "Button 88", "Button 89", "Button 90", ++ "Button 91", "Button 92", "Button 93", "Button 94", "Button 95", "Button 96", ++ "Button 97", "Button 98", "Hat Back", "Hat Forward", "Hat Left", "Hat Right" }; char **Scan_code_text = Scan_code_text_english; -diff -u -r fs2_open_3_7_2.orig/code/io/joy.h fs2_open_3_7_2/code/io/joy.h ---- fs2_open_3_7_2.orig/code/io/joy.h 2009-06-20 01:08:20.000000000 -0700 -+++ fs2_open_3_7_2/code/io/joy.h 2015-04-30 01:07:59.747265442 -0700 +diff --git a/code/io/joy.h b/code/io/joy.h +index bcba33c..675cf00 100644 +--- a/code/io/joy.h ++++ b/code/io/joy.h @@ -12,7 +12,7 @@ #ifndef __JOY_H__ #define __JOY_H__ |