Misc minor fixes

- Fix escape not ending shop mode
- Fix outdoor special spots not being drawn
- Fix special spots sometimes appearing off the edge of the sector in the scenario editor
This commit is contained in:
2015-02-04 14:20:59 -05:00
parent 36491c818c
commit 233a19175d
7 changed files with 10 additions and 12 deletions

View File

@@ -38,7 +38,7 @@
<led name='type0' state='off' top='213' left='208' width='140'>Type 0: Junk, Not left</led>
<led name='type1' state='off' top='228' left='208' width='140'>Type 1: Lousy, 1 - 20 gp</led>
<led name='type2' state='off' top='243' left='208' width='140'>Type 2: So-so, 20-200 gp</led>
<led name='type3' state='off' top='258' left='208' width='140'>Type 2: Good, 200+ gp</led>
<led name='type3' state='off' top='258' left='208' width='140'>Type 3: Good, 200+ gp</led>
<led name='type4' state='off' top='273' left='208' width='140'>Type 4: Great, 2500+ gp</led>
<led name='type5' state='off' top='288' left='208' width='140'>Type 5: Unique/Rare, Not left</led>
</group>

View File

@@ -1678,11 +1678,8 @@ bool handle_keystroke(sf::Event& event){
}
else if(overall_mode == MODE_SHOPPING) { // shopping keystrokes
if(chr2 == kb::Escape) {
pass_point.x = 222 + ul.x;
pass_point.y = 398 + ul.y;
pass_event.mouseButton.x = pass_point.x;
pass_event.mouseButton.y = pass_point.y;
are_done = handle_action(pass_event);
play_sound(37);
end_shop_mode();
}
for(i = 0; i < 8; i++)
if(chr2 == shop_chars[i]) {

View File

@@ -945,10 +945,9 @@ void draw_terrain(short mode) {
// Draw_Some_Item(roads_gworld, calc_rect(6, 0), terrain_screen_gworld, loc(q,r), 1, 0);
// TODO: Move draw_sfx, draw_items, draw_fields, draw_spec_items, etc to here
if(is_town() || is_combat()) {
if(is_town() || is_combat())
draw_items(where_draw);
draw_fields(where_draw);
}
draw_fields(where_draw);
//draw_monsters(where_draw);
//draw_vehicles(where_draw);
//if(is_combat) draw_pcs(where_draw); else draw_party(where_draw);

View File

@@ -739,6 +739,7 @@ void start_town_combat(eDirection direction) {
eDirection end_town_combat() {
short num_tries = 0,r1,i;
// TODO: Don't allow ending combat if someone is trapped in a forcecage or if two PCs are separated by an impassable wall with no way around it
r1 = get_ran(1,0,5);
while(univ.party[r1].main_status != eMainStatus::ALIVE && num_tries++ < 1000)

View File

@@ -1685,7 +1685,7 @@ std::istream& operator>> (std::istream & in, TiXmlNode & base)
std::ostream& operator<< (std::ostream & out, const TiXmlNode & base)
{
TiXmlPrinter printer;
printer.SetStreamPrinting();
//printer.SetStreamPrinting();
base.Accept( &printer );
out << printer.Str();

View File

@@ -1273,7 +1273,8 @@ void sort_specials() {
bool is_spot(short i,short j){
if(editing_town)
return is_field_type(i,j,SPECIAL_SPOT);
else return current_terrain->special_spot[i][j];
else if(i >= 0 && i < 48 && j >= 0 && j < 48)
return current_terrain->special_spot[i][j];
return false;
}

View File

@@ -410,7 +410,7 @@ void flip_long(int32_t *s){
}
// TODO: This was because Windows stored its rect members in a different order, but since we now have our own rect class, it shouldn't be needed.
// This is needed in order to load in old legacy Windows scenarios, which stored their rects in a different order than Mac scenario
static void alter_rect(legacy::Rect *r) {
short a;