diff options
author | luckytyphlosion <alan.rj.huang@gmail.com> | 2016-05-30 18:20:41 -0400 |
---|---|---|
committer | luckytyphlosion <alan.rj.huang@gmail.com> | 2016-05-30 18:20:41 -0400 |
commit | 3330662296eabb6b3b7f0eed1c79003c8873c712 (patch) | |
tree | dae9a2f40425a236a3ef6ecce453cf16b4359c26 /constants/event_macros.asm | |
parent | 5b53dbe15d0f24c0ebcb537d7e11c106abd99867 (diff) | |
parent | d00b70b33ee909ad163f2cb1c639ce799db118d0 (diff) |
Merge pull request #9 from PikalaxALT/master
Disassemble banks 3A, 3F, and all outdoor maps
Diffstat (limited to 'constants/event_macros.asm')
-rw-r--r-- | constants/event_macros.asm | 53 |
1 files changed, 52 insertions, 1 deletions
diff --git a/constants/event_macros.asm b/constants/event_macros.asm index 9f24ace7..bf0a95b5 100644 --- a/constants/event_macros.asm +++ b/constants/event_macros.asm @@ -125,6 +125,27 @@ CheckAndResetEventA: MACRO ld [wEventFlags + ((\1) / 8)], a ENDM +CheckAndSetEventReuseHL: MACRO + IF event_byte != ((\1) / 8) +event_byte = ((\1) / 8) + ld hl, wEventFlags + event_byte + ENDC + + bit (\1) % 8, [hl] + set (\1) % 8, [hl] + ENDM + +CheckAndResetEventReuseHL: MACRO + IF event_byte != ((\1) / 8) +event_byte = ((\1) / 8) + ld hl, wEventFlags + event_byte + ENDC + + bit (\1) % 8, [hl] + res (\1) % 8, [hl] + ENDM + + ;\1 = event index SetEvent: MACRO event_byte = ((\1) / 8) @@ -431,6 +452,36 @@ CheckEitherEventSet: MACRO ENDC ENDM +CheckEitherEventSetReuseA: MACRO + IF event_byte != ((\1) / 8) +event_byte = ((\1) / 8) + ld a, [wEventFlags + event_byte] + ENDC + IF ((\1) / 8) == ((\2) / 8) + ld a, [wEventFlags + ((\1) / 8)] + and (1 << ((\1) % 8)) | (1 << ((\2) % 8)) + ELSE + ; This case doesn't happen in the original ROM. + IF ((\1) % 8) == ((\2) % 8) + push hl + ld a, [wEventFlags + ((\1) / 8)] + ld hl, wEventFlags + ((\2) / 8) + or [hl] + bit ((\1) % 8), a + pop hl + ELSE + push bc + ld a, [wEventFlags + ((\1) / 8)] + and (1 << ((\1) % 8)) + ld b, a + ld a, [wEventFlags + ((\2) / 8)] + and (1 << ((\2) % 8)) + or b + pop bc + ENDC + ENDC + ENDM + ; for handling fixed event bits when events are inserted/removed ;\1 = event index ;\2 = fixed flag bit @@ -438,4 +489,4 @@ AdjustEventBit: MACRO IF ((\1) % 8) != (\2) add ((\1) % 8) - (\2) ENDC - ENDM
\ No newline at end of file + ENDM |