AbePralle-FGB/Source/Levels/L1203.asm

353 lines
8.3 KiB
NASM
Raw Permalink Normal View History

; L1203.asm Rescue From The Tower Cinema
; Generated 03.31.2001 by mlevel
; Modified 03.31.2001 by Abe Pralle
INCLUDE "Source/Defs.inc"
INCLUDE "Source/Levels.inc"
INCLUDE "Source/Items.inc"
;---------------------------------------------------------------------
SECTION "Level1203Gfx1",ROMX
;---------------------------------------------------------------------
in_prison_bg:
INCBIN "Data/Cinema/Wedding/in_prison.bg"
bs_driving_bg:
INCBIN "Data/Cinema/Wedding/bs_driving.bg"
;---------------------------------------------------------------------
SECTION "Level1203Section",ROMX
;---------------------------------------------------------------------
dialog:
flour_heyguys_gtx:
INCBIN "Data/Dialog/Wedding/flour_heyguys.gtx"
bs_explain_gtx:
INCBIN "Data/Dialog/Wedding/bs_explain.gtx"
bs_explain2_gtx:
INCBIN "Data/Dialog/Wedding/bs_explain2.gtx"
captain_interrupt_gtx:
INCBIN "Data/Dialog/Wedding/captain_interrupt.gtx"
captain_tellyouwhat_gtx:
INCBIN "Data/Dialog/Wedding/captain_tellyouwhat.gtx"
captain_key_gtx:
INCBIN "Data/Dialog/Wedding/captain_key.gtx"
captain_dosomething_gtx:
INCBIN "Data/Dialog/Wedding/captain_dosomething.gtx"
captain_camp_gtx:
INCBIN "Data/Dialog/Wedding/captain_camp.gtx"
bs_driving_gtx:
INCBIN "Data/Dialog/Wedding/bs_driving.gtx"
bs_palace_gtx:
INCBIN "Data/Dialog/Wedding/bs_palace.gtx"
L1203_Contents::
DW L1203_Load
DW L1203_Init
DW L1203_Check
DW L1203_Map
;---------------------------------------------------------------------
; Load
;---------------------------------------------------------------------
L1203_Load:
DW ((L1203_LoadFinished - L1203_Load2)) ;size
L1203_Load2:
ld a,BANK(dialog)
ld [dialogBank],a
ld a,EXIT_D
ld hl,$1203
call YankRemotePlayer
ld bc,ITEM_APPXKEY
call AddInventoryItem
ld a,[heroesUsed]
ld hl,heroesAvailable
or [hl]
ld [hl],a
xor a
ld [heroesUsed],a
ld a,BANK(moon_base_haiku_gbm)
ld hl,moon_base_haiku_gbm
call InitMusic
ld a,BANK(in_prison_bg)
ld hl,in_prison_bg
call LoadCinemaBG
ld a,15
call SetupFadeFromStandard
call WaitFade
ld de,((.endCinema-L1203_Load2)+levelCheckRAM)
call SetDialogSkip
ld de,((.doorOpen-L1203_Load2)+levelCheckRAM)
call SetDialogForward
ld a,60
call Delay
.doorOpen
ld bc,$0508
ld de,$0201
ld hl,$1400
call CinemaBlitRect
ld de,((.heyGuys-L1203_Load2)+levelCheckRAM)
call SetDialogForward
ld a,30
call Delay
.heyGuys
ld c,0
DIALOGBOTTOM flour_heyguys_gtx
ld de,((.fewMinutesLater-L1203_Load2)+levelCheckRAM)
call SetDialogForward
ld a,150
call Delay
.fewMinutesLater
call ((.quickToBlack-L1203_Load2)+levelCheckRAM)
ld a,BANK(gang_watches_front_bg)
ld hl,gang_watches_front_bg
call LoadCinemaBG
call ((.quickFromBlack-L1203_Load2)+levelCheckRAM)
ld de,((.bsExplain-L1203_Load2)+levelCheckRAM)
call SetDialogForward
ld a,90
call Delay
.bsExplain
call ((.quickToBlack-L1203_Load2)+levelCheckRAM)
ld a,BANK(bs_bg)
ld hl,bs_bg
call LoadCinemaBG
call ((.quickFromBlack-L1203_Load2)+levelCheckRAM)
ld c,0
DIALOGBOTTOM bs_explain_gtx
ld de,((.bsExplain2-L1203_Load2)+levelCheckRAM)
call SetDialogForward
ld d,4
LONGCALLNOARGS AnimateBS
.bsExplain2
call ClearDialog
ld c,0
DIALOGBOTTOM bs_explain2_gtx
ld de,((.captainInterrupt-L1203_Load2)+levelCheckRAM)
call SetDialogForward
ld d,4
LONGCALLNOARGS AnimateBS
.captainInterrupt
call ((.quickToBlack-L1203_Load2)+levelCheckRAM)
ld a,BANK(flour_bg)
ld hl,flour_bg
call LoadCinemaBG
call ((.quickFromBlack-L1203_Load2)+levelCheckRAM)
ld c,0
DIALOGBOTTOM captain_interrupt_gtx
ld de,((.captainTellYouWhat-L1203_Load2)+levelCheckRAM)
call SetDialogForward
ld d,4
LONGCALLNOARGS AnimateFlour
.captainTellYouWhat
call ClearDialog
ld c,0
DIALOGBOTTOM captain_tellyouwhat_gtx
ld de,((.captainKey-L1203_Load2)+levelCheckRAM)
call SetDialogForward
ld d,4
LONGCALLNOARGS AnimateFlour
.captainKey
call ClearDialog
ld c,0
DIALOGBOTTOM captain_key_gtx
ld de,((.captainDoSomething-L1203_Load2)+levelCheckRAM)
call SetDialogForward
ld d,4
LONGCALLNOARGS AnimateFlour
.captainDoSomething
call ClearDialog
ld c,0
DIALOGBOTTOM captain_dosomething_gtx
ld de,((.captainCamp-L1203_Load2)+levelCheckRAM)
call SetDialogForward
ld d,4
LONGCALLNOARGS AnimateFlour
.captainCamp
call ClearDialog
ld c,0
DIALOGBOTTOM captain_camp_gtx
ld de,((.backAtAppx-L1203_Load2)+levelCheckRAM)
call SetDialogForward
ld d,4
LONGCALLNOARGS AnimateFlour
.backAtAppx
call ((.quickToBlack-L1203_Load2)+levelCheckRAM)
ld a,BANK(bs_driving_bg)
ld hl,bs_driving_bg
call LoadCinemaBG
call ((.quickFromBlack-L1203_Load2)+levelCheckRAM)
ld de,((.bsDriving-L1203_Load2)+levelCheckRAM)
call SetDialogForward
ld a,90
call Delay
.bsDriving
ld bc,$1406
ld de,$000c
ld hl,$1412
call CinemaBlitRect
ld a,1
call Delay
ld c,0
DIALOGBOTTOM bs_driving_gtx
ld de,((.bsPalace-L1203_Load2)+levelCheckRAM)
call SetDialogForward
ld d,4
LONGCALLNOARGS AnimateBSDriving
.bsPalace
call ClearDialog
ld c,0
DIALOGBOTTOM bs_palace_gtx
ld de,((.endCinema-L1203_Load2)+levelCheckRAM)
call SetDialogForward
ld d,4
LONGCALLNOARGS AnimateBSDriving
.endCinema
call ClearDialogSkipForward
;call ((.quickToBlack-L1203_Load2)+levelCheckRAM)
ld hl,2056 ;bs
ld a,l
ld [hero0_class],a
ld a,h
ld [hero0_class+1],a
ld a,HERO_BS_FLAG
ld [hero0_type],a
ld hl,2058 ;haiku
ld a,l
ld [hero1_class],a
ld a,h
ld [hero1_class+1],a
ld a,HERO_HAIKU_FLAG
ld [hero1_type],a
ld a,EXIT_N
ld [hero0_enterLevelFacing],a
ld [hero1_enterLevelFacing],a
ld hl,$1100
ld a,l
ld [curLevelIndex],a
ld a,h
ld [curLevelIndex+1],a
ld a,1
ld [timeToChangeLevel],a
ret
.quickToBlack
call BlackoutPalette
call ClearDialog
jp ResetSprites
.quickFromBlack
ld a,1
jp SetupFadeFromBlack
L1203_LoadFinished:
;---------------------------------------------------------------------
; Map
;---------------------------------------------------------------------
L1203_Map:
;---------------------------------------------------------------------
; Init
;---------------------------------------------------------------------
L1203_Init:
DW ((L1203_InitFinished - L1203_Init2)) ;size
L1203_Init2:
ret
L1203_InitFinished:
;---------------------------------------------------------------------
; Check
;---------------------------------------------------------------------
L1203_Check:
DW ((L1203_CheckFinished - L1203_Check2)) ;size
L1203_Check2:
ret
L1203_CheckFinished:
PRINT "1203 Script Sizes (Load/Init/Check) (of $500): "
PRINT (L1203_LoadFinished - L1203_Load2)
PRINT " / "
PRINT (L1203_InitFinished - L1203_Init2)
PRINT " / "
PRINT (L1203_CheckFinished - L1203_Check2)
PRINT "\n"