--- 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,