Jump to content

Documentation for poidata.txt?


Recommended Posts

Hi, all!

I'm new to this forum and not quite sure where to post this question. So please, if anyone would like to move it to a more decent place...

After my "Sacred 2 Gold" with "Ice & Blood" expansion has slept for a few years on my hdd I decided to revive it a bit. I'm not only playing a new character from scratch, I explored the files in the game directory as well. And there I found the PoiData.txt.

Those files doesn't seem to be documented very well. At least I found no source via Google. A few pages list the files and maybe even describe the intention of it, but I found nothing about the technical details of them.

I coded a program in VB.Net to load a map image (I found one large 12000x12000 jpg somewhere) and import the PoiData.txt. A bit scaling (actual test at 2000x2000) and I got a result that looks not that bad, but quite not correct, either.

I tried to use the ScreenX and ScreenY directly and draw circles with 20px diameter. Most of the markers are a bit off course, but not that far away from reality. Interestingly enough the markers are left and right, above and below the wanted position.

So I think I have to use the Offx / OffY and maybe the WidX / WidY, too.

I scaled the circle by 1250*WidX and 750*WidY and now for example the Thylysium marker almost exactly covers the city on the map. Some other markers seem to sit correct now, too. But others still are a bit off.

And I have no idea how to use the OffX / OffY information.

Can anybody help me with that? Or is there already a documentation for it?

Thanks

Michael

 

Link to comment
  • 2 weeks later...

Can anybody help me with that? Or is there already a documentation for it?

 

Ok, almost 150 hits and no reply. I might add a few of my thoughts to start the challenge:

--------------------------------------------------------------------------------

 

poidata.txt

-----------

mgr.addPoIData( { id="POI_REGION_CANYON", offx=0.000488, offy=0.000977, widx=0.114746, widy=0.438477, screenx=108, screeny=1005} );

mgr.addRegionData( { area="POI_REGION_CANYON", startx=0, starty=19, endx=10, endy=34, richPresenceId=9 } );

 

quest.txt

---------

position = { 16,33,0 , 1340.650,689.000,1038.390, 23.000 }

position = { x = 97750.00, y = 90400.00, z = 0.00, layer = 0, orientation = 133.000, }

 

questscripts.txt

----------------

position = toWorldPosition("46;45;-2;1618.900024;18.850000;3301.454834;0.000000")

position = {sx=26;sy=44;sz=0;px=464.632813;py=2857.359375;pz=-100.702850}

 

print hero

----------

POS(21,27,0 2573.500,842.500,99.674)

 

--------------------------------------------------------------------------------

 

Scanning the addPoIData the

- offx/y have a range from 0..1 - scaling factor

- widx/y have a range from 0..1 - scaling factor

- screenx/y have a range from 0..2000 - a map of 2048x2048 units/pixels seems reasonable

 

Scanning the addRegionData the

- startx/y and endx/y have a range from 0..63 - 64x64 sectors

 

The offsets could be relative to the sector, so

* sectorwidth/height = mapwidth/height / sectorx/y = 2048 / 64 = a sector has 32/32 units/pixels

* posx/y = screenx/y + ( sectorwidth/height * offx/y )

--> the offx/y is more accurate than the 1/32 (steps of 0.031) would allow

* lenx/y = widx/y * scalex/y

--> assuming 1024 (or mapwidth/height / 2) as scalex/y factor

 

Although the 2 assumptions are weak the plotted result seems reasonable.

The PosX/Y of the PoI data is more or less accurate

The LenX/Y covers the PoI almost perfectly

see http://miriki.com/www/sacred2/sacred2map.jpg (beware: 20mb for a 12000x12000 image!)

Interesting: Most of the ellipses have more extent in Y than in X direction - different scaling factors? I tried with 1200/900 (4:3) and 1250/750 (5:3) - not that bad, too

 

The 1st syntax in the quest.txt seems to have SextorX/Y/Z and four unknown float values. Three of them might be offsets again, but what about the 4th then? The orientation is the next line in the script, so it's not the orientation.

The 2nd syntax seems to have the sectors + offsets already calculated into world positions. Those seem to have a range from 0..200000 (found a lot in the 180k region).

So the world might have 204800x204800 (or mapwidth/height * 100)?

 

The 1st syntax on the questscripts.txt is similar to the 1st in the quest.txt, but it calls toWorldPosition() with the values as parameters.

(The word "toWorldPosition" is found the in the s2logic.dll.)

The 2nd syntax seems quite similar to the 1st one except the missing 4th float value.

 

The "print hero" syntax, again, seems to be SectorX/Y/Z and OffX/Y/Z. The example shows the position of the hero chest in Schlehenfurt (Sloford?).

 

--------------------------------------------------------------------------------

Michael

 

Link to comment

 

Can anybody help me with that? Or is there already a documentation for it?

 

Ok, almost 150 hits and no reply. I might add a few of my thoughts to start the challenge:

--------------------------------------------------------------------------------

 

I think you demonstrated in the first post that you already understand more about the file than probably anyone except the developers. It's interesting to read your results but I don't have anything to add. I suppose there's not anything written about poidata.txt because no one's ever wanted to change it. I don't know what could be accomplished with it, if anything.

Edited by Flix
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...
Please Sign In or Sign Up