Weird methods classic uses to determine pricing.

Discuss Daggerfall Unity and Daggerfall Tools for Unity.
Post Reply
User avatar
Rand
Posts: 72
Joined: Sat Nov 23, 2019 5:10 am
Location: Canada

Weird methods classic uses to determine pricing.

Post by Rand »

Just found this item poking around online (in Cheatbook Database):

Best paying pawnbroker:
-----------------------
Bubyrydata is a largish, but not walled town in the far east of the Alik'r desert, at the
foot of the Dragontail Mountains. Perore's General Pawnbrokers pay the best prices in the
bay area, better than any other "rusty relics" pawnshop. Note: This is useful with the
different methods of stealing from shops if you are in the area. Do not waste months going
from Daggerfall to Alik'r desert.

I tested it in classic, and yep, it's very true. Seems to me like a 15 to 20% boost in buying prices.
When I get some time, I'll test it in DFU (but I bet it's different due to the re-code).

Can anyone figure out why this is? I assume it has something to do with the world data for that region/town/shop, but I can't see anything obvious. :?

Is it like the mysterious book values (that turned out to be based on a random seed derived from the first four letters of the book title)?

User avatar
pango
Posts: 3359
Joined: Wed Jul 18, 2018 6:14 pm
Location: France
Contact:

Re: Weird methods classic uses to determine pricing.

Post by pango »

They're only 5 quality descriptions, but internally they're 20 quality levels; I assume this shop has an exceptionally low quality:

Code: Select all

            // Set quality level text ID from quality value 01-20
            // UESP states this is building quality / 4 but Daggerfall uses manual thresholds
            int qualityTextId;
            if (buildingSummary.Quality <= 3)
                qualityTextId = qualityLevel5TextId;        // 01 - 03
            else if (buildingSummary.Quality <= 7)
                qualityTextId = qualityLevel4TextId;        // 04 - 07
            else if (buildingSummary.Quality <= 13)
                qualityTextId = qualityLevel3TextId;        // 08 - 13
            else if (buildingSummary.Quality <= 17)
                qualityTextId = qualityLevel2TextId;        // 14 - 17
            else
                qualityTextId = qualityLevel1TextId;        // 18 - 20
Mastodon: @pango@fosstodon.org
When a measure becomes a target, it ceases to be a good measure.
-- Charles Goodhart

User avatar
Rand
Posts: 72
Joined: Sat Nov 23, 2019 5:10 am
Location: Canada

Re: Weird methods classic uses to determine pricing.

Post by Rand »

So I take it the quality level data is in the world info set MAPS.BSA? (Or maybe BLOCKS.BSA?)

Post Reply