So I was helping MrGreenThunder out on IRC because he was having some issues with the openable grills object crashing his custom level when he got near it. The crash was caused by the game trying to process collision data that didn't exist. The grills collision data was stored with the level data of BBB and HMC. So to fix this issue, I created my own custom collision data that the object will use. You do need to know how to hex edit and have a basic understanding of level scripts to modify the position of the doors. The 0x24 command you're looking for should end with [ 13 00 25 E0 ].
Once you found it, make the following changes to the code (colored parts):
24 18 1F 00 02 66 ED AE 09 1A 00 00 01 0E 00 00 00 3C01 90 13 00 25 E0
The 0x3C value is the model ID your going to use for the doors. The 0x190 value is the spacing along the X-axis between the doors. Unfortunately, you have to use a hex editor as TT64 can't modify that 0x190 value. If you don't modify that value, then it will be set to 0x190 by default.
Pros:
* Works with custom levels
* Works with the 8 MB ROM
Cons:
* Only 1 fixed collision box for all doors (based on the HMC grill doors)
* Requires a little bit of hex editing to change the x-position offsets of the doors
You will have to use the latest version of CajeASM (v7.24) to import the ASM code into the ROM. ASM Code download is in the attachments.
I've updated the ASM code to set the spacing between the doors (obj->0x188) to be 0x190 by default, so now no hex editing is required to make this object work in custom levels. You still need to set the B.Param 2 value to be the Model ID for the doors in TT64 though.
(This post was last modified: 21-05-2016, 09:07 PM by David.)
"Openable Grills" object ASM fix for custom levels