Trapdoor above the main room in Privateers Hold

Discuss Daggerfall Unity and Daggerfall Tools for Unity.
User avatar
Interkarma
Posts: 5192
Joined: Sun Mar 22, 2015 1:51 am

Re: Trapdoor above the main room in Privateers Hold

Post by Interkarma » Thu Mar 12, 2020 10:20 pm

I masked the 3 bottom bits earlier in this topic. Felt right intuitively but doesn't yield the correct results. That's why I needed more data to look at. :)

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

Re: Trapdoor above the main room in Privateers Hold

Post by BadLuckBurt » Thu Mar 12, 2020 10:39 pm

Interkarma wrote:
Thu Mar 12, 2020 10:20 pm
I masked the 3 bottom bits earlier in this topic. Felt right intuitively but doesn't yield the correct results. That's why I needed more data to look at. :)
I took the liberty of dumping all models with the TRP description that have rotate or translation actions:

Rotation with axis > 6

Code: Select all

{
  "N0000006": {
    "name": "N0000006",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54000,
        "Description": "TRP",
        "Axis": 13,
        "Magnitude": 392,
        "Flags": 8
      }
    ]
  },
  "N0000008": {
    "name": "N0000008",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54000,
        "Description": "TRP",
        "Axis": 13,
        "Magnitude": 392,
        "Flags": 8
      }
    ]
  },
  "N0000033": {
    "name": "N0000033",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54000,
        "Description": "TRP",
        "Axis": 10,
        "Magnitude": 496,
        "Flags": 8
      }
    ]
  },
  "W0000005": {
    "name": "W0000005",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54000,
        "Description": "TRP",
        "Axis": 13,
        "Magnitude": 392,
        "Flags": 8
      }
    ]
  }
}
Rotation with axis <= 6:

Code: Select all

{
  "N0000003": {
    "name": "N0000003",
    "count": 4,
    "models": [
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 1,
        "Magnitude": 768,
        "Flags": 8
      },
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 1,
        "Magnitude": 768,
        "Flags": 8
      },
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 1,
        "Magnitude": 768,
        "Flags": 8
      },
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 1,
        "Magnitude": 768,
        "Flags": 8
      }
    ]
  },
  "N0000004": {
    "name": "N0000004",
    "count": 4,
    "models": [
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 1,
        "Magnitude": 768,
        "Flags": 8
      },
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 1,
        "Magnitude": 768,
        "Flags": 8
      },
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 1,
        "Magnitude": 768,
        "Flags": 8
      },
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 1,
        "Magnitude": 768,
        "Flags": 8
      }
    ]
  },
  "N0000005": {
    "name": "N0000005",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 1,
        "Magnitude": 768,
        "Flags": 8
      }
    ]
  },
  "N0000033": {
    "name": "N0000033",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 5,
        "Magnitude": 480,
        "Flags": 8
      }
    ]
  },
  "N0000034": {
    "name": "N0000034",
    "count": 2,
    "models": [
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 5,
        "Magnitude": 480,
        "Flags": 8
      },
      {
        "ModelIdNum": 54000,
        "Description": "TRP",
        "Axis": 1,
        "Magnitude": 512,
        "Flags": 8
      }
    ]
  },
  "N0000035": {
    "name": "N0000035",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 6,
        "Magnitude": 480,
        "Flags": 8
      }
    ]
  },
  "N0000036": {
    "name": "N0000036",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 1,
        "Magnitude": 560,
        "Flags": 8
      }
    ]
  },
  "N0000037": {
    "name": "N0000037",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 1,
        "Magnitude": 560,
        "Flags": 8
      }
    ]
  },
  "N0000038": {
    "name": "N0000038",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 1,
        "Magnitude": 560,
        "Flags": 8
      }
    ]
  },
  "W0000002": {
    "name": "W0000002",
    "count": 2,
    "models": [
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 6,
        "Magnitude": 480,
        "Flags": 8
      },
      {
        "ModelIdNum": 54000,
        "Description": "TRP",
        "Axis": 1,
        "Magnitude": 512,
        "Flags": 8
      }
    ]
  },
  "W0000003": {
    "name": "W0000003",
    "count": 4,
    "models": [
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 1,
        "Magnitude": 768,
        "Flags": 8
      },
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 1,
        "Magnitude": 768,
        "Flags": 8
      },
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 1,
        "Magnitude": 768,
        "Flags": 8
      },
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 1,
        "Magnitude": 768,
        "Flags": 8
      }
    ]
  },
  "W0000004": {
    "name": "W0000004",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 1,
        "Magnitude": 560,
        "Flags": 8
      }
    ]
  },
  "W0000007": {
    "name": "W0000007",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 2,
        "Magnitude": 500,
        "Flags": 8
      }
    ]
  },
  "S0000001": {
    "name": "S0000001",
    "count": 3,
    "models": [
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 2,
        "Magnitude": 760,
        "Flags": 8
      },
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 1,
        "Magnitude": 760,
        "Flags": 8
      },
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 6,
        "Magnitude": 760,
        "Flags": 8
      }
    ]
  },
  "S0000080": {
    "name": "S0000080",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 2,
        "Magnitude": 488,
        "Flags": 8
      }
    ]
  },
  "S0000160": {
    "name": "S0000160",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54000,
        "Description": "TRP",
        "Axis": 5,
        "Magnitude": 512,
        "Flags": 8
      }
    ]
  },
  "S0000181": {
    "name": "S0000181",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54001,
        "Description": "TRP",
        "Axis": 6,
        "Magnitude": 402,
        "Flags": 8
      }
    ]
  }
}

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

