Code Monkey home page Code Monkey logo

Comments (1)

BranDougherty avatar BranDougherty commented on May 23, 2024

Prior to Soldat 1.7, the game ignored the Prop.Width/Prop.Height fields in the PMS format, and assumed that 1 pixel equaled 1 game distance unit. When the work for HD was done in 1.7, they needed to decouple pixels and game distances. Their choice was to use the previously ignored prop width and height fields.

For most maps this should work fine. PolyWorks has written the width/height of the texture to those fields since at least 2009, preferring to use the Prop.ScaleX/Prop.ScaleY fields to change the size of props. This works in all versions of Soldat, so a lot of maps should be unaffected. But likely some maps made with very old versions of PolyWorks, or even Soldat Map Maker can have incorrect data in those fields. Even maps with corrupted data in those fields would still work with old versions. But because Soldat 1.7 and OpenSoldat are reading those fields, the incorrect data is read as the width/height of the prop, and you see the ugly results there (specifically with !Kirby1.bmp).

There's no version indicator to differentiate between files made for Soldat < 1.7, so we would have to go off heuristics like the PMS Date fields, file last modified entries, and TMS upload date.

At the very least it should be possible to add a Fix Soldat <= 1.6.9 Map button to PolyWonks to update the Prop.Width/Prop.Height fields in props. Non-default props should have it set to the width/height of their texture, and default sceneries should have it set to width/height of the Soldat 1.6.9 default texture.

from opensoldat.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.