Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Catch up #1

Merged
merged 190 commits into from
Oct 11, 2019
Merged

Catch up #1

merged 190 commits into from
Oct 11, 2019

Conversation

Ramza13
Copy link
Owner

@Ramza13 Ramza13 commented Oct 11, 2019

Summary

Purpose of change

Describe the solution

Describe alternatives you've considered

Additional context

Hymore246 and others added 30 commits October 2, 2019 16:26
Table of contents generated with [markdown-toc](https://ecotrust-canada.github.io/markdown-toc/).
includes palettes for rock, log, wood, wattle and daub, and standard t_wall.
Martial Arts Rebalance for Scorpion Kung Fu
Ferns prompt to harvest, underbrush does not. In a tileset without a specific fern tile, this leads to frustration when trying to forage underbrush. This should fix that.
…rrain

Fix match type for shore extendable terrain
Change fern "looks-like" to t_shrub
continue breaking up furniture.json
mlangsdorf and others added 2 commits October 10, 2019 12:46
Add some minimal tileset documentation.  Add some information on
how tilesheets are indexed.

Describe how tools/gfx_tools/decompose.py and tools/gfx_tools/compose.py
work.

Include some recommendations for setting up composite tilesets.
tilesets: add tools to automatically create tilesheets
@Ramza13 Ramza13 merged commit 49b5652 into Ramza13:master Oct 11, 2019
Ramza13 pushed a commit that referenced this pull request Oct 22, 2019
Ramza13 pushed a commit that referenced this pull request Nov 1, 2019
Merge the torrent of commits from the last few months
Ramza13 pushed a commit that referenced this pull request Dec 7, 2019
Ramza13 pushed a commit that referenced this pull request Dec 21, 2019
Ramza13 pushed a commit that referenced this pull request Dec 21, 2019
Ramza13 pushed a commit that referenced this pull request Jan 12, 2020
Adding Grape Seeds to the cooking oil recipe
Ramza13 pushed a commit that referenced this pull request Apr 12, 2020
Ramza13 pushed a commit that referenced this pull request Apr 12, 2020
Ramza13 pushed a commit that referenced this pull request May 31, 2020
Ramza13 pushed a commit that referenced this pull request Oct 10, 2020
Ramza13 pushed a commit that referenced this pull request Nov 22, 2020
The Lengthening #1 - Kitchen Tools & Knives
Ramza13 pushed a commit that referenced this pull request Nov 22, 2020
Ramza13 pushed a commit that referenced this pull request Aug 13, 2021
Perform two optimizations on Character::bodytemp
1. Store the items worn on each bodypart, and refer to that instead of
   iterating through all worn items and selecting the ones for the
   relevant body part multiple times.
2. Adjust some functions to run once, and return the data for all body
   parts. This optimization has a fair bit of overlap with #1, but I
   think both have value

There should be no behavioural changes.
Ramza13 pushed a commit that referenced this pull request Oct 16, 2021
Ramza13 pushed a commit that referenced this pull request Jan 7, 2022
Ramza13 pushed a commit that referenced this pull request Apr 28, 2022
Ramza13 pushed a commit that referenced this pull request Nov 5, 2022
* Update scrap_trader.json

* Post-purchase screen update

* Scrapper sells via shop instead of dialogue

* Specialty metals update

* Tuning

* Fixed pricing

* Scrap merchant gets his own outfit and class

* Carried

* Linting

* Pricing adjustments

* Uyen Tran and Doctor now merchants

* Linting

* Update scrap_trader.json

* Discourage players from buying possessions

* Cash register not for sale

* Linting

* Removes cash register custom price

* No spawning with cash register unless from mapgen

* Mapgen Update #1

* Update fortified_scrap_yard.json

* More defensive tools for scrapper

* Tow Truck Variant, Appliances, Furniture, Remodel

* Coat rack, mechanics skill, tools

* Utility shelf, zones reorganization

* Decrease scrap count

* Lint

* lint

* Coordinates updates, tire change, skills

* Swimmin

* Minor changes

* Wheels
Ramza13 pushed a commit that referenced this pull request Jul 6, 2023
* Modernize survivor boots

* commae

* Apply suggestions from code review

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* recipes #1

* Update feet.json

* Update custom_boots.json

* a fix

* fixes

* thickness

* recipe stuff

* Apply suggestions from code review

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update feet.json

* Apply suggestions from code review

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* xl and xs recipes

* fixes

* nylon->leather

* nylon->leather

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Ramza13 pushed a commit that referenced this pull request Jul 6, 2023
…n#66347)

* increase penalties to dispersion at low skills.

* make skill effect on base_aim_speed_cap frontloaded

* Update src/character.cpp

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* make aiming a combo of limb scores

* Low marksman skill makes it harder to reorient your aim

* add a final divisor to aim speed based on skill

* Update src/character.cpp

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* attempt #1 to fix this test

* test fix

* more test fixes

* more fixes

* Update ranged_balance_test.cpp

* Update ranged_balance_test.cpp

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Ramza13 pushed a commit that referenced this pull request Aug 13, 2023
…63590)

