reimplement avatar as a plain sprite; handle sprite items as these are mostly needed for avatar
This commit is contained in:
12
src/game.rs
12
src/game.rs
@@ -1,4 +1,4 @@
|
||||
use crate::{Avatar, Dialogue, Ending, Font, Item, Palette, Room, Sprite, TextDirection, Tile, ToBase36, Variable, transform_line_endings, segments_from_string, is_string_numeric};
|
||||
use crate::{Dialogue, Ending, Font, Item, Palette, Room, Sprite, TextDirection, Tile, ToBase36, Variable, transform_line_endings, segments_from_string, is_string_numeric};
|
||||
use std::error::Error;
|
||||
use loe::TransformMode;
|
||||
|
||||
@@ -76,7 +76,7 @@ pub struct Game {
|
||||
pub palettes: Vec<Palette>,
|
||||
pub rooms: Vec<Room>,
|
||||
pub tiles: Vec<Tile>,
|
||||
pub avatar: Avatar,
|
||||
pub avatar: Sprite,
|
||||
pub sprites: Vec<Sprite>,
|
||||
pub items: Vec<Item>,
|
||||
pub dialogues: Vec<Dialogue>,
|
||||
@@ -127,7 +127,7 @@ impl Game {
|
||||
let mut palettes: Vec<Palette> = Vec::new();
|
||||
let mut rooms: Vec<Room> = Vec::new();
|
||||
let mut tiles: Vec<Tile> = Vec::new();
|
||||
let mut avatar: Option<Avatar> = None; // unwrap this later
|
||||
let mut avatar: Option<Sprite> = None; // unwrap this later
|
||||
let mut sprites: Vec<Sprite> = Vec::new();
|
||||
let mut items: Vec<Item> = Vec::new();
|
||||
|
||||
@@ -158,8 +158,8 @@ impl Game {
|
||||
} else if segment.starts_with("TIL") {
|
||||
tiles.push(Tile::from(segment));
|
||||
} else if segment.starts_with("SPR A") {
|
||||
avatar = Some(Avatar::from(segment).unwrap());
|
||||
} else if segment.starts_with("SPR") {
|
||||
avatar = Some(Sprite::from(segment));
|
||||
} else if segment.starts_with("SPR ") {
|
||||
sprites.push(Sprite::from(segment));
|
||||
} else if segment.starts_with("ITM") {
|
||||
items.push(Item::from(segment));
|
||||
@@ -227,7 +227,7 @@ impl ToString for Game {
|
||||
}
|
||||
}
|
||||
|
||||
segments.push(self.avatar.to_string());
|
||||
segments.push(self.avatar.to_string().replace("SPR a", "SPR A"));
|
||||
|
||||
for sprite in &self.sprites {
|
||||
if !is_string_numeric(sprite.id.to_base36()) {
|
||||
|
||||
Reference in New Issue
Block a user