From 4c9a24e8b116686176ca3f2704d8566a5be09a13 Mon Sep 17 00:00:00 2001 From: jc_gargma Date: Mon, 18 Jan 2021 07:58:49 -0800 Subject: Add revised stop sleeping on tables patch --- PKGBUILD | 7 +++++- jc_stop-sleeping-on-tables.patch | 53 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 jc_stop-sleeping-on-tables.patch diff --git a/PKGBUILD b/PKGBUILD index b9cd62c..07802a1 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -13,7 +13,7 @@ pkgname=(cataclysm-dda cataclysm-dda-tiles) pkgname=cataclysm-dda pkgver=0.E.3 _pkgver=0.E-3 -pkgrel=1.17 +pkgrel=1.18 pkgdesc="A post-apocalyptic roguelike." #url="http://cataclysmrl.blogspot.com/" #url="http://www.cataclysm.glyphgryph.com/" @@ -47,6 +47,7 @@ source=("$pkgname-$_pkgver.tar.gz::https://github.com/CleverRaven/Cataclysm-DDA/ "jc_allow-bio-firestarter-on-smoker.patch" "jc_npcs-eat-when-hungry.patch" "jc_stop-non-faction-npc-sleep-depirvation.patch" + "jc_stop-sleeping-on-tables.patch" "cataclysm-dda-tileset_undeadpeople-legacy.tar.xz::https://library.iserlohn-fortress.net/cataclysm-dda-tileset_undeadpeople-legacy.git/snapshot/cataclysm-dda-tileset_undeadpeople-legacy-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" @@ -73,6 +74,7 @@ b2sums=('7a825d8ce8827ccb45afb6005d4f33c6810e33e2fa375f2f7d1c878565fd61e00362e0d 'c2ff7458d4f71a3c328a49795804b89c75ac6c4f4ec193c899501346afdba9673b8624bf60ffa3aea5256412248ff304e8731914971b074aee644b2c465ac483' 'b256081baa22b6c0f2a56c4151393146451fe119cd724fc4d883331643e420348e6e6c54c4f32e34d287090e917f9223cac23b6275677e4c3d23cf4b38229904' 'ce82294e480ad42f0001c799fd8131b60024b6097653f3c57564c75e54596616e376f0d7f1cf4e54d8c302a61ef164b4323f795bfa19b2c13ab9e927d37f1600' + 'd723fcc6cce65aa296bc519a07a5d003122ad698a73a3d046dac3780ea5a00fef28f78da251bb46f80f2e0577baa26a6ae13cabf525f22a7a742435e95716dae' 'c5397b4b740966e4b75629d98021141686ac3150b3af803e59afa3b062ba561248c77cbf8e2b7f2a97a273e7fbfdd76ab76d6485344318d0cdb5bb374f46e4c3' 'f54bb10b6c5920b22942b1e312c315280afb720d3a897dce9333563cae3343668460d24b7d01bf36768974c729d92177e886f5ee0d22d746b19454a2ab6208fb' 'b9309da09b165fb57e83f84e3584d2479bd3336ed86e181e5df2d27daa92bd55d03d7f3fc226f03696af5f0f32d8e0e7ecd26ae7e50eed0200d0b0feaad07efb') @@ -144,6 +146,9 @@ prepare() { # Fix Non-Player facton NPCs from becoming sleep deprived patch -Np1 -i "$srcdir"/jc_stop-non-faction-npc-sleep-depirvation.patch + + # Fix NPCs preferring tables to cots or woodstoves to the floor + patch -Np1 -i "$srcdir"/jc_stop-sleeping-on-tables.patch } build() { diff --git a/jc_stop-sleeping-on-tables.patch b/jc_stop-sleeping-on-tables.patch new file mode 100644 index 0000000..d60e950 --- /dev/null +++ b/jc_stop-sleeping-on-tables.patch @@ -0,0 +1,53 @@ +--- a/src/character.cpp ++++ b/src/character.cpp +@@ -5328,20 +5328,24 @@ + } + } + // Not in a vehicle, start checking furniture/terrain/traps at this point in decreasing order +- else if( furn_at_pos != f_null ) { ++ else if( furn_at_pos != f_null && furn_at_pos.obj().comfort >= 5 ) { + comfort += 0 + furn_at_pos.obj().comfort; + } + // Web sleepers can use their webs if better furniture isn't available + else if( websleep && web >= 3 ) { + comfort += 1 + static_cast( comfort_level::slightly_comfortable ); ++ } else if( furn_at_pos != f_null && furn_at_pos.obj().comfort >= 4 ) { ++ comfort += 0 + furn_at_pos.obj().comfort; ++ } else if( !trap_at_pos.is_null() ) { ++ comfort += 0 + trap_at_pos.comfort; + } else if( ter_at_pos == t_improvised_shelter ) { + comfort += 0 + static_cast( comfort_level::slightly_comfortable ); +- } else if( ter_at_pos == t_floor || ter_at_pos == t_floor_waxed || ++ } else if( furn_at_pos != f_null && furn_at_pos.obj().comfort >= 1 ) { ++ comfort += 0 + furn_at_pos.obj().comfort; ++ } else if( ter_at_pos == t_carpet_concrete || ter_at_pos == t_carpet_metal || + ter_at_pos == t_carpet_red || ter_at_pos == t_carpet_yellow || + ter_at_pos == t_carpet_green || ter_at_pos == t_carpet_purple ) { + comfort += 1 + static_cast( comfort_level::neutral ); +- } else if( !trap_at_pos.is_null() ) { +- comfort += 0 + trap_at_pos.comfort; + } else { + // Not a comfortable sleeping spot + comfort -= g->m.move_cost( p ); +--- a/src/mapdata.h ++++ b/src/mapdata.h +@@ -407,7 +407,7 @@ + t_thconc_floor, t_thconc_floor_olight, t_strconc_floor, + t_floor, t_floor_waxed, + t_dirtfloor,//Dirt floor(Has roof) +- t_carpet_red, t_carpet_yellow, t_carpet_purple, t_carpet_green, ++ t_carpet_red, t_carpet_yellow, t_carpet_purple, t_carpet_green, t_carpet_concrete, t_carpet_metal, + t_grate, + t_slime, + t_bridge, +--- a/src/mapdata.cpp ++++ b/src/mapdata.cpp +@@ -490,7 +490,7 @@ + t_thconc_floor, t_thconc_floor_olight, t_strconc_floor, + t_floor, t_floor_waxed, + t_dirtfloor,//Dirt floor(Has roof) +- t_carpet_red, t_carpet_yellow, t_carpet_purple, t_carpet_green, ++ t_carpet_red, t_carpet_yellow, t_carpet_purple, t_carpet_green, t_carpet_concrete, t_carpet_metal, + t_linoleum_white, t_linoleum_gray, + t_grate, + t_slime, -- cgit v1.2.1