From 7406a4d8fad98609db9486e27f35e2347c87e70f Mon Sep 17 00:00:00 2001 From: jc_gargma Date: Tue, 25 Jan 2022 23:39:30 -0800 Subject: Fix many patch fuzzing warnings. Fix vampires not ignoring ambient temperature. --- PKGBUILD | 20 ++--- armor-01_ankle-ammo-pouch-is-not-a-backpack.patch | 6 +- ...-02_fix-survivor-fingerless-gloves-warmth.patch | 2 +- jc_radio-can-use-ups.patch | 16 ++-- jc_restore-removed-traits.patch | 6 +- jc_stop-non-faction-npc-malnourishment.patch | 4 +- monsters-01_medical-zombies-called-zombies.patch | 3 +- npc-03_godco-update.patch | 9 +- recipes-01_4570-dragon-can-be-dismantled.patch | 18 ++-- vampirism.patch | 100 ++++++++++----------- 10 files changed, 92 insertions(+), 92 deletions(-) diff --git a/PKGBUILD b/PKGBUILD index fad26f4..fb1d706 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -15,7 +15,7 @@ pkgname=cataclysm-bn _pkgname=Cataclysm-BN-cbn-experimental pkgver=202201220831 _pkgver=2022-01-22-0831 -pkgrel=2 +pkgrel=3 pkgdesc="A post-apocalyptic roguelike." #url="http://cataclysmrl.blogspot.com/" #url="http://www.cataclysm.glyphgryph.com/" @@ -114,8 +114,8 @@ b2sums=('028de65b63ac40c23bff23b3e0521e5b464e6835b34fc8a6cfaca330ec5804499c8fb1b '040363cea9b3492f8a0f8daba44c179c871ba691dea688c15f3ad6994f78d530b4f74b283b9c64e4f5a2b1268805e60d4ea154d3dc8246200c50907054f5b5ef' '67cdb7e097bbb46da5cf04708bc2858b080d1a85742afc4c088da3e4e3fdeb6e4c51240fc5a6b9a1c7d927b30b3d251236e025ee4e5496142a7716d4ba51b82c' '22b06ee2014dac33808ba9c32269eeb8a58b36f8ecfb651fcea859d231272838e63328e8938d130afcdb9670341d1dd34f997f36ad7be3c7bd7a178533f43702' - '025213998583972e7551bd7bd7376ab65857e28d4338fab60ae792a6b3bd48983aec77e5143baaa63d4f3feb7cd590c4bded529c410e4d18f2b8c5813f25daa3' - 'd9cad0cef682927c07e3f7398b6e57b21b68f9069b99fab363d0e3f329337f25fafa216a82a431ee23a2de3f67a0ed68d024c1a932b76f58aeb5e9a49cfe5e6e' + '0884229f513f843099dbd397d96fd8b37aad2d1ae0aee2771f57f54188241d6ed0ede8750780b9564bd9e3dc8d215039d409081a8eb46ce25b90edb196eb6bf4' + 'f4ad4c90cfcf11af42c6cfc6d2027b21af3f58ac274b9bd0852a52ef60b606476766f194b281f6baf12f81647b384a98f745519bb48bc2e4f5fe03984c7c0e65' 'f3bdbaac5dbe9384571fe5ec14d2d25035f227a977c25349b8188e7343804e3973b898b44c34f9abe9318666294f4fdfe780fd516dcbdb29c4ac52f6d0ed6cad' '43937dd83705b5ab62ae02cf1d043426c82f37e600afe06a287706e8450b596b84cc23138fbda31d67b9a2206ebfdc69754e329e7621075cbf480691f7d61871' 'b3f3be15fb87b1cdb6230216328f648e66d06fd2eeee9a6a3ff3f6b8e94c5213af7a2a4643f1e59ca8801056325ad4be4b88d723c2ec52c4ecc6f8c356ff8c82' @@ -123,15 +123,15 @@ b2sums=('028de65b63ac40c23bff23b3e0521e5b464e6835b34fc8a6cfaca330ec5804499c8fb1b '417cd957f188b2b06e41d5413bea5f13481c6d5bfa8f184157379d5ac2afa9ba6f7ebc966856f50603f89b9173b6fbfdb3ccf4e3cc0b1bedb53f935591e4a35c' 'dae75d9cd00f1f3ceabf257f1d82d245ace6582cf7ea98a40c1d1eb9b7e1832cb2a0c13f25c814a05a70931c42a06694a67829ea55554cc680eaa8ddf16c84a8' '931ac85c657c1c504de1ea629205b19f79a11acdd7c62cf71b909323ec1588610b1f575bc58ab01c3fbcd334fca8fbc114316570732f55a3f7fb3dd2984cd442' - '8bb71fbec3deece7bd0f9084e20ef5853812e71e2ebcd43011f7779499cbb99c7a8bc5c618d8ef9f55e5ce54c9fc4a5f4d3167bb63f9821a68889f9f3e1386f5' + 'e466392190e0aa58c02acda287bc8ac6fef30160207d08805ca9acd42b7f024d0680c0a76fcb4f29a7d7ca884920bba3a6714b5ad40f64dd1b40bcf0e2621d26' '08f4746882b927bdff6b728630cf1e04a2b79924f694ca2d841e3115c3399feb87a8d363e4d2a0f59179c109cb6be6e840f912aadd44abb0bdb35afd2838cc4d' 'ab35d6663b864449d46da4a9e1c51e11956ff4c38e16db58c831b71f7b964fc25b0283122dbc8aa0549f240f01c4a910fb5c6c82937258c6b736c05b54bcf768' '0793bb7aa67d3989ef093cc17e6d9dd6d2e3999562fe1039b44f0fb9297623bda49271cb7b17d7fab4dc14299e0e5f13eb8f3711dbffc10bf7ffa68838f0585b' '24c5f9ee5553b66ac937785b3312378adbca096888b05da8b0cdc9c0586ee51e9a3754615cc03a659cfe70ba2f48f7ce0359025c816c887c7691424c685f5f96' '4f98126afadd7ad3346e2a55c02a06e1f5709406984835ff4ee206c4b52ef7ce8c52eee3f581fa36799a59578e05375b5db884b88b35866fbc6bb1330b79fe83' - 'e2595c1859afe68d2b1d4ba8e424b6948063da75ee54ce11bf19f4e0263eefb40673245985d672da54dcc5b66a3fd414110726c36b55a994f08eb461446d9b57' + '613a9d7a7a512cdf7dc1f1121ecaec7272efe740f5494ce425c3781d41a0ec92e044142d82a28c6445416e84699131745c6872c9b33cb5b93528d0197745455a' 'adcf0b46ad57390488b3932910fba5a5be8152f91b45864bf078a2b8d92dc89e9944c320dafb7a0d4786e1fce48bedea714d671feefe565ffbbb74baca21d98e' - '71768899e631c5293d5fb8bcb237ca54f880913b6400d445c8a0322cb69801fe85b94b1293306e2f33fac6067cbd892c4665b9563bdc9ff4df5be245c7e7108f' + '3373939e76f1ddb788b45424533c2e7687bbacae840fb3e6b1d49034e18315297af66dddf1b13d4f42033608123929b78819f38cca6cbc6c5ecca09bc67ab69f' 'b8a64accada87ee5be989c5307805610c9b5c0327bc107aab237ac3225dd9e4c51b6c79a2a7de15fe187d3c32d7cbe1c462f9b0e9fb5d5a55a74236c7061e96e' '85aeb5920ee5879848be4057324153a077fe907bed527ed8f9b80a3c5ee1ef64786f63ee2999f5ba74e80a43e99ded3280ce27759c1f7b73259a6e2b5e584aa8' '58a94409205f7b670ab5745b8cbc234a38efd6a6217cef4efb7e397f091092e3e0c7790706b0a42accaa83d7509b8e244a98b9f0ba78349ee85f3164745c3501' @@ -147,18 +147,18 @@ b2sums=('028de65b63ac40c23bff23b3e0521e5b464e6835b34fc8a6cfaca330ec5804499c8fb1b 'e1d03f68918d03f980f4c2dd966e3788afe63f14e2d18dbd4dab2cdbfa1253e4823c0f5daa3a579e47319a3c2af35bc5af0a390e2ba91fe7621f6db8b1a60994' '5a5a61ccb7e2e343fb6de2e3426688485a2f4ad65d4b001d8bd542907fd8ceb9315da7fd9e5f89a5aa6210edcd5f334c73657fc16349000d6f6a394303e22000' 'c620bbf0411860ebaafc48123f280e685a535fab91c0736285430ab5d36d26d028cea4ceca1cbcbf466d494ee87b76008d2a3fb64437a069650948945b3dec88' - '51b1324506179f7fadd8bc187eb8db939494483597b0b7b63909cec66f4e94b27888ccfa926bbd2ff8b0e80108ecc373118c202a177fc2ebd4f5231f87f09a83' + '06c5652eb2c70b8aba6d788415089b740c3510cd9c570838f656202ba2dc65d4f3289f6695413665de930e84fe287ef035ed8e83a0610a5a316e76a17442683a' '92cde696eec00e6758b58e73e8bc60ad1a73bb2a18d4fdfd24a19b5be715305a047943a02d94a9703c101ca0c769dbeb816f1f28809345bae0fec42fbc27bb34' 'dede4f0774159243f87121e4d53107bb9de31f9658823fc7ab02124974b87defecf3ab0f2edf6779f2fe1ca437f16f83bf193cf3143fd5eb3a686b731319c11f' 'ce82294e480ad42f0001c799fd8131b60024b6097653f3c57564c75e54596616e376f0d7f1cf4e54d8c302a61ef164b4323f795bfa19b2c13ab9e927d37f1600' - '3eed24ef313c30c6e8fa69d3f88b1cf827b22fc90c144fa994433cfc5f0a9476174b418be267e16f2c3425c7f6f3ca108151f180e7d9b040f6ff88a39a05ecad' + '44cf3ade15b127de13c7b7dbdc515fa6a04aeff5912a857e6aa72887aa893c4fb6888793646ccc879af536f057e2791177e04e2c19c544fc96401c795728d867' 'd723fcc6cce65aa296bc519a07a5d003122ad698a73a3d046dac3780ea5a00fef28f78da251bb46f80f2e0577baa26a6ae13cabf525f22a7a742435e95716dae' 'f25f01c5b27dced202fe76c1717b9eaec65dfa5f28db1910529f60f5ec21cc89c1a15df26c2dd09066a0d89e3f7d87c790e7886c3c2f0978a25f5ec7d1236099' - '1919a87a97a1cc625a8a0f5f6a3affb45b0c9630768b42718c5a3df563127cc0436845d01a354b24a16080a89f53df0515a9b62dc14f5292a951057386e9d5d6' + '839c92715bfd1f63d94d6d252813a19e6093ded3e45f9efbbc4953ab85adfb886bcdfcfa41c9bb9ed422c0a32917a1ac75f98019e7de946b840e345cd3969d19' 'e3302d903d053f25aa666d572f74a8bbd3b65dde40eedcbf46e537ceb2294ac22b3772087fce04c4a780c2f18e855179c6ddc8af12d72a89b82957ce09deb52f' '4bd44cbe85c53902b8a360509703e3d38e8a5da75dd2c534a77f03ce6440632f6c83c92939069c60473c88ffb3abab0fbf11e39271f44f813b9f6432ea5f9a6b' 'f115314dd2bb1da07bba7a90fec5c3acb7ccb5145efaea03d6806942e24d402c9a144a2fd07b82e727a0b79dedd4bdd87de0bbaf0944236563164fb6f117965e' - 'ea653de84d9c918aa93236559f6555f560ba7edb2c0b301a7af84352a940e178f9738b6b05c1a32733491f3d3824cfbb6bbea22bfe5c344bee916eb591673d12' + 'f57a8918a92b4f74fd155573aba4299879932eb525f54f4465ffa6dd48703f1cd695b3f44cc919b83c5a0ba72b8a9f84327ab65ce7839bcb54327e54a6f9ea62' 'a0a7758d0834deefa92f2a2c5db1cf65334dae9e4e244803f65f09265bf4a8bc4da40464f5a98fb3f2b7de5a2912359e38adc0ca2146d96a5930e1151b99027d' 'a56efdaae0344726debf5b74846edce8df7aa2357fbc7a05a3d369d1f457b02934a0d0ce2330072e03f1ac901e06e333c9393f795c761f8440307e7649ed5596' '9d0e17552338c9d92ff696f1834a5d99c29d5dfbab6903b620410f62527a0ba60720c9ceec8e203b737f784ade8a53dbaca428ac7cc439f3f4f765aac7f1170f' diff --git a/armor-01_ankle-ammo-pouch-is-not-a-backpack.patch b/armor-01_ankle-ammo-pouch-is-not-a-backpack.patch index ca51551..62e703c 100644 --- a/armor-01_ankle-ammo-pouch-is-not-a-backpack.patch +++ b/armor-01_ankle-ammo-pouch-is-not-a-backpack.patch @@ -1,11 +1,11 @@ --- a/data/json/items/armor/ammo_pouch.json +++ b/data/json/items/armor/ammo_pouch.json @@ -192,7 +192,7 @@ - "price_postapoc": 4500, - "material": "cotton", + "price_postapoc": 750, + "material": [ "cotton" ], "symbol": "[", - "looks_like": "ragpouch", + "looks_like": "bootstrap", "color": "dark_gray", - "covers": [ "FOOT_EITHER" ], + "covers": [ "foot_either" ], "coverage": 5, diff --git a/armor-02_fix-survivor-fingerless-gloves-warmth.patch b/armor-02_fix-survivor-fingerless-gloves-warmth.patch index bc0b904..1e79099 100644 --- a/armor-02_fix-survivor-fingerless-gloves-warmth.patch +++ b/armor-02_fix-survivor-fingerless-gloves-warmth.patch @@ -1,7 +1,7 @@ --- a/data/json/items/armor/gloves.json +++ b/data/json/items/armor/gloves.json @@ -447,7 +447,7 @@ - "covers": [ "HANDS" ], + "covers": [ "hands" ], "coverage": 85, "encumbrance": 8, - "warmth": 12, diff --git a/jc_radio-can-use-ups.patch b/jc_radio-can-use-ups.patch index ee146e5..a47b1d4 100644 --- a/jc_radio-can-use-ups.patch +++ b/jc_radio-can-use-ups.patch @@ -1,6 +1,6 @@ --- a/src/iuse.cpp +++ b/src/iuse.cpp -@@ -289,6 +289,7 @@ +@@ -350,6 +350,7 @@ static const std::string flag_HEATS_FOOD( "HEATS_FOOD" ); static const std::string flag_PLANT( "PLANT" ); static const std::string flag_PLOWABLE( "PLOWABLE" ); @@ -8,7 +8,7 @@ // how many characters per turn of radio static constexpr int RADIO_PER_TURN = 25; -@@ -2162,7 +2163,8 @@ +@@ -2205,7 +2206,8 @@ } } else { // Activated int ch = 1; @@ -18,7 +18,7 @@ ch = uilist( _( "Radio:" ), { _( "Scan" ), _( "Turn off" ) } ); -@@ -4082,7 +4084,8 @@ +@@ -4074,7 +4076,8 @@ if( t ) { // Effects while simply on } else { @@ -26,9 +26,9 @@ + if( !it->units_sufficient( *p ) || !( it->has_flag( flag_USE_UPS ) && + p->has_enough_charges( *it, false ) ) ) { p->add_msg_if_player( m_info, _( "Your tactical tonfa is out of power." ) ); - it->convert( "shocktonfa_off" ).active = false; + it->convert( itype_shocktonfa_off ).active = false; } else { -@@ -4107,7 +4110,8 @@ +@@ -4099,7 +4102,8 @@ int iuse::mp3( player *p, item *it, bool, const tripoint & ) { // TODO: avoid item id hardcoding to make this function usable for pure json-defined devices. @@ -36,9 +36,9 @@ + if( !it->units_sufficient( *p ) || !( it->has_flag( flag_USE_UPS ) && + p->has_enough_charges( *it, false ) ) ) { p->add_msg_if_player( m_info, _( "The device's batteries are dead." ) ); - } else if( p->has_active_item( "mp3_on" ) || p->has_active_item( "smartphone_music" ) || - p->has_active_item( "afs_atomic_smartphone_music" ) || -@@ -6367,9 +6371,12 @@ + } else if( p->has_active_item( itype_mp3_on ) || p->has_active_item( itype_smartphone_music ) || + p->has_active_item( itype_afs_atomic_smartphone_music ) || +@@ -6366,9 +6370,12 @@ int iuse::einktabletpc( player *p, item *it, bool t, const tripoint &pos ) { if( t ) { diff --git a/jc_restore-removed-traits.patch b/jc_restore-removed-traits.patch index 3c447a6..cfe8c5d 100644 --- a/jc_restore-removed-traits.patch +++ b/jc_restore-removed-traits.patch @@ -51,14 +51,14 @@ --- a/src/player.cpp +++ b/src/player.cpp @@ -84,6 +84,7 @@ - #include "weather_gen.h" + static const activity_id ACT_READ( "ACT_READ" ); static const efftype_id effect_adrenaline( "adrenaline" ); +static const efftype_id effect_bite( "bite" ); static const efftype_id effect_blind( "blind" ); static const efftype_id effect_bloodworms( "bloodworms" ); static const efftype_id effect_boomered( "boomered" ); -@@ -93,12 +94,14 @@ +@@ -93,14 +94,16 @@ static const efftype_id effect_drunk( "drunk" ); static const efftype_id effect_fungus( "fungus" ); static const efftype_id effect_happy( "happy" ); @@ -73,8 +73,8 @@ static const efftype_id effect_pkill( "pkill" ); +static const efftype_id effect_recover( "recover" ); static const efftype_id effect_sad( "sad" ); - static const efftype_id effect_sleep( "sleep" ); static const efftype_id effect_sleep_deprived( "sleep_deprived" ); + static const efftype_id effect_sleep( "sleep" ); @@ -125,6 +128,7 @@ static const trait_id trait_FAT( "FAT" ); static const trait_id trait_FELINE_FUR( "FELINE_FUR" ); diff --git a/jc_stop-non-faction-npc-malnourishment.patch b/jc_stop-non-faction-npc-malnourishment.patch index f45402f..e197713 100644 --- a/jc_stop-non-faction-npc-malnourishment.patch +++ b/jc_stop-non-faction-npc-malnourishment.patch @@ -1,8 +1,8 @@ --- a/src/npcmove.cpp +++ b/src/npcmove.cpp @@ -116,6 +116,14 @@ - static const efftype_id effect_onfire( "onfire" ); - static const efftype_id effect_stunned( "stunned" ); + static const itype_id itype_oxygen_tank( "oxygen_tank" ); + static const itype_id itype_UPS( "UPS" ); +const vitamin_id vitamin_calcium( "calcium" ); +const vitamin_id vitamin_iron( "iron" ); diff --git a/monsters-01_medical-zombies-called-zombies.patch b/monsters-01_medical-zombies-called-zombies.patch index a4b469a..f315c99 100644 --- a/monsters-01_medical-zombies-called-zombies.patch +++ b/monsters-01_medical-zombies-called-zombies.patch @@ -9,8 +9,7 @@ "description": "Instead of one of its forearms, this zombie has a muscular tube ending in a stinger that is moist with stringy slime. It is single-mindedly focused on using just that one limb to fight.", "default_faction": "zombie", "bodytype": "human", -@@ -33,8 +33,8 @@ - "id": "mon_zombie_surgeon", +@@ -33,7 +33,7 @@ "type": "MONSTER", "copy-from": "mon_zombie_nurse", "delete": { "categories": [ "CLASSIC" ] }, diff --git a/npc-03_godco-update.patch b/npc-03_godco-update.patch index f3feab8..140a797 100644 --- a/npc-03_godco-update.patch +++ b/npc-03_godco-update.patch @@ -533,7 +533,7 @@ "responses": [ { "text": "Oh, okay.", "topic": "TALK_GODCO_cook_1" }, { "text": "What can I buy here?", "topic": "TALK_GODCO_cook_ask_goods" } -@@ -209,7 +209,7 @@ +@@ -209,8 +209,8 @@ "rejected": "It's okay, I can do without them. Just let me know if you reconsider.", "advice": "There's a lot of places to look. They are common in house kitchens, restaurants or grocery stores.", "inquire": "How is the search going? Have you found 'em?", @@ -543,7 +543,8 @@ + "success_lie": "Thanks for trying… I guess.", "failure": "Don't worry about it, it's not that important." }, -@@ -232,9 +232,9 @@ + "end": { "effect": [ { "u_buy_item": "icon", "count": 2 } ] } +@@ -232,10 +232,10 @@ "offer": "This task is bit more serious. I don't have enough jars to preserve perishables for the future, and we can't just store everything in salt. We could do our own canning if we had some more glass jars. I could get by with 5 for now.", "accepted": "Thanks for accepting this task. It'll take a load off my shoulders. I finally won't have to worry about this problem anymore.", "rejected": "Just let me know if you change your mind.", @@ -555,7 +556,8 @@ + "success_lie": "Thanks for trying… I guess.", "failure": "It's not a big deal, it isn't that urgent." }, -@@ -259,6 +259,6 @@ + "end": { "effect": [ { "u_buy_item": "icon", "count": 5 } ] } +@@ -259,7 +259,7 @@ "advice": "Butcher knives are not that rare to find. They are commonly found in kitchens.", "inquire": "Do you have that knife now?", "success": "I am grateful for the help you've done.", @@ -563,6 +565,7 @@ + "success_lie": "Thanks for trying… I guess.", "failure": "Don't worry about it, it's not that important." }, + "end": { "effect": [ { "u_buy_item": "icon", "count": 3 } ] } --- a/data/json/mapgen/cground3x3.json +++ b/data/json/mapgen/cground3x3.json @@ -22,83 +22,120 @@ diff --git a/recipes-01_4570-dragon-can-be-dismantled.patch b/recipes-01_4570-dragon-can-be-dismantled.patch index 219bfd6..c0e4f26 100644 --- a/recipes-01_4570-dragon-can-be-dismantled.patch +++ b/recipes-01_4570-dragon-can-be-dismantled.patch @@ -1,6 +1,6 @@ --- a/data/json/recipes/ammo/rifle.json +++ b/data/json/recipes/ammo/rifle.json -@@ -385,6 +385,7 @@ +@@ -355,6 +355,7 @@ "batch_time_factors": [ 60, 5 ], "book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 4 ] ], "charges": 1, @@ -8,23 +8,23 @@ "using": [ [ "bullet_forming", 15 ], [ "ammo_bullet", 8 ] ], "components": [ [ [ "4570_casing", 1 ] ], -@@ -406,6 +407,7 @@ +@@ -376,6 +377,7 @@ "batch_time_factors": [ 60, 5 ], "book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 4 ] ], "charges": 1, + "reversible": true, "using": [ [ "bullet_forming", 15 ], [ "ammo_bullet", 8 ] ], - "components": [ - [ [ "4570_casing", 1 ] ], -@@ -426,6 +428,7 @@ + "components": [ [ [ "4570_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 17 ] ], [ [ "copper", 7 ] ] ] + }, +@@ -356,6 +358,7 @@ "batch_time_factors": [ 60, 5 ], "book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 4 ] ], "charges": 1, + "reversible": true, "using": [ [ "bullet_forming", 15 ], [ "ammo_bullet", 8 ] ], - "components": [ - [ [ "4570_casing", 1 ] ], -@@ -446,6 +449,7 @@ + "components": [ [ [ "4570_casing", 1 ] ], [ [ "lgrifle_primer", 1 ] ], [ [ "gunpowder", 12 ] ], [ [ "lead", 9 ] ] ] + }, +@@ -406,6 +409,7 @@ "batch_time_factors": [ 60, 5 ], "book_learn": [ [ "recipe_bullets", 2 ], [ "mag_rifle", 4 ] ], "charges": 1, @@ -40,5 +40,5 @@ "charges": 1, + "reversible": true, "using": [ [ "ammo_shot", 1 ] ], - "tools": [ [ [ "press", -1 ] ] ], + "tools": [ [ [ "press", -1 ], [ "press_dowel", -1 ] ] ], "components": [ [ [ "gunpowder", 3 ] ], [ [ "magnesium", 5 ] ] ] diff --git a/vampirism.patch b/vampirism.patch index c833f7b..ee770b9 100644 --- a/vampirism.patch +++ b/vampirism.patch @@ -1,6 +1,6 @@ --- a/src/activity_handlers.cpp +++ b/src/activity_handlers.cpp -@@ -220,6 +220,7 @@3 +@@ -238,6 +238,7 @@3 static const species_id HUMAN( "HUMAN" ); static const species_id ZOMBIE( "ZOMBIE" ); @@ -8,7 +8,7 @@ static const std::string trait_flag_CANNIBAL( "CANNIBAL" ); static const std::string trait_flag_PSYCHOPATH( "PSYCHOPATH" ); static const std::string trait_flag_SAPIOVORE( "SAPIOVORE" ); -@@ -259,6 +260,8 @@ +@@ -278,6 +278,8 @@ static const std::string flag_SUPPORTS_ROOF( "SUPPORTS_ROOF" ); static const std::string flag_TREE( "TREE" ); static const std::string flag_USE_UPS( "USE_UPS" ); @@ -17,7 +17,7 @@ using namespace activity_handlers; -@@ -651,7 +654,8 @@ +@@ -667,7 +667,8 @@ !corpse.in_species( ZOMBIE ) ); if( is_human && !( u.has_trait_flag( trait_flag_CANNIBAL ) || u.has_trait_flag( trait_flag_PSYCHOPATH ) || @@ -40,7 +40,7 @@ static const trait_id trait_PACKMULE( "PACKMULE" ); static const trait_id trait_PADDED_FEET( "PADDED_FEET" ); static const trait_id trait_PAWS( "PAWS" ); -@@ -288,6 +288,8 @@ +@@ -311,6 +311,8 @@ static const trait_id trait_TOUGH_FEET( "TOUGH_FEET" ); static const trait_id trait_TRANSPIRATION( "TRANSPIRATION" ); static const trait_id trait_URSINE_EYE( "URSINE_EYE" ); @@ -66,7 +66,7 @@ } float rest = rest_quality(); -@@ -4545,6 +4547,7 @@ +@@ -4631,6 +4631,7 @@ const bool npc_no_food = is_npc() && get_option( "NO_NPC_FOOD" ); const bool foodless = debug_ls || npc_no_food; const bool mouse = has_trait( trait_NO_THIRST ); @@ -74,8 +74,8 @@ const bool mycus = has_trait( trait_M_DEPENDENT ); const float kcal_per_time = bmr() / ( 12.0f * 24.0f ); const int five_mins = ticks_between( from, to, 5_minutes ); -@@ -4568,7 +4571,7 @@ - } +@@ -4661,7 +4661,7 @@ + // Mycus and Metabolic Rehydration makes thirst unnecessary // since water is not limited by intake but by absorption, we can just set thirst to zero - if( mycus || mouse ) { @@ -83,7 +83,7 @@ set_thirst( 0 ); } } -@@ -4843,15 +4843,17 @@ +@@ -4861,15 +4861,17 @@ void Character::check_needs_extremes() { // Check if we've overdosed... in any deadly way. @@ -104,7 +104,7 @@ if( !( has_trait( trait_NOPAIN ) ) ) { add_msg_if_player( m_bad, _( "Your heart spasms painfully and stops." ) ); } else { -@@ -4859,11 +4861,12 @@ +@@ -4879,11 +4879,12 @@ } g->events().send( getID(), effect_jetinjector ); set_part_hp_cur( bodypart_id( "torso" ), 0 ); @@ -119,10 +119,9 @@ add_msg_if_player( m_bad, _( "Your breathing slows down to a stop." ) ); g->events().send( getID(), effect_drunk ); set_part_hp_cur( bodypart_id( "torso" ), 0 ); - @@ -4985,7 +4988,7 @@ - void Character::update_bodytemp( const map &m, weather_manager &weather ) + void Character::update_bodytemp( const map &m, const weather_manager &weather ) { - if( has_trait( trait_DEBUG_NOTEMP ) ) { + if( has_trait( trait_DEBUG_NOTEMP ) || has_trait( trait_VAMP_SKIN ) ) { @@ -132,7 +131,7 @@ --- a/src/character.h +++ b/src/character.h -@@ -163,6 +163,8 @@ +@@ -162,6 +162,8 @@ allergy_weak, // Cannibalism (unless psycho/cannibal) cannibalism, @@ -162,7 +161,7 @@ static const std::string flag_ALLERGEN_JUNK( "ALLERGEN_JUNK" ); static const std::string flag_ALLERGEN_MEAT( "ALLERGEN_MEAT" ); static const std::string flag_ALLERGEN_MILK( "ALLERGEN_MILK" ); -@@ -143,11 +144,17 @@ +@@ -148,11 +148,17 @@ static const std::string flag_RAW( "RAW" ); static const std::string flag_URSINE_HONEY( "URSINE_HONEY" ); static const std::string flag_USE_EAT_VERB( "USE_EAT_VERB" ); @@ -180,7 +179,7 @@ // This ugly temp array is here because otherwise it goes // std::vector(char*, char*)->vector(InputIterator,InputIterator) or some such const std::array temparray {{flag_ALLERGEN_MEAT, flag_ALLERGEN_EGG}}; -@@ -719,6 +726,12 @@ +@@ -712,6 +712,12 @@ _( "Eww. Inedible plant stuff!" ) ); } @@ -247,7 +246,6 @@ } else if( psycho || sapiovore ) { // Nothing - doesn't care enough to print a message } else { - @@ -1123,6 +1161,11 @@ add_msg_if_player( m_bad, _( "Yuck! How can anybody eat this stuff?" ) ); add_morale( allergy, -75, -400, 30_minutes, 24_minutes ); @@ -263,7 +261,7 @@ --- a/src/game.cpp +++ b/src/game.cpp -@@ -1008,8 +1008,9 @@ +@@ -1040,8 +1040,9 @@ int iInfoLine = 0; if( u.has_amount( itype_holybook_bible1, 1 ) || u.has_amount( itype_holybook_bible2, 1 ) || @@ -313,7 +311,7 @@ } } -@@ -3947,6 +3947,7 @@ +@@ -4046,6 +4046,7 @@ case edible_rating::allergy: case edible_rating::allergy_weak: case edible_rating::cannibalism: @@ -324,7 +322,7 @@ --- a/src/item_factory.cpp +++ b/src/item_factory.cpp -@@ -2219,6 +2219,7 @@ +@@ -2251,6 +2251,7 @@ // First allergens: // An item is an allergen even if it has trace amounts of allergenic material std::make_pair( material_id( "hflesh" ), "CANNIBALISM" ), @@ -332,7 +330,7 @@ std::make_pair( material_id( "hflesh" ), "ALLERGEN_MEAT" ), std::make_pair( material_id( "iflesh" ), "ALLERGEN_MEAT" ), -@@ -2233,10 +2234,15 @@ +@@ -2266,10 +2266,15 @@ std::make_pair( material_id( "mushroom" ), "ALLERGEN_VEGGY" ), std::make_pair( material_id( "milk" ), "ALLERGEN_MILK" ), std::make_pair( material_id( "egg" ), "ALLERGEN_EGG" ), @@ -362,7 +360,7 @@ --- a/src/map_field.cpp +++ b/src/map_field.cpp -@@ -88,6 +88,7 @@ +@@ -91,6 +91,7 @@ static const trait_id trait_M_SKIN3( "M_SKIN3" ); static const trait_id trait_THRESH_MARLOSS( "THRESH_MARLOSS" ); static const trait_id trait_THRESH_MYCUS( "THRESH_MYCUS" ); @@ -370,7 +368,7 @@ static const trait_id trait_WEB_WALKER( "WEB_WALKER" ); void map::create_burnproducts( const tripoint &p, const item &fuel, const units::mass &burned_mass ) -@@ -1395,7 +1396,8 @@ +@@ -1405,7 +1405,8 @@ if( ( cur.get_field_intensity() > 1 || !one_in( 3 ) ) && ( !inside || one_in( 3 ) ) ) { u.add_env_effect( effect_teargas, bp_mouth, 5, 20_seconds ); } @@ -380,7 +378,7 @@ u.add_env_effect( effect_blind, bp_eyes, cur.get_field_intensity() * 2, 10_seconds ); } } -@@ -1526,8 +1528,9 @@ +@@ -1537,8 +1537,9 @@ // The gas won't harm you inside a vehicle. if( !inside ) { // Full body suits protect you from the effects of the gas. @@ -395,7 +393,7 @@ --- a/src/memorial_logger.cpp +++ b/src/memorial_logger.cpp -@@ -80,6 +80,7 @@ +@@ -79,6 +79,7 @@ static const trap_str_id tr_snake( "tr_snake" ); static const trap_str_id tr_glass_pit( "tr_glass_pit" ); @@ -403,7 +401,7 @@ static const trait_id trait_CANNIBAL( "CANNIBAL" ); static const trait_id trait_PSYCHOPATH( "PSYCHOPATH" ); static const trait_id trait_SAPIOVORE( "SAPIOVORE" ); -@@ -486,6 +487,7 @@ +@@ -488,6 +488,7 @@ character_id ch = e.get( "killer" ); if( ch == g->u.getID() ) { std::string name = e.get( "victim_name" ); @@ -411,7 +409,7 @@ bool cannibal = g->u.has_trait( trait_CANNIBAL ); bool psycho = g->u.has_trait( trait_PSYCHOPATH ); if( g->u.has_trait( trait_SAPIOVORE ) ) { -@@ -509,6 +511,10 @@ +@@ -512,6 +512,10 @@ add( pgettext( "memorial_male", "Killed an innocent, %s." ), pgettext( "memorial_female", "Killed an innocent, %s." ), name ); @@ -425,7 +423,7 @@ --- a/src/morale_types.cpp +++ b/src/morale_types.cpp -@@ -138,6 +139,7 @@ +@@ -36,6 +36,7 @@ const morale_type MORALE_CRAVING_MARLOSS( "morale_craving_marloss" ); const morale_type MORALE_FOOD_BAD( "morale_food_bad" ); const morale_type MORALE_CANNIBAL( "morale_cannibal" ); @@ -455,7 +453,7 @@ static const trait_id trait_TREE_COMMUNION( "TREE_COMMUNION" ); static const trait_id trait_VOMITOUS( "VOMITOUS" ); static const trait_id trait_WEB_WEAVER( "WEB_WEAVER" ); -@@ -887,6 +888,11 @@ +@@ -860,6 +860,11 @@ if( !mutagen ) { return; } @@ -467,7 +465,7 @@ float mut_power = to_turns( mutagen.get_duration() ) / to_turns ( mutagen.get_int_dur_factor() ); add_msg_if_player( m_debug, "Mutation accumulation: %.1f", mut_power ); -@@ -926,6 +932,10 @@ +@@ -904,6 +904,10 @@ { bool force_bad = one_in( 3 ); bool force_good = false; @@ -481,7 +479,7 @@ --- a/src/npc.cpp +++ b/src/npc.cpp -@@ -116,6 +116,7 @@ +@@ -118,6 +118,7 @@ static const trait_id trait_SAPIOVORE( "SAPIOVORE" ); static const trait_id trait_SCHIZOPHRENIC( "SCHIZOPHRENIC" ); static const trait_id trait_TERRIFYING( "TERRIFYING" ); @@ -489,7 +487,7 @@ static const std::string flag_NPC_SAFE( "NPC_SAFE" ); -@@ -2486,12 +2487,15 @@ +@@ -2492,12 +2492,15 @@ } if( killer == &g->u && ( !guaranteed_hostile() || hit_by_player ) ) { @@ -508,7 +506,7 @@ --- a/src/player_hardcoded_effects.cpp +++ b/src/player_hardcoded_effects.cpp -@@ -114,6 +114,8 @@ +@@ -105,6 +105,8 @@ static const trait_id trait_SEESLEEP( "SEESLEEP" ); static const trait_id trait_SCHIZOPHRENIC( "SCHIZOPHRENIC" ); static const trait_id trait_THRESH_MYCUS( "THRESH_MYCUS" ); @@ -528,7 +526,7 @@ add_msg_if_player( m_bad, _( "Your heart spasms painfully and stops, dragging you back to reality as you die." ) ); } else { -@@ -1095,6 +1097,9 @@ +@@ -1065,6 +1065,9 @@ // Determine the strength of effects or dreams based upon category strength int strength = 0; // Category too weak for any effect or dream if( crossed_threshold() ) { @@ -541,7 +539,7 @@ --- a/src/suffer.cpp +++ b/src/suffer.cpp -@@ -143,6 +143,8 @@ +@@ -153,6 +153,8 @@ static const trait_id trait_TROGLO2( "TROGLO2" ); static const trait_id trait_TROGLO3( "TROGLO3" ); static const trait_id trait_UNSTABLE( "UNSTABLE" ); @@ -550,7 +548,7 @@ static const trait_id trait_VOMITOUS( "VOMITOUS" ); static const trait_id trait_WEB_SPINNER( "WEB_SPINNER" ); static const trait_id trait_WEB_WEAVER( "WEB_WEAVER" ); -@@ -243,7 +246,8 @@ +@@ -251,7 +251,8 @@ void Character::suffer_while_underwater() { @@ -560,7 +558,7 @@ oxygen--; } if( oxygen < 12 && worn_with_flag( "REBREATHER" ) ) { -@@ -742,7 +746,8 @@ +@@ -751,7 +751,8 @@ return; } @@ -570,7 +568,7 @@ suffer_from_sunburn(); } -@@ -768,6 +773,13 @@ +@@ -778,6 +778,13 @@ mod_int_bonus( -4 ); mod_per_bonus( -4 ); } @@ -584,7 +582,7 @@ } std::map Character::bodypart_exposure() -@@ -799,7 +811,8 @@ +@@ -816,7 +816,8 @@ void Character::suffer_from_sunburn() { @@ -594,7 +592,7 @@ return; } -@@ -816,6 +829,12 @@ +@@ -834,6 +834,12 @@ return; } sunlight_effect = _( "The sunlight burns" ); @@ -607,7 +605,7 @@ } // Sunglasses can keep the sun off the eyes. -@@ -893,7 +912,7 @@ +@@ -917,7 +917,7 @@ } // Solar Sensitivity (SUNBURN) trait causes injury to exposed parts @@ -619,7 +617,7 @@ --- a/data/json/field_type.json +++ b/data/json/field_type.json -@@ -303,7 +303,7 @@ +@@ -299,7 +299,7 @@ "dirty_transparency_cache": true, "percent_spread": 10, "outdoor_age_speedup": "0 turns", @@ -628,7 +626,7 @@ "priority": 8, "half_life": "2 minutes", "phase": "gas", -@@ -389,7 +389,7 @@ +@@ -385,7 +385,7 @@ "outdoor_age_speedup": "3 minutes", "dirty_transparency_cache": true, "has_fume": true, @@ -637,7 +635,7 @@ "priority": 8, "half_life": "10 minutes", "phase": "gas", -@@ -418,7 +418,7 @@ +@@ -414,7 +414,7 @@ "outdoor_age_speedup": "0 turns", "dirty_transparency_cache": true, "has_fume": true, @@ -646,7 +644,7 @@ "priority": 8, "half_life": "5 minutes", "phase": "gas", -@@ -464,7 +464,7 @@ +@@ -460,7 +460,7 @@ "wandering_field": "fd_toxic_gas", "gas_absorption_factor": 15, "dirty_transparency_cache": true, @@ -673,7 +671,7 @@ "priority": 8, "half_life": "15 minutes", "phase": "gas", -@@ -1233,7 +1233,7 @@ +@@ -1225,7 +1225,7 @@ "outdoor_age_speedup": "3 minutes", "dirty_transparency_cache": true, "has_fume": true, @@ -682,7 +680,7 @@ "priority": 8, "half_life": "10 minutes", "phase": "gas" -@@ -1253,7 +1253,7 @@ +@@ -1245,7 +1245,7 @@ "outdoor_age_speedup": "1 minutes", "dirty_transparency_cache": true, "has_fume": true, @@ -691,7 +689,7 @@ "priority": 8, "half_life": "30 minutes", "phase": "gas", -@@ -1275,7 +1275,7 @@ +@@ -1267,7 +1267,7 @@ "outdoor_age_speedup": "1 minutes", "dirty_transparency_cache": true, "has_fume": true, @@ -703,7 +701,7 @@ --- a/data/json/flags.json +++ b/data/json/flags.json -@@ -1093,6 +1093,21 @@ +@@ -1117,6 +1117,21 @@ "context": [ "COMESTIBLE" ] }, { @@ -725,7 +723,7 @@ "id": "ALLERGEN_JUNK", "type": "json_flag", "context": [ "COMESTIBLE" ] -@@ -1173,6 +1173,16 @@ +@@ -1197,6 +1197,16 @@ "context": [ ] }, { @@ -760,7 +758,7 @@ --- a/data/json/mutations/mutation_ordering.json +++ b/data/json/mutations/mutation_ordering.json -@@ -77,6 +77,7 @@ +@@ -73,6 +73,7 @@ "TROGLO2", "TROGLO3", "URSINE_FUR", @@ -768,9 +766,9 @@ "VISCOUS" ], "order": 1500 -@@ -185,7 +186,7 @@ +@@ -180,7 +181,7 @@ { "id": [ "FLOWERS" ], "order": 5000 }, - { "id": [ "ELFA_EARS", "FELINE_EARS", "LUPINE_EARS", "RABBIT_EARS", "URSINE_EARS" ], "order": 5500 }, + { "id": [ "ELFA_EARS", "FELINE_EARS", "LUPINE_EARS", "URSINE_EARS" ], "order": 5500 }, { "id": [ "ANTENNAE", "ANTLERS", "CURVED_HORNS", "HORNS", "POINTED_HORNS" ], "order": 6000 }, - { "id": [ "COMPOUND_EYES", "ELFAEYES", "FEL_EYE", "LIZ_EYE" ], "order": 6500 }, + { "id": [ "COMPOUND_EYES", "ELFAEYES", "FEL_EYE", "LIZ_EYE", "VAMP_EYES" ], "order": 6500 }, -- cgit v1.2.1