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

new vehicle part: flatbed carrier #6

Open
mlangsdorf opened this issue Jul 22, 2018 · 0 comments
Open

new vehicle part: flatbed carrier #6

mlangsdorf opened this issue Jul 22, 2018 · 0 comments

Comments

@mlangsdorf
Copy link
Owner

expand vehicle rack to handle vehicles more than 1 tile wide. and possibly multiple vehicles.
needs logic to detect heights and width of flatbed carrier.
FFF
FXF
FFF
for instance, could handle 2x 3 tile bikes, or an L shaped vehicle, but not a 2x2 or larger vehicle.
(design question - allow open frames to "count"? Only if all vehicle tiles are supported on other frames? probably too complicated)

mlangsdorf pushed a commit that referenced this issue Dec 17, 2018
mlangsdorf pushed a commit that referenced this issue Jan 25, 2019
mlangsdorf pushed a commit that referenced this issue Feb 4, 2019
This reverts commit 753b1ac, reversing
changes made to 9a32197.
mlangsdorf pushed a commit that referenced this issue Feb 4, 2019
mlangsdorf pushed a commit that referenced this issue Apr 30, 2019
mlangsdorf pushed a commit that referenced this issue Oct 26, 2019
mlangsdorf pushed a commit that referenced this issue May 21, 2020
mlangsdorf pushed a commit that referenced this issue May 21, 2020
The function `are_requirements_nearby` accesses `player::backlog::front()`, which causes UB when the `backlog` list is empty.

This is usually checked by the caller, but there is at least one way to reach this function without that check:

```
#2  0x000000000083dfaa in string_id<activity_type>::operator== (rhs=..., this=0xdf1b460) at src/player_activity.h:93
#3  are_requirements_nearby (loot_spots=std::vector of length 21, capacity 32 = {...}, needed_things=..., p=..., activity_to_restore=..., in_loot_zones=true, src_loc=...)
    at src/activity_item_handling.cpp:1113
#4  0x0000000000843a46 in generic_multi_activity_check_requirement (p=..., act_id=..., act_info=..., src=..., src_loc=...,
    src_set=std::unordered_set with 1 element = {...}, check_only=false) at src/activity_item_handling.cpp:2676
#5  0x0000000000852813 in generic_multi_activity_handler (act=..., p=..., check_only=check_only@entry=false) at src/activity_item_handling.cpp:2885
#6  0x0000000000800896 in activity_handlers::multiple_butcher_do_turn (act=<optimized out>, p=<optimized out>) at src/activity_handlers.cpp:3822
#7  0x000000000082b248 in std::_Function_handler<void (player_activity*, player*), void (*)(player_activity*, player*)>::_M_invoke(std::_Any_data const&, player_activity*&&, player*&&) (__functor=..., __args#0=<optimized out>, __args#1=<optimized out>) at /usr/include/c++/8/bits/std_function.h:88
#8  0x00000000008630e3 in std::function<void (player_activity*, player*)>::operator()(player_activity*, player*) const (this=<optimized out>, __args#0=<optimized out>,
    __args#0@entry=0xdf1b330, __args#1=<optimized out>, __args#1@entry=0xdf1ae50) at /usr/include/c++/8/bits/std_function.h:260
#9  0x0000000000860306 in activity_type::call_do_turn (this=0x2c3c930, act=act@entry=0xdf1b330, p=p@entry=0xdf1ae50) at src/activity_type.cpp:118
#10 0x00000000014a968b in player_activity::do_turn (this=this@entry=0xdf1b330, p=...) at src/player_activity.cpp:237
#11 0x00000000013092a4 in npc::do_player_activity (this=this@entry=0xdf1ae50) at src/npcmove.cpp:3299
#12 0x0000000001322a07 in npc::execute_action (this=this@entry=0xdf1ae50, action=<optimized out>, action@entry=npc_player_activity) at src/npcmove.cpp:1237
#13 0x000000000132690a in npc::move (this=this@entry=0xdf1ae50) at src/npcmove.cpp:907
```

This adds a simple check within the function.
mlangsdorf pushed a commit that referenced this issue May 21, 2020
Update furniture-fungal.json
mlangsdorf pushed a commit that referenced this issue Jun 1, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant