# Maintainer: jc_gargma <jc_gargma@iserlohn-fortress.net>
# Maintainer (Arch): Kyle Keen <keenerd@gmail.com>

# # I maintain this because:
# Arch version is not BN
# Arch version has non-functional desktop file
# Arch version lacks additional optimization and hardening flags
# Arch version lacks the MSX++UnDeadPeopleEdition tileset
# Arch version lacks the @ soundpack
# Arch version lacks the CO.AG musicpack

pkgbase=cataclysm-bn
pkgname=(cataclysm-bn cataclysm-bn-tiles)
pkgname=cataclysm-bn
_pkgname=Cataclysm-BN-cbn-experimental
pkgver=202209092252
_pkgver=2022-09-09-2252
pkgrel=1
pkgdesc="A post-apocalyptic roguelike."
#url="http://cataclysmrl.blogspot.com/"
#url="http://www.cataclysm.glyphgryph.com/"
#url="http://en.cataclysmdda.com/"
url="https://github.com/cataclysmbnteam/Cataclysm-BN"
arch=('x86_64' 'aarch64')
license=("CCPL:by-sa")
options=(lto)
depends=('ncurses' 'hicolor-icon-theme' 'gettext')
makedepends=('sdl2_image' 'sdl2_ttf' 'sdl2_mixer' 'freetype2' 'astyle')
source=("$pkgname-$_pkgver.tar.gz::https://github.com/cataclysmbnteam/Cataclysm-BN/archive/refs/tags/cbn-experimental-$_pkgver.tar.gz"
        "cataclysm-bn.desktop"
        "cataclysm-bn-tiles.desktop"
        "icon_128x128.png"

        "revert-01_removed-traits.patch"
        "revert-02_revert-book-revamp.patch"
        "revert-03_generic-nv.patch"
        "revert-04_telescopic-lenses.patch"
        #"revert-05_No-filth-and-fault-on-uninstalled-bionics-1389.patch"
        "revert-06_Obsolete-useless-hub01-basement-1457.patch"
        "revert-07_Remove-handload-quality-distinction-1481.patch"

        "ammo-01_inconsistent-ammo-names.patch"
        "ammo-02_fix-20x66mm-loudness.patch"
        "ammo-03_fix-reloaded-50bmg.patch"
        "ammo-05_22-casings-can-stack.patch"
        "ammo-10_ammo-order-fix.patch"

        "armor-01_ankle-ammo-pouch-is-not-a-backpack.patch"
        "armor-02_fix-survivor-fingerless-gloves-warmth.patch"

        "bionics-01_npc-can-use-more-bionics.patch"

        "faction-01_more-factions.patch"
        #"faction-02_more-monster-factions.patch"
        "faction-03_fix-food-supply-calculations.patch"

        "factioncamp-01_remove-legacy-recruiting-penalty.patch"

        "foods-01_fix-food-materials.patch"
        "foods-02_fix-food-naming.patch"

        "itemgroups-01_hk46-is-milspec.patch"
        "itemgroups-02_add-missing-mre.patch"
        "itemgroups-03_fix-shelter-batteries.patch"

        "meds-01_antibiotics-unhealthy.patch"

        "mission-01_typos.patch"

        "monsters-01_medical-zombies-called-zombies.patch"
        #"monsters-02_power-leech-update.patch"

        "mutations-01_nerf-lightstep.patch"
        "mutations-02_fix-evac3-background-visible.patch"
        "mutations-03_eye-colours.patch"

        "npc-01_isherwood-update.patch"
        "npc-02_tacoma-update.patch"
        "npc-03_godco-update.patch"
        "npc-04_island-prison-update.patch"
        "npc-05_kindred-update.patch"
        "npc-06_lapin-update.patch"
        "npc-07_lighthouse-family_v2.patch"
        "npc-08_nurse-takes-more-meds.patch"
        "npc-09_broker-takes-more-foods.patch"
        "npc-10_bunker-merchant.patch"
        #"npc-nn_refugee.patch"
        #"npc-nn_robofac-v2.patch"
        "npc-20_dialogue-fixes.patch"

        "recipes-01_4570-dragon-can-be-dismantled.patch"

        "terrain-01_migo-platform-landing-pad.patch"
        "terrain-03_tacoma-clinic-add-missing-floor.patch"
        "terrain-04_lumbermill-gasoline-not-spilled.patch"
        "terrain-05_community-garden-fertilizer-not-spilled.patch"
        "terrain-06_fix-doors-for-npcs.patch"
        "terrain-07_rehide-redacted.patch"
        "terrain-08_derelict-shed-is-s.patch"
        "terrain-09_make-firestation-shelter-wells-npc-drinkable.patch"

        "tools-01_foldable-bottle-is-container.patch"
        "tools-02_vacutainer-is-not-a-weapon.patch"
        "tools-03_shears-use-light-battery.patch"
        "tools-04_normalize-drone-volume.patch"

        "vehicles-01_portable-generator-engine.patch"

        "etc-01_fix-rubbersplosion.patch"
        "etc-02_add-missing-price-postapoc.patch"

        "jc_radio-can-use-ups.patch"
        "jc_ammo-loudness-ap-times-2.patch"
        "jc_allow-bio-firestarter-on-smoker.patch"
        "jc_stop-non-faction-npc-sleep-depirvation.patch"
        "jc_stop-non-faction-npc-malnourishment.patch"
        "jc_stop-sleeping-on-tables.patch"
        "jc_allow-hacker-laptop.patch"
        "jc_more-military-base-overmap.patch"
        "jc_npc-eat-from-further-camp.patch"
        "jc_reduced-kcal-during-sleep.patch"
        
        "vampirism.patch"

        "cataclysm-dda-tileset_undeadpeople.tar.xz::https://library.iserlohn-fortress.net/cataclysm-dda-tileset_undeadpeople.git/snapshot/cataclysm-dda-tileset_undeadpeople-master.tar.xz"
        "cataclysm-dda-mod_battle-maid-redone-tileset.tar.xz::https://library.iserlohn-fortress.net/cataclysm-dda-mod_battle-maid-redone-tileset.git/snapshot/cataclysm-dda-mod_battle-maid-redone-tileset-master.tar.xz"
        "cataclysm-dda-soundpack_jcsoundpack.tar.xz::https://library.iserlohn-fortress.net/cataclysm-dda-soundpack_jcsoundpack.git/snapshot/cataclysm-dda-soundpack_jcsoundpack-master.tar.xz"
        "cataclysm-dda-musicpack_coag-musicpack.tar.xz::https://library.iserlohn-fortress.net/cataclysm-dda-musicpack_coag-musicpack.git/snapshot/cataclysm-dda-musicpack_coag-musicpack-master.tar.xz"
        )