* Prof Biology added

* Update data/mods/Megafauna/monsters/mf_domestic.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* First steps defining weakpoints

* The eyes #1

* Update data/mods/Megafauna/mf_weakpoint_sets.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Basic weakpoints and linting

* fix bad language

* Update data/mods/Megafauna/proficiencies/mf_weakpoints.json

* Update data/mods/Megafauna/proficiencies/mf_weakpoints.json

* Update data/mods/Megafauna/mf_weakpoint_sets.json

---------

Co-authored-by: merrygin <smitzjak@hu-berlin.de>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Maleclypse <54345792+Maleclypse@users.noreply.github.com>
Co-authored-by: David Seguin <davidseguin@live.ca>
Ramza13 pushed a commit that referenced this pull request Dec 8, 2023
* Update recipe_deconstruction.json

* Update recipe_deconstruction.json

* Update recipe_deconstruction.json

* Add myself to comment commands list

* Add the stuff

* Update data/mods/Defense_Mode/mapgen/survivor_forest_camp.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update data/mods/Defense_Mode/specials.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Bugfixer #1

* Add the overmap terrain entry

* Update eocs.json

* Use more default start location IDs, some to fit.

* Fix an ID typo

* Some om_special fixes

* More om_special fixes

* Update data/json/npcs/missiondef.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update data/json/npcs/other/NPC_pizzaiolo.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Final bug fix

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Ramza13 pushed a commit that referenced this pull request Dec 10, 2023
be more specific about what writing "Fixes: #1" does, it closes the
linked issue if your PR is merged

comment commands regex can get... elaborate add a comment with an
example where it gets complex, also indicate the maintainer and curator
of the comment commands action
Ramza13 pushed a commit that referenced this pull request Dec 10, 2023
* Prevents game occasionally seemingly hanging when moving to new submaps

The reason for the previous problem was an infinite loop caused by:
1. `map::spawn_monsters_submap` for-loops the list of `current_submap->spawns`
2. for every spawned monster, it calls `monster::on_load`
3. `monster::on_load` calls `monster::try_reproduce`, which in turn calls
   `map::add_spawn`
4. So a new spawn is added, thus invalidating the iterator used in step 1
5. Undefined behavior caused by using invaliated iterators.

On my compiler (gcc 13.2.0), the above problem had the following effect:
* The reference `spawn_point &i` pointed to something totally different, so
  that in particular, `i.count` had garbage values
* Instead of `i.count` being reasonable values such as `3` or `1`, the above
  undefined behavior made it have values such as `925969776` or `-632214304`
* `i.count` is the upper bound for the inner for-loop in
  `map::spawn_monsters_submap`, so depending on the garbage value, it might
  seem like an infinite loop.

