After being informed that the ID should always be exactly 16 hex long, I think I know what goes wrong here:
- The "x" is not displayed in the editor field.
- The 17 long IDs get displayed without the "x" in the editor and should be alright.
- The 16 long IDs get displayed with the "x" to make them 16 long in the editor and the "x" gets converted to a "0".
The solution would be to let the editor handle and accept both lengths. For new levels the correct 17 long IDs get used (x included) though, but it correctly reads and can handle the shorter ones.
There are many levels with this 1 character short IDs and I had no problem finding several in no time. So the editor at least recognising these should be supported!But wait there is more as I noticed:The level that broke had the correct 17 long ID and that confused me. I checked again and the result was stunning:
When pressing F12 the editor removed the first letter of the ID field! It was the "B" from "xB93B6682B93B6682".
So there is something very very fishy here. When I write in the "B" again and press F2 I get another ID similar to the "0000000100000002" one.
This also happens with "A".
So I assume every letter at the first position gets eaten when pressing F12. Edit:
This
could have something to do because some IDs violate the "first digit should be 0 to 7". But in another level "xB7B042E3B7B042E3" is transformed into "x37B042E3B7B042E3"
More examples (all without "x") from just the 1st rank of Clammings:A9EB26C0A9EB26C0 --> 29EB26C0A9EB26C0
417EF0DFB6F0ED0 ---> 0417EF0DFB6F0ED0 (case of shorter ID)
EF297435EF297435 --> 6F297435EF297435
C134398FC134398F --> 4134398FC134398F
B808D576B808D576 --> 3808D576B808D576
2F099531958BA69 ---> 02F099531958BA69 (case of shorter ID)
2795827B424E2E3 ---> 02795827B424E2E3 (case of shorter ID)
C8F6C9B7C8F6C9B7 --> 48F6C9B7C8F6C9B7
87DB31AF87DB31AF --> 07DB31AF87DB31AF (first number higher than 7)
Again, this is just the first rank of a pack with 30 levels in it!The 3 error cases seem to be now:- If the first number is higher than 7 it gets changed to a 0. This is activated with pressing F12 and the editor asks if the change should be changed after quitting.
- If the first sign is a letter it gets changed to a 0. This is activated with pressing F12 and the editor asks if the change should be changed after quitting.
- If the ID is one sign too short a 0 is placed in the first slot. This happens when opening the level and the editor won't notice it as a change.
So there seems to be many violations to the format namida once posted in discord that are not the user's fault! The editor simply assigned a somewhat faulty ID.
Namida's posted rules were:- Should be unique in a pack.
- Exactly 16 hex digits long. (Often violated)
- First digit should be 0 to 7. (Often violated)
- At least one of the first 8 digits must be non-zero.
The error from the case that the first letter is being eaten is not covered in there.
The player is not buggy here, only the editor screws things up and changes your IDs.
So the solution should be that the editor accepts and correctly displays more IDs that are outside of these rules (variable length, no first number limit, let's letters be at the first position). For new levels it can pick an ID according to the rules though.