b2sums=('b0f21654472cdbbdd6ef02e69044629b4b2c45ba80a3c9530af19a6e0fca6e0a9351350db0de8fd99d0471740d2b2e27924510f77b89ef1fa557e419c330ba83'
        '069ecde58859b3d44cd687c4b6e718610cefb693ff86e66f199ebfb1b3072023ad2b6f0c28e27ef9c1ce4997f6a5b2ca0d45046996b3ff35a4aeaeb1a7cf9421'
        'ad88bc6c1e3c8183a313b5eec42f98d6956afea349feff34a86e4536c9921fa99d2594282caf27de8ebb7ffb56376ed2e76d572227bfd6d8173c7bb1f01e23b8'
        '6f70e90359a14e4839d9a2683debb88850e5dd387add911ad68fd87e5512cfcdd435da63e1e370358153673fd5a72a9b1e9c94f1979edb7948b4da8c82407bad'
        '839c92715bfd1f63d94d6d252813a19e6093ded3e45f9efbbc4953ab85adfb886bcdfcfa41c9bb9ed422c0a32917a1ac75f98019e7de946b840e345cd3969d19'
        '5a33531c5742bbee44b1b3edec89cfceb6e0f161a5e0f0b131149fec010be4ab45095fdc558d0dd0023182cde66200f387f819aa392410dd317c0bc8dddb6294'
        'e417a1786fbafb685099431f7f9926201ab80636bf3812da67acc341c7ef2b6a3853734d5b8b1bc355acbd5c0bedefb0401f8854aa5cb00032550afc8a7b9ebe'
        '4563b0454c67b003fc1e266345d609d8cce5d60f5d19e9936f441c3b75a98d7c162959286da9507e79def7544675cba8c9e589cca55ed9a1ed261ac608ac7c1a'
        '2d197903715263628e767e867e9b20b9ebd3d85f8983ac8f1e2b534f2b6f8c0470886c79a409f117ad43348aa6aef2a6298925ae27faa32814183ad7677528ac'
        '378ca1d12e8ffcdf9eedfb6fe9e07cf1203d5bc0679bacf48f11a8e5473ef5659fe7a6bc326e285693ebabb4fb0626a78940200ca115cfa4cb7fc4ca879ecb57'
        '207f765e998c5a92db2030e25779c98d57ed50ce6664d94439e4fdb4654466b764723f7b58872a186dea5f7504793efe4d93df2d8390139649a45d32eec06848'
        '6dbcf4833dabb68443e50a644cc26309785593f757f7484771a101873aeb02d2e8f3869c0679132a6883ea86bd5fd47494281d0f70dcae9f4bec9b06a7d69b19'
        '7fa3cc2cc13171aa395accc061a8582f0254a01377b3d60ded4c8d82c5a4f1af65b8e1b6c4fccf0b5fb9a6de1cd59121aae353e6d374726f058c3718bfb9743f'
        '67cdb7e097bbb46da5cf04708bc2858b080d1a85742afc4c088da3e4e3fdeb6e4c51240fc5a6b9a1c7d927b30b3d251236e025ee4e5496142a7716d4ba51b82c'
        '373186c55545b4e747c08db497dae0f1446d2830c862a1b8a0d1bd03d237acc9a4fa8854537c0f485528fc0ef05ec6a2f5e43a42c21689dd85178fb07667b51b'
        '0884229f513f843099dbd397d96fd8b37aad2d1ae0aee2771f57f54188241d6ed0ede8750780b9564bd9e3dc8d215039d409081a8eb46ce25b90edb196eb6bf4'
        'f4ad4c90cfcf11af42c6cfc6d2027b21af3f58ac274b9bd0852a52ef60b606476766f194b281f6baf12f81647b384a98f745519bb48bc2e4f5fe03984c7c0e65'
        '172c611008cb8893a8a8cbf83ef929f5727fbf341f3303c6f38749e3742f96ba7352624112ac231a8df7be9031649e41d54cc52152776e52e3a7a620ea8f33e3'
        '1ce956dbcd0af3e16c336ce15995a7df19b8bed78765890304ff9dcaf6d30c602580bef050d6c659fdff945a31dce880f5f4042dfc295cdef44c34155a3e644c'
        '804cea67bb0a2fab62dd9cf633d1959a3fe59b3e24f0c2e01a6db951100fa4426ae946a90a93fa7fd6a7d0ece478633d0091144c2fa776858157edec1310f837'
        'c8c140527b4dd6ab4b5db09abd451628b12a2cdcfcf9e47c435dae9f30fbbf3e7499f7e1070c1fb08e25085696d103b4728191e8758f4fa05e769a5d7746abf2'
        'f3c4a1f4f95e04be5574672b10f149b8a7dca3e73b1047b1b5df1408e6ee6c3816bd581b844125ba93b7868bbbc6ec382f5ea832025b628265d4a4e12770e6b4'
        '32975862668e4c28bf345cf9e2e3a2f754f7d7d50208f1d840e3b2ca47da1c19bcff9bdf6dc841ec803c64fd633b479d1d598ee22119589732f7cff1fa6dd6dd'
        '76c816df10aceec8f1a7d1356220eb3f00b16fac455e84eb8aefe76db29cd037dc74fb5cfa344b8d283b188951bd100c26e351ce2e27c16c836a547fe2c99e46'
        '417cd957f188b2b06e41d5413bea5f13481c6d5bfa8f184157379d5ac2afa9ba6f7ebc966856f50603f89b9173b6fbfdb3ccf4e3cc0b1bedb53f935591e4a35c'
        'dae75d9cd00f1f3ceabf257f1d82d245ace6582cf7ea98a40c1d1eb9b7e1832cb2a0c13f25c814a05a70931c42a06694a67829ea55554cc680eaa8ddf16c84a8'
        '931ac85c657c1c504de1ea629205b19f79a11acdd7c62cf71b909323ec1588610b1f575bc58ab01c3fbcd334fca8fbc114316570732f55a3f7fb3dd2984cd442'
        '536c59b274923d36fbfc6dc39ef373a0d1e497422dea6fcdc16cfacb6b9ba421f14c5d7c4db31bab083199d859ff57ae5b19842f95367cfa39059e7156e96093'
        'e466392190e0aa58c02acda287bc8ac6fef30160207d08805ca9acd42b7f024d0680c0a76fcb4f29a7d7ca884920bba3a6714b5ad40f64dd1b40bcf0e2621d26'
        '08f4746882b927bdff6b728630cf1e04a2b79924f694ca2d841e3115c3399feb87a8d363e4d2a0f59179c109cb6be6e840f912aadd44abb0bdb35afd2838cc4d'
        'ab35d6663b864449d46da4a9e1c51e11956ff4c38e16db58c831b71f7b964fc25b0283122dbc8aa0549f240f01c4a910fb5c6c82937258c6b736c05b54bcf768'
        '0793bb7aa67d3989ef093cc17e6d9dd6d2e3999562fe1039b44f0fb9297623bda49271cb7b17d7fab4dc14299e0e5f13eb8f3711dbffc10bf7ffa68838f0585b'
        '24c5f9ee5553b66ac937785b3312378adbca096888b05da8b0cdc9c0586ee51e9a3754615cc03a659cfe70ba2f48f7ce0359025c816c887c7691424c685f5f96'
        '6b822bae693a2e8043db5a2c2ea8fe5d164d81461b62c11d04b78959d2a43ebbd0a73967a1dd60afa33eb0cc5df2cb2e0e0818fac9a9691edd3d1d97b537d6f6'
        '613a9d7a7a512cdf7dc1f1121ecaec7272efe740f5494ce425c3781d41a0ec92e044142d82a28c6445416e84699131745c6872c9b33cb5b93528d0197745455a'
        '71bd229c0ee32703e3fc44021939f2909adca148035e6bfac44f35cb68cd8e03c01b477bfb29fe05f568728f27bd5b6311a267338d05cdbd5680af0900324c08'
        'd3d582336519191f73c8cf3c7bbb0a8df8ecbb333d864a32ad4b263daaeb193f771aa4b9cbf00ab929b4296da6db31fd575bdb2b337148147a76e25459f703ad'
        '17ded8bdfccef7555cc01727984c768ecc601878319bc8cc959cff51b5091335dd43f45cf69ec12dfd478644ccceab48c7a49c3469bbe3eee9ec9b380cfac7fb'
        'd2c149bb48e3152100b02d138471ec107e172f282a05ee4bae321ef0828c758d0cf1f7a6e9bbb02bca14148d59d61f92abcbc5ddb9a7a0b7cba8db9cef22c391'
        'ac1a522d84fcfdea371027d05d486b752f921d03280d3db38766945ddb22c8ece946a2a67cbba656c31486c68a49a557d692e971fd7fd8b220865a3178628674'
        '3bf7da4e2efabe6b050aa357ec74c120e184a0a1bc6d4342fbb03a3c0cd0bae58c9fc1cda5f69ffdcc7e48a34f51f4a18107163f99348d2504096bccfd1766a9'
        '88dd4e6a53b948ddd5bdf9a567a116f70047cc6cf5fb695b72b9ab571641e9af52e386c6e0b442c9dd794de39d57b26891dc8bb83e4c92506547f395d340915b'
        'adcf0b46ad57390488b3932910fba5a5be8152f91b45864bf078a2b8d92dc89e9944c320dafb7a0d4786e1fce48bedea714d671feefe565ffbbb74baca21d98e'
        '3373939e76f1ddb788b45424533c2e7687bbacae840fb3e6b1d49034e18315297af66dddf1b13d4f42033608123929b78819f38cca6cbc6c5ecca09bc67ab69f'
        '0b34beb3afa14605d73d84f1d75bf8182ff0fcb2396e82d06e170cf0dc0d30386071959bd1be3553182c37bb5661a81cf6be8c4e0a14e4df0b01889cfe7edaf1'
        'b8a64accada87ee5be989c5307805610c9b5c0327bc107aab237ac3225dd9e4c51b6c79a2a7de15fe187d3c32d7cbe1c462f9b0e9fb5d5a55a74236c7061e96e'
        '85aeb5920ee5879848be4057324153a077fe907bed527ed8f9b80a3c5ee1ef64786f63ee2999f5ba74e80a43e99ded3280ce27759c1f7b73259a6e2b5e584aa8'
        '58a94409205f7b670ab5745b8cbc234a38efd6a6217cef4efb7e397f091092e3e0c7790706b0a42accaa83d7509b8e244a98b9f0ba78349ee85f3164745c3501'
        '80da2c341d8564a47bc460fcdaf9196ac3bb77f0f2ba56bd71089e80e7481728a3ccbdcfcbc3bf70a9c9e5d9d9b01f2ca6615b67c7ab61003808ce00f6545ba3'
        '651de880cefd51665d854414c451cc80a33ed8f34e7559a95514abd81a2f58348c37dd75f272468eefd56562ba8c99093a6dd9af3ea57796a9db15164a40eda3'
        '7e41fc3a95073008ca2d71c2266d6d1a17af7803d493b447d40b15a86184c8ce3728b8d3d36765d408b1c46633d1bfa980d878cbac2e04b51ef518d44dfb7295'
        '2cdcf9ab03eb92f384caf1a2d90f82c75f880cb6286811e83217c883e421c116e7844ca193a010dc35e12eec46ede3663171a2f45f660ef5a8be95c474f61bfc'
        '7cae5e42b6e16f3c4bf64dca3c7573c1b552424ff70bb6da0a21f121b53b2546b239c87953a090cd90f46a1c3c124e2fe19c560b1830b11334f8e64c92fb614d'
        'a45b2a53b6725dfd4780049a7522befe49c2a0c4efa4fb1dcb5cf53c7af18d329d2ba02aa6ac150342a3e66a46fd17f5e6e76a8db15c677a237edbb5cf4f5af7'
        '4c178d330117886848d232372a25ecf5cac46ad48a6fed580957d295eb1c4266836f4f807593d381f9089b2078c4185ba972f697ab353a850ebf35b6f140a4ac'
        '77bfba77f3548d267dc8142125bf26608c723bbdb2834317b3ea031ac64d9ff49bb4d75e29e2c759c03a662955697576d1c93153e9fb3e5dee86466bc29c78e1'
        '74a51f04237fba3caa25b2e0d49659f2e8330ce82288de866943d06b53690f31d48a77a4dd2e57db1f435b715fbca792268f2e191ffb59e57170d327ed41ac0a'
        'e1d03f68918d03f980f4c2dd966e3788afe63f14e2d18dbd4dab2cdbfa1253e4823c0f5daa3a579e47319a3c2af35bc5af0a390e2ba91fe7621f6db8b1a60994'
        '3616a6305e89963ee8041fd5a3784063ca5b6513b7fe56a5c24eda1bbe07377793d54f07010aad1212cf2310fcf5b5d3e157f8d8b7a85dfc0cdf5ff71f2ed884'
        '06c5652eb2c70b8aba6d788415089b740c3510cd9c570838f656202ba2dc65d4f3289f6695413665de930e84fe287ef035ed8e83a0610a5a316e76a17442683a'
        '92cde696eec00e6758b58e73e8bc60ad1a73bb2a18d4fdfd24a19b5be715305a047943a02d94a9703c101ca0c769dbeb816f1f28809345bae0fec42fbc27bb34'
        '3f65bf65f730101b215a38101e2a01b4be85746ec5e691d0f1e0f43f1ea1fd47de203299fe7c505160fe831987bd091879243878d91b88ed9ab14712837bd786'
        'ce82294e480ad42f0001c799fd8131b60024b6097653f3c57564c75e54596616e376f0d7f1cf4e54d8c302a61ef164b4323f795bfa19b2c13ab9e927d37f1600'
        'd006a51f306a1397c14111788a23029a894e223a196649cac476acab761479db543bf4537ed5a2f4173ec94af04874b521a1d598ed8e98406cc2cf526d8e0083'
        'd723fcc6cce65aa296bc519a07a5d003122ad698a73a3d046dac3780ea5a00fef28f78da251bb46f80f2e0577baa26a6ae13cabf525f22a7a742435e95716dae'
        'f25f01c5b27dced202fe76c1717b9eaec65dfa5f28db1910529f60f5ec21cc89c1a15df26c2dd09066a0d89e3f7d87c790e7886c3c2f0978a25f5ec7d1236099'
        'e3302d903d053f25aa666d572f74a8bbd3b65dde40eedcbf46e537ceb2294ac22b3772087fce04c4a780c2f18e855179c6ddc8af12d72a89b82957ce09deb52f'
        '4bd44cbe85c53902b8a360509703e3d38e8a5da75dd2c534a77f03ce6440632f6c83c92939069c60473c88ffb3abab0fbf11e39271f44f813b9f6432ea5f9a6b'
        'f115314dd2bb1da07bba7a90fec5c3acb7ccb5145efaea03d6806942e24d402c9a144a2fd07b82e727a0b79dedd4bdd87de0bbaf0944236563164fb6f117965e'
        '950c5affba71548fb269c73fd3667345b2942b7d406a603a744e31f5fec8de5390b6c0fa1581da435cfa0ca9785b4abae5819a659a1da6d9dca7e3786274514f'
        'efb3bb0608f107b9ddd5278ad1aaf2629e2f22f789a84a115ff38e16bc40b6bc746d0b0dc29d270c3f0d07c3369f45cca12d046a971283f4f31836fb23f03214'
        'a56efdaae0344726debf5b74846edce8df7aa2357fbc7a05a3d369d1f457b02934a0d0ce2330072e03f1ac901e06e333c9393f795c761f8440307e7649ed5596'
        'ab67483296320c0b577f5a68a2058ca49ea2350346c21c47bb29871589a59096330859993fd7cfcd7e0e7389727b15519f196c5a58dee9f7acca721302265ff1'
        'b9309da09b165fb57e83f84e3584d2479bd3336ed86e181e5df2d27daa92bd55d03d7f3fc226f03696af5f0f32d8e0e7ecd26ae7e50eed0200d0b0feaad07efb')

