X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fsector.cpp;h=2464ccc833ac2e9460db4357cfed32e39c20be38;hb=cde3a617070bee8af4ddcf58122cf6a65b97d874;hp=79d80c6f5e31aff6ad62b2d2163161cec31697ed;hpb=b72c5d178e4cc95130735d8bf8716513c7cc28e1;p=supertux.git diff --git a/src/sector.cpp b/src/sector.cpp index 79d80c6f5..2464ccc83 100644 --- a/src/sector.cpp +++ b/src/sector.cpp @@ -170,14 +170,16 @@ Sector::parse(const lisp::Lisp& sector) } update_game_objects(); + + if(!solids) + throw std::runtime_error("sector does not contain a solid tile layer."); + fix_old_tiles(); if(!camera) { std::cerr << "sector '" << name << "' does not contain a camera.\n"; update_game_objects(); add_object(new Camera(this)); } - if(!solids) - throw std::runtime_error("sector does not contain a solid tile layer."); update_game_objects(); } @@ -201,16 +203,16 @@ Sector::parse_old_format(const lisp::Lisp& reader) reader.get("bkgd_red_top", r); reader.get("bkgd_green_top", g); reader.get("bkgd_blue_top", b); - bkgd_top.red = r; - bkgd_top.green = g; - bkgd_top.blue = b; + bkgd_top.red = static_cast (r) / 255.0f; + bkgd_top.green = static_cast (g) / 255.0f; + bkgd_top.blue = static_cast (b) / 255.0f; reader.get("bkgd_red_bottom", r); reader.get("bkgd_green_bottom", g); reader.get("bkgd_blue_bottom", b); - bkgd_bottom.red = r; - bkgd_bottom.green = g; - bkgd_bottom.blue = b; + bkgd_bottom.red = static_cast (r) / 255.0f; + bkgd_bottom.green = static_cast (g) / 255.0f; + bkgd_bottom.blue = static_cast (b) / 255.0f; if(backgroundimage != "") { Background* background = new Background; @@ -243,7 +245,7 @@ Sector::parse_old_format(const lisp::Lisp& reader) song_title = "chipdisko.ogg"; reader.get("music", song_title); - int width, height = 15; + int width = 30, height = 15; reader.get("width", width); reader.get("height", height); @@ -306,10 +308,12 @@ Sector::parse_old_format(const lisp::Lisp& reader) add_object(camera); update_game_objects(); + + if(solids == 0) + throw std::runtime_error("sector does not contain a solid tile layer."); + fix_old_tiles(); update_game_objects(); - if(solids == 0) - throw std::runtime_error("sector does not contain a solid tile layer."); } void @@ -338,7 +342,7 @@ Sector::fix_old_tiles() add_object(new SequenceTrigger(pos, sequence)); solids->change(x, y, 0); } - } + } } }