Trapdoor above the main room in Privateers Hold

Discuss Daggerfall Unity and Daggerfall Tools for Unity.
BadLuckBurt
Posts: 433
Joined: Sun Nov 05, 2017 8:30 pm

Re: Trapdoor above the main room in Privateers Hold

Post by BadLuckBurt » Wed Mar 11, 2020 10:31 am

Interkarma wrote:
Wed Mar 11, 2020 9:31 am
That's very lovely! Any chance you could also output magnitude and model desc in that dataset? And perhaps limit to just rotations?
Yes I can, I used my web IDE's search function for this one but I'll whip up some code later today to filter on rotations, that'll also allow me to list those other properties :)
Hazelnut wrote:
Wed Mar 11, 2020 9:35 am
Hmm axis 141 kinda sticks out there a bit... :)

As this was done from the data files dumped, just be aware that the values have already been read by DFU code and serialised - just wanted to mention in case this made any difference to how you interpret the numbers.
As far as I could see when I checked the RDB loading code, it's the raw values read from the Daggerfall files.

BadLuckBurt
Posts: 433
Joined: Sun Nov 05, 2017 8:30 pm

Re: Trapdoor above the main room in Privateers Hold

Post by BadLuckBurt » Wed Mar 11, 2020 2:33 pm

OK, I formatted it differently which should make it easier to work with in code by looping through the JSON object keys. If you prefer an array that's also an option. This made it easier to check for existing RDB block names as the code is looping through multiple RdbObjects.

These are all the blocks / models that have ActionResource.Flags == 8 which if I understood DFBlock.cs correctly, is the value for Rotation. I checked a couple of the model IDs and there are bookcases, banners, pulley wheels, levers and ofcourse trap doors :lol:

The trapdoors can be easily identified by the Description: "TRP" it seems.

Let me know if you'd like it in a different format or if you need additional properties, at this stage that's pretty trivial stuff :D

I had to put it on pastebin because it exceeded the max characters for a post :)

- edit, just realised the pastebin version hasn't been filtered for Axis. Changed the script a little and with Axis > 6, there's a lot less results:

Code: Select all

{
  "N0000006": {
    "name": "N0000006",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54000,
        "Description": "TRP",
        "Axis": 13,
        "Magnitude": 392
      }
    ]
  },
  "N0000008": {
    "name": "N0000008",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54000,
        "Description": "TRP",
        "Axis": 13,
        "Magnitude": 392
      }
    ]
  },
  "N0000033": {
    "name": "N0000033",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54000,
        "Description": "TRP",
        "Axis": 10,
        "Magnitude": 496
      }
    ]
  },
  "W0000005": {
    "name": "W0000005",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54000,
        "Description": "TRP",
        "Axis": 13,
        "Magnitude": 392
      }
    ]
  },
  "S0000022": {
    "name": "S0000022",
    "count": 2,
    "models": [
      {
        "ModelIdNum": 67205,
        "Description": "C0E",
        "Axis": 12,
        "Magnitude": 512
      },
      {
        "ModelIdNum": 67205,
        "Description": "C0E",
        "Axis": 12,
        "Magnitude": 512
      }
    ]
  }
}
https://pastebin.com/LvqLU0Uz

User avatar
Interkarma
Posts: 5198
Joined: Sun Mar 22, 2015 1:51 am

Re: Trapdoor above the main room in Privateers Hold

Post by Interkarma » Wed Mar 11, 2020 9:52 pm

This is exceptional, just what I needed thank you! :D

Very comforting to see the list of rotations with axis >6 to be so few. And most of them are TRP, which is interesting. I'm almost certain a bit shift or mask will extract the correct axis.

Would it be possible to run that same query again with translations and axis >6? Will be interesting to see if any translations also have this higher axis value. :)

User avatar
Hazelnut
Posts: 2138
Joined: Sat Aug 26, 2017 2:46 pm
Contact:

Re: Trapdoor above the main room in Privateers Hold

Post by Hazelnut » Wed Mar 11, 2020 10:02 pm

Gotta say that this is the most unexpected, but pleasantly so, thing that doing the world data system has enabled. I find it so funny that I only did it because I decided I needed to prove a guild could be added to the game.. the snowball effect combined with unintended consequences. :lol:
See my mod code for examples of how to change various aspects of DFU: https://github.com/ajrb/dfunity-mods

User avatar
Interkarma
Posts: 5198
Joined: Sun Mar 22, 2015 1:51 am

Re: Trapdoor above the main room in Privateers Hold

Post by Interkarma » Wed Mar 11, 2020 10:16 pm

Yeah for sure. The unexpected benefits of good tools are always surprising.

BadLuckBurt
Posts: 433
Joined: Sun Nov 05, 2017 8:30 pm

Re: Trapdoor above the main room in Privateers Hold

Post by BadLuckBurt » Thu Mar 12, 2020 4:04 am

Interkarma wrote:
Wed Mar 11, 2020 9:52 pm
This is exceptional, just what I needed thank you! :D