Re: Trapdoor above the main room in Privateers Hold

Post by BadLuckBurt » Thu Mar 12, 2020 10:40 pm

Translation with axis > 6:

Code: Select all

{
  "N0000007": {
    "name": "N0000007",
    "count": 1,
    "models": [
      {
        "ModelIdNum": 54000,
        "Description": "TRP",
        "Axis": 11,
        "Magnitude": 1782,
        "Flags": 1
      }
    ]
  }
}
Translation with axis <= 6 yields no results

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

Re: Trapdoor above the main room in Privateers Hold

Post by Interkarma » Thu Mar 12, 2020 11:49 pm

Thank you Burt! :D

I'm starting to reach the conclusion this is just bad/malformed data. Pango's initial workaround was very good in simply targeting the properties for the TRP objects.

Something I want to do though, and haven't had time for yet, is to sit down with some of these actions Burt identified in the editor and play them to see how they operate visually with different settings. If there's some universal solution that will fix several edge cases of unusual actions, including TRP, then brilliant. Otherwise, we already have a fix for TRP thanks to Pango and the others may not even be valid to start with.

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

Re: Trapdoor above the main room in Privateers Hold

Post by DigitalMonk » Fri Mar 13, 2020 2:41 pm

Interkarma wrote:
Tue Mar 10, 2020 10:24 pm
The value 13 isn't currently supported in a direct comparison. Maybe we're reading 1 too many bits when populating or comparing this value? I note that 13=1101 and 5=0101. Is NegativeZ appropriate for that Faallem trapdoor? We might need to & out that 4th bit. Again, just a guess for now until I'm back in front of my dev environment.
So, your mention of NegativeZ made me wonder if negative axis values are meaningful? If so, I can think of two possible negative meanings for 1101:
  • Signed magnitude, where 1xxx directly inverts the 101 yielding -5. This sorta fits what happened when you masked axis&7, and the trapdoor then rotated up instead of down. But then, the rotation also apparently was around the wrong axis, so...
  • Two's complement nybble? In which case 1101 is -3. If the rotation was inverted (so it went down like it's supposed to) and it used axis 3 instead of 5, would that make it behave as expected?
Just flinging ideas...

Post Reply