Stacktrace of app when frozen and problem happened:
```
 #0  0x000055a1eaf36dcb in creature_tracker::find(coords::coord_point<tripoint, (coords::origin)1, (coords::scale)0> const&) const ()
 #1  0x000055a1eaf39253 in Creature* creature_tracker::creature_at<Creature>(coords::coord_point<tripoint, (coords::origin)1, (coords::scale)0> const&, bool) ()
 #2  0x000055a1eaf393b5 in Creature* creature_tracker::creature_at<Creature>(tripoint const&, bool) ()
 #3  0x000055a1eb357a53 in map::spawn_monsters_submap(tripoint const&, bool, bool)::{lambda(tripoint const&)#1}::operator()(tripoint const&) const ()
 #4  0x000055a1eb3a976e in random_point(tripoint_range<tripoint> const&, std::function<bool (tripoint const&)> const&) ()
 #5  0x000055a1eb37dd2d in map::spawn_monsters_submap(tripoint const&, bool, bool) ()
 #6  0x000055a1eb37de77 in map::spawn_monsters(bool, bool) ()
 CleverRaven#7  0x000055a1eb093981 in game::update_map(int&, int&, bool) ()
 CleverRaven#8  0x000055a1eb094451 in game::update_map(Character&, bool) ()
 CleverRaven#9  0x000055a1eb09530f in game::place_player(tripoint const&, bool) ()
 CleverRaven#10 0x000055a1eb0b3a0e in game::walk_move(tripoint const&, bool, bool) ()
 CleverRaven#11 0x000055a1ead27490 in avatar_action::move(avatar&, map&, tripoint const&) ()
 CleverRaven#12 0x000055a1eb0f338c in game::do_regular_action(action_id&, avatar&, std::optional<tripoint> const&) ()
 CleverRaven#13 0x000055a1eb0f6e63 in game::handle_action() ()
 CleverRaven#14 0x000055a1eafbd9ea in do_turn() ()
 CleverRaven#15 0x000055a1eaa5ec13 in main ()
```

This commit instead changes the loop in step 1 above so that it explicitly
*not* uses iterators, but instead old-fashioned indexed loop. The intention
with the change is to allow other parts of the code to add items to the vector
`current_submap->spawns` while we are iterating it here. If new items are
added, they will be handled in later steps of the loop.
Ramza13 pushed a commit that referenced this pull request Jan 14, 2024
Prevents segfault that previously happened when pouring liquid to ground
from AIM using "examine" menu.

Previous segfault being fixed:
```
 #0  __gnu_cxx::__atomic_add_dispatch () at /usr/include/c++/13/ext/atomicity.h:111
 #1  std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy () at /usr/include/c++/13/bits/shared_ptr_base.h:152
 #2  0x00005652b2df5540 in std::shared_ptr<item_location::impl>::shared_ptr () at /usr/include/c++/13/bits/shared_ptr.h:204
 #3  item_location::item_location () at src/item_location.h:30
 #4  item_location::impl::item_in_container::item_in_container () at src/item_location.cpp:612
 #5  item_location::item_location () at src/item_location.cpp:767
 #6  0x00005652b27fa6b1 in unload_activity_actor::unload () at src/activity_actor.cpp:3232
 CleverRaven#7  0x00005652b32eed69 in player_activity::do_turn () at src/player_activity.cpp:383
 CleverRaven#8  0x00005652b2b553e7 in do_turn () at src/do_turn.cpp:487
 CleverRaven#9  0x00005652b25ea589 in main () at src/main.cpp:798
```

The problem before was that the reference to `target` in
`unload_activity_actor::unload` was an invalid reference. This was
caused by:
  1. `unload_activity_actor::finish` calls `act.set_to_null()`.
  2. That sets the player activity to `null` type (=no current activity)
  3. `unload_activity_actor::unload` is `static`, and takes `target` as
     a reference.
  4. `::unload` calls `Character::add_or_drop_with_msg` which leads to
     call chain: `liquid_handler::consume_liquid` -> `get_liquid_target`
     -> `choose_adjacent` -> `choose_direction`
     -> `temp_hide_advanced_inv` -> `advanced_inventory::temp_hide`
     -> `advanced_inventory::do_return_entry`
  5. `advanced_inventory::do_return_entry` assigns a new
     `ACT_ADV_INVENTORY` activity. This invalidates the previous
     `unload_activity_actor` because of pt 2 above.
  6. When static method `unload_activity_actor::unload` resumes after
     its call to `add_or_drop_with_msg`, the reference to `target` is
     invalid because of pt 5.

This commit attempt to fix the issue with invalidated `target` reference
by copying its value before invalidating the activity.
Ramza13 pushed a commit that referenced this pull request Jan 14, 2024
* Add missing was_loaded initialization

We forgot to initialize was_loaded in profession_group

