diff --git a/src/boe.actions.cpp b/src/boe.actions.cpp index c2a1a300..d886eaf4 100644 --- a/src/boe.actions.cpp +++ b/src/boe.actions.cpp @@ -759,7 +759,10 @@ static void handle_give_item(short item_hit, bool& did_something, bool& need_red } static void handle_drop_item(short item_hit, bool& need_redraw) { - if(!prime_time()) + if(overall_mode == MODE_DROP_TOWN || overall_mode == MODE_DROP_COMBAT) { + add_string_to_buf("Drop item: Cancelled"); + overall_mode = is_town() ? MODE_TOWN : MODE_COMBAT; + } else if(!prime_time()) add_string_to_buf("Drop item: Finish what you're doing first."); else if(is_out()) drop_item(stat_window,item_hit,univ.party.p_loc); diff --git a/src/classes/outdoors.cpp b/src/classes/outdoors.cpp index b150c20c..c0582cbc 100644 --- a/src/classes/outdoors.cpp +++ b/src/classes/outdoors.cpp @@ -119,6 +119,8 @@ void cOutdoors::append(legacy::outdoor_record_type& old){ cOutdoors::cWandering::cWandering() { spec_on_meet = spec_on_win = spec_on_flee = -1; end_spec1 = end_spec2 = -1; + std::fill(monst.begin(), monst.end(), 0); + std::fill(friendly.begin(), friendly.end(), 0); } cOutdoors::cOutdoors(cScenario& scenario, bool init_strings) : scenario(scenario) { diff --git a/src/classes/party.cpp b/src/classes/party.cpp index 893cf071..e5efdffd 100644 --- a/src/classes/party.cpp +++ b/src/classes/party.cpp @@ -39,7 +39,8 @@ cParty::cParty(cUniverse& univ, long party_preset) : univ(univ) { for(int i = 0; i < 5; i++) for(int j = 0; j < 10; j++) magic_store_items[i][j].variety = eItemType::NO_ITEM; - + for(int i = 0; i < 10; i++) + out_c[i].exists = false; for(int i = 0; i < 6; i++) adven[i] = new cPlayer(*this, party_preset, i); } diff --git a/src/scenedit/scen.graphics.cpp b/src/scenedit/scen.graphics.cpp index cd0b2386..61e95c13 100644 --- a/src/scenedit/scen.graphics.cpp +++ b/src/scenedit/scen.graphics.cpp @@ -643,6 +643,7 @@ void set_up_terrain_buttons(bool reset) { case DRAW_ITEM: pic = scenario.scen_items[i].graphic_num; tiny_to = terrain_rects[i - first]; + frame_rect(terrain_buttons_gworld, tiny_to, sf::Color::Black); if(pic >= 1000) { sf::Texture* source_gworld; graf_pos_ref(source_gworld, ter_from) = spec_scen_g.find_graphic(pic % 1000);