News:

Don't forget to visit the main site! There's lots of helpful docs, patches, and more!

Main Menu

[SM][ASM] Prime-esque Beam Doors, Shotblock-Style

Started by herald83, February 14, 2016, 02:20:24 AM

Previous topic - Next topic

herald83

I'm this posting in EngineWorks because it's not done and I'm looking for some advice on how to finish it off.

Attached is an assembly file that gives you beam-specific doors for all four beams. It's setup to be customizable, but by default it gives you 16 new shotblock BTS options, 4 per door. I went the shotblock route rather than the PLM route thinking that hacks that use this wouldn't have to use a ton of PLMs and so these could be combined with missile/super doors. I didn't put together any fancy graphics so they all reuse the blue door by default. If you get your CRE setup right though, you can easily use per-door graphics for all of them (admittedly, that's a lot of CRE tiles though). The doors mimic blue doors with a few remaining issues, which brings us to why I posted here.

These doors work great on their own, but I can't figure out how to get the closing animations to trigger properly when
a) you exit a door that uses the custom shotblock value and
b) you exit a door that had a missile/super/pb PLM.

I understand the reason for this bug, which is that the blue doors have a different PLM header being triggered to draw the closing bubble in those two cases; my problem is that I haven't been able to work out which routine is deciding which PLM header to use. I'm thinking it's somewhere after $82:DE12 is called, which is the room transition routine that uses the destination direction. Any input or feedback on what I've got so far would be appreciated.

Worst case scenario, these can be used as-is if you put the door bubbles further into the room so the closing animations aren't triggered by the room transition routine, or I could give up and go back to full PLMs and remove the check for whether the door has already been opened (which is easy enough, I just hate giving up like that).

[spoiler]
[/spoiler]

Doors in the test room are (clockwise from the left) wave, ice, spazer, plasma. BTS values are defined in the asm file. The bottom left and right doors out of the landing site are supposed to be wave doors. The left one works unless you come out of it, right one doesn't because of the super door PLM as mentioned. Beam combos and SBAs work fine. For real hacks I recommend using a HUD that allows for faster beam changes; it gets obnoxious to flip back and forth without one.

I tried to get a video of it in action put together, but that failed miserably so I'm open to advice on that topic as well. I put together an IPS with a test landing site as a demo instead. The srm gives you enough stuff to play with the doors.