I found this bug thanks to UndefinedBehaviorSanitizer
```c++
src/profession_group.h:8:8: runtime error: load of value 60, which is not a valid value for type 'bool'
    #0 0x6fa4312 in profession_group::profession_group(profession_group const&) src/profession_group.h:8
    #1 0x6fb241e in void std::__new_allocator<profession_group>::construct<profession_group, profession_group const&>(profession_group*, profession_group const&) /usr/include/c++/13/bits/new_allocator.h:187
    #2 0x6fb241e in void std::allocator_traits<std::allocator<profession_group> >::construct<profession_group, profession_group const&>(std::allocator<profession_group>&, profession_group*, profession_group const&) /usr/include/c++/13/bits/alloc_traits.h:537
    #3 0x6fb241e in void std::vector<profession_group, std::allocator<profession_group> >::_M_realloc_insert<profession_group const&>(__gnu_cxx::__normal_iterator<profession_group*, std::vector<profession_group, std::allocator<profession_group> > >, profession_group const&) /usr/include/c++/13/bits/vector.tcc:468
    #4 0x6fb2911 in std::vector<profession_group, std::allocator<profession_group> >::push_back(profession_group const&) /usr/include/c++/13/bits/stl_vector.h:1289
    #5 0x6fb2c14 in generic_factory<profession_group>::insert(profession_group const&) src/generic_factory.h:391
    #6 0x6fb61a7 in generic_factory<profession_group>::load(JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/generic_factory.h:304
    CleverRaven#7 0x6fa0efd in profession_group::load_profession_group(JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/profession_group.cpp:25
    CleverRaven#8 0x4294940 in void std::__invoke_impl<void, void (*&)(JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__invoke_other, void (*&)(JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/13/bits/invoke.h:61
    CleverRaven#9 0x4294976 in std::enable_if<is_invocable_r_v<void, void (*&)(JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, void>::type std::__invoke_r<void, void (*&)(JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(void (*&)(JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/13/bits/invoke.h:111
    CleverRaven#10 0x4294976 in std::_Function_handler<void (JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), void (*)(JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>::_M_invoke(std::_Any_data const&, JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/13/bits/std_function.h:290
    CleverRaven#11 0x4290c79 in std::function<void (JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>::operator()(JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /usr/include/c++/13/bits/std_function.h:591
    CleverRaven#12 0x426934f in operator() src/init.cpp:227
    CleverRaven#13 0x426934f in __invoke_impl<void, DynamicDataLoader::add(const std::string&, const std::function<void(const JsonObject&, const std::__cxx11::basic_string<char>&)>&)::<lambda(const JsonObject&, const std::string&, const cata_path&, const cata_path&)>&, const JsonObject&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const cata_path&, const cata_path&> /usr/include/c++/13/bits/invoke.h:61
    CleverRaven#14 0x426934f in __invoke_r<void, DynamicDataLoader::add(const std::string&, const std::function<void(const JsonObject&, const std::__cxx11::basic_string<char>&)>&)::<lambda(const JsonObject&, const std::string&, const cata_path&, const cata_path&)>&, const JsonObject&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const cata_path&, const cata_path&> /usr/include/c++/13/bits/invoke.h:111
    CleverRaven#15 0x426934f in _M_invoke /usr/include/c++/13/bits/std_function.h:290
    CleverRaven#16 0x42904f3 in std::function<void (JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cata_path const&, cata_path const&)>::operator()(JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cata_path const&, cata_path const&) const /usr/include/c++/13/bits/std_function.h:591
    CleverRaven#17 0x4284949 in DynamicDataLoader::load_object(JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cata_path const&, cata_path const&) src/init.cpp:137
    CleverRaven#18 0x4285c32 in DynamicDataLoader::load_all_from_json(JsonValue const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, loading_ui&, cata_path const&, cata_path const&) src/init.cpp:540
    CleverRaven#19 0x4286744 in DynamicDataLoader::load_data_from_path(cata_path const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, loading_ui&) src/init.cpp:521
    CleverRaven#20 0x3ca25fa in game::load_data_from_dir(cata_path const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, loading_ui&) src/game.cpp:571
    CleverRaven#21 0x3d21130 in game::load_packs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<string_id<MOD_INFORMATION>, std::allocator<string_id<MOD_INFORMATION> > > const&, loading_ui&) src/game.cpp:3265
    CleverRaven#22 0x3d518b5 in game::load_world_modfiles(loading_ui&) src/game.cpp:3235
    CleverRaven#23 0x3e055d0 in game::setup() src/game.cpp:756
    CleverRaven#24 0x5111cc3 in main_menu::new_character_tab() src/main_menu.cpp:972
    CleverRaven#25 0x5127aea in main_menu::opening_screen() src/main_menu.cpp:863
    CleverRaven#26 0x50f1e5e in main src/main.cpp:792
    CleverRaven#27 0x7f7a489cfb89 in __libc_start_call_main (/lib64/libc.so.6+0x27b89) (BuildId: f888be5f5e7d58e04cabb8c675c7ab94e77dd68c)
    CleverRaven#28 0x7f7a489cfc4a in __libc_start_main_alias_2 (/lib64/libc.so.6+0x27c4a) (BuildId: f888be5f5e7d58e04cabb8c675c7ab94e77dd68c)
    CleverRaven#29 0x1bec804 in _start (/home/cdda/git/Cataclysm-DDA/cataclysm-tiles+0x1bec804) (BuildId: 1a0225eb0946b150a1f9b1759d512b53fde7f1d0)
```