prepare() {
  cd "${_pkgname}-${_pkgver}"
  sed -i 's/-Werror//' Makefile
  sed -i 's/ncursesw5-config/ncursesw6-config/' Makefile
  sed -i 's/shell git/shell false/' Makefile

  # Disable default optimizations
  sed -i 's/-Os/-O3/' Makefile
  sed -i 's/-O0/-O3/' Makefile
  sed -i 's/-Og/-O3/' Makefile
  sed -i 's/CXXFLAGS += -ffast-math/#CXXFLAGS += -ffast-math/' Makefile

  # Remove non-existent flags generating warnings
  sed -i 's/-Wzero-as-null-pointer-constant \\/-Wzero-as-null-pointer-constant/' Makefile
  sed -i 's/-Wno-range-loop-analysis/#-Wno-range-loop-analysis/' Makefile
  sed -i 's/-Wno-unknown-warning-option/#-Wno-unknown-warning-option/' Makefile

  # Fix filenames and paths
  sed -i 's|cataclysm-dda|cataclysm-bn|' CMakeLists.txt
  sed -i 's|TARGET_NAME = cataclysm|TARGET_NAME = cataclysm-bn|' Makefile
  sed -i 's|cataclysm.a|cataclysm-bn.a|' Makefile
  sed -i 's|cataclysm.a|cataclysm-bn.a|' tests/Makefile
  sed -i 's|cataclysm-dda|cataclysm-bn|' src/path_info.cpp

  # Fix version
  sed -i 's|VERSION = unstable|VERSION = 2022-09-09-2252|' Makefile


  # # # Hotfixes
  #echo "Applying hotfixes"


  # # # Reverts
  echo "Applying revert patches"
  # Revert removal of reloaded ammunition.
  patch -NREp1 -i "$srcdir"/revert-07_Remove-handload-quality-distinction-1481.patch

  # Revert Hub 01 removal.
  patch -NREp1 -i "$srcdir"/revert-06_Obsolete-useless-hub01-basement-1457.patch

  # Revert removal of filthy/faulty bionics patch.
  #patch -NREp1 -i "$srcdir"/revert-05_No-filth-and-fault-on-uninstalled-bionics-1389.patch
  
  # Revert the book changes for now.
  patch -NREp1 -i "$srcdir"/revert-02_revert-book-revamp.patch

  # Revert generic night vision.
  patch -NRp1 -i "$srcdir"/revert-03_generic-nv.patch

  # Revert telescopic lenses.
  patch -NRp1 -i "$srcdir"/revert-04_telescopic-lenses.patch

  # Revert the Infection Immune Trait and Revert Infection Resistant to as before. Also keep Truthteller.
  patch -Np1 -i "$srcdir"/revert-01_removed-traits.patch


  # # # Various fixes for bugs I came across
  # # Ammo fixes
  echo "Applying ammo fixes"
  # Fix mulitple inconsistent ammuntion names and handloaded status.
  patch -Np1 -i "$srcdir"/ammo-01_inconsistent-ammo-names.patch

  # Set a fixed loudness for 20x66mm shotgun shells like that of other shotguns:
  # Other shotguns have fixed loudness to work around how the short range factors causes them to be far quieter than one would otherwise expect.
  patch -Np1 -i "$srcdir"/ammo-02_fix-20x66mm-loudness.patch

  # Change reloaded_50bmg to be based on 50bmg:
  # The id and description make it pretty clear that reloaded_50bmg is not supposed to be based on Match rounds.
  patch -Np1 -i "$srcdir"/ammo-03_fix-reloaded-50bmg.patch

  # Fix .22 casings not stacking when every other casing stacks.
  patch -Np1 -i "$srcdir"/ammo-05_22-casings-can-stack.patch

  # Fix ammo ordering so as to not prevent those items being modded.
  # Having copy-from items occuring earlier in a json than the item being copied from prevents items based on it being modified.
  patch -Np1 -i "$srcdir"/ammo-10_ammo-order-fix.patch


  # # armor fixes
  echo "Applying armor fixes"
  # Fix Ankle Ammo Pouch to not look like a backpack:
  # SDG added a tile for ammo pouches to bypass this bug, but this fix still makes sense.
  patch -Np1 -i "$srcdir"/armor-01_ankle-ammo-pouch-is-not-a-backpack.patch

  # Fix fingerless survivor gloves losing base warmth:
  # They lose warmth already from the lack of coverage, no need to double up.
  patch -Np1 -i "$srcdir"/armor-02_fix-survivor-fingerless-gloves-warmth.patch


  # # bionics fixes
  echo "Applying bionic fixes"
  # Fix npc not being able to install some additional CBMs:
  #  ie, soporific inducer, gasoline fuel cell, enhanced hearing, surgical scalpels.
  patch -Np1 -i "$srcdir"/bionics-01_npc-can-use-more-bionics.patch


  # # faction fixes
  echo "Applying faction fixes"
  # Backport the factions.json updates from DDA
  patch -Np1 -i "$srcdir"/faction-01_more-factions.patch

  # Backport the monster_factions.json updates from DDA
  #patch -Np1 -i "$srcdir"/faction-02_more-monster-factions.patch

  # Fix faction food supply being calculated at 288 calories per person instead of 2500.
  patch -Np1 -i "$srcdir"/faction-03_fix-food-supply-calculations.patch


  # # faction camp fixes
  echo "Applying faction camp fixes"
  # cur_level is set to -1 on all modern basecamps. Remove the recruiting penalty this legacy variable inadvertently induces.
  patch -Np1 -i "$srcdir"/factioncamp-01_remove-legacy-recruiting-penalty.patch


  # # food fixes
  echo "Applying food fixes"
  # Fix several foods not being marked as the correct material:
  # This prevents odd outcomes such as carnivores drinking almond/soy milk and eating peanut butter.
  patch -Np1 -i "$srcdir"/foods-01_fix-food-materials.patch

  # Fix several foods using unclear naming:
  # Rename can_corn from corn to canned corn to make its limited use in recipes more clear.
  # Fix pluralization of canned beans to also be canned beans.
  patch -Np1 -i "$srcdir"/foods-02_fix-food-naming.patch


  # # itemgroups fixes
  echo "Applying itemgroup fixes"
  # Stop police and SWAT carrying 4.6mm magazines despite having no compatible weapons:
  # The H&K UCP was removed from the base game some time ago.
  patch -Np1 -i "$srcdir"/itemgroups-01_hk46-is-milspec.patch

  # Fix the pepperjack beef and burrito bowl MREs never dropping:
  # They weren't in the itemgroups for MREs or soldier class.
  patch -Np1 -i "$srcdir"/itemgroups-02_add-missing-mre.patch

  # Fix items in unlooted, unused lockers and cabinets missing batteries:
  # They need to be marked as the battery contained inside the item.
  patch -Np1 -i "$srcdir"/itemgroups-03_fix-shelter-batteries.patch


  # # medicine fixes
  echo "Applying medicine fixes"
  # Add -4 health to antibiotics:
  # weak are -2, strong are -10, this feels like a nice middle ground.
  patch -Np1 -i "$srcdir"/meds-01_antibiotics-unhealthy.patch


  # # missions fixes
  echo "Applying mission fixes"
  # Fix Typos:
  # Foraging encounter has inconsistent monster references. Change all to cougar.
  patch -Np1 -i "$srcdir"/mission-01_typos.patch


  # # monster fixes
  echo "Applying monster fixes"
  # Prefix medical zombies with "zombie" like other zombies:
  # It just felt weird seeing "nurse" in the enemy list.
  patch -Np1 -i "$srcdir"/monsters-01_medical-zombies-called-zombies.patch

  # Port the updates to power leeches from DDA
  #patch -Np1 -i "$srcdir"/monsters-02_power-leech-update.patch


  # # mutation fixes
  echo "Applying mutation fixes"
  # Light Step feels too powerful in Bright Nights.
  patch -Np1 -i "$srcdir"/mutations-01_nerf-lightstep.patch

  # Fix Evacuee 3 background 3 being player visible:
  # It was missing "player_display": false
  patch -Np1 -i "$srcdir"/mutations-02_fix-evac3-background-visible.patch

  # Port in DDA's eye colours
  patch -Np1 -i "$srcdir"/mutations-03_eye-colours.patch


  # # npc fixes
  echo "Applying NPC fixes"
  # Port the updates to Isherwood Farm from DDA
  patch -Np1 -i "$srcdir"/npc-01_isherwood-update.patch

  # Port the updates to Tacoma Commune from DDA
  patch -Np1 -i "$srcdir"/npc-02_tacoma-update.patch

  # Port the updates to New England Church Community from DDA
  patch -Np1 -i "$srcdir"/npc-03_godco-update.patch

  # Port the updates to prison and island prison from DDA
  patch -Np1 -i "$srcdir"/npc-04_island-prison-update.patch

  # Port the updates to kindred from DDA
  patch -NEp1 -i "$srcdir"/npc-05_kindred-update.patch

  # Port the updates to Mr Lapin from DDA
  patch -Np1 -i "$srcdir"/npc-06_lapin-update.patch

  # Port the lighthouse family from DDA
  # Hack in some effects to use as timers and probe NPC mechanic skill.
  patch -Np1 -i "$srcdir"/npc-07_lighthouse-family_v2.patch

  # Update the Tacoma Nurse to buy almost every non-dangerous, non-electrical, and non-expensive medicine.
  # Also remove acceptance for various tools that are not correctly taken, such as first aid kits.
  patch -Np1 -i "$srcdir"/npc-08_nurse-takes-more-meds.patch

  # Update the FMC broker to buy most preserved foods.
  # Also update the dialogue to specify that he buys more types.
  patch -Np1 -i "$srcdir"/npc-09_broker-takes-more-foods.patch

  # Port the bunker merchant from DDA
  patch -Np1 -i "$srcdir"/npc-10_bunker-merchant.patch

  # Port the updates to Free Merchant Center from DDA
  # Relies on new json functions :/
  #patch -Np1 -i "$srcdir"/npc-nn_refugee.patch

  # Port the updates to Hub 01 from DDA
  # Relies on new json functions :/
  #patch -Np1 -i "$srcdir"/zz_npc-nn_robofac-v2.patch

  # Assorted typos in NPC dialogue.
  # Fix Jack Isherwood mission listing 10 jars, when it is actually 20.
  patch -Np1 -i "$srcdir"/npc-20_dialogue-fixes.patch


  # # recipe fixes
  echo "Applying recipe fixes"
  # Fix reloaded 45-70 rounds and reloaded dragon shot not allowing dismantling when every other non-caseless round does.
  patch -Np1 -i "$srcdir"/recipes-01_4570-dragon-can-be-dismantled.patch


  # # terrain and overmap fixes
  echo "Applying terrain and overmap fixes"

  # Set t_platform_resin movecost to 2:
  # This allows helicopters to land on the mi-go landing pad.
  patch -Np1 -i "$srcdir"/terrain-01_migo-platform-landing-pad.patch

  # Fix missing floor in the tacoma clinic:
  # The hospital is still a mess. :/
  patch -Np1 -i "$srcdir"/terrain-03_tacoma-clinic-add-missing-floor.patch

  # Fix lumbermill gasoline being spilled instead of being inside the gas pump:
  # The gas pump was placed on top of a tile that didn't allow items inside, causing the gasoline to be shunted to the next valid one.
  patch -Np1 -i "$srcdir"/terrain-04_lumbermill-gasoline-not-spilled.patch

  # Fix community garden liquid fertilizer being in a pit instead of in the storage tanks:
  # I'm pretty sure that having it all dumped in a pit was not intentional.
  patch -Np1 -i "$srcdir"/terrain-05_community-garden-fertilizer-not-spilled.patch

  # Fix some doors being unusable by npcs (incorrect door flag):
  # The DOOR flag is for terrain that can be opened, not those already open.
  patch -Np1 -i "$srcdir"/terrain-06_fix-doors-for-npcs.patch

  # Re-hide something that feels like spoilers.
  patch -Np1 -i "$srcdir"/terrain-07_rehide-redacted.patch

  # Set the overmap note for Derelict Shed to s to better match use of the first letter.
  patch -Np1 -i "$srcdir"/terrain-08_derelict-shed-is-s.patch

  # Fix npcs unable to drink from firestation and shelter basecamps wells:
  # They were missing the water_well blueprint_provides.
  patch -Np1 -i "$srcdir"/terrain-09_make-firestation-shelter-wells-npc-drinkable.patch


  # # tool fixes
  echo "Applying tool fixes"
  # Mark the foldable plastic bottle and steel water bottle as containers:
  # Being counted as tools didn't seem to fit their role.
  patch -Np1 -i "$srcdir"/tools-01_foldable-bottle-is-container.patch

  # Fix blood draw kit being categorized as a weapon:
  # Upstream changed item templates, so this sets it back to be a tool.
  patch -Np1 -i "$srcdir"/tools-02_vacutainer-is-not-a-weapon.patch

  # Fix electric shears not using batteries nor charging via UPS:
  # Item was unusable without this patch.
  patch -Np1 -i "$srcdir"/tools-03_shears-use-light-battery.patch

  # Normalize the manhack volumes to that of the base grenade/explosive:
  # I don't see how a c-4 manhack could be 1/4 the volume of a stick of c-4.
  # Grenade hacks were also thrice as big as the base grenade.
  patch -Np1 -i "$srcdir"/tools-04_normalize-drone-volume.patch


  # # vehicle fixes
  echo "Applying vehicle fixes"
  # Replace the portable generator twin engine with a large 1 cylinder:
  # This way it can actually function as is.
  patch -Np1 -i "$srcdir"/vehicles-01_portable-generator-engine.patch



  # # Uncategorized for now
  echo "Applying uncategorized fixes"
  # Fix rubber items dismantling into 10x item volume of rubber.
  patch -Np1 -i "$srcdir"/etc-01_fix-rubbersplosion.patch

  # Add price_postapoc to a number of items that did not have one set.
  patch -Np1 -i "$srcdir"/etc-02_add-missing-price-postapoc.patch


  # # # Various other fixes for bugs I came across that modify src
  echo "Applying source code fixes"
  # Fix radio, e-ink reader music, tactical tonfa not working with UPS.
  patch -Np1 -i "$srcdir"/jc_radio-can-use-ups.patch

  # Fix ammo loudness mulitplying by six instead of two.
  patch -Np1 -i "$srcdir"/jc_ammo-loudness-ap-times-2.patch

  # Fix smoker racks not accepting bionic firestarter.
  patch -Np1 -i "$srcdir"/jc_allow-bio-firestarter-on-smoker.patch

  # Fix Non-Player facton NPCs from becoming sleep deprived.
  patch -Np1 -i "$srcdir"/jc_stop-non-faction-npc-sleep-depirvation.patch

  # Fix Non-Player facton NPCs from becoming malnourished.
  patch -Np1 -i "$srcdir"/jc_stop-non-faction-npc-malnourishment.patch

  # Fix NPCs preferring tables to cots or woodstoves to the floor.
  patch -Np1 -i "$srcdir"/jc_stop-sleeping-on-tables.patch

  # Allow the hacker_laptop to utilize the extra functions.
  patch -Np1 -i "$srcdir"/jc_allow-hacker-laptop.patch

  # Expand the overmap tiles for the miltiary base to be less MMMM
  patch -Np1 -i "$srcdir"/jc_more-military-base-overmap.patch

  # Allow npcs to pull food from the camp larder at the full range of tiles camp actions can be assigned from:
  # Should allow bases larger than 3x3 to have less food micromanagment for NPCs.
  patch -Np1 -i "$srcdir"/jc_npc-eat-from-further-camp.patch

  # Revert removal of half calorie consumption while sleeping:
  # Managing the food supply of more than a few NPCs in BN is extremely difficult compared to DDA.
  patch -Np1 -i "$srcdir"/jc_reduced-kcal-during-sleep.patch


  # # # Additional changes
  echo "Applying vampirism patch"
  # Add vampire mutation lines and modify a number of functions to facilitate these traits.
  patch -Np1 -i "$srcdir"/vampirism.patch
}

