From c3829543091f66f9a47a02714ae11d7c579950ce Mon Sep 17 00:00:00 2001 From: jc_gargma Date: Sun, 4 Feb 2024 00:30:36 -0800 Subject: Apply hotfixes. -monsters won't attack idle mechsuits -reloading no longer deletes empty containers -look around won't overlap text -no more safe reference error on save and quit -zombies no longer smell through glass --- PKGBUILD | 30 +- ...s-ignore-mechs-that-aren-t-being-piloted-.patch | 27 ++ ...s-reloading-from-deleting-containers-4104.patch | 63 ++++ ...Fix-overlapping-text-in-look-around.-4156.patch | 105 ++++++ hotfix-04_fix-uaf-in-safe-references-4165.patch | 48 +++ ...nce-closed-glass-windows-block-scent-4114.patch | 415 +++++++++++++++++++++ 6 files changed, 687 insertions(+), 1 deletion(-) create mode 100644 hotfix-01_fix-monsters-ignore-mechs-that-aren-t-being-piloted-.patch create mode 100644 hotfix-02_fix-Prevents-reloading-from-deleting-containers-4104.patch create mode 100644 hotfix-03_fix-Fix-overlapping-text-in-look-around.-4156.patch create mode 100644 hotfix-04_fix-uaf-in-safe-references-4165.patch create mode 100644 hotfix-05_feat-balance-closed-glass-windows-block-scent-4114.patch diff --git a/PKGBUILD b/PKGBUILD index 3defce2..098d590 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -18,7 +18,7 @@ _pkgname=Cataclysm-BN pkgver=0.5.2 #pkgver=202310040030 #_pkgver=2023-10-04-0030 -pkgrel=4 +pkgrel=5 pkgdesc="A post-apocalyptic roguelike." #url="http://cataclysmrl.blogspot.com/" #url="http://www.cataclysm.glyphgryph.com/" @@ -59,6 +59,12 @@ source=("$pkgname-$pkgver.tar.gz::https://github.com/cataclysmbnteam/Cataclysm-B "revert-27_fix-NPCs-keep-their-splints-on-3589.patch" "revert-28_feat-content-semi-plausible-smokeless-gunpowder-reci.patch" + "hotfix-01_fix-monsters-ignore-mechs-that-aren-t-being-piloted-.patch" + "hotfix-02_fix-Prevents-reloading-from-deleting-containers-4104.patch" + "hotfix-03_fix-Fix-overlapping-text-in-look-around.-4156.patch" + "hotfix-04_fix-uaf-in-safe-references-4165.patch" + "hotfix-05_feat-balance-closed-glass-windows-block-scent-4114.patch" + "ammo-10_ammo-order-fix.patch" "ammo-11_fix-volume-40mm.patch" "ammo-12_fix-20x66mm-loudness.patch" @@ -178,6 +184,11 @@ b2sums=('9daaba287ef99aa3b33b6f3fbb129b97a2b4dcc265dd7affa08ccee1bdd41b4568e061a '6735377f8611451333c8d7f009001aa652af9edeeddfcd0cd163d03ea84607803d260eb1338fa35f688954c3cb75bb7bdc41a5ad0497771815dd16afa86d54b3' '13e61e9144f4d7325c409553c72ea1fca07009939b53491ea24d208fba7539e7f09063911c76e7d45f7e6bda12a61bbde17a75c319a0b79518e6639d520fa4ef' 'c4ee693418d394e3b946aa2b9a5f11c04bb0ff11234f830056963f4a755357552f9a769688a086f56f492ed479cf1a44032cfde45c03627adc5fb55f88f806e6' + '32714f9869cbf44847c5cd2d4b4d6e69a47450a3dd2bd92a195686d938162a86717c4e1c28dab48d8b62fbe0271e0eead5ea9c727aa547787643172fe3b48751' + '54ed3733d646b549b4db8eded9aeb08de1df328c63c4a535971cf03de172349421b4e96d495995ea5abd2cf63b2df46c2fee9d526eea414bd9463e920802fe78' + '29bc7e4f9ca7437930a43455be8d1166ff2b7bbaaa58209692d4a15fa7c4b19a4b185881d9a1c5abafe363de31f31fe44585da24dbeecaba183e884539443228' + 'af8d397d3b42ec0ff461337c19e470dd05b367a362cff092dbe6083841fee062cf899799e69db11fba05179775ac398f8ef3bf79a9f0e25b8774350451e73363' + 'b388513e6e2d67b3c6ae4f7c27d59bcd78fac9909e887fa4c58932052c0f3355b1dad23abfe404ca2bec82e278759e5be5982abb8b5b1dc7c908c51f7a510d05' 'df26a597afe46a35e07f02c32839e2f7f57cf4d4d9bf0e62eb645d1b720f601fe2e9787462a0ab0ba8b788c727b846272a4ca6ecf81f96bb058d070b53633dcc' 'ba2964e64df20167c722e71951db28d039e637397a6be2e7f5312da10ab3c57a1982ec1ae1c37dd361317292b8c519f678472eb06360d4368294e0b636704c15' '365e1ac9f9ee636f2578f6fd8ab16b6460894cb9b76cf0aee5d8a55f42d882d6ee0b04e80194f4c346bfdb0778e11e30b8c03541b4d351602ccfd63cee7e3cf0' @@ -291,6 +302,23 @@ prepare() { # # # Hotfixes echo "Applying hotfixes" + + # Fix monsters attacking idle mechsuits + patch -Np1 --no-backup-if-mismatch -i "$srcdir"/hotfix-01_fix-monsters-ignore-mechs-that-aren-t-being-piloted-.patch + + # Fix containers being deleted when reloading empties a container + patch -Np1 --no-backup-if-mismatch -i "$srcdir"/hotfix-02_fix-Prevents-reloading-from-deleting-containers-4104.patch + + # Fix overlapping text when looking around + patch -Np1 --no-backup-if-mismatch -i "$srcdir"/hotfix-03_fix-Fix-overlapping-text-in-look-around.-4156.patch + + # Fix safe reference error on save and quit + patch -Np1 --no-backup-if-mismatch -i "$srcdir"/hotfix-04_fix-uaf-in-safe-references-4165.patch + + # Fix zombies having a psychic sense of smell + patch -Np1 --no-backup-if-mismatch -i "$srcdir"/hotfix-05_feat-balance-closed-glass-windows-block-scent-4114.patch + + # # Adjust default mods patch -Np1 --no-backup-if-mismatch -i "$srcdir"/src-20_fix-default-mods.patch diff --git a/hotfix-01_fix-monsters-ignore-mechs-that-aren-t-being-piloted-.patch b/hotfix-01_fix-monsters-ignore-mechs-that-aren-t-being-piloted-.patch new file mode 100644 index 0000000..a03a172 --- /dev/null +++ b/hotfix-01_fix-monsters-ignore-mechs-that-aren-t-being-piloted-.patch @@ -0,0 +1,27 @@ +From 8618c68bafe113d8c6e301e8eb23d7df2292d91d Mon Sep 17 00:00:00 2001 +From: Chaosvolt +Date: Tue, 9 Jan 2024 17:56:09 -0600 +Subject: [PATCH] fix: monsters ignore mechs that aren't being piloted (#4083) + +--- + src/monster.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/monster.cpp b/src/monster.cpp +index 5cadb78107f..1c8c755f760 100644 +--- a/src/monster.cpp ++++ b/src/monster.cpp +@@ -1223,6 +1223,10 @@ Attitude monster::attitude_to( const Creature &other ) const + if( m == this ) { + return Attitude::A_FRIENDLY; + } ++ // Ignore inactive mechs ++ if( m->has_flag( MF_RIDEABLE_MECH ) && !m->has_effect( effect_ridden ) ) { ++ return Attitude::A_NEUTRAL; ++ } + + static const string_id faction_zombie( "zombie" ); + auto faction_att = faction.obj().attitude( m->faction ); +-- +2.43.0 + diff --git a/hotfix-02_fix-Prevents-reloading-from-deleting-containers-4104.patch b/hotfix-02_fix-Prevents-reloading-from-deleting-containers-4104.patch new file mode 100644 index 0000000..5414c95 --- /dev/null +++ b/hotfix-02_fix-Prevents-reloading-from-deleting-containers-4104.patch @@ -0,0 +1,63 @@ +From db0b41135105d165ead640d4d4d46d220491c873 Mon Sep 17 00:00:00 2001 +From: joveeater +Date: Sat, 13 Jan 2024 12:21:59 +0000 +Subject: [PATCH] fix: Prevents reloading from deleting containers (#4104) + +* Prevents reloading from deleting containers + +* style(autofix.ci): automated formatting + +--------- + +Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> +--- + src/item.cpp | 24 ++++++++++-------------- + 1 file changed, 10 insertions(+), 14 deletions(-) + +diff --git a/src/item.cpp b/src/item.cpp +index 25051aeb76c..b4667994e17 100644 +--- a/src/item.cpp ++++ b/src/item.cpp +@@ -8186,9 +8186,7 @@ bool item::reload( player &u, item &loc, int qty ) + } + } + +- detached_ptr to_reload = item::spawn( *ammo ); +- to_reload->charges = qty; +- ammo->charges -= qty; ++ detached_ptr to_reload = ammo->split( qty ); + bool merged = false; + for( item *it : contents.all_items_top() ) { + if( it->merge_charges( std::move( to_reload ) ) ) { +@@ -8246,19 +8244,17 @@ bool item::reload( player &u, item &loc, int qty ) + ammo->charges -= qty; + charges += qty; + } +- } +- +- // we have transfered ammo from the container to the item +- // therefore, we erase the 0-charge item inside container +- // TODO: why don't we just remove 0-charge items? +- if( ammo->charges == 0 && !ammo->has_flag( flag_SPEEDLOADER ) ) { +- if( container != nullptr && !container->contents.empty() ) { +- container->remove_item( container->contents.front() ); +- u.inv_restack( ); // emptied containers do not stack with non-empty ones +- } else { +- loc.detach(); ++ // we have transfered ammo from the container to the item ++ // therefore, we erase the 0-charge item inside container ++ // TODO: why don't we just remove 0-charge items? ++ if( ammo->charges == 0 && !ammo->has_flag( flag_SPEEDLOADER ) ) { ++ ammo->detach(); ++ if( container != nullptr ) { ++ u.inv_restack(); ++ } + } + } ++ + return true; + } + +-- +2.43.0 + diff --git a/hotfix-03_fix-Fix-overlapping-text-in-look-around.-4156.patch b/hotfix-03_fix-Fix-overlapping-text-in-look-around.-4156.patch new file mode 100644 index 0000000..586a7b3 --- /dev/null +++ b/hotfix-03_fix-Fix-overlapping-text-in-look-around.-4156.patch @@ -0,0 +1,105 @@ +From 273f51063c1c1cf254c9ad0184655418f4126535 Mon Sep 17 00:00:00 2001 +From: richardnlarge +Date: Wed, 24 Jan 2024 20:23:11 -0500 +Subject: [PATCH] fix: Fix overlapping text in look-around. (#4156) + +* Prevent overlapping lines in look-around panel. + +Lines were being drawn on top of one another, making text unreadable. + +fixes #4140, fixes #3945 + +* Fix cursor placement for printing visibility text. + +"point" constructor takes (x, y) and was being fed (y, x). +--- + src/game.cpp | 35 ++++++++++++++++------------------- + 1 file changed, 16 insertions(+), 19 deletions(-) + +diff --git a/src/game.cpp b/src/game.cpp +index 9d68459be86..47c2c92b189 100644 +--- a/src/game.cpp ++++ b/src/game.cpp +@@ -5863,7 +5863,7 @@ void game::print_visibility_info( const catacurses::window &w_look, int column, + break; + } + +- mvwprintw( w_look, point( line, column ), visibility_message ); ++ mvwprintw( w_look, point( column, line ), visibility_message ); + line += 2; + } + +@@ -5872,7 +5872,6 @@ void game::print_terrain_info( const tripoint &lp, const catacurses::window &w_l + int &line ) + { + const int max_width = getmaxx( w_look ) - column - 1; +- int lines; + + const auto fmt_tile_info = []( const tripoint & lp ) { + map &here = get_map(); +@@ -5897,23 +5896,23 @@ void game::print_terrain_info( const tripoint &lp, const catacurses::window &w_l + std::string tile = string_format( "(%s) %s", area_name, fmt_tile_info( lp ) ); + + if( m.impassable( lp ) ) { +- lines = fold_and_print( w_look, point( column, line ), max_width, c_light_gray, ++ line += fold_and_print( w_look, point( column, line ), max_width, c_light_gray, + _( "%s; Impassable" ), + tile ); + } else { +- lines = fold_and_print( w_look, point( column, line ), max_width, c_light_gray, ++ line += fold_and_print( w_look, point( column, line ), max_width, c_light_gray, + _( "%s; Movement cost %d" ), + tile, m.move_cost( lp ) * 50 ); + + const auto ll = get_light_level( std::max( 1.0, + LIGHT_AMBIENT_LIT - m.ambient_light_at( lp ) + 1.0 ) ); +- mvwprintw( w_look, point( column, ++lines ), _( "Lighting: " ) ); ++ mvwprintw( w_look, point( column, line++ ), _( "Lighting: " ) ); + wprintz( w_look, ll.second, ll.first ); + } + + std::string signage = m.get_signage( lp ); + if( !signage.empty() ) { +- trim_and_print( w_look, point( column, ++lines ), max_width, c_dark_gray, ++ trim_and_print( w_look, point( column, line++ ), max_width, c_dark_gray, + // NOLINTNEXTLINE(cata-text-style): the question mark does not end a sentence + u.has_trait( trait_ILLITERATE ) ? _( "Sign: ???" ) : _( "Sign: %s" ), signage ); + } +@@ -5924,23 +5923,21 @@ void game::print_terrain_info( const tripoint &lp, const catacurses::window &w_l + std::string tile_below = fmt_tile_info( below ); + + if( !m.has_floor_or_support( lp ) ) { +- fold_and_print( w_look, point( column, ++lines ), max_width, c_dark_gray, +- _( "Below: %s; No support" ), +- tile_below ); ++ line += fold_and_print( w_look, point( column, line ), max_width, c_dark_gray, ++ _( "Below: %s; No support" ), ++ tile_below ); + } else { +- fold_and_print( w_look, point( column, ++lines ), max_width, c_dark_gray, +- _( "Below: %s; Walkable" ), +- tile_below ); ++ line += fold_and_print( w_look, point( column, line ), max_width, c_dark_gray, ++ _( "Below: %s; Walkable" ), ++ tile_below ); + } + } + +- int map_features = fold_and_print( w_look, point( column, ++lines ), max_width, c_dark_gray, +- m.features( lp ) ); +- fold_and_print( w_look, point( column, ++lines ), max_width, c_light_gray, _( "Coverage: %d%%" ), +- m.coverage( lp ) ); +- if( line < lines ) { +- line = lines + map_features - 1; +- } ++ line += fold_and_print( w_look, point( column, line ), max_width, c_dark_gray, ++ m.features( lp ) ); ++ line += fold_and_print( w_look, point( column, line ), max_width, c_light_gray, ++ _( "Coverage: %d%%" ), ++ m.coverage( lp ) ); + } + + void game::print_fields_info( const tripoint &lp, const catacurses::window &w_look, int column, +-- +2.43.0 + diff --git a/hotfix-04_fix-uaf-in-safe-references-4165.patch b/hotfix-04_fix-uaf-in-safe-references-4165.patch new file mode 100644 index 0000000..adbaaf0 --- /dev/null +++ b/hotfix-04_fix-uaf-in-safe-references-4165.patch @@ -0,0 +1,48 @@ +From 05a7e9e3f647cf77c2782f8f24b05a8d37117ccc Mon Sep 17 00:00:00 2001 +From: joveeater +Date: Sat, 27 Jan 2024 10:39:58 +0000 +Subject: [PATCH] fix: uaf in safe references (#4165) + +* Fixes a uaf in safe references + +* style(autofix.ci): automated formatting + +--------- + +Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> +--- + src/safe_reference.h | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/safe_reference.h b/src/safe_reference.h +index 7334885bc67..552aeb6e300 100644 +--- a/src/safe_reference.h ++++ b/src/safe_reference.h +@@ -154,6 +154,7 @@ class safe_reference + } else { + rec->mem_count--; + rec = rec->target.redirect; ++ rec->mem_count++; + } + } + } +@@ -368,13 +369,12 @@ class safe_reference + if( sec_rec->id == ID_NONE ) { + sec_rec->id = REDIRECTED_MASK; + sec_rec->target.redirect = pri_rec; +- } +- +- //They both have an id +- if( pri_rec->id != ID_NONE && sec_rec->id != ID_NONE ) { ++ pri_rec->mem_count++; ++ } else { + //This is the worse case, we actually need a redirect + sec_rec->id = sec_rec->id | REDIRECTED_MASK; + sec_rec->target.redirect = pri_rec; ++ pri_rec->mem_count++; + } + } + +-- +2.43.0 + diff --git a/hotfix-05_feat-balance-closed-glass-windows-block-scent-4114.patch b/hotfix-05_feat-balance-closed-glass-windows-block-scent-4114.patch new file mode 100644 index 0000000..cd77189 --- /dev/null +++ b/hotfix-05_feat-balance-closed-glass-windows-block-scent-4114.patch @@ -0,0 +1,415 @@ +From 0d6982046ab8f46207d99185c39474b9e9d08c20 Mon Sep 17 00:00:00 2001 +From: RoyalFox <112293514+RoyalFox2140@users.noreply.github.com> +Date: Mon, 15 Jan 2024 20:30:09 -0500 +Subject: [PATCH] feat(balance): closed glass windows block scent (#4114) + +* no_scent added to glass windows + +* style(autofix.ci): automated formatting + +--------- + +Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> +--- + .../terrain-windows.json | 91 +++++++++---------- + 1 file changed, 43 insertions(+), 48 deletions(-) + +diff --git a/data/json/furniture_and_terrain/terrain-windows.json b/data/json/furniture_and_terrain/terrain-windows.json +index 07727f607d2..ca50fc1e6f3 100644 +--- a/data/json/furniture_and_terrain/terrain-windows.json ++++ b/data/json/furniture_and_terrain/terrain-windows.json +@@ -9,7 +9,7 @@ + "move_cost": 0, + "coverage": 60, + "roof": "t_flat_roof", +- "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "REDUCE_SCENT", "BARRICADABLE_WINDOW", "CONNECT_TO_WALL", "BLOCK_WIND" ], ++ "flags": [ "TRANSPARENT", "FLAMMABLE", "NOITEM", "NO_SCENT", "BARRICADABLE_WINDOW", "CONNECT_TO_WALL", "BLOCK_WIND" ], + "deconstruct": { "ter_set": "t_window_empty", "items": [ { "item": "glass_sheet", "count": 1 } ] }, + "bash": { + "str_min": 3, +@@ -142,7 +142,7 @@ + "symbol": "\"", + "color": "dark_gray", + "move_cost": 0, +- "delete": { "flags": [ "TRANSPARENT", "REDUCE_SCENT", "BARRICADABLE_WINDOW", "CONNECT_TO_WALL" ] }, ++ "delete": { "flags": [ "TRANSPARENT", "NO_SCENT", "BARRICADABLE_WINDOW", "CONNECT_TO_WALL" ] }, + "extend": { "flags": [ "WALL" ] }, + "bash": { + "items": [ { "item": "glass_shard", "count": [ 1, 3 ] } ], +@@ -182,7 +182,7 @@ + "color": "light_gray", + "move_cost": 4, + "extend": { "flags": [ "OPENCLOSE_INSIDE", "MOUNTABLE", "THIN_OBSTACLE", "SMALL_PASSAGE", "WINDOW" ] }, +- "delete": { "flags": [ "REDUCE_SCENT", "BARRICADABLE_WINDOW", "BLOCK_WIND" ] }, ++ "delete": { "flags": [ "NO_SCENT", "BARRICADABLE_WINDOW", "BLOCK_WIND" ] }, + "curtain_transform": "t_window_no_curtains", + "examine_action": "curtains", + "close": "t_window_domestic", +@@ -206,7 +206,7 @@ + "move_cost": 0, + "coverage": 95, + "extend": { "flags": [ "OPENCLOSE_INSIDE", "BARRICADABLE_WINDOW_CURTAINS", "WINDOW" ] }, +- "delete": { "flags": [ "TRANSPARENT", "REDUCE_SCENT", "BARRICADABLE_WINDOW" ] }, ++ "delete": { "flags": [ "TRANSPARENT", "BARRICADABLE_WINDOW" ] }, + "curtain_transform": "t_window_no_curtains", + "open": "t_window_domestic", + "examine_action": "curtains", +@@ -361,7 +361,7 @@ + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", +- "flags": [ "FLAMMABLE", "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "BLOCK_WIND" ], ++ "flags": [ "FLAMMABLE", "NOITEM", "NO_SCENT", "CONNECT_TO_WALL", "BLOCK_WIND" ], + "bash": { + "str_min": 3, + "str_max": 30, +@@ -384,7 +384,7 @@ + "move_cost": 0, + "coverage": 95, + "roof": "t_flat_roof", +- "flags": [ "FLAMMABLE", "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "BLOCK_WIND" ], ++ "flags": [ "FLAMMABLE", "NOITEM", "NO_SCENT", "CONNECT_TO_WALL", "BLOCK_WIND" ], + "bash": { + "str_min": 12, + "str_max": 30, +@@ -432,7 +432,7 @@ + "message": "You finish cutting the metal.", + "byproducts": [ { "item": "rebar", "count": [ 1, 4 ] } ] + }, +- "flags": [ "NOITEM", "REDUCE_SCENT", "CONNECT_TO_WALL", "BLOCK_WIND" ], ++ "flags": [ "NOITEM", "NO_SCENT", "CONNECT_TO_WALL", "BLOCK_WIND" ], + "oxytorch": { + "result": "t_window_empty", + "duration": "4 seconds", +@@ -543,15 +543,7 @@ + }, + "roof": "t_flat_roof", + "oxytorch": { "result": "t_window_domestic", "duration": "9 seconds", "byproducts": [ { "item": "rebar", "count": [ 1, 2 ] } ] }, +- "flags": [ +- "NOITEM", +- "OPENCLOSE_INSIDE", +- "BARRICADABLE_WINDOW_CURTAINS", +- "REDUCE_SCENT", +- "CONNECT_TO_WALL", +- "BLOCK_WIND", +- "WINDOW" +- ], ++ "flags": [ "NOITEM", "OPENCLOSE_INSIDE", "BARRICADABLE_WINDOW_CURTAINS", "NO_SCENT", "CONNECT_TO_WALL", "BLOCK_WIND", "WINDOW" ], + "curtain_transform": "t_window_bars", + "examine_action": "curtains", + "open": "t_window_bars_domestic", +@@ -593,7 +585,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW_CURTAINS", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND" + ], +@@ -625,7 +617,7 @@ + "color": "light_green", + "move_cost": 0, + "roof": "t_flat_roof", +- "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "BARRICADABLE_WINDOW", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], ++ "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "NO_SCENT", "BARRICADABLE_WINDOW", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 100, + "str_max": 400, +@@ -644,7 +636,7 @@ + "color": "light_red", + "move_cost": 0, + "roof": "t_flat_roof", +- "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "BARRICADABLE_WINDOW", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], ++ "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "NO_SCENT", "BARRICADABLE_WINDOW", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 100, + "str_max": 400, +@@ -663,7 +655,7 @@ + "color": "light_blue", + "move_cost": 0, + "roof": "t_flat_roof", +- "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "BARRICADABLE_WINDOW", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], ++ "flags": [ "NOITEM", "SUPPORTS_ROOF", "WALL", "NO_SCENT", "BARRICADABLE_WINDOW", "CONNECT_TO_WALL", "MINEABLE", "BLOCK_WIND" ], + "bash": { + "str_min": 100, + "str_max": 400, +@@ -701,7 +693,7 @@ + "BARRICADABLE_WINDOW", + "THIN_OBSTACLE", + "BLOCK_WIND", +- "REDUCE_SCENT", ++ "NO_SCENT", + "WINDOW" + ], + "deconstruct": { +@@ -743,7 +735,7 @@ + "message": "You finish cutting the metal.", + "byproducts": [ { "item": "pipe", "count": [ 1, 12 ] }, { "item": "sheet_metal", "count": 4 } ] + }, +- "flags": [ "NOITEM", "CONNECT_TO_WALL", "THIN_OBSTACLE", "BARRICADABLE_WINDOW_CURTAINS", "BLOCK_WIND", "REDUCE_SCENT", "WINDOW" ], ++ "flags": [ "NOITEM", "CONNECT_TO_WALL", "THIN_OBSTACLE", "BARRICADABLE_WINDOW_CURTAINS", "BLOCK_WIND", "NO_SCENT", "WINDOW" ], + "curtain_transform": "t_window_bars", + "examine_action": "curtains", + "open": "t_metal_grate_window_with_curtain_open", +@@ -782,7 +774,7 @@ + "THIN_OBSTACLE", + "BARRICADABLE_WINDOW_CURTAINS", + "BLOCK_WIND", +- "REDUCE_SCENT", ++ "NO_SCENT", + "WINDOW" + ], + "oxytorch": { +@@ -969,7 +961,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND" + ], +@@ -1047,7 +1039,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW_CURTAINS", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND", + "WINDOW" +@@ -1093,7 +1085,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW_CURTAINS", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND" + ], +@@ -1186,7 +1178,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND" + ], +@@ -1264,7 +1256,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW_CURTAINS", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND", + "WINDOW" +@@ -1310,7 +1302,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW_CURTAINS", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND" + ], +@@ -1403,7 +1395,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND" + ], +@@ -1481,7 +1473,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW_CURTAINS", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND", + "WINDOW" +@@ -1527,7 +1519,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW_CURTAINS", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND" + ], +@@ -1620,7 +1612,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND" + ], +@@ -1699,7 +1691,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW_CURTAINS", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND", + "WINDOW" +@@ -1745,6 +1737,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "MOUNTABLE", ++ "NO_SCENT", + "BARRICADABLE_WINDOW_CURTAINS", + "CONNECT_TO_WALL", + "THIN_OBSTACLE", +@@ -1840,7 +1833,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND" + ], +@@ -1918,7 +1911,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW_CURTAINS", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND", + "WINDOW" +@@ -1964,7 +1957,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW_CURTAINS", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND" + ], +@@ -2057,7 +2050,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND" + ], +@@ -2135,7 +2128,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW_CURTAINS", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND", + "WINDOW" +@@ -2181,6 +2174,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "MOUNTABLE", ++ "NO_SCENT", + "BARRICADABLE_WINDOW_CURTAINS", + "CONNECT_TO_WALL", + "THIN_OBSTACLE", +@@ -2276,7 +2270,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND" + ], +@@ -2352,7 +2346,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW_CURTAINS", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND", + "WINDOW" +@@ -2398,7 +2392,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW_CURTAINS", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND" + ], +@@ -2491,7 +2485,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND" + ], +@@ -2569,7 +2563,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW_CURTAINS", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND", + "WINDOW" +@@ -2663,6 +2657,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "MOUNTABLE", ++ "NO_SCENT", + "BARRICADABLE_WINDOW_CURTAINS", + "CONNECT_TO_WALL", + "THIN_OBSTACLE", +@@ -3167,7 +3162,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND" + ], +@@ -3244,7 +3239,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW_CURTAINS", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND", + "WINDOW" +@@ -3290,7 +3285,7 @@ + "NOITEM", + "OPENCLOSE_INSIDE", + "BARRICADABLE_WINDOW_CURTAINS", +- "REDUCE_SCENT", ++ "NO_SCENT", + "CONNECT_TO_WALL", + "BLOCK_WIND" + ], +@@ -3376,7 +3371,7 @@ + "color": "light_gray", + "move_cost": 0, + "roof": "t_metal_flat_roof", +- "flags": [ "TRANSPARENT", "NOITEM", "CONNECT_TO_WALL", "THIN_OBSTACLE", "BLOCK_WIND", "REDUCE_SCENT" ], ++ "flags": [ "TRANSPARENT", "NOITEM", "CONNECT_TO_WALL", "THIN_OBSTACLE", "BLOCK_WIND", "NO_SCENT" ], + "bash": { + "str_min": 50, + "str_max": 75, +-- +2.43.0 + -- cgit v1.2.1