AbePralle-FGB/Source/l0808.asm

102 lines
2.6 KiB
NASM
Raw Normal View History

2020-05-31 09:42:40 +01:00
; L0808.asm crouton war camp
2020-05-31 04:23:06 +01:00
; Generated 11.05.2000 by mlevel
; Modified 11.05.2000 by Abe Pralle
INCLUDE "Source/defs.inc"
INCLUDE "Source/levels.inc"
HFENCE_INDEX EQU 129
VFENCE_INDEX EQU 133
VAR_HFENCE EQU 0
VAR_VFENCE EQU 1
;---------------------------------------------------------------------
2020-05-31 05:07:40 +01:00
SECTION "Level0808Section",ROMX
2020-05-31 04:23:06 +01:00
;---------------------------------------------------------------------
L0808_Contents::
DW L0808_Load
DW L0808_Init
DW L0808_Check
DW L0808_Map
;---------------------------------------------------------------------
; Load
;---------------------------------------------------------------------
L0808_Load:
DW ((L0808_LoadFinished - L0808_Load2)) ;size
L0808_Load2:
call ParseMap
ret
L0808_LoadFinished:
;---------------------------------------------------------------------
; Map
;---------------------------------------------------------------------
L0808_Map:
2020-05-31 09:42:40 +01:00
INCBIN "Data/Levels/L0808_warcamp.lvl"
2020-05-31 04:23:06 +01:00
;---------------------------------------------------------------------
; Init
;---------------------------------------------------------------------
L0808_Init:
DW ((L0808_InitFinished - L0808_Init2)) ;size
L0808_Init2:
2020-05-31 04:46:09 +01:00
ld a,[bgTileMap+HFENCE_INDEX]
ld [levelVars + VAR_HFENCE],a
ld a,[bgTileMap+VFENCE_INDEX]
ld [levelVars + VAR_VFENCE],a
2020-05-31 04:23:06 +01:00
ld a,BANK(fgbwar_gbm)
ld hl,fgbwar_gbm
call InitMusic
ret
L0808_InitFinished:
;---------------------------------------------------------------------
; Check
;---------------------------------------------------------------------
L0808_Check:
DW ((L0808_CheckFinished - L0808_Check2)) ;size
L0808_Check2:
call ((.animateFence-L0808_Check2)+levelCheckRAM)
ret
.animateFence
ldio a,[updateTimer]
2020-05-31 04:46:09 +01:00
rrca
and 3
ld b,a
ld hl,bgTileMap+HFENCE_INDEX
ld a,[levelVars+VAR_HFENCE]
ld d,a
2020-05-31 04:23:06 +01:00
call ((.animateFourFrames-L0808_Check2)+levelCheckRAM)
2020-05-31 04:46:09 +01:00
ld a,[levelVars+VAR_VFENCE]
ld d,a
2020-05-31 04:23:06 +01:00
jp ((.animateFourFrames-L0808_Check2)+levelCheckRAM)
.animateFourFrames
ld c,4
.animateFourFrames_loop
ld a,b
2020-05-31 04:46:09 +01:00
add c
and 3
add d
ld [hl+],a
dec c
jr nz,.animateFourFrames_loop
ret
2020-05-31 04:23:06 +01:00
L0808_CheckFinished:
PRINTT "0808 Script Sizes (Load/Init/Check) (of $500): "
PRINTV (L0808_LoadFinished - L0808_Load2)
PRINTT " / "
PRINTV (L0808_InitFinished - L0808_Init2)
PRINTT " / "
PRINTV (L0808_CheckFinished - L0808_Check2)
PRINTT "\n"