build() {
  cd "${_pkgname}-${_pkgver}"

  #export CFLAGS="$CFLAGS -fPIE"
  export CXXFLAGS="$CXXFLAGS -fPIE"
  export LDFLAGS="$LDFLAGS,-pie"

  # Prevent segfaults when examine tile->search returns no results.
  export CXXFLAGS="$(echo $CXXFLAGS | sed -i 's/-Wp,-D_GLIBCXX_ASSERTIONS//' - )"

  # tests "ifdef TILES" so "TILES=0" will enable tiles!
  # DYNAMIC_LINKING appears to be a windows flag?
  # TESTS disabled due to gcc 11.2 bug
  make PREFIX=/usr RELEASE=1 USE_XDG_DIR=1 BACKTRACE=0 LOCALIZE=1 LANGUAGES=all RUNTESTS=0
  make PREFIX=/usr RELEASE=1 USE_XDG_DIR=1 BACKTRACE=0 LOCALIZE=1 LANGUAGES=all RUNTESTS=0 TILES=1 SOUND=1
  ./lang/compile_mo.sh
}

package_cataclysm-bn() {
  cd "${_pkgname}-${_pkgver}"

  make DESTDIR="$pkgdir" PREFIX="/usr" RELEASE=1 USE_HOME_DIR=1 LOCALIZE=1 LANGUAGES=all RUNTESTS=0 install

  # Docs
  install -d "$pkgdir/usr/share/doc/cataclysm-bn"
  cp --reflink -r doc/* "$pkgdir/usr/share/doc/cataclysm-bn"
  # undo symlink
  rm "$pkgdir/usr/share/doc/cataclysm-bn/JSON_LOADING_ORDER.md"
  cp --reflink 'data/json/LOADING_ORDER.md' "$pkgdir/usr/share/doc/cataclysm-bn/JSON_LOADING_ORDER.md"

  # License
  install -Dm644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"

  # Languages
  cd lang/mo
  for i in *; do
    install -d "${pkgdir}/usr/share/locale/${i}/LC_MESSAGES"
    cp --reflink "${i}/LC_MESSAGES/cataclysm-bn.mo" "${pkgdir}/usr/share/locale/${i}/LC_MESSAGES"
  done

  # Help
  cd ./../..
  cp -r --reflink --no-preserve=ownership "./data/help" "${pkgdir}/usr/share/${pkgname}/"

#  install -Dm644 "${srcdir}/${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
}

package_cataclysm-bn-tiles() {
  pkgdesc="A graphical post-apocalyptic roguelike."
  depends=('cataclysm-bn' 'sdl2_image' 'sdl2_ttf' 'freetype2' 'sdl2_mixer')
  cd "${_pkgname}-${_pkgver}"

  make DESTDIR="$pkgdir" PREFIX="/usr" RELEASE=1 LOCALIZE=1 LANGUAGES=all RUNTESTS=0 TILES=1 SOUND=1 install


  # Icon
  #install -D 'data/osx/AppIcon.iconset/icon_128x128.png' "$pkgdir/usr/share/icons/hicolor/128x128/apps/$pkgname.png"
  #install -D 'data/osx/AppIcon.iconset/icon_128x128.png' "$pkgdir/usr/share/pixmaps/$pkgname.png"
  install -D "${srcdir}/icon_128x128.png" "$pkgdir/usr/share/icons/hicolor/128x128/apps/$pkgname.png"
  install -D "${srcdir}/icon_128x128.png" "$pkgdir/usr/share/pixmaps/$pkgname.png"
  install -Dm644 "${srcdir}/$pkgname.desktop" "${pkgdir}/usr/share/applications/$pkgname.desktop"

  install -Dm644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"


  # Tileset
  mv "$srcdir/cataclysm-dda-tileset_undeadpeople-master" "$srcdir/undeadpeople"
  cp --reflink -r "$srcdir/undeadpeople" "$pkgdir/usr/share/cataclysm-bn/gfx"
  rm -rf "$pkgdir/usr/share/cataclysm-bn/gfx/MSX++UnDeadPeopleEdition"

  #mv "$srcdir/cataclysm-dda-mod_battle-maid-redone-tileset-master" "$srcdir/battle-maid-redone-tileset"
  cp --reflink -r "$srcdir/cataclysm-dda-mod_battle-maid-redone-tileset-master/battle-maid-redone-tileset-pt1" "$pkgdir/usr/share/cataclysm-bn/mods"
  cp --reflink -r "$srcdir/cataclysm-dda-mod_battle-maid-redone-tileset-master/battle-maid-redone-tileset-pt2" "$pkgdir/usr/share/cataclysm-bn/mods"


  # Sound
  mv "$srcdir/cataclysm-dda-soundpack_jcsoundpack-master" "$srcdir/jcsoundpack"
  cp --reflink -r "$srcdir/jcsoundpack" "$pkgdir/usr/share/cataclysm-bn/sound"

  # Music
  mv "$srcdir/cataclysm-dda-musicpack_coag-musicpack-master" "$srcdir/coag-musicpack"
  install -Dm644 "$srcdir/coag-musicpack/musicset.json" "$pkgdir/usr/share/cataclysm-bn/sound/jcsoundpack/musicset.json"
  cp --reflink -r "$srcdir/coag-musicpack/music" "$pkgdir/usr/share/cataclysm-bn/sound/jcsoundpack"


  # hack: remove overlapping files
  cd "$pkgdir/../cataclysm-bn"
  find . -type f -exec rm -f "$pkgdir"/{} \;
  cd "$pkgdir"
  find . -type d -empty -delete
}