void Control::parsePanoramaControl(ZVision *engine, Common::SeekableReadStream &stream) { RenderTable *renderTable = engine->getRenderManager()->getRenderTable(); renderTable->setRenderState(RenderTable::PANORAMA); // Loop until we find the closing brace Common::String line = stream.readLine(); trimCommentsAndWhiteSpace(&line); while (!stream.eos() && !line.contains('}')) { if (line.matchString("angle*", true)) { float fov; sscanf(line.c_str(), "angle(%f)", &fov); renderTable->setPanoramaFoV(fov); } else if (line.matchString("linscale*", true)) { float scale; sscanf(line.c_str(), "linscale(%f)", &scale); renderTable->setPanoramaScale(scale); } else if (line.matchString("reversepana*", true)) { uint reverse; sscanf(line.c_str(), "reversepana(%u)", &reverse); if (reverse == 1) { renderTable->setPanoramaReverse(true); } } else if (line.matchString("zeropoint*", true)) { uint point; sscanf(line.c_str(), "zeropoint(%u)", &point); renderTable->setPanoramaZeroPoint(point); } line = stream.readLine(); trimCommentsAndWhiteSpace(&line); } renderTable->generateRenderTable(); }