* Make overmap_terrain_coverage less likely to produce spurious errors

* Revert "Make overmap_terrain_coverage less likely to produce spurious errors"

This reverts commit 6134a08.
Ramza13 pushed a commit that referenced this pull request Jan 14, 2024
If melee_actori.is_grab is false grab.exclusive_grab and grab.respect_seatbelts
were not initialized. This was causing errors under -fsanitize=undefined

The solution initialize the booleans to value that match their defaults

```C++
src/mattack_actors.h:75:8: runtime error: load of value 190, which is not a valid value for type 'bool'
    #0 0x5a9b6fe in grab::grab(grab const&) src/mattack_actors.h:75
    #1 0x5ab7635 in melee_actor::melee_actor(melee_actor const&) src/mattack_actors.h:106
    #2 0x5ab8412 in std::__detail::_MakeUniq<melee_actor>::__single_object std::make_unique<melee_actor, melee_actor const&>(melee_actor const&) /usr/include/c++/13/bits/unique_ptr.h:1070
    #3 0x5a87e4c in melee_actor::clone() const src/mattack_actors.cpp:962
    #4 0x207632c in cata::clone_ptr<mattack_actor>::clone_ptr(cata::clone_ptr<mattack_actor> const&) src/clone_ptr.h:18
    #5 0x6085941 in mtype_special_attack::mtype_special_attack(mtype_special_attack const&) src/mattack_common.h:47
    #6 0x6085941 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack, true>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mtype_special_attack const&) /usr/include/c++/13/bits/stl_pair.h:559
    CleverRaven#7 0x6085a2b in void std::__new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mtype_special_attack const&>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack>*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mtype_special_attack const&) /usr/include/c++/13/bits/new_allocator.h:187
    CleverRaven#8 0x6085a2b in void std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> > > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mtype_special_attack const&>(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack>*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mtype_special_attack const&) /usr/include/c++/13/bits/alloc_traits.h:537
    CleverRaven#9 0x6085a2b in void std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> > >::_M_construct_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mtype_special_attack const&>(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mtype_special_attack const&) /usr/include/c++/13/bits/stl_tree.h:597
    CleverRaven#10 0x6085b06 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> > >::_M_create_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mtype_special_attack const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mtype_special_attack const&) /usr/include/c++/13/bits/stl_tree.h:614
    CleverRaven#11 0x6085b71 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> > >::_Auto_node::_Auto_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mtype_special_attack const&>(std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> > >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mtype_special_attack const&) /usr/include/c++/13/bits/stl_tree.h:1637
    CleverRaven#12 0x6085c9d in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> > >::_M_emplace_hint_unique<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mtype_special_attack const&>(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mtype_special_attack const&) /usr/include/c++/13/bits/stl_tree.h:2462
    CleverRaven#13 0x608618f in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> > std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mtype_special_attack, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> > >::emplace_hint<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mtype_special_attack const&>(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mtype_special_attack const&) /usr/include/c++/13/bits/stl_map.h:640
    CleverRaven#14 0x608618f in std::pair<std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> >, bool> std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mtype_special_attack, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mtype_special_attack> > >::emplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mtype_special_attack const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mtype_special_attack const&) /usr/include/c++/13/bits/stl_map.h:601
    CleverRaven#15 0x5ff3881 in MonsterGenerator::add_attack(mtype_special_attack const&) src/monstergenerator.cpp:1312
    CleverRaven#16 0x5ffafa5 in MonsterGenerator::load_monster_attack(JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) src/monstergenerator.cpp:1376
    CleverRaven#17 0x4262e91 in operator() src/init.cpp:466
    CleverRaven#18 0x4262e91 in __invoke_impl<void, DynamicDataLoader::initialize()::<lambda(const JsonObject&, const std::string&)>&, const JsonObject&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> /usr/include/c++/13/bits/invoke.h:61
    CleverRaven#19 0x4262e91 in __invoke_r<void, DynamicDataLoader::initialize()::<lambda(const JsonObject&, const std::string&)>&, const JsonObject&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> /usr/include/c++/13/bits/invoke.h:111
    CleverRaven#20 0x4262e91 in _M_invoke /usr/include/c++/13/bits/std_function.h:290
    CleverRaven#21 0x4290ce9 in std::function<void (JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>::operator()(JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /usr/include/c++/13/bits/std_function.h:591
    CleverRaven#22 0x42693bf in operator() src/init.cpp:227
    CleverRaven#23 0x42693bf in __invoke_impl<void, DynamicDataLoader::add(const std::string&, const std::function<void(const JsonObject&, const std::__cxx11::basic_string<char>&)>&)::<lambda(const JsonObject&, const std::string&, const cata_path&, const cata_path&)>&, const JsonObject&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const cata_path&, const cata_path&> /usr/include/c++/13/bits/invoke.h:61
    CleverRaven#24 0x42693bf in __invoke_r<void, DynamicDataLoader::add(const std::string&, const std::function<void(const JsonObject&, const std::__cxx11::basic_string<char>&)>&)::<lambda(const JsonObject&, const std::string&, const cata_path&, const cata_path&)>&, const JsonObject&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const cata_path&, const cata_path&> /usr/include/c++/13/bits/invoke.h:111
    CleverRaven#25 0x42693bf in _M_invoke /usr/include/c++/13/bits/std_function.h:290
    CleverRaven#26 0x4290563 in std::function<void (JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cata_path const&, cata_path const&)>::operator()(JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cata_path const&, cata_path const&) const /usr/include/c++/13/bits/std_function.h:591
    CleverRaven#27 0x42849b9 in DynamicDataLoader::load_object(JsonObject const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cata_path const&, cata_path const&) src/init.cpp:137
    CleverRaven#28 0x4285ca2 in DynamicDataLoader::load_all_from_json(JsonValue const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, loading_ui&, cata_path const&, cata_path const&) src/init.cpp:540
    CleverRaven#29 0x42867b4 in DynamicDataLoader::load_data_from_path(cata_path const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, loading_ui&) src/init.cpp:521
    CleverRaven#30 0x3ca266a in game::load_data_from_dir(cata_path const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, loading_ui&) src/game.cpp:571
    CleverRaven#31 0x3d211a0 in game::load_packs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<string_id<MOD_INFORMATION>, std::allocator<string_id<MOD_INFORMATION> > > const&, loading_ui&) src/game.cpp:3265
    CleverRaven#32 0x3d51925 in game::load_world_modfiles(loading_ui&) src/game.cpp:3235
    CleverRaven#33 0x3e05640 in game::setup() src/game.cpp:756
    CleverRaven#34 0x5111d33 in main_menu::new_character_tab() src/main_menu.cpp:972
    CleverRaven#35 0x5127b5a in main_menu::opening_screen() src/main_menu.cpp:863
    CleverRaven#36 0x50f1ece in main src/main.cpp:792
    CleverRaven#37 0x7fdc43fa9b89 in __libc_start_call_main (/lib64/libc.so.6+0x27b89) (BuildId: f888be5f5e7d58e04cabb8c675c7ab94e77dd68c)
    CleverRaven#38 0x7fdc43fa9c4a in __libc_start_main_alias_2 (/lib64/libc.so.6+0x27c4a) (BuildId: f888be5f5e7d58e04cabb8c675c7ab94e77dd68c)
    CleverRaven#39 0x1bec874 in _start (/home/cdda/git/Cataclysm-DDA/cataclysm-tiles+0x1bec874) (BuildId: be24990d1723c8da00f3e8701793ab983cf64dcc)
```
Ramza13 pushed a commit that referenced this pull request Jun 27, 2024
Add example, clarify some wording, and link to the name of the test in
the script that enforces it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet