X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fapp%2Fapp.cpp;h=fb7280194a7f5ffda1b27ce89075899b74f8255e;hb=cd9cee86b336b5ec531028ac2deebb391e48ed21;hp=0ec22b02c16607d189cda86107140d14ccde643f;hpb=76b630bd0a147bf7c78d3380237c86b9bfc48530;p=blobs.git diff --git a/src/app/app.cpp b/src/app/app.cpp index 0ec22b0..fb72801 100644 --- a/src/app/app.cpp +++ b/src/app/app.cpp @@ -176,6 +176,7 @@ Assets::Assets() , font_path(path + "fonts/") , skin_path(path + "skins/") , tile_path(path + "tiles/") +, random(0x6283B64CEFE47925) , fonts{ graphics::Font(font_path + "DejaVuSans.ttf", 32), graphics::Font(font_path + "DejaVuSans.ttf", 24), @@ -188,7 +189,7 @@ Assets::Assets() } { - std::ifstream tile_file(data_path + "tiles"); + std::ifstream tile_file(data_path + "tile_types"); io::TokenStreamReader tile_reader(tile_file); ReadTileTypes(tile_reader); } @@ -211,6 +212,7 @@ Assets::Assets() LoadTileTexture("tundra", textures.tiles, 11); LoadTileTexture("water", textures.tiles, 12); LoadTileTexture("wheat", textures.tiles, 13); + textures.tiles.FilterTrilinear(); textures.skins.Bind(); textures.skins.Reserve(256, 256, 9, format); @@ -223,6 +225,7 @@ Assets::Assets() LoadSkinTexture("7", textures.skins, 6); LoadSkinTexture("8", textures.skins, 7); LoadSkinTexture("9", textures.skins, 8); + textures.skins.FilterTrilinear(); } Assets::~Assets() { @@ -249,6 +252,8 @@ void Assets::ReadResources(io::TokenStreamReader &in) { in.Skip(io::Token::EQUALS); if (name == "label") { in.ReadString(data.resources[id].label); + } else if (name == "density") { + data.resources[id].density = in.GetDouble(); } else if (name == "state") { in.ReadIdentifier(name); if (name == "solid") { @@ -279,12 +284,12 @@ void Assets::ReadTileTypes(io::TokenStreamReader &in) { in.Skip(io::Token::EQUALS); int id = 0; - if (data.tiles.Has(name)) { - id = data.tiles[name].id; + if (data.tile_types.Has(name)) { + id = data.tile_types[name].id; } else { world::TileType type; type.name = name; - id = data.tiles.Add(type); + id = data.tile_types.Add(type); } in.Skip(io::Token::ANGLE_BRACKET_OPEN); @@ -292,9 +297,9 @@ void Assets::ReadTileTypes(io::TokenStreamReader &in) { in.ReadIdentifier(name); in.Skip(io::Token::EQUALS); if (name == "label") { - in.ReadString(data.tiles[id].label); + in.ReadString(data.tile_types[id].label); } else if (name == "texture") { - data.tiles[id].texture = in.GetInt(); + data.tile_types[id].texture = in.GetInt(); } else if (name == "yield") { in.Skip(io::Token::BRACKET_OPEN); while (in.Peek().type != io::Token::BRACKET_CLOSE) { @@ -314,7 +319,7 @@ void Assets::ReadTileTypes(io::TokenStreamReader &in) { in.Skip(io::Token::SEMICOLON); } in.Skip(io::Token::ANGLE_BRACKET_CLOSE); - data.tiles[id].resources.push_back(yield); + data.tile_types[id].resources.push_back(yield); if (in.Peek().type == io::Token::COMMA) { in.Skip(io::Token::COMMA); }