Very comforting to see the list of rotations with axis >6 to be so few. And most of them are TRP, which is interesting. I'm almost certain a bit shift or mask will extract the correct axis.

Would it be possible to run that same query again with translations and axis >6? Will be interesting to see if any translations also have this higher axis value. :)
You're welcome. Glad you find it useful :)

And yes, I can run the query against any of the Flags now, this is with translations (Flags == 1) and axis > 6 like you asked:

Code: Select all

{
  "N0000004": {
    "name": "N0000004",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 72019,
        "Description": "LXG",
        "Axis": 21,
        "Magnitude": 248
      }
    ]
  },
  "N0000007": {
    "name": "N0000007",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54000,
        "Description": "TRP",
        "Axis": 11,
        "Magnitude": 1782
      }
    ]
  },
  "N0000010": {
    "name": "N0000010",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 55033,
        "Description": "CAV",
        "Axis": 9,
        "Magnitude": 640
      }
    ]
  },
  "S0000001": {
    "name": "S0000001",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 74044,
        "Description": "CON",
        "Axis": 99,
        "Magnitude": 1424
      }
    ]
  },
  "S0000022": {
    "name": "S0000022",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 60506,
        "Description": "C0X",
        "Axis": 11,
        "Magnitude": 128
      }
    ]
  }
}

User avatar
Interkarma
Posts: 5198
Joined: Sun Mar 22, 2015 1:51 am

Re: Trapdoor above the main room in Privateers Hold

Post by Interkarma » Thu Mar 12, 2020 5:41 am

You're a legend. Thank you again for that. :)

Interesting to see all these non-standard axes. Still unsure if this is just bad data or some other info is bit-packed into the raw axis. Classic can clearly parse this as we can see in the Faallem example. This at least give us some more peculiar cases to inspect and see if any patterns exists.

Cheers!

BadLuckBurt
Posts: 433
Joined: Sun Nov 05, 2017 8:30 pm

Re: Trapdoor above the main room in Privateers Hold

Post by BadLuckBurt » Thu Mar 12, 2020 5:48 am

Interkarma wrote:
Thu Mar 12, 2020 5:41 am
You're a legend. Thank you again for that. :)

Interesting to see all these non-standard axes. Still unsure if this is just bad data or some other info is bit-packed into the raw axis. Classic can clearly parse this as we can see in the Faallem example. This at least give us some more peculiar cases to inspect and see if any patterns exists.

Cheers!
Thank you but if anyone deserves legendary status, it's you :)

Let me know if you have any other stuff you want to check out that's RDB or RMB related, I should be able to get what you need. That goes for locations too.

User avatar
DigitalMonk
Posts: 67
Joined: Sun Nov 10, 2019 8:01 pm

Re: Trapdoor above the main room in Privateers Hold

Post by DigitalMonk » Thu Mar 12, 2020 2:17 pm

Hopefully I'm not just wasting people's time with obvious stuff that has already been done...

Quick tear apart, starting with the translations:

If only axes <= 6 make sense, then it would make sense to mask
the bottom three bits, which gives us the following results.
'masked' is the result of 'axis&7'.
'upper' is the result of 'axis>>3'.

Code: Select all

masked: 5
upper:  2
    "name": "N0000004",
        "ModelIdNum": 72019,
        "Description": "LXG",
        "Axis": 21,
        "Magnitude": 248


masked: 3
upper:  1
    "name": "N0000007",
        "ModelIdNum": 54000,
        "Description": "TRP",
        "Axis": 11,
        "Magnitude": 1782


masked: 1
upper:  1
    "name": "N0000010",
        "ModelIdNum": 55033,
        "Description": "CAV",
        "Axis": 9,
        "Magnitude": 640


masked: 3
upper: 12
    "name": "S0000001",
        "ModelIdNum": 74044,
        "Description": "CON",
        "Axis": 99,
        "Magnitude": 1424


masked: 3
upper:  1
    "name": "S0000022",
        "ModelIdNum": 60506,
        "Description": "C0X",
        "Axis": 11,
        "Magnitude": 128

I'm not familiar enough with the models, descriptions, or axes
to recognize any pattern in those results, but thought I'd drop
'em here in case anybody else had an ah-HAH! moment...

edit: Rotations...

A lot fewer specific values here, so I'm gonna short-hand it:

Code: Select all

value 10, masked 2, upper 1
value 12, masked 4, upper 1
value 13, masked 5, upper 1
And I remember an axis of 141 floating by in the discussion, which, if it matters, tears apart as:

Code: Select all

value 141, masked 5, upper 17

BadLuckBurt
Posts: 433
Joined: Sun Nov 05, 2017 8:30 pm

Re: Trapdoor above the main room in Privateers Hold

Post by BadLuckBurt » Thu Mar 12, 2020 4:18 pm

I know that TRP stands for trapdoor, CAV is a cave model and the other C ones are corner pieces I think.

Ive been mapping the dungeon sets but havent gotten around to cross-referencing them all with their descriptions.

Post Reply