Skip to content

Support meta PLM which skips based on flags #29

Description

@MassHesteria

Recently, we introduced a preprocessor for PLMs which allows us to define some meta PLMs for non-standard things. At the moment, we support:

  • $0001 = Jump to another PLM list
  • $0002 = Skip this PLM

We should add support for another meta PLM that checks a flag to determine whether or not we should skip the next n PLM's. I'm thinking:

  • $0003 = Check 24-bit flag with number of PLM's to skip in last byte. Ex: dw $0003 : dl $DFB822 : db $02 skips the next two PLMs if $DFB822 is zero

This meta PLM should allow us to setup area/recall changes without the need for another patch.

CustomPLMs_GreenElevator:
dw $C842 : db $0E,$06 : dw $9CAF      ; flashing door cap
dw $0001,$0000,PLMList1GreenElevator  ; run vanilla list

pushpc
if !AREA == 1
    ; Green Elevator - Room $9938
    org RoomState1GreenElevator
    skip 20 : dw CustomPLMs_GreenElevator
endif
pullpc

could become

CustomPLMs_GreenElevator:
dw $0003 : dl EnableAreaMods : db $01 ; skip to vanilla w/o area
dw $C842 : db $0E,$06 : dw $9CAF      ; flashing door cap
dw $0001,$0000,PLMList1GreenElevator  ; run vanilla list

pushpc
; Green Elevator - Room $9938
org RoomState1GreenElevator
skip 20 : dw CustomPLMs_GreenElevator
pullpc

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions