summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjc_gargma <jc_gargma@iserlohn-fortress.net>2021-01-18 07:58:49 -0800
committerjc_gargma <jc_gargma@iserlohn-fortress.net>2021-01-18 07:58:49 -0800
commit4c9a24e8b116686176ca3f2704d8566a5be09a13 (patch)
tree3bfaa93ec6e572c8286b0739b041a249dd36f288
parentRevert the npc sleep on tables patch (diff)
downloadcataclysm-bn-4c9a24e8b116686176ca3f2704d8566a5be09a13.tar.xz
Add revised stop sleeping on tables patch
-rw-r--r--PKGBUILD7
-rw-r--r--jc_stop-sleeping-on-tables.patch53
2 files changed, 59 insertions, 1 deletions
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<int>( 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<int>( 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<int>( 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,