be a bit more fussy about checking for segment names - game title "PALACE" was being parsed as a palette... :(
This commit is contained in:
parent
cf1ca6f1b5
commit
daa46e26ee
33
src/game.rs
33
src/game.rs
|
@ -95,23 +95,26 @@ impl Game {
|
||||||
}
|
}
|
||||||
|
|
||||||
let string = string.trim_start_matches("\n").to_string();
|
let string = string.trim_start_matches("\n").to_string();
|
||||||
let segments = segments_from_string(string);
|
let mut segments = segments_from_string(string);
|
||||||
|
|
||||||
let mut name = "".to_string();
|
let mut name = "".to_string();
|
||||||
|
|
||||||
if
|
if
|
||||||
! segments[0].starts_with("# BITSY VERSION")
|
! segments[0].starts_with("# BITSY VERSION ")
|
||||||
&&
|
&&
|
||||||
! segments[0].starts_with("! ROOM_FORMAT")
|
! segments[0].starts_with("! ROOM_FORMAT ")
|
||||||
&&
|
&&
|
||||||
! segments[0].starts_with("PAL")
|
! segments[0].starts_with("PAL ")
|
||||||
&&
|
&&
|
||||||
! segments[0].starts_with("DEFAULT_FONT")
|
! segments[0].starts_with("DEFAULT_FONT ")
|
||||||
&&
|
&&
|
||||||
! segments[0].starts_with("TEXT_DIRECTION") {
|
! segments[0].starts_with("TEXT_DIRECTION ") {
|
||||||
name = segments[0].to_string();
|
name = segments[0].to_string();
|
||||||
|
segments = segments[1..].to_owned();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let segments = segments;
|
||||||
|
|
||||||
let name = name;
|
let name = name;
|
||||||
let mut dialogues: Vec<Dialogue> = Vec::new();
|
let mut dialogues: Vec<Dialogue> = Vec::new();
|
||||||
let mut endings: Vec<Ending> = Vec::new();
|
let mut endings: Vec<Ending> = Vec::new();
|
||||||
|
@ -148,28 +151,28 @@ impl Game {
|
||||||
}
|
}
|
||||||
} else if segment.trim() == "TEXT_DIRECTION RTL".to_string() {
|
} else if segment.trim() == "TEXT_DIRECTION RTL".to_string() {
|
||||||
text_direction = TextDirection::RightToLeft;
|
text_direction = TextDirection::RightToLeft;
|
||||||
} else if segment.starts_with("PAL") {
|
} else if segment.starts_with("PAL ") {
|
||||||
palettes.push(Palette::from(segment));
|
palettes.push(Palette::from(segment));
|
||||||
} else if segment.starts_with("ROOM") || segment.starts_with("SET") {
|
} else if segment.starts_with("ROOM ") || segment.starts_with("SET ") {
|
||||||
if segment.starts_with("SET") {
|
if segment.starts_with("SET ") {
|
||||||
room_type = RoomType::Set;
|
room_type = RoomType::Set;
|
||||||
}
|
}
|
||||||
rooms.push(Room::from(segment));
|
rooms.push(Room::from(segment));
|
||||||
} else if segment.starts_with("TIL") {
|
} else if segment.starts_with("TIL ") {
|
||||||
tiles.push(Tile::from(segment));
|
tiles.push(Tile::from(segment));
|
||||||
} else if segment.starts_with("SPR A") {
|
} else if segment.starts_with("SPR A") {
|
||||||
avatar = Some(Sprite::from(segment));
|
avatar = Some(Sprite::from(segment));
|
||||||
} else if segment.starts_with("SPR ") {
|
} else if segment.starts_with("SPR ") {
|
||||||
sprites.push(Sprite::from(segment));
|
sprites.push(Sprite::from(segment));
|
||||||
} else if segment.starts_with("ITM") {
|
} else if segment.starts_with("ITM ") {
|
||||||
items.push(Item::from(segment));
|
items.push(Item::from(segment));
|
||||||
} else if segment.starts_with("DLG") {
|
} else if segment.starts_with("DLG ") {
|
||||||
dialogues.push(Dialogue::from(segment));
|
dialogues.push(Dialogue::from(segment));
|
||||||
} else if segment.starts_with("END") {
|
} else if segment.starts_with("END ") {
|
||||||
endings.push(Ending::from(segment));
|
endings.push(Ending::from(segment));
|
||||||
} else if segment.starts_with("VAR") {
|
} else if segment.starts_with("VAR ") {
|
||||||
variables.push(Variable::from(segment));
|
variables.push(Variable::from(segment));
|
||||||
} else if segment.starts_with("FONT") {
|
} else if segment.starts_with("FONT ") {
|
||||||
font_data = Some(segment);
|
font_data = Some(segment);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue