revolution-x/GXUNISEQ.ASM

3003 lines
68 KiB
NASM
Raw Permalink Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

.MLIB "GXMACS.LIB"
.FILE "GXUNISEQ.ASM"
.TITLE " <<< GENERATION X -- UNIVERSE SEQUENCES >>>"
.WIDTH 132
.OPTION B,D,L,T
.MNOLIST
**************************************************************************
* *
* COPYRIGHT (C) 1992 MIDWAY MANUFACTURING COMPANY. *
* ALL RIGHTS RESERVED. *
* *
**************************************************************************
* GET THE SYSTEM STUFF
.INCLUDE "GX.INC"
.INCLUDE "IMGTBL.GLO"
.include "univtbl.glo"
.include "gxkspec.tbl"
.BSS RUNOUT_TOTAL,8 ;TOTAL NUMBER OF RUNOUTS
.BSS RUNOUT_TIME,8 ;TIME BETWEEN RUNOUTS
.BSS HELGA_INUSE,16 ;nonzero if helga is talking on monitor
.DEF HELGA_INUSE,A_MAKE_PART
; .BSS MAGRILLA,16 ;FILLER!
.DEF RUNOUT_TOTAL, SLDORCLOSE, DOORSWING_CLOSE
* SYMBOLS IN HERE
.DEF RUNOUT_TOTAL, SLDORCLOSE, SND_MORPH, SEC_DR_TABLE
* SYMBOLS FROM ?
.ref AU_CREATE_JUNWIN,SAVE_ME,ADD_SKULL_PARTS,AU_CREATE_SIDERUN
.ref AU_CREATE_BUGEYZ,CHECK_ENEMY_DISAB,NMEEZ_GONE1
.ref A_SLP_Based_CURPLYRS,A_INC_Var_Word,A_INIT_AnimSLP_Var
.ref AU_CREATE_BUSHGUY,AU_CREATE_TREEGUY
.ref AU_CREATE_NATIVE,A_SET_RANDSLP,A_OFFSCRN_DEL
.ref A_TAB_SOUNDZ,PLAYER_AWARD_GIRL,KER_SND_TAB
.ref CREATE_PICTURE
* SYMBOLS FROM GXLA1.ASM
.REF AU_GITAR_SND
* SYMBOLS FROM GXLA2.ASM
.REF SND_SLAM_STALL, SND_TCAN_SHAKE, SND_SEAT_SLAM
* SYMBOLS FROM gxjungle.asm
.REF VIDCAM_HOLDTIME,VIDCAM_Z,KER3RUN
* SYMBOLS FROM GXNONBOY.ASM
.REF AU_CREATE_HEADOUTBOY
***** From GXRAM.ASM
.REF WINGS_STEVEN
* SYMBOLS FROM GXAFUNC.ASM
.REF A_WAIT_FOR_QUOTA, AU_DANIM, A_AnimFrm_DSJ
.REF A_Set_LOOP_STRT, A_AnimFrm_IF_TRUE, A_ADD_YPOS, A_SOUNDZ
.REF SetAnim_AFARG, A_AUDIT, A_CREATEP_R
***** From GXCOG.ASM
.REF AU_CREATE_COG_BRIDGE, TAB_JBRIDGE
* SYMBOLS FROM GXUNIV1.ASM
.REF FLOAT_ZFAR
***** From GXUNIJAP.ASM
.REF AU_CREATE_REDBACK, FAC_DOORS_OPEN, FAC_DOORS_ALLOWED
***** From GXYJAK.ASM
.REF AU_CREATE_YJAK
***** From GXNINJA.ASM
.REF AU_CREATE_WALKWAY_NINJA, AU_CREATE_DESK_NINJA
.REF AU_CREATE_SHUFFLE_NINJA, AU_CREATE_SIDE_NINJA
.REF AU_CREATE_SHUFFLE_NINJA_OPP, AU_CREATE_SIDE_NINJA_OPP
* SYMBOLS FROM GXPOWER.ASM
.REF A_UNIVOBJ_TO_POWERUP, REVEAL_LIFE2
***** From GXKERRI.ASM
.REF AU_CREATE_KERRI_FLOSS
**************************************************************************
* *
* LA UNIVERSE *
* *
**************************************************************************
**************************************************************************
* STANDARD AND DAMAGE ANIMATIONS
**************************************************************************
**************************************************************************
**************************************************************************
dBSHBRN1sq:
LW BSHBRN1,3
LW BSHBRN2,3
LW BSHBRN3,3
LW BSHBRN4,3
LW BSHBRN5,3
LW BSHBRN6,3
LW BSHBRN7,3
LW BSHBRN8,3
LW BSHBRN9,3
LW BSHBRN10,3
LW BSHBRN11,3
LW BSHBRN12,3
LW BSHBRN13,3
LW BSHBRN14,3
LW BSHBRN15,3
LW BSHBRN16,3
.long 0
XCDOR2:
LW GXCARFRNT2,10
LW do2,3
LWLL do3,3|AFunc,A_SOUND+2,SND_DOOR_HISS
LW do4,3
LW do5,3
LW do6,3
LW do7,3
LW do8,3
LWL do9,1|AFunc,PULL_ANIM
SND_DOOR_HISS
.WORD 0F2F0H,62,0A332H,0
XCARLITESb:
LWLL GXCLITES2b,1|AFunc,A_AnimGo+2,XCARLITES_GO
XCARLITES:
LW GXCARLITES2,1
XCARLITES_GO
LWLW 1,1|AFunc,A_Set_AnimLoop+1,2
XCARLITES_LUPE
LWLL 1,1|AFunc,A_CHANGE_PAL+2,NLITE1
LWLL 1,4|AFunc,A_SOUND+2,SND_ALARM_DEAC
LWLL 1,5|AFunc,A_CHANGE_PAL+2,NLITE3
LWLL 1,4|AFunc,A_CHANGE_PAL+2,NLITE2
LWLL 1,1|AFunc,A_Anim_DSJ+2,XCARLITES_LUPE
LWL 1,1|AFunc,PULL_ANIM
SND_ALARM_DEAC
.WORD 0F3F0H,4,0A099H,0
NLITE1:
.word 60
.word 07fffh,03e33h,035f1h,031d0h,0298eh,01d2bh,014e9h,010c8h
.word 00465h,00002h,00000h,00000h,00000h,00000h,00000h,00000h
.word 060c0h,05ca0h,058a0h,05800h,04c40h,04c00h,04840h,04420h
.word 04400h,04000h,03c00h,03800h,03400h,03000h,02c00h,02800h
.word 02800h,02400h,02000h,02000h,01ccah,01c00h,01c00h,01800h
.word 01800h,01800h,01400h,01000h,00c00h,00c00h,00800h,00800h
.word 00800h,00400h,00000h,00000h,00000h,00000h,00000h,00000h
.word 00000h,00000h,00000h,00000h
NLITE3:
.word 60
.word 07fffh,07fffh,07fffh,07fffh,07fffh,077ffh,06fbfh,06b9fh
.word 05f3fh,052dfh,04a9dh,0425bh,03a19h,031d7h,01084h,00000h
.word 07fe0h,07fe0h,07fe0h,07d80h,07e60h,07c40h,07fe6h,07fe6h
.word 07d20h,07d60h,07e20h,07c40h,07de0h,07dc0h,07c40h,07da0h
.word 07c40h,07d80h,07d80h,07d40h,07dach,07da3h,07ce4h,07d40h
.word 07c82h,07c20h,07ca1h,07d20h,07861h,07820h,074e5h,074e1h
.word 07420h,07062h,06c82h,06c20h,068c0h,06420h,06082h,06081h
.word 06063h,05c60h,05820h,05461h
HOTSINE1sq:
LWLL HOTSINE1,20|AFunc,A_AnimGo+2,HOTSINE1_LUPE
HOTSINE1lasq:
LWLL HOTSINE1la,20|AFunc,A_AnimGo+2,HOTSINE1_LUPE
HOTSINE1_LUPE
LWLL 1,20|AFunc,A_CHANGE_PAL+2,HOTLAPx3
LWLL 1,20|AFunc,A_CHANGE_PAL+2,HOTLAPx
.long 0
HOTLAPx3:
.word 15
.word 00000h,00c85h,00443h,00842h,044b7h,04430h,04409h,03007h
.word 04400h,03803h,02400h,00400h,0759fh,0741fh,05c3fh
FLAG1sq:
LW FLAG1,3
LW FLAG2,3
LW FLAG3,3
LW FLAG4,3
LW FLAG5,3
LW FLAG6,3
LW FLAG7,3
LW FLAG8,3
LW FLAG9,3
LW FLAG10,3
LW FLAG11,3
LW FLAG12,3
LW FLAG13,3
LW FLAG14,3
LW FLAG15,3
LW FLAG16,3
.long 0
YUKYUK:
LWLL YUKYUKs,24|AFunc,A_AnimGo+2,YUK_LUPE
YUK_LUPE
LWLL 1,12|AFunc,A_CHANGE_PAL+2,YUKd
LWLL 1,24|AFunc,A_CHANGE_PAL+2,YUK
.long 0
YUKd:
.word 13
.word 00H,02000H,05000H,010H,0115H,0C0H,01A0H,0294AH
.word 04631H,01010H,04417H,04C80H,059A0H
;CXWINOPEN1:
; LW CXWINOP1,10
; LW CXWINOP2,2
; LW CXWINOP3,2
; LW CXWINOP3,2
; LW CXWINOP2,2
; .long 0
;dB3CHAIRFALLsq:
; LW G_B3CHAFALC1,6
; LW G_B3CHAFALC2,6
; LW G_B3CHAFALC3,5
; LW G_B3CHAFALC4,4
; LW G_B3CHAFALC5,3
; LW G_B3CHAFALC6,2
; LWL G_B3CHAFALC7,1|AFunc,UNIV_MAKE_STATIC
;dB5CHAIRFALLsq:
; LW G_B5CHAFALA1,4
; LW G_B5CHAFALA2,4
; LW G_B5CHAFALA3,3
; LW G_B5CHAFALA4,3
; LW G_B5CHAFALA5,3
; LW G_B5CHAFALA6,2
; LW G_B5CHAFALA7,2
; LWL G_B5CHAFALA8,1|AFunc,UNIV_MAKE_STATIC
VCPLAY1_FLASH:
LW VCPLAY1,120
LWLL 1,60|AFunc,A_AnimScr+2,VCPLAY1_LUPE
VCPLAY1_LUPE
LWL 1,3|AFunc,OBJ_CONST
LWL 1,12|AFunc,OBJ_ON_WNZ
.long 0
DRESSTAB1sq:
LW MTAB1a,60
LW MTAB1b,7
LW MTAB1c,9
LWL MTAB1d,1|AFunc,PULL_ANIM
DBANANA1sq:
LW DBAN2,4
LW DBAN3,4
LW DBAN4,4
LWW DBAN2,4|AFlip,M_FLIPH
LW DBAN3,4
LWW DBAN1,4|AFlip,0
.long 0
dFLDCHAIR1sq:
LW FLDCHR2,4
LW FLDCHR3,3
LW FLDCHR4,2
LW FLDCHR6,2
LWL FLDCHR9,1|AFunc,UNIV_MAKE_STATIC
dSPOTLT1sq:
LW MOL1,3
LWLW MOL3,3|AFunc,A_TOGGLE_FLIP+1,M_FLIPH
LW MOL5,3
LW MOL7,3
LW MOL9,3
LW MOL11,3
LW MOL13,3
LW MOL14,3
LWLW MOL13,4|AFunc,A_TOGGLE_FLIP+1,M_FLIPH
LW MOL11,4
LW MOL9,4
LW MOL7,5
LW MOL5,5
LWL MOL1,1|AFunc,PULL_ANIM
dn5b:
.IF AUSTRALIA
LW DN5B01,5
LWL 1,1|AFunc,BG_TO_FG
LWL 1,1|AFunc,DELETE_OBJ
dn1b:
LW DN1B01,5
LWL 1,1|AFunc,BG_TO_FG
LWL 1,1|AFunc,DELETE_OBJ
.ELSE
LWLW DN5B01,6|AFunc,A_TOGGLE_FLIP+1,M_FLIPH
dn5bnoflp:
LW DN5B02,6
LW DN5B03,6
LW DN5B04,6
LW DN5B05,6
LW DN5B04,6
LW DN5B03,6
LW DN5B02,6
LW DN5B01,5
LWLWL 1,1|AFunc,A_RAND_BRANCH+3,512,dn5bnoflp
.long 0
dn1b:
LW DN1B01,5
LW DN1B02,5
LW DN1B03,5
LW DN1B04,5
LW DN1B05,5
LW DN1B06,5
LW DN1B07,5
LW DN1B06,5
LW DN1B05,5
LW DN1B04,5
LW DN1B03,5
LW DN1B02,5
.long 0
.ENDIF
XCRTN1Psq:
LW pDHUNGA0,5
LW pDHUNGZ1,6
LW pDHUNGZ3,6
LW pDHUNGZ5,7
LW pDHUNGZ7,7
LW pDHUNGZ9,30
.long 0
dMARTAIL1sq:
LW MARTAIL1,1
LW MARTAIL2,1
LW MARTAIL3,1
LW MARTAIL2,2
LW MARTAIL1,2
LW MARTAIL2,2
LW MARTAIL3,2
LW MARTAIL2,2
LW MARTAIL1,2
LW MARTAIL2,2
LW MARTAIL3,2
LW MARTAIL2,3
LW MARTAIL1,3
LW MARTAIL2,3
LW MARTAIL3,3
LW MARTAIL2,3
LWL MARTAIL1,1|AFunc,PULL_ANIM
CANDLa1sq:
LW CANDLA1,5
LW CANDLA2a2,4
LW CANDLA1,5
LW CANDLA4a,5
LW CANDLA2a2,4
LW CANDLA4a,4
LW CANDLA1,4
LW CANDLA2a2,5
LW CANDLA1,3
LW CANDLA4a,4
LW CANDLA1,5
LW CANDLA2a2,4
LW CANDLA4a,4
LW CANDLA2a2,3
LW CANDLA4a,3
LW CANDLA2a2,2
.long 0
dCANDLa3sq:
LW BSHAT1,4
LW BSHAT2,2
LWLL CANDLfr1,1|AFunc,A_CHANGE_PAL+2,KANDL3p
LWL 1,1|AFunc,UNIV_MAKE_STATIC
LAVA1Asq:
LW bLAVA1,4
LW bLAVA2,3
LW bLAVA3,3
LW bLAVA5,3
LW bLAVA6,3
LW bLAVA7,4
LW bLAVA8,6
LW bLAVA7,4
LW bLAVA6,3
LW bLAVA5,3
LW bLAVA3,4
LW bLAVA2,4
.long 0
dBGLASS3sq:
LW BSHAT1,4
LW BSHAT2,2
LWLL DRINK1fr,1|AFunc,A_CHANGE_PAL+2,DRINK1Wp
LWL 1,1|AFunc,UNIV_MAKE_STATIC
dFLYVGSWING1sq:
LW GFVA3,1
GITAR_SWING_LUPE
LWL GFVD4,1|AFunc,AU_GITAR_SND ;GOING
LW GFVD1,2
LW GFVD4,2
LW GFVA3,2
LW GFVA5,2 ;COMING
LW GFVA7,3
LW GFVA5,3
LWLL GFVA3,3|AFunc,AU_CHECK_LUPE+2,GITAR_SWING_LUPE
LW GFVD4,3 ;GOING
LW GFVD1,4
LW GFVD4,4
LWLL GFVA3,4|AFunc,AU_CHECK_LUPE+2,GITAR_SWING_LUPE
LW GFVA5,5 ;COMING
LWL GFVA3,1|AFunc,PULL_ANIM
dGITARFALLsq:
LW GFVA3,20
LW GFVA5,10
LWL GFVA7,1|AFunc,PULL_ANIM
dBZBEER3sq:
LW BSHAT1,4
LW BSHAT2,2
LWLL BBBERfr1,1|AFunc,A_CHANGE_PAL+2,BZBEER2p
LWL 1,1|AFunc,UNIV_MAKE_STATIC
dBZSCOMF3sq:
LW BSHAT1,4
LW BSHAT2,2
LWLL BSCMfr2,1|AFunc,A_CHANGE_PAL+2,BZCOM13p2
LWL 1,1|AFunc,UNIV_MAKE_STATIC
dBZGIN3seq:
LW BSHAT1,4
LW BSHAT2,2
LWL BGINfr1,1|AFunc,A_CHANGE_PAL+2,BZGIN2p
LWL 1,1|AFunc,UNIV_MAKE_STATIC
dBZSEGRM3sq:
LW BSHAT1,4
LW BSHAT2,2
LWL BSEGfr1,1|AFunc,A_CHANGE_PAL+2,BZSEG1p
LWL 1,1|AFunc,UNIV_MAKE_STATIC
dPHONCOINDR1sq:
LW PCOINB1,1
LW PCOINB2,1
LW PCOINB3,1
LW PCOINB4,1
LW PCOINB5,1
LW PCOINB6,1
LW PCOINB7,1
LW PCOINB8,1
.long 0
dRECEIVER1sq:
LW RECEIVER1,1
LW RECEIVER2,3
LW RECEIVER3,3
LW RECEIVER4,3
LW RECEIVER5,3
LW RECEIVER6,3
LWW RECEIVER5,3|AFlip,M_FLIPH
LW RECEIVER4,3
LW RECEIVER5,2
LWW RECEIVER6,2|AFlip,0
LW RECEIVER5,2
LW RECEIVER4,2
LW RECEIVER5,2
LW RECEIVER6,3
LWW RECEIVER5,3|AFlip,M_FLIPH
LWWL RECEIVER6,1|AFlip|AFunc,0,PULL_ANIM
dTPAPER1sq:
LW TPAX1,1
LW TPAX2,1
LW TPAX3,1
LW TPAX1,2
LW TPAX2,2
LW TPAX3,2
LW TPBX1,2
LW TPBX2,2
LW TPBX3,2
LW TPBX1,2
LW TPBX2,3
LW TPBX3,3
LW TPBX1,3
LW TPBX2,3
LW TPBX3,3
.long 0
dTOILID1sq:
LW TOILID1,2
LW TOILID2,2
LW TOILID3,2
LW TOILID4,2
LW TOILID5,3
LW TOILID6,4
LW TOILID5,3
LW TOILID4,2
LW TOILID3,2
LW TOILID2,2
LWLL TOILID1,2|AFunc,A_SOUNDZ+2,SND_SEAT_SLAM
LW TOILID2,2
LW TOILID3,2
LW TOILID2,2
LWLL TOILID1,1|AFunc,A_SOUNDZ+2,SND_SEAT_SLAM
LW TOILID2,1
LWLL TOILID1,1|AFunc,A_SOUNDZ+2,SND_SEAT_SLAM
LWL 1,1|AFunc,PULL_ANIM
dTOILID1flysq:
LW TOILID1,2
LW TOILID2,2
LW TOILID3,2
LW TOILID4,2
LW TOILID5,3
LWL TOILID6,1|AFunc,PULL_ANIM
dHDRYVENT1sq:
LW HDRYVENT1,3
LW HDRYVENT2,3
LW HDRYVENT3,3
LW HDRYVENT4,3
LW HDRYVENT5,3
LW HDRYVENT6,3
LW HDRYVENT7,3
LW HDRYVENT8,3
.long 0
dTLEVER1sq:
LW TOILEV1,3
LW TOILEV2,3
LW TOILEV3,10
LW TOILEV2,3
LWL TOILEV1,1|AFunc,PULL_ANIM
dTLEVER1repsq:
LW TOILEV1,3
LW TOILEV2,3
LW TOILEV3,10
LW TOILEV2,3
.long 0
dSTALLDOR1sq:
LW STDOR1,2
LW STDOR2,2
LW STDOR3,3
LW STDOR4,3
LW STDOR5,3
LWLL STDOR6,3|AFunc,A_SOUNDZ+2,SND_SLAM_STALL ;0
LW STDOR5,3
LW STDOR4,3
LW STDOR3,3
LW STDOR2,3
LW STDOR1,4 ;100
LW STDOR2,4
LW STDOR3,4
LW STDOR4,4
LW STDOR5,4
LWLL STDOR6,5|AFunc,A_SOUNDZ+2,SND_SLAM_STALL ;0
LW STDOR5,5
LW STDOR4,5
LW STDOR3,5
LW STDOR2,6 ;80
LW STDOR3,6
LW STDOR4,6
LW STDOR5,6
LWLL STDOR6,7|AFunc,A_SOUNDZ+2,SND_SLAM_STALL ;0
LW STDOR5,7
LW STDOR4,8 ;40
LW STDOR5,8
LWL STDOR6,1|AFunc,PULL_ANIM ;100
dSTALLDOR1Gsq:
LW gSTDOR1,2
LW gSTDOR2,2
LW gSTDOR3,3
LW gSTDOR4,3
LW gSTDOR5,3
LWLL gSTDOR6,3|AFunc,A_SOUNDZ+2,SND_SLAM_STALL ;0
LW gSTDOR5,3
LW gSTDOR4,3
LW gSTDOR3,3
LW gSTDOR2,3
LW gSTDOR1,4 ;100
LW gSTDOR2,4
LW gSTDOR3,4
LW gSTDOR4,4
LW gSTDOR5,4
LWLL gSTDOR6,5|AFunc,A_SOUNDZ+2,SND_SLAM_STALL ;0
LW gSTDOR5,5
LW gSTDOR4,5
LW gSTDOR3,5
LW gSTDOR2,6 ;80
LW gSTDOR3,6
LW gSTDOR4,6
LW gSTDOR5,6
LWLL gSTDOR6,7|AFunc,A_SOUNDZ+2,SND_SLAM_STALL ;0
LW gSTDOR5,7
LW gSTDOR4,8 ;40
LW gSTDOR5,8
LWL gSTDOR6,1|AFunc,PULL_ANIM ;100
dBCANTLT1sq:
LW BCANB3,4
LW BCANB5,4
LW BCANB3,4
LW BCANA1,3
LW BCANC3,3
LW BCANC4,3
TRASH_TILT_LUPE
LWL BCANC3,3|AFunc,AU_RESET_LUPE
LWLL BCANA1,3|AFunc,A_SOUNDZ+2,SND_TCAN_SHAKE
LW BCANB3,3
LWLL BCANA1,3|AFunc,AU_CHECK_LUPE+2,TRASH_TILT_LUPE
LW BCANC3,2
LW BCANA1,2
LW BCANB3,2
LW BCANA1,2
LW BCANC3,1
LWL BCANA1,1|AFunc,PULL_ANIM
dBCANSPIN1sq:
LW BCAND2,3
LW BCAND4,3
LW BCANE2,3
LW BCANF1,3
LW BCANG3,3
LW BCANH3,3
LW BCANH5,3
LW BCANH9,3
LW BCANA1,3
LW BCANI1,3
.long 0
;EKNNO1:
; LW ERKDED1,4
; LW ERKDED2,4
; LW ERKDED3,4
; LW ERKDED4,4
; LW ERKDED5,4
; LW ERKDED6,4
; LW ERKDED5,4
; LW ERKDED4,4
; LW ERKDED3,4
; LWL ERKDED2,4|AFunc,AU_CHECK_EROK
; .long 0
;
;EKNHIT2:
; LW ERKDED7,8
; LW ERKDED8,4
; LW ERKDED9,4
; LW ERKDED10,4
; LW ERKDED11,4
; LW ERKDED12,4
; LW ERKDED13,6
; LW ERKDED14,6
; LW ERKDED15,6
; LW ERKDED14,8
; LW ERKDED13,10
; LW ERKDED14,14
; LW ERKDED15,20
; LW ERKDED16,4
; LWL ERKDED17,1|AFunc,UNIV_MAKE_STATIC
;ROPELADdownSEQ:
; LW ROPLAD2,4
; LW ROPLAD3,4
; LWL ROPLAD4,1|AFunc,UNIV_MAKE_STATIC
CXTVWIN2sq:
LW CXTVWIN1,18
LW CXTVWIN3,12
LW CXTVWIN4,12
LW CXTVWIN2,12
LW CXTVWIN1,18
LW CXTVWIN3,27
LW CXTVWIN4,12
LW CXTVWIN2,12
LW CXTVWIN3,15
LW CXTVWIN1,18
LW CXTVWIN4,12
LW CXTVWIN3,18
LW CXTVWIN4,12
LW CXTVWIN2,27
LW CXTVWIN1,6
LW CXTVWIN4,9
.long 0
LWL 1,3|AFunc,OBJ_ON
LWL 1,4|AFunc,OBJ_OFF
GLAMPH1:
LWL GLAMPH2,5|AFunc,OBJ_ON
LWL 1,20|AFunc,OBJ_OFF
LWL 1,5|AFunc,OBJ_ON
LWL 1,20|AFunc,OBJ_OFF
LWL 1,5|AFunc,OBJ_ON
LWL 1,20|AFunc,OBJ_OFF
LWL 1,5|AFunc,OBJ_ON
LWL 1,10|AFunc,OBJ_OFF
LWL 1,5|AFunc,OBJ_ON
LWL 1,10|AFunc,OBJ_OFF
LWL 1,5|AFunc,OBJ_ON
LWL 1,10|AFunc,OBJ_OFF
LWL 1,5|AFunc,OBJ_ON
LWL 1,10|AFunc,OBJ_OFF
LWL 1,5|AFunc,OBJ_ON
.long 0
LWL 1,3|AFunc,OBJ_ON
LWL 1,4|AFunc,OBJ_OFF
FLASHBULB:
LWL FLASHBULB1,5|AFunc,OBJ_ON
LWL 1,20|AFunc,OBJ_OFF
LWL 1,5|AFunc,OBJ_ON
LWL 1,20|AFunc,OBJ_OFF
LWL 1,5|AFunc,OBJ_ON
LWL 1,20|AFunc,OBJ_OFF
LWL 1,5|AFunc,OBJ_ON
LWL 1,10|AFunc,OBJ_OFF
LWL 1,5|AFunc,OBJ_ON
LWL 1,10|AFunc,OBJ_OFF
LWL 1,5|AFunc,OBJ_ON
LWL 1,10|AFunc,OBJ_OFF
LWL 1,5|AFunc,OBJ_ON
LWL 1,10|AFunc,OBJ_OFF
LWL 1,5|AFunc,OBJ_ON
.long 0
CXOPNDRGRN1:
LW XDOROPN1y,3
LW XDOROPN2,3
LW XDOROPN3,3
LW XDOROPN4,3
LW XDOROPN5,3
LW XDOROPN6y,2
LWLL 1,1|AFunc,AU_CHANGE_MAP_IMG+2,CXCLODRGRN1+M_IF_SEQ
CXCLODRGRN1:
LW XDOROPN6y,3
LW XDOROPN5,3
LW XDOROPN4,3
LW XDOROPN3,3
LW XDOROPN2,3
LW XDOROPN1y,2
LWLL 1,1|AFunc,AU_CHANGE_MAP_IMG+2,CXOPNDRGRN1+M_IF_DANIM+M_IF_SEQ
CXOPNDRBLU1:
LW XDOROPN1b,3
LW XDOROPN2,3
LW XDOROPN3,3
LW XDOROPN4,3
LW XDOROPN5,3
LW XDOROPN6b,2
LWLL 1,1|AFunc,AU_CHANGE_MAP_IMG+2,CXCLODRBLU1+M_IF_SEQ
CXCLODRBLU1:
LW XDOROPN6b,3
LW XDOROPN5,3
LW XDOROPN4,3
LW XDOROPN3,3
LW XDOROPN2,3
LW XDOROPN1b,2
LWLL 1,1|AFunc,AU_CHANGE_MAP_IMG+2,CXOPNDRBLU1+M_IF_DANIM+M_IF_SEQ
dGCANTLT1sq:
TILT_LUPE
LWW XGCANTLT1,2|AFlip,0
LW XGCANTLT2,2
LWL XGCANTLT3,2|AFunc,AU_RESET_LUPE
LWW XGCANTLT2,2|AFlip,M_FLIPH
LWW XGCANTLT6,2|AFlip,0
LW XGCANTLT7,2
LWWLL XGCANTLT6,2|AFlip|AFunc,M_FLIPH,AU_CHECK_LUPE+2,TILT_LUPE
LW XGCANTLT1,2
LW XGCAN2,2
LW XGCANTLT6,2
LW XGCAN2,2
LW XGCANTLT1,2
LWL XGCAN2,1|AFunc,PULL_ANIM
dGCANSPIN1sq:
LW XGCANSPN1,2
LW XGCANSPN2,2
LW XGCANSPN3,2
LW XGCANSPN4,2
LW XGCANSPN5,2
LW XGCANSPN6,2
LW XGCANSPN7,2
LW XGCANSPN8,2
LW XGCANSPN9,2
LW XGCANSPN10,2
LW XGCANSPN11,2
LW XGCANSPN12,2
LW XGCANSPN13,2
.long 0
LIDSPIN1:
LWW XGCANLID1,2|AFlip,0
LW XGCANLID2,2
LW XGCANLID3,2
LW XGCANLID4,2
LW XGCANLID5,2
LWW XGCANLID4,2|AFlip,M_FLIPH
LW XGCANLID2,2
.long 0
dNEONCX2b:
LW NEONCX2b,3
LWLL NEONCX1,3|AFunc,A_CHANGE_PAL+2,SNEONp1
LWLL 1,1|AFunc,A_AnimGo+2,NEWNEON1a
NEWNEON1a:
LWLL NEONCX2,1|AFunc,A_CHANGE_PAL+2,SNEONp2
LWLW 1,4|AFunc,A_Set_AnimLoop+1,3
NeonLp1:
LWLL NEONCX1,20|AFunc,A_CHANGE_PAL+2,SNEONp1
LWLL NEONCX2,4|AFunc,A_CHANGE_PAL+2,SNEONp2
LWLL 1,1|AFunc,A_AnimFrm_DSJ+2,NeonLp1
LWLL NEONCX1,1|AFunc,A_CHANGE_PAL+2,SNEONp1
LWLW 1,9|AFunc,A_Set_AnimLoop+1,3
NeonLp2:
LWLL NEONCX2,5|AFunc,A_CHANGE_PAL+2,SNEONp2
LWLL NEONCX1,9|AFunc,A_CHANGE_PAL+2,SNEONp1
LWLL 1,1|AFunc,A_AnimFrm_DSJ+2,NeonLp2
LWLL NEONCX2,5|AFunc,A_CHANGE_PAL+2,SNEONp2
.long 0
NEOZAP1:
LW nx1,2
LW nx2,2
LW NEONCX1b2,2
LW NEONCX1c2,10
LW nx1,3
LW NEONCX1c2,15
LW nx1,3
LW nx2,2
LW NEONCX1c2,20
LW nx1,3
LW NEONCX1b2,1
LW nx2,3
LW NEONCX1c2,5
LW nx1,2
LW NEONCX1c2,20
.long 0
dDUMPLID1sq:
LWLL DMPLID5g,2|AFunc,A_CHANGE_PAL+2,REDDMP1o
LWLL 1,2|AFunc,A_CHANGE_PAL+2,REDDMP1x
LWLL 1,3|AFunc,A_CHANGE_PAL+2,REDMP1x2
LWLL 1,5|AFunc,A_CHANGE_PAL+2,REDDMP1o
LWLL 1,2|AFunc,A_CHANGE_PAL+2,REDMP1x2
LWLL 1,3|AFunc,A_CHANGE_PAL+2,REDDMP1o
LWLL 1,5|AFunc,A_CHANGE_PAL+2,REDDMP1x
LWLL 1,2|AFunc,A_CHANGE_PAL+2,REDDMP1o
LWLL 1,4|AFunc,A_CHANGE_PAL+2,REDMP1x2
LWLL 1,3|AFunc,A_CHANGE_PAL+2,REDDMP1x
LWLL 1,2|AFunc,A_CHANGE_PAL+2,REDMP1x2
LWLL 1,4|AFunc,A_CHANGE_PAL+2,REDDMP1o
.long 0
REDMP1x2:
.word 124
.word 00000h,07fffh,05ed3h,05e72h,05ed1h,05ab2h,05a70h,05ab1h
.word 05a4fh,05ab4h,05a30h,05a2eh,05a0dh,05670h,0564fh,0564dh
.word 05691h,055edh,05692h,05547h,055cah,055f0h,05630h,0568fh
.word 05672h,0522fh,0522dh,05168h,04e2eh,04e2dh,04e4eh,04da9h
.word 04e50h,04dabh,049ebh,04a0bh,04946h,049e9h,045cch,045cah
.word 045c9h,04569h,05104h,050e2h,0522fh,04dc9h,04dcah,04da7h
.word 049a9h,04904h,049a7h,049ach,04568h,06deah,06da8h,06a8eh
.word 0666bh,0624bh,05e4eh,05deah,05a0ch,059a6h,055aah,055c7h
.word 0520ch,04d89h,04debh,04d43h,04d44h,04d47h,04d23h,04da7h
.word 04d28h,04923h,04945h,04547h,04586h,04501h,04525h,02040h
.word 02c80h,03480h,04168h,04124h,04101h,02c80h,02880h,040e4h
.word 03d46h,03d26h,03d03h,03080h,03c60h,03c82h,03c84h,03c62h
.word 03926h,03905h,038c3h,038e4h,03882h,03901h,03503h,03060h
.word 03880h,03ca0h,03462h,03082h,030c4h,03880h,038a1h,03062h
.word 02cc1h,040c1h,02862h,02882h,028a4h,040a0h,044c2h,02042h
.word 02080h,02042h,04d00h,01840h
REDDMP1x:
.word 124
.word 00000h,07fffh,056b3h,05652h,056b1h,05292h,05250h,05291h
.word 0522fh,05294h,05210h,0520eh,051edh,04e50h,04e2fh,04e2dh
.word 04e71h,04dcdh,04e72h,04d27h,04daah,04dd0h,04e10h,04e6fh
.word 04e52h,04a0fh,04a0dh,04948h,0460eh,0460dh,0462eh,04589h
.word 04630h,0458bh,041cbh,041ebh,04126h,041c9h,03dach,03daah
.word 03da9h,03d49h,03cc4h,03ca2h,03defh,03989h,0398ah,03967h
.word 03569h,034c4h,03567h,0356ch,03128h,059aah,05968h,0564eh
.word 0522bh,04e0bh,04a0eh,049aah,045cch,04566h,0416ah,04187h
.word 03dcch,03949h,039abh,03903h,03904h,03907h,038e3h,03967h
.word 038e8h,034e3h,03505h,03107h,03146h,030c1h,030e5h,00c00h
.word 01840h,02040h,02d28h,02ce4h,02cc1h,01840h,01440h,02ca4h
.word 02906h,028e6h,028c3h,01c40h,02820h,02842h,02844h,02822h
.word 024e6h,024c5h,02483h,024a4h,02442h,024c1h,020c3h,01c20h
.word 02440h,02860h,02022h,01c42h,01c84h,02440h,02461h,01c22h
.word 01881h,02c81h,01422h,01442h,01464h,02c60h,03082h,00c02h
.word 00c40h,00c02h,038c0h,00400h
**************************************************************************
* ENEMY GENERATING AND THEIR DAMAGE ANIMATIONS
**************************************************************************
**************************************************************************
**************************************************************************
**********************************************************************
*
* ENEMY macro for enemy generation
*
**********************************************************************
*
* napchk = parameter to RANDPER to determine if you nap or create again
* naptim = ticks to sleep if you decide to nap (0-127)
* pre = sleep time before creating enemy (0-127)
* pos = sleep time after creating enemy (0-127)
* cre = Animation function to create enemy
* nw = number of words for parameters to creation function
*
************************************************************************
ENEMY .macro napchk,naptim,pre,pos,cre,nw
.long 1
.word 1|AFunc
.long AUE_SETUP+5+nw
.word napchk,naptim
.byte pre,pos
.long cre+nw
.endm
E_BLUBLK1a2:
LWLL BLUBLK1a2,1|AFunc,A_AnimFrm+2,E_BLUBLK_GO
E_BLUBLK1a:
LWLL BLUBLK1a,1|AFunc,A_AnimFrm+2,E_BLUBLK_GO
E_BLUBLK1:
LW BLUBLK1,1
E_BLUBLK_GO
LWLLWWL 1,1|AFunc,AU_CREATE_POPTOP+6,30 << 4,5,-70,E_BLUBLK_GO
LWL 1,1|AFunc,UNIV_DISAB_ENEMY_GEN
E_SILDUB1:
; LW SILDUB1,1
E_SILDUB1_GO1
LWLLWWL 1,1|AFunc,AU_CREATE_POPTOP+6,100 << 4,5,-50,E_SILDUB1_GO1
E_SILDUB1_GO2
LWLLWWL 1,1|AFunc,AU_CREATE_POPTOP+6,0,5,-50,E_SILDUB1_GO2
E_SILDUB1_GO3
LWLLWWL 1,1|AFunc,AU_CREATE_POPTOP+6,-100 << 4,5,-50,E_SILDUB1_GO3
LWL 1,1|AFunc,UNIV_DISAB_ENEMY_GEN
E_CXWIND1b:
; LW CXWIND1b,1
E_CXWIND1b_GO
; LWLLWWL 1,1|AFunc,AU_CREATE_WINBOY+6,2,5,120,E_CXWIND1b_GO
LWLLWWL 1,1|AFunc,AU_CREATE_WINBOY+6,0,5,120,E_CXWIND1b_GO
LWL 1,1|AFunc,UNIV_DISAB_ENEMY_GEN
E_CBOTMO1c:
LW CBOTMO1c,1
E_CBOTMO1c_GO
LWLLWWL 1,1|AFunc,AU_CREATE_POPTOP+6,50 << 4,5,94,E_CBOTMO1c_GO
LWL 1,1|AFunc,UNIV_DISAB_ENEMY_GEN
BOXOWIN1b_ENEMY:
LWLL BOXOWIN1b,1|AFunc,A_AnimGo+2,BOX_ENEMY ; jump
dBOXOWIN2bsq: ; on damage, continue generating
LW BOXOWIN2b,60
BOX_ENEMY:
ENEMY 128,60,30,30,AU_CREATE_BOXOFF,4
LWW 0,5,110
;CLBXIT1:
; LW NNDOR1,60
; LWLWL 1,1|AFunc,AU_CREATE_RUNOUTBOY+3,512,CLBXIT1_NAP_TIME
; LW NNDOR2,2
; LW NNDOR3,2
; LW NNDOR4,2
; LW NNDOR5,0
; LW NNDOR5,1
; LW NNDOR4,2
; LW NNDOR3,2
; LW NNDOR2,2
; LW NNDOR1,60
;CLBXIT1_NAP_TIME
; LWLWL 1,60|AFunc,AU_RANDOM_NAP+3,1024/2,CLBXIT1_NAP_TIME
; .long 0
;
;dCLBXIT1:
; LW NNDOR1d,60
; LWLWL NNDOR1d,1|AFunc,AU_CREATE_RUNOUTBOY+3,512,dCLBXIT1_NAP_TIME
; LW NNDOR2d,2
; LW NNDOR3d,2
; LW NNDOR4d,2
; LW NNDOR5d,0
; LW NNDOR5d,1
; LW NNDOR4d,2
; LW NNDOR3d,2
; LW NNDOR2d,2
; LW NNDOR1d,60
;dCLBXIT1_NAP_TIME
; LWLWL NNDOR1d,60|AFunc,AU_RANDOM_NAP+3,1024/2,dCLBXIT1_NAP_TIME
; .long 0
**************************************************************************
* *
* A_LOCKON - LOCKON IF THIS FRAME ANIMATES *
* *
**************************************************************************
A_LOCKON
LOCKON
RETS
CLBXIT1_CXsq:
LW NNDOR1,1
CLBXIT1_CXsq_WAIT
LWLLL 1,1|AFunc,A_CHECK_RUNOUT+4,CLBXIT1_CXsq_WAIT,CLBXIT1_CXsq_DANIM
LW NNDOR2,2
LW NNDOR3,2
LW NNDOR4,2
LW NNDOR5,1
CLBXIT1_CXsq_NONBOYS
LWLWWWW 1,0|AFunc,AU_CREATE_HEADOUTBOY+4,0B000H >> 8,014000H >> 8,08000H >> 8,1
LWLLL 1,1|AFunc,A_AnimFrm_IF_TRUE+4,ENEMY_QUOTA,CLBXIT1_CXsq_DANIM
LWLL 1,1|AFunc,A_AnimFrm_DSJ+2,CLBXIT1_CXsq_NONBOYS
; LWLL 1,1|AFunc,A_WAIT_FOR_QUOTA+2,CLBXIT1_CXsq_NONBOYS
LW NNDOR4,2
LW NNDOR3,2
LWLLW NNDOR2,2|AFunc,A_Set_Var_Word+3,RUNOUT_TOTAL,0
.long 0
CLBXIT1_CXsq_DANIM
LW NNDOR4,2
LW NNDOR3,2
LW NNDOR2,2
; LWL NNDOR1,1|AFunc,AU_DANIM
; LWL NNDOR1,1|AFunc,PULL_ANIM
CLBXIT1_CXsq_KLUDGE
LWLL NNDOR1,127|AFunc,A_AnimFrm+2,CLBXIT1_CXsq_KLUDGE
; .if DEBUG
; LWL 1,1|AFunc,A_LOCKON
; .endif
; LWL NNDOR1,1|AFunc,A_SET_DAMAGE_TBL
;
;CLBXIT_CLOSED_DAM_TBL
; .long NNDOR1
; .word 1
; .long NNDOR1d
dCLBXIT1_CXsq:
LW NNDOR1d,1
dCLBXIT1_CXsq_WAIT
LWLLL NNDOR1d,1|AFunc,A_CHECK_RUNOUT+4,dCLBXIT1_CXsq_WAIT,dCLBXIT1_CXsq_DANIM
LW NNDOR2d,2
LW NNDOR3d,2
LW NNDOR4d,2
LW NNDOR5d,1
dCLBXIT1_CXsq_NONBOYS
LWLWWWW NNDOR5d,0|AFunc,AU_CREATE_HEADOUTBOY+4,0B000H >> 8,014000H >> 8,08000H >> 8,1
LWLLL NNDOR5d,1|AFunc,A_AnimFrm_IF_TRUE+4,ENEMY_QUOTA,dCLBXIT1_CXsq_DANIM
LWLL NNDOR5d,1|AFunc,A_AnimFrm_DSJ+2,dCLBXIT1_CXsq_NONBOYS
; LWLL NNDOR5d,1|AFunc,A_WAIT_FOR_QUOTA+2,dCLBXIT1_CXsq_NONBOYS
LW NNDOR4d,2
LW NNDOR3d,2
LWLLW NNDOR2d,2|AFunc,A_Set_Var_Word+3,RUNOUT_TOTAL,0
.long 0
dCLBXIT1_CXsq_DANIM
LW NNDOR4d,2
LW NNDOR3d,2
LW NNDOR2d,2
; LWL NNDOR1d,1|AFunc,AU_DANIM
; LWL NNDOR1d,1|AFunc,PULL_ANIM
dCLBXIT1_CXsq_KLUDGE
; LWL NNDOR1d,1|AFunc,UNIV_MAKE_STATIC
LWLL NNDOR1d,127|AFunc,A_AnimFrm+2,dCLBXIT1_CXsq_KLUDGE
; .if DEBUG
; LWL 1,1|AFunc,A_LOCKON
; .endif
;CLBXIT1_CXsq:
; LW NNDOR1,60
; LWLL 1,1|AFunc,AU_CREATE_DOORBOY+2,CLBXIT1_CXsq_NAP_TIME
; LW NNDOR2,2
; LW NNDOR3,2
; LW NNDOR4,2
; LW NNDOR5,0
; LW NNDOR5,1
; LW NNDOR4,2
; LW NNDOR3,2
; LW NNDOR2,2
; LW NNDOR1,60
;CLBXIT1_CXsq_NAP_TIME
; LWLWL 1,60|AFunc,AU_RANDOM_NAP+3,1024/2,CLBXIT1_CXsq_NAP_TIME
; .long 0
;
;dCLBXIT1_CXsq:
; LW NNDOR1d,60
; LWLL NNDOR1d,1|AFunc,AU_CREATE_DOORBOY+2,dCLBXIT1_CXsq_NAP_TIME
; LW NNDOR2d,2
; LW NNDOR3d,2
; LW NNDOR4d,2
; LW NNDOR5d,0
; LW NNDOR5d,1
; LW NNDOR4d,2
; LW NNDOR3d,2
; LW NNDOR2d,2
; LW NNDOR1d,60
;dCLBXIT1_CXsq_NAP_TIME
; LWLWL NNDOR1d,60|AFunc,AU_RANDOM_NAP+3,1024/2,dCLBXIT1_CXsq_NAP_TIME
; .long 0
;CLBXIT1_JUMPER:
; LW NNDOR1,1
; LWLWL 1,1|AFunc,AU_CREATE_JUMPBOY+3,1024,CLBXIT1J_NAP_TIME
; LW NNDOR2,2
; LW NNDOR3,2
; LW NNDOR4,2
; LW NNDOR5,0
; LW NNDOR5,1
; LW NNDOR4,2
; LW NNDOR3,2
; LW NNDOR2,2
; LW NNDOR1,60
;CLBXIT1J_NAP_TIME
; LWLWL 1,1|AFunc,AU_RANDOM_NAP+3,0,CLBXIT1J_NAP_TIME
; .long 0
;dCLBXIT1_JUMSEQ:
; LW NNDOR1d,1
; LWLWL NNDOR1d,1|AFunc,AU_CREATE_JUMPBOY+3,1024,dCLBXIT1J_NAP_TIME
; LW NNDOR2d,2
; LW NNDOR3d,2
; LW NNDOR4d,2
; LW NNDOR5d,0
; LW NNDOR5d,1
; LW NNDOR4d,2
; LW NNDOR3d,2
; LW NNDOR2d,2
; LW NNDOR1d,60
;dCLBXIT1J_NAP_TIME
; LWLWL NNDOR1d,1|AFunc,AU_RANDOM_NAP+3,0,dCLBXIT1J_NAP_TIME
; .long 0
CLBXIT1_LADDER:
LW NNDOR1,1
LWLWL 1,1|AFunc,AU_CREATE_LADDERBOY+3,1024,CLBXIT1L_NAP_TIME
LW NNDOR2,2
LW NNDOR3,2
LW NNDOR4,2
LW NNDOR5,0
LW NNDOR5,1
LW NNDOR4,2
LW NNDOR3,2
LW NNDOR2,2
; LW NNDOR1,60
CLBXIT1L_NAP_TIME
LWLWL 1,1|AFunc,AU_RANDOM_NAP+3,0,CLBXIT1L_NAP_TIME
.long 0
dCLBXIT1_LADSEQ:
LW NNDOR1d,1
LWLWL NNDOR1d,1|AFunc,AU_CREATE_LADDERBOY+3,1024,dCLBXIT1L_NAP_TIME
LW NNDOR2d,2
LW NNDOR3d,2
LW NNDOR4d,2
LW NNDOR5d,0
LW NNDOR5d,1
LW NNDOR4d,2
LW NNDOR3d,2
LW NNDOR2d,2
; LW NNDOR1d,60
dCLBXIT1L_NAP_TIME
LWLWL NNDOR1d,1|AFunc,AU_RANDOM_NAP+3,0,dCLBXIT1L_NAP_TIME
.long 0
CLBXIT1_SHOOTER:
LW NNDOR1,1
LWLL 1,1|AFunc,AU_CREATE_DOORBOY+2,CLBXIT1S_NAP_TIME
LW NNDOR2,2
LW NNDOR3,2
LW NNDOR4,2
LW NNDOR5,0
LW NNDOR5,1
LW NNDOR4,2
LW NNDOR3,2
LW NNDOR2,2
LW NNDOR1,30
CLBXIT1S_NAP_TIME
LWLWL NNDOR1,1|AFunc,AU_RANDOM_NAP+3,0,CLBXIT1S_NAP_TIME
.long 0
dCLBXIT1_SHOTsq:
LW NNDOR1d,1
LWLL NNDOR1d,1|AFunc,AU_CREATE_DOORBOY+2,dCLBXIT1S_NAP_TIME
LW NNDOR2d,2
LW NNDOR3d,2
LW NNDOR4d,2
LW NNDOR5d,0
LW NNDOR5d,1
LW NNDOR4d,2
LW NNDOR3d,2
LW NNDOR2d,2
LW NNDOR1d,30
dCLBXIT1S_NAP_TIME
LWLWL NNDOR1d,1|AFunc,AU_RANDOM_NAP+3,0,dCLBXIT1S_NAP_TIME
.long 0
dCWINDO1sq:
LWLL CXWIND2b,127|AFunc,A_AnimGo+2,WINDOWPOPUP
dCWINDO2sq:
LWLL CXWIND3b,127|AFunc,A_AnimGo+2,WINDOWPOPUP
CXWIND1b_POPUP:
LW CXWIND1b,1
WINDOWPOPUP
ENEMY 1024/2,60,60,60,AU_CREATE_WINBOY,4
; LWW 2,5,111
LWW 0,5,111
CSIDE1a_ENEMY:
LW CSIDE1a,1
ENEMY 1024/2,60,60,60,AU_CREATE_BWBOY,4
WWL 0,-45,0
E_MLDTP2a1s:
LW MLDTP2a1s,1
ENEMY 1024/2,60,60,60,AU_CREATE_POPTOP,4
LWW MOLD_TABLE+1,5,26
MOLD_TABLE
.WORD -80,1,81,0
DLIDOPN1:
; LWL DMPLID2,1|AFunc,OBJ_OFF
LW DMPLID2,1
LWLLWWL 1,1|AFunc,AU_CREATE_DUMPBOY+6,20<<4,-3,44,DLIDOPN1_NAP_TIME
LWL DMPLID2,3|AFunc,OBJ_ON
LW DMPLID3,3
LW DMPLID4,3
LW DMPLID5g,0
LW DMPLID4,3
LW DMPLID3,3
LW DMPLID2,3
LWL 1,10|AFunc,OBJ_OFF
DLIDOPN1_NAP_TIME
LWLWL 1,60|AFunc,AU_RANDOM_NAP+3,1024/2,DLIDOPN1_NAP_TIME
.long 0
DMPOPN1g:
; LWL DMPLID2g,1|AFunc,OBJ_OFF
LW DMPLID2g,1
LWLLWWL 1,1|AFunc,AU_CREATE_DUMPBOY+6,20<<4,-3,44,DMPOPN1g_NAP_TIME
LWL DMPLID2g,3|AFunc,OBJ_ON
LW DMPLID3g,3
LW DMPLID4g,3
LW DMPLID5g,0
LW DMPLID4g,3
LW DMPLID3g,3
LW DMPLID2g,3
LWL 1,10|AFunc,OBJ_OFF
DMPOPN1g_NAP_TIME
LWLWL 1,60|AFunc,AU_RANDOM_NAP+3,1024/2,DMPOPN1g_NAP_TIME
.long 0
BRAIL1_ENEMY:
LW BRAIL1,1
ENEMY 1024/4,30,0,30,AU_CREATE_POPTOP,4
; LWW 0,5,65
LWW 0,5,67
TABLE_DUDE
LWLL TABLC12,1|AFunc,A_AnimGo+2,TABLE_POPUP
TABLE_DUDE_d
LWLL TABLC12d,1|AFunc,A_AnimGo+2,TABLE_POPUP
TABLE_DUDE_d2
LW TABLC12d2,1
TABLE_POPUP
ENEMY 1024/4,30,0,30,AU_CREATE_POPTOP,4
LWW 0,5,64
E_NLAMPBS2:
LW NLAMPBS2,1
ENEMY 1024/4,30,0,30,AU_CREATE_BWBOY2,4
WWL 0,0,LAVA_GUY_DEATH
E_AUBAR2:
LWLL AUBAR2,1|AFunc,A_AnimGo+2,BARTEND
E_AUBAR1:
LW AUBAR1,1
BARTEND:
ENEMY 1024/4,30,0,30,AU_CREATE_POPTOP,4
LWW 0,5,55
E_SEATS1:
E_SEATS2:
E_SEATS3:
E_SEATS4:
E_SEATS5:
E_SEATS6:
ENEMY 1024/2,30,0,30,AU_CREATE_POPTOP,4
LWW SEATING_TABLE+1,5,46
SEATING_TABLE
; .WORD -100,-41,7,55,102,0
; .WORD -108,-50,7,66,124,0
.WORD -115,-56,1,60,118,0
**************************************************************************
* PORTAL ANIMATIONS
**************************************************************************
**************************************************************************
**************************************************************************
;CXWINOPEN1:
; LWL CXWINOP1,3|AFunc,AU_PORTAL_START
; LW CXWINOP2,5
; LW CXWINOP3,5
; LWL XWIN4b,1|AFunc,AU_PORTAL_SET_OPEN
; LWL XWIN4b,3|AFunc,AU_PORTAL_START
; LW CXWINOP3,5
; LW CXWINOP2,5
; LWL CXWINOP1,3|AFunc,AU_PORTAL_SET_CLOSED
dCXOPNDOR1:
; LWLL XDOROPN1,60|AFunc,DUMRETS+2,0
; LWLL XDOROPN2,3|AFunc,DUMRETS+2,0
; LW XDOROPN3,3
; LW XDOROPN4,3
; LW XDOROPN5,3
; LWLW XDOROPN6,1|AFunc,A_Set_AnimLoop+1,10
;
;dCXOPNDOR1_NONBOYS
; LWL 1,30|AFunc,AU_CREATE_HEADOUTBOY ;+5,0,08000H >> 12,-1,0,0
; LWLL 1,1|AFunc,A_Anim_DSJ+2,dCXOPNDOR1_NONBOYS
;
; LW XDOROPN5,3
; LW XDOROPN4,3
; LW XDOROPN3,3
; LW XDOROPN2,3
; .long 0
;
; LWL XDOROPN1,1|AFunc,AU_PORTAL_START
; LW XDOROPN2,3
; LW XDOROPN3,3
; LW XDOROPN4,3
; LW XDOROPN5,3
; LWL XDOROPN6,1|AFunc,AU_PORTAL_SET_OPEN
; LWL XDOROPN6,1|AFunc,AU_PORTAL_START
; LW XDOROPN5,3
; LW XDOROPN4,3
; LW XDOROPN3,3
; LW XDOROPN2,3
; LWL XDOROPN1,1|AFunc,AU_PORTAL_SET_CLOSED
**************************************************************************
* *
* A_CHECK_RUNOUT *
* *
**************************************************************************
A_CHECK_RUNOUT
MOVE @RUNOUT_TOTAL,A14,W
JRZ ACR_CHECK ;BR=NO RUNOUTS
MOVE A14,A0
SLL 24,A0
SRL 24,A0
MOVB A0,*A8(AnimLoop)
SLL 16,A14
SRL 24,A14
MOVB A14,*A8(AnimSLP)
RETS
ACR_CHECK
CALLA GETAFARG_LONG ;RUNOUT WAIT JUMP
MOVE @ENEMY_QUOTA,A14,W
JRZ ACR_SET ;BR=NO QUOTA
CALLA GETAFARG_LONG ;QUOTA JUMP
ACR_SET
MOVE A0,*A8(AnimFrm),L
RETS
CXOPNDOR1:
LWLL XDOORON1,1|AFunc,A_CHANGE_PAL+2,XDRON1
CXOPNDOR1_WAIT
LWLLL 1,1|AFunc,A_CHECK_RUNOUT+4,CXOPNDOR1_WAIT,CXOPNDOR1_DANIM
LWLL XDOROPN2,3|AFunc,A_CHANGE_PAL+2,XDROPN1
LW XDOROPN3,3
LWLWWWW XDOROPN4,3|AFunc,AU_CREATE_HEADOUTBOY+4,0,0,0,01000H
LW XDOROPN5,3
LW XDOROPN6,1
CXOPNDOR1_NONBOYS
LWLWWWW 1,0|AFunc,AU_CREATE_HEADOUTBOY+4,02000H >> 8,0B000H >> 8,0,1
LWLLL 1,1|AFunc,A_AnimFrm_IF_TRUE+4,ENEMY_QUOTA,CXOPNDOR1_DANIM
LWLL 1,1|AFunc,A_AnimFrm_DSJ+2,CXOPNDOR1_NONBOYS
; LWLL 1,1|AFunc,A_WAIT_FOR_QUOTA+2,CXOPNDOR1_NONBOYS
LW XDOROPN5,3
LW XDOROPN4,3
LW XDOROPN3,3
LWLLW XDOROPN2,3|AFunc,A_Set_Var_Word+3,RUNOUT_TOTAL,0
.long 0
; LWLL XDOORON1,1|AFunc,A_CHANGE_PAL+2,XDRON1
CXOPNDOR1_DANIM
LWLL XDOROPN5,3|AFunc,A_CHANGE_PAL+2,XDROPN1
LW XDOROPN4,3
LW XDOROPN3,3
LW XDOROPN2,3
LWLL XDOORON1,1|AFunc,A_CHANGE_PAL+2,XDRON1
LWL 1,1|AFunc,AU_DANIM
LWL XDOORON1,1|AFunc,AU_PORTAL_START
LWLL XDOROPN2,3|AFunc,A_CHANGE_PAL+2,XDROPN1
LW XDOROPN3,3
LW XDOROPN4,3
LW XDOROPN5,3
LWL XDOROPN6,1|AFunc,AU_PORTAL_SET_OPEN
CLBXIT1_PORTAL:
LWL NNDOR1,1|AFunc,AU_PORTAL_START
LW NNDOR2,3
LW NNDOR3,5
LW NNDOR4,7
LWL NNDOR5,1|AFunc,AU_PORTAL_SET_OPEN
BATHDOOR1sq:
LWL bathdor1,1|AFunc,AU_PORTAL_START
LW bathdor2,3
LW bathdor3,3
LW bathdor4,3
LWL bathdor5,1|AFunc,AU_PORTAL_SET_OPEN
LWL bathdor5,1|AFunc,AU_PORTAL_START
LW bathdor4,3
LW bathdor3,3
LW bathdor2,3
LWL bathdor1,1|AFunc,AU_PORTAL_SET_CLOSED
.long 0
XCURTNS1sq:
; LW DHUNGA0,60
LWL DHUNGA0,1|AFunc,A_CURTAIN_CHECK
LW DHUNGZ1,3
LWLWWWW DHUNGZ3,3|AFunc,AU_CREATE_HEADOUTBOY+4,0,0,0,01000H
LW DHUNGZ5,3
; LWLW DHUNGZ7,1|AFunc,A_Set_AnimLoop+1,2
;
;XCURTNS1sq_NONBOYS1
; LWLWWWW 1,60|AFunc,AU_CREATE_HEADOUTBOY+4,0,0,0,1
; LWLL 1,1|AFunc,A_Anim_DSJ+2,XCURTNS1sq_NONBOYS1
; LW DHUNGZ7,60
; LWLWWWW 1,1|AFunc,AU_CREATE_HEADOUTBOY+4,0,0,0,1
LW DHUNGZ7,3
LW DHUNGZ5,3
LW DHUNGZ3,3
LW DHUNGZ1,3
LWL DHUNGA0,1|AFunc,A_CURTAIN_RESET
; LW DHUNGA0,1
; LW DHUNGZ1,3
; LWLWWWW DHUNGZ3,3|AFunc,AU_CREATE_HEADOUTBOY+4,0,0,0,01000H
; LW DHUNGZ5,3
;
;; LWLW DHUNGZ7,1|AFunc,A_Set_AnimLoop+1,2
;;
;;XCURTNS1sq_NONBOYS2
;; LWLWWWW 1,60|AFunc,AU_CREATE_HEADOUTBOY+4,0,0,0,1
;; LWLL 1,1|AFunc,A_Anim_DSJ+2,XCURTNS1sq_NONBOYS2
;
;; LW DHUNGZ7,120
;; LWLWWWW 1,1|AFunc,AU_CREATE_HEADOUTBOY+4,0,0,0,1
;
; LW DHUNGZ7,3
;
; LW DHUNGZ5,3
; LW DHUNGZ3,3
; LW DHUNGZ1,3
; LWL DHUNGA0,1|AFunc,AU_DANIM
LWL DHUNGA0,1|AFunc,AU_PORTAL_START
XCURTNS1sq_PORTAL
LW DHUNGZ1,3
LW DHUNGZ3,3
LW DHUNGZ5,3
LW DHUNGZ7,3
LWL DHUNGZ9,1|AFunc,AU_PORTAL_SET_OPEN
.long 0
XCURTNS1sq_OPEN
LW DHUNGZ1,3
LW DHUNGZ3,3
LW DHUNGZ5,3
LW DHUNGZ7,3
LWL DHUNGZ9,1|AFunc,PULL_ANIM
**************************************************************************
* *
* A_CURTAIN_RESET *
* *
**************************************************************************
A_CURTAIN_RESET
MOVE @SCROLL_FLAG,A14,L
JAN AU_DANIM
MOVI XCURTNS1sq,A14
MOVE A14,*A8(AnimFrm),L
JAUC AU_DANIM
**************************************************************************
* *
* A_CURTAIN_CHECK *
* *
**************************************************************************
A_CURTAIN_CHECK
MOVE @WAVE_UNIV,A14,L
CMPI GXOBOY2,A14
JREQ ACC_GO ;BR=SPECIAL BAR CURTAIN DO CHECK
MOVI XCURTNS1sq_OPEN,A14
MOVE A14,*A8(AnimFrm),L
RETS
ACC_GO
MOVE @ZBASE,A14,L
CMPI 01EEC4H,A14
JRLT ACC_DONE
MOVI XCURTNS1sq_PORTAL,A14
MOVE A14,*A8(AnimFrm),L
JAUC AU_PORTAL_START
ACC_DONE
RETS
**************************************************************************
* *
* Amazon Animations *
* *
**************************************************************************
CHEMWAVE:
LW CHEMWAVE1,16
LW CHEMWAVE2,16
LW CHEMWAVE3,16
.long 0
SLDOROPN:
LWL DORSLI1,1|AFunc,AU_PORTAL_START
LWLW 1,1|AFunc,A_Set_AnimLoop+1,16
SLD_OPNlp
LWLW 1,1|AFunc,AU_ADD_XPOS+1,-3
LWLL 1,1|AFunc,A_AnimFrm_DSJ+2,SLD_OPNlp
LWL 1,1|AFunc,AU_PORTAL_SET_OPEN
SLDORCLOSE
LWL DORSLI1,1|AFunc,AU_PORTAL_START
LWLW 1,1|AFunc,A_Set_AnimLoop+1,16
SLD_CLOlp
LWLW 1,1|AFunc,AU_ADD_XPOS+1,3
LWLL 1,1|AFunc,A_AnimFrm_DSJ+2,SLD_CLOlp
LWL 1,1|AFunc,AU_PORTAL_SET_CLOSED
;SLDOROPN:
; LWL DORSLI1,1|AFunc,AU_PORTAL_START
; LWLL 1,11|AFunc,A_SET_OXVEL+2,-53000h
; LWL 1,1|AFunc,A_CLR_OXVEL
; LWL 1,1|AFunc,AU_PORTAL_SET_OPEN
;
; LWL DORSLI1,1|AFunc,AU_PORTAL_START
; LWLL 1,11|AFunc,A_SET_OXVEL+2,53000h
; LWL 1,1|AFunc,A_CLR_OXVEL
; LWL 1,1|AFunc,AU_PORTAL_SET_CLOSED
WOODOROPN:
LWL WOODOR2E,1|AFunc,AU_PORTAL_START
LWLL 1,1|AFunc,A_SOUND+2,SND_BIG_WOOD
LWLL 1,120|AFunc,A_SET_OXVEL+2,0a000h
LWL 1,1|AFunc,A_CLR_OXVEL
LWL 1,1|AFunc,AU_PORTAL_SET_OPEN
LWL WOODOR2E,2|AFunc,AU_PORTAL_START
LWLL 1,120|AFunc,A_SET_OXVEL+2,-0a000h
LWL 1,1|AFunc,A_CLR_OXVEL
LWL 1,1|AFunc,AU_PORTAL_SET_CLOSED
SND_BIG_WOOD
.WORD 0F380H,115,08457H,0
ELEVOPEN:
LWLW DORSLI1,1|AFunc,A_Set_AnimLoop+1,16
EL_OPNlp
LWLW 1,1|AFunc,AU_ADD_XPOS+1,-3
LWLL 1,1|AFunc,A_Anim_DSJ+2,EL_OPNlp
LWLL 1,1|AFunc,AU_ELEV_OPEN+2,ELEVCLOSE+M_IF_SEQ
ELEVCLOSE:
LWLW DORSLI1,1|AFunc,A_Set_AnimLoop+1,16
EL_CLOlp
LWLW 1,1|AFunc,AU_ADD_XPOS+1,3
LWLL 1,1|AFunc,A_Anim_DSJ+2,EL_CLOlp
LWLL 1,1|AFunc,AU_ELEV_CLOSED+2,ELEVOPEN+M_IF_DANIM+M_IF_SEQ
SND_SURPRISE:
.word 0f360h,51,82dah,0
WARDUK:
LW WARDUK1,8
LW WARDUK2,12
LW WARDUK1,8
LW WARDUK2,12
LW WARDUK3,8
LWLL WARDUK2,6|AFunc,A_SOUNDZ+2,SND_SURPRISE
LW WARDUK1,8
LW WARDUK2,6
LW WARDUK3,8
LW WARDUK4,6
LW WARDUK5,4
LWL WARDUK6,2|AFunc,SAVE_ME
LW WARDUK7,8
LW WARDUK8,6
LW WARDUK9,4
LW WARDUK10,4
LW WARDUK11,3
LWL WARDUK12,3|AFunc,A_SET_RANDSLP+6
.word 15,100,3,8,-1,-3
LWLL WARDUK13,2|AFunc,A_AnimGo+2,WARTHROW
VIDCAMROT:
LW CAMROT6,50
LWL 1,5|AFunc,A_STAY_TIL_ONSCRN
LWLL 1,5|AFunc,A_STAY_TIL_ZW_LT+2,VIDCAM_Z
LWLL 1,1|AFunc,A_INIT_AnimSLP_Var+2,VIDCAM_HOLDTIME
LW 1,0
LW 1,0
LW CAMROT5,15
LW CAMROT4,15
LWLW CAMROT3,15|AFunc,A_Set_AnimLoop+1,10
LW CAMROT2,30
LWLL CAMROT1,3|AFunc,A_INC_Var_Word+2,PLYR_SEEN
CAM_BLNK:
LW CAMROT2,3
LWLL CAMROT1,3|AFunc,A_Anim_DSJ+2,CAM_BLNK
LW CAMROT2,12
LW CAMROT3,12
LW CAMROT4,12
LW CAMROT5,12
LW CAMROT6,12
LW CAMROT5,12
LW CAMROT4,12
LWLW CAMROT3,12|AFunc,A_Set_AnimLoop+1,15
.long 0
DOORSWING:
LWL DOORSWING1,3|AFunc,AU_PORTAL_START
LW DOORSWING2,4
LW DOORSWING3,4
LW DOORSWING4,4
LWL DOORSWING5,1|AFunc,AU_PORTAL_SET_OPEN
DOORSWING_CLOSE:
LWL DOORSWING5,1|AFunc,AU_PORTAL_START
LW DOORSWING4,4
LW DOORSWING3,4
LW DOORSWING2,4
LWL DOORSWING1,1|AFunc,AU_PORTAL_SET_CLOSED
DOORSWINGpool:
LW DOORSWING1,1
LW DOORSWING2,4
LW DOORSWING3,4
LW DOORSWING4,4
LWL DOORSWING5,1|AFunc,AU_DANIM
;FOR STARTING AT THE POOL
;DOORSWINGpool:
LW DOORSWING5,1
LW DOORSWING4,4
LW DOORSWING3,4
LW DOORSWING2,4
LWL DOORSWING1,1|AFunc,A_POOL_FLOAT_ZFAR
LWL 1,1|AFunc,UNIV_MAKE_STATIC
MAGIC_DRSW:
LW DOORSWING1,1
LW DOORSWING2,4
LW DOORSWING3,4
LW DOORSWING4,4
LWL DOORSWING5,1|AFunc,AU_CHANGE_MAP_IMG+2,CLOMAGDOR+M_IF_SEQ
CLOMAGDOR:
LW DOORSWING5,4
LW DOORSWING4,4
LW DOORSWING3,4
LW DOORSWING2,4
LWL DOORSWING1,1|AFunc,UNIV_MAKE_STATIC
.long 0
slidbrix:
LWLW DRBRIX1,1|AFunc,A_Set_AnimLoop+1,16
slblp:
LWLW 1,1|AFunc,AU_ADD_XPOS+1,2
LWLL 1,1|AFunc,A_Anim_DSJ+2,slblp
LWL 1,1|AFunc,PULL_ANIM
**************************************************************************
* *
* A_POOL_FLOAT_ZFAR - START A FLOAT ZFAR PROCESS IF OBJECT NOT FLIPPED *
* *
* PASS: *
* A8 = OBJECT *
* RETURN: *
* NUTIN' *
* *
**************************************************************************
A_POOL_FLOAT_ZFAR
MOVE *A8(OCTRL),A14,W
BTST B_FLIPH,A14
JRNZ APFZ_DONE
MOVI -04001H,A8
CREATE PID_IND, FLOAT_ZFAR
APFZ_DONE
RETS
ENEMY_DRSW:
LWLWW DOORSWING1,60|AFunc,A_SLP_Based_CURPLYRS+2,30,180
LW 1,0
LW 1,0
LWLL 1,1|AFunc,CHECK_ENEMY_DISAB+2,NMEEZ_GONE1
LWLL 1,1|AFunc,AU_CREATE_DOORBOY+2,ENEMY_DRSW
LW DOORSWING2,3
LW DOORSWING3,3
LW DOORSWING4,3
LW DOORSWING5,0
LW DOORSWING5,1
LW DOORSWING4,3
LW DOORSWING3,3
LW DOORSWING2,3
.long 0
LW TRBRN2f,1
E_TREETOP2S:
ENEMY 300,100,90,90,AU_CREATE_BUSHGUY,0
LW LPLNTBRN1f,1
E_LILPLANT1S:
ENEMY 600,100,30,30,AU_CREATE_BUSHGUY,0
LW TRBRN1f,1
E_TREETOP1S:
ENEMY 700,120,120,120,AU_CREATE_TREEGUY,0
E_PORTAFRO1:
LW PORTAFRO1,1
; ENEMY 200,30,20,20,AU_CREATE_SIDERUN_UP,3
ENEMY 200,30,40,40,AU_CREATE_COG_BRIDGE,5
.word -1,-8,28h
.LONG TAB_JBRIDGE
* parms for AU_CREATE_SIDERUN... X limit, X off, Y off
E_FLAT:
E_PORT3:
ENEMY 900,180,90,90,AU_CREATE_SIDERUN,3
.word -1,0,20h
E_LL:
ENEMY 900,180,90,90,AU_CREATE_SIDERUN,3
.word 154h,0,20h
E_TL:
LW TL,1
E_PORTEVER:
E_PORT2:
E_PORT1:
ENEMY 1024/4,90,60,40,AU_CREATE_JUNWIN,3
.word 14,-14h,8 ; x, y, z offsets
; ENEMY 0,90,60,40,AU_CREATE_YJAK,0
E_POINTBLOK2:
ENEMY 2,90,90,20,AU_CREATE_NATIVE,0
E_NEWHOL1:
ENEMY 1024/4,60,60,60,AU_CREATE_BUGEYZ,2
.word -1,0
E_NEWHOL2:
ENEMY 1024/4,60,60,60,AU_CREATE_BUGEYZ,2
.word -1,0
STRUGGLE:
LWLWW KERSTRUG1,1|AFunc,A_RAND_AnimSLP+2,5,20
LW 1,0
LWLWW KERSTRUG2,1|AFunc,A_RAND_AnimSLP+2,5,20
LW 1,0
LWLWW KERSTRUG3,1|AFunc,A_RAND_AnimSLP+2,5,20
LW 1,0
LWLWL 1,1|AFunc,A_RAND_BRANCH+3,400,STRUGREV
.long 0
STRUGREV:
LWLWW KERSTRUG2,1|AFunc,A_RAND_AnimSLP+2,5,20
LW 1,0
LWLWL 1,1|AFunc,A_RAND_BRANCH+3,400,STRUGGLE
LWLWW KERSTRUG1,1|AFunc,A_RAND_AnimSLP+2,5,20
LW 1,0
LWLWW KERSTRUG3,1|AFunc,A_RAND_AnimSLP+2,5,20
LW 1,0
.long 0
SND_SDOOR_OPN .word 0e3f0h,176,0a188h,0
SND_SDOOR_STP .word 0e3f2h,47,0a18bh,0
SCRTMOVE:
LW SCRTJAG2,60
LWLL SCRTMOVE1,15|AFunc,A_SOUND+2,SND_SDOOR_OPN
LW SCRTMOVE2,15
LWL SCRTMOVE3,70|AFunc,SECRET_DOOR
LWLLW 1,1|AFunc,A_Set_Var_Word+3,SCROLL_FLAG,0
LWLL 1,1|AFunc,A_SOUND+2,SND_SDOOR_STP
LWL 1,1|AFunc,DELETE_OBJ
SEC_DR_TABLE:
.long SCRTMOVE1,SCRTMOVE1,SCRTMOVE1,SCRTMOVE1
SECRET_DOOR:
calla BG_TO_FG
move *a8(OZVAL),a14,L
addk 10,a14
move a14,*a8(OZVAL),L
movi 10000h,a0
MOVE *A8(OCTRL),A14,W
BTST B_FLIPH,A14
JRNZ SD0
NEG A0
SD0:
MOVE A0,*A8(OXVEL),L
RETS
BOXMACHINE:
LW BOXMACH1,10
LW BOXMACH2,10
.long 0
BOO:
LW TANKBUB1,7
LW TANKBUB2,7
LW TANKBUB3,7
LW TANKBUB4,7
.long 0
;PILLAR_GUY:
; LWLL PILBY,60|AFunc,A_AnimScr+2,PILLAR_ENEMY_LUPE
;PILLAR_ENEMY_LUPE
; LW 1,60
; LWLWWL 1,1|AFunc,AU_CREATE_BWBOY2+4,0,0,PILLAR_ENEMY_NAP_TIME
; LW 1,0
; LW 1,60
;PILLAR_ENEMY_NAP_TIME
; LWLWL 1,60|AFunc,AU_RANDOM_NAP+3,1024/2,PILLAR_ENEMY_NAP_TIME
; .long 0
**************************************************************************
* *
* Aerosmith Live and On Stage *
* *
**************************************************************************
;CYMBOL:
; LW CYMBOL2,24
; LW CYMBOL4,1
; LW CYMBOL5,1
; LW CYMBOL6,1
; LW CYMBOL7,1
; LW CYMBOL8,1
; LW CYMBOL9,1
; LW CYMBOL10,1
; LW CYMBOL11,1
; LW CYMBOL12,1
; LW CYMBOL13,1
; LW CYMBOL14,1
; LW CYMBOL15,1
; LW CYMBOL16,1
; LW CYMBOL2,4
; .long 0
STEVEKERRI:
LWLW S221_6,20|AFunc,A_AUDIT+1,AUDTYLER
LWLL S221_7,1|AFunc,A_SOUND+2,SND_KERRI_OOH
LWLL 1,5|AFunc,A_SOUND+2,SND_STEVEN_WOAH
LW S221_6,6
LW S221_7,3
LW S221_8,3
LW S221_9,3
LW S221_10,30
LWLL TYLERMRPH_02,1|AFunc,A_CHANGE_PAL+2,TMORPH
LWLL 1,2|AFunc,A_SOUND+2,SND_MORPH
LW TYLERMRPH_04,3
LW TYLERMRPH_06,3
LWLL T_AEROLOGO,1|AFunc,A_CHANGE_PAL+2,AROLOGO2
LWLW 1,1|AFunc,A_UNIVOBJ_TO_POWERUP+1, OID_WINGS
SND_KERRI_OOH
.WORD 0F280H,23,084F3H,0
SND_STEVEN_WOAH
.WORD 0F380H,61,08805H,0
SND_MORPH
; .WORD 0F3F0H,213,08063H,0
.WORD 0F2F0H,128,0809CH,0
**************************************************************************
* *
* The Lovely... Kerri Hoskins *
* *
**************************************************************************
*
* Pullup those stockings
*
PULLUP:
LW PULLUP01,9
LW PULLUP02,9
LW PULLUP03,9
LW PULLUP04,9
LW PULLUP05,9
LW PULLUP06,9
LW PULLUP07,9
LWL PULLUP08,9|AFunc,PULL_ANIM
.long 0
UEGenObj equ ODATA+60H ;UHL Object that I generated
UENumber equ ODATA+80h ;UHW (number of enemies I have generated)
UERandNap equ ODATA+90h ; Word
UENapChkTim equ UERandNap+10h ; Byte
UEPreCreTim equ UERandNap+20h ; Byte
UEPosCreTim equ UERandNap+28h ; Byte
UECreateRout equ UERandNap+30h ; Long Creation Routine (lo 4 bits = # parms)
UEParmW1 equ UERandNap+50h ; Parm area for create routine (up to 6 words)
ENEMY_GEN_LUPE:
LWL 1,1|AFunc,AUE_PRE_CREATE
LWL 1,1|AFunc,AUE_CREATE
LW 1,0
LWL 1,1|AFunc,AUE_POST_CREATE
ENEMY_GEN_NAP_TIME
LWL 1,1|AFunc,AUE_RAND_NAP
.long 0
AUE_SETUP:
MOVE *A8(AnimArg),A14,L
move *a14+,a0,W ; Random Nap parm
move a0,*a8(UERandNap)
move *a14+,a0,W ; Time between Nap Checks
move a0,*a8(UENapChkTim)
MOVE *A14+,A0,W ; Pre and Post creation times
move a0,*a8(UEPreCreTim)
MOVE *A14+,A0,L
move a0,a7
movk 15,a1 ; mask for lowest 4 bits in a1
andn a1,a7 ; remove lo 4 from create rout address
move a7,*a8(UECreateRout),L
and a1,a0 ; leave lo 4 for parm count
jrz noparms
move a8,a1
addi UEParmW1,a1 ; start of parm area
xferparms:
move *a14+,*a1+,W
dsjs a0,xferparms
noparms:
movi ENEMY_GEN_NAP_TIME,a0 ; abort address
move a0,*a1+,L
MOVE A14,*A8(AnimArg),L
movi ENEMY_GEN_LUPE,a14 ; jump to generic anim script
move a14,*a8(AnimScr),L ; for enemies
move a14,*a8(AnimFrm),L
clr a14
move a14,*a8(UENumber) ; haven't created any yet.
move a14,*a8(UEGenObj),L ; no link to generated object.
rets
*
* Check UEPreCreTim to see if we want to wait before creating
* something
*
AUE_PRE_CREATE:
movb *a8(UEPreCreTim),a14
jrnz jes_wait
move *a8(AnimFrm),a14,L
addi 50h,a14
move a14,*a8(AnimFrm),L
jruc AUE_CREATE
jes_wait:
movb a14,*a8(AnimSlp)
rets
*
* Check UEPosCreTim to see if we want to wait after creating
* something
*
AUE_POST_CREATE:
movb *a8(UEPosCreTim),a14
jrnz jes_wait
move *a8(AnimFrm),a14,L
addi 50h,a14
move a14,*a8(AnimFrm),L
jruc AUE_RAND_NAP
*
* Call create routine and fake it into thinking the parms are
* coming from AnimArg.
*
AUE_CREATE:
move *a8(UECreateRout),a7,L
move *a8(AnimArg),a14,L
move a14,*-a12,L ; push onto stack
move a8,a1
addi UEParmW1,a1 ; start of parm area
move a1,*a8(AnimArg),L ; fudge it to parms in ODATA area
call a7
move *a12+,a14,L
move a14,*a8(AnimArg),L ; restore AnimArg
rets
AUE_RAND_NAP:
move *a8(UERandNap),a0 ; probability that we nap
CALLA RANDPER
JRNC AU_RN_WAKEUP ;BR=IT DIDN'T HAPPEN MOVE ON
movi ENEMY_GEN_NAP_TIME,a0
MOVE A0,*A8(AnimFrm),L ;STAY AT SAME FRAME
movb *a8(UENapChkTim),*a8(AnimSlp)
RETS
AU_RN_WAKEUP
CLR A14 ;MOVE ON AND CLEAR CURRENT SLEEP
MOVB A14,*A8(AnimSlp)
RETS
CUP:
LW DSKCUP1,5
LW DSKCUP2,5
LW DSKCUP3,5
LW DSKCUP4,5
LW DSKCUP5,5
LW DSKCUP4,5
LW DSKCUP3,5
LWL DSKCUP2,5|AFunc,A_OFFSCRN_DEL
.long 0
LAMPTOP:
LW DSKLAMPTP1,4
LW DSKLAMPTP2,4
LW DSKLAMPTP3,4
LW DSKLAMPTP4,4
LWL DSKLAMPTP5,4|AFunc,A_OFFSCRN_DEL
.long 0
DSKTAPE:
LW DSKTAPE1,4
LW DSKTAPE2,4
LW DSKTAPE3,4
LW DSKTAPE4,4
LWL DSKTAPE5,4|AFunc,A_OFFSCRN_DEL
.long 0
PHONE:
LW DSKPHONE1,5
LW DSKPHONE2,5
LW DSKPHONE3,5
LW DSKPHONE4,5
LWL DSKPHONE5,5|AFunc,A_OFFSCRN_DEL
.long 0
TVMONALL:
LWLWW TVDATA,1|AFunc,A_RAND_AnimSLP+2,4,22
LW 1,0
LWLWW TVBEE,1|AFunc,A_RAND_AnimSLP+2,4,22
LW 1,0
LWLWW TVSKULL,1|AFunc,A_RAND_AnimSLP+2,4,22
LW 1,0
.long 0
CWHEELS:
LW CWHEEL1,8
LW CWHEEL2,8
LW CWHEEL3,8
.long 0
*
* Animation for BUGHALF should start secret door opening
*
BUGHALF:
LWL BUGVERH1,20|AFunc,A_CLR_GUNVECT
LW BUGVERH2,20
LW BUGVERH3,20
LWL 1,1|AFunc,PULL_ANIM
.long 0
**************************************************************************
* *
* Japan universe *
* *
**************************************************************************
**************************************************************************
* *
* AU_ADD_XPOS *
* *
* Anim func to add a given constant to the objects *
* OXPOS and it's universe MAP_X. Value is negated *
* if object is flipped. *
* *
* Note: Use only on universe map objects. *
* *
* A8 = Ptr to object *
* AARG+,W = value to add *
* *
**************************************************************************
AU_ADD_XPOS
CALLA GETAFARG_WORD ;Get the value to add
MOVE *A8(OCTRL),A14,W
BTST B_FLIPH,A14 ;Are we flipped in X?
JRZ AAX_ADD ;BR = No
NEG A0 ;Must negate for flip
AAX_ADD
ADDRM A0,*A8(OXPOS),W ;Update current XPOS
;
;NOTE...
; This is being used only with portals. Because of this,
; you DON'T want to change the value in MAP_X.
; When you back out of a portal, the routine AU_PORTAL_SET_CLOSED
; automatically returns the portal to its original MAP_X.
;
; MOVE *A8(OULINK),A1,L ;Get link to universe
; ADDRM A0,*A1(MAP_X+16),W ;And update MAP_X
RETS
**************************************************************************
* *
* AU_RESET_MAP_POS *
* *
* Anim func to get the map position of a universe object *
* and set the object there. Also, clears the enemy generator *
* flag for recreate. *
* *
* A8 = Ptr to universe object *
* *
**************************************************************************
AU_RESET_MAP_POS
MOVE *A8(OULINK),A1,L
MOVE *A1(MAP_X),*A8(OXVAL),L
MOVE *A1(MAP_Y),*A8(OYVAL),L
MOVE *A1(MAP_Z),*A8(OZVAL),L
ANDNIM M_BF_ENEMY,*A1(MAP_FLAGS),W
RETS
**************************************************************************
* *
* AU_STAY_TIL_FAC_DOORS *
* *
* Anim func to wait for FAC_DOORS_OPEN to be less than *
* FAC_DOORS_ALLOWED. *
* *
* A8 = Ptr to door waiting *
* *
**************************************************************************
AU_STAY_TIL_FAC_DOORS
MOVE @FAC_DOORS_OPEN,A1,W
MOVE @FAC_DOORS_ALLOWED,A2,W
CMP A2,A1
JRGE AUSTFD_STAY ;BR = We cannot create yet
MOVKB 1,*A8(AnimSlp)
JAUC AU_CREATE_REDBACK
AUSTFD_STAY
SUBIM 50H,*A8(AnimFrm),L ;Oh won't you staaaaaayyyy
RETS
**************************************************************************
* *
* AU_CHECK_IF_YELJAK *
* *
* Anim func to check if this is a door that should dispense *
* a Yellow jacket. *
* *
* A8 = Ptr to door *
* *
**************************************************************************
AU_CHECK_IF_YELJAK
MOVE *A8(OULINK),A1,L
MOVE *A1(MAP_Y+16),A14,W
CMPI -2D0H,A14
JRGT ACIY_X
MOVI E_DOR_YELJAK,A1
MOVE A1,*A8(AnimFrm),L
ACIY_X
RETS
MARZ:
LW marz1,5
LW marz2,5
LW marz3,5
LW marz5,5
LW marz7,5
LW marz9,5
LW marz11,5
.long 0
*
* Big metal doors at the end of the Kemmi-tech warehouse
*
XDOORSLIDE
LWL XDOOR1,40|AFunc,AU_PORTAL_START
LWLW 1,1|AFunc,A_Set_AnimLoop+1,80
XDOOR_S_LOOP
LWLW 1,1|AFunc,AU_ADD_XPOS+1,-1
LWLL 1,1|AFunc,A_AnimFrm_DSJ+2,XDOOR_S_LOOP
LWL 1,1|AFunc,AU_PORTAL_SET_OPEN
*
* Hatch inside the big metal doors at the end of the Kemmi-tech warehouse
*
XHATCHSLIDE
LWL XDOOR2,1|AFunc,AU_PORTAL_START
LWLW 1,1|AFunc,A_Set_AnimLoop+1,80
XHATCH_S_LOOP
LWLW 1,1|AFunc,AU_ADD_XPOS+1,-1
LWLL 1,1|AFunc,A_AnimFrm_DSJ+2,XHATCH_S_LOOP
LWL 1,1|AFunc,AU_PORTAL_SET_OPEN
*
* 1/2 of doors that open into the research area
*
GOLDDOR1_SLIDE:
LWL METLDOR1,1|AFunc,AU_PORTAL_START
LWLW 1,1|AFunc,A_Set_AnimLoop+1,17
GOLDDOR1_S_LOOP
LWLW 1,1|AFunc,AU_ADD_XPOS+1,-6
LWLL 1,1|AFunc,A_AnimFrm_DSJ+2,GOLDDOR1_S_LOOP
LWL 1,1|AFunc,AU_PORTAL_SET_OPEN
*
* Other 1/2 of doors into research area
*
GOLDDOR2_SLIDE:
LWL METLDOR2,1|AFunc,AU_PORTAL_START
LWLW 1,1|AFunc,A_Set_AnimLoop+1,17
GOLDDOR2_S_LOOP
LWLW 1,1|AFunc,AU_ADD_XPOS+1,6
LWLL 1,1|AFunc,A_AnimFrm_DSJ+2,GOLDDOR2_S_LOOP
LWL 1,1|AFunc,AU_PORTAL_SET_OPEN
*
* Wall enemy at entrance to crates
*
;BAWALL_ENEMY:
; LWLL jBATHWA6b,1|AFunc,A_AnimGo+2,BAW_E_LOOP
;BAW_E_LOOP
; ENEMY 1024/2,60,60,60,AU_CREATE_BWBOY,4
; WWL -25,0,LAVA_GUY_DEATH
*
* Front walkway enemy generator
*
E_WALKWAY_1:
LW WALKWAY_1,1
ENEMY 1024/4,1,80,100,AU_CREATE_POPTOP,4
LWW 56 << 4,5,148
*
* Column doors that blast you
*
* Rear column doors
E_DORGRAY_3
* Middle column, Yellow Jacket
E_DORGRAY_2
LWLW 1,1|AFunc,A_Set_AnimLoop+1,30
LWL 1,1|AFunc,AU_CHECK_IF_YELJAK
LWL 1,1|AFunc,UNIV_DISAB_ENEMY_GEN
LWLWW 1,1|AFunc,A_RAND_AnimSLP+2,60,120
LW 1,0
LWL 1,0|AFunc,AU_STAY_TIL_FAC_DOORS
E_DORGRAY2_SU_LOOP
LWLW 1,1|AFunc,A_ADD_YPOS+1,-4
LWLL 1,1|AFunc,A_AnimFrm_DSJ+2,E_DORGRAY2_SU_LOOP
LWLWW 1,1|AFunc,A_RAND_AnimSLP+2,20,40
LW 1,0
E_DORGRAY2_FINISH
LWLW 1,1|AFunc,A_Set_AnimLoop+1,30
E_DORGRAY2_SD_LOOP
LWLW 1,1|AFunc,A_ADD_YPOS+1,4
LWLL 1,1|AFunc,A_AnimFrm_DSJ+2,E_DORGRAY2_SD_LOOP
.LONG 0
* Special door for Yellow jacket
E_DOR_YELJAK
LWLWW 1,1|AFunc,A_RAND_AnimSLP+2,40,60
LW 1,0
LWL 1,1|AFunc,AU_STAY_TIL_FAC_DOORS
LWL 1,1|AFunc,AU_CREATE_REDBACK
LWL 1,1|AFunc,AU_CREATE_YJAK
E_DOR_YJ_LOOP
LWLW 1,1|AFunc,A_ADD_YPOS+1,-4
LWLL 1,1|AFunc,A_AnimFrm_DSJ+2,E_DOR_YJ_LOOP
LWL 1,1|AFunc,WAIT_TIL_HE_GONE
LWLL 1,1|AFunc,A_AnimFrm+2,E_DORGRAY2_FINISH
* Front column doors
E_DORGRAY
* Rear column doors
;E_DORGRAY_3
LWL 1,1|AFunc,UNIV_DISAB_ENEMY_GEN
LWLWW 1,1|AFunc,A_RAND_AnimSLP+2,60,120
LW 1,0
LWLW 1,1|AFunc,A_Set_AnimLoop+1,30
LWL 1,0|AFunc,AU_STAY_TIL_FAC_DOORS
E_DORGRAY_SU_LOOP
LWLW 1,1|AFunc,A_ADD_YPOS+1,-4
LWLL 1,1|AFunc,A_AnimFrm_DSJ+2,E_DORGRAY_SU_LOOP
*
* Dispatch column enemies here
*
LWLWW 1,1|AFunc,A_RAND_AnimSLP+2,20,40
LW 1,0
LWLW 1,1|AFunc,A_Set_AnimLoop+1,30
E_DORGRAY_SD_LOOP
LWLW 1,1|AFunc,A_ADD_YPOS+1,4
LWLL 1,1|AFunc,A_AnimFrm_DSJ+2,E_DORGRAY_SD_LOOP
.LONG 0
WAIT_TIL_HE_GONE:
move *a8(UEGenObj),a14,L
jrz moveon
move *a8(AnimFrm),a14,L
subi 50h,a14
move a14,*a8(AnimFrm),L
moveon:
RETS
*
* Middle walkway Ninja
*
E_WALKWAY1_2
LW 1,60
ENEMY 512,30,40,40,AU_CREATE_WALKWAY_NINJA,4
.word 0,8
.LONG 0
*
* Rear walkway Cog
*
E_WALKWAY1_3
; LW 1,80
; LWLWWWL 1,1|AFunc,AU_CREATE_COG_BRIDGE+5,-1,-8,0,0
; LW 1,80
; LWLWWWL 1,1|AFunc,AU_CREATE_COG_BRIDGE+5,-1,-8,0,0
LWL 1,1|AFunc,UNIV_DISAB_ENEMY_GEN
*
* Final damage on doors
*
FLAMES:
LWL FLAMER1,1|AFunc,AU_RESET_MAP_POS
; LWL 1,1|AFunc,DELETE_DOOR_GUY
LWLL 1,3|AFunc,A_AnimScr+2,FLAMES_LOOP
FLAMES_LOOP
LW FLAMER2,4
LW FLAMER3,4
LW FLAMER4,4
LW FLAMER5,4
LW FLAMER6,4
LW FLAMER1,4
.long 0
DELETE_DOOR_GUY:
move a8,a5
move *a5(UEGenObj),a8,L ; attached to a guy?
jrz nobody_home ; br if no
calla DEL_ENEMY_NOAUD
clr a14
move a14,*a5(UEGenObj),L ; unlink and delete
nobody_home:
move *a5(OULINK),a1,L
jrz DDG_X ; should never happen
move *a1(MAP_FLAGS),a14 ; are we generating?
andni M_BF_ENEMY,a14
move a14,*a1(MAP_FLAGS)
DDG_X:
rets
*
* Tree huts
*
E_TREEHUT3
E_TREEHUT3_2
E_TREEHUT3_3
LW 1,1
ENEMY 1024/4,1,80,100,AU_CREATE_POPTOP,4
LWW 76 << 4,5,80
*
* Enemy door tower level 1
*
;DORGRAY_SLIDE:
; LW DORGRAY,1
; .long 0
*
* Enemy door tower level 2
*
;DORGRAY_2_SLIDE:
; LW DORGRAY_2,1
; .long 0
*
* Enemy door tower level 3
*
;DORGRAY_3_SLIDE:
; LW DORGRAY_3,1
; .long 0
*
* Set of windows at the top of the factory.
*
E_WINDO2:
LW WINDO2,1
ENEMY 1024/4,1,80,100,AU_CREATE_POPTOP,4
LWW 56 << 4,5,178
.long 0
*
* Manager's gong
*
GGONG1:
LW GLDGNG3,3
LW GLDGNG8,3
LW GLDGNG9,3
LW GLDGNG8,3
LW GLDGNG11,3
LW GLDGNG12,3
LW GLDGNG7,3
LW GLDGNG6,3
LW GLDGNG7,3
LW GLDGNG4,3
LW GLDGNG8,3
LW GLDGNG11,3
LW GLDGNG12,3
LW GLDGNG7,3
LW GLDGNG4,3
LW GLDGNG11,3
LW GLDGNG12,3
LWL GLDGNG3,1|AFunc,PULL_ANIM
KTI2:
LWL KTI2DOOR1,6|AFunc,AU_PORTAL_START
LW KTI2DOOR3,1
LWLL 1,8|AFunc,A_SOUND+2,SND_CRASH_THRU
LWL KTI2DOOR5,1|AFunc,AU_PORTAL_SET_OPEN
.long 0
SND_CRASH_THRU
.WORD 0F350H,74,0A13BH,0
*
* Walls along outside dock entrance
*
DOCK_ENEMY:
LWLL DOORWAY1,1|AFunc,A_AnimGo+2,DE_E_LOOP
DE_E_LOOP
ENEMY 1024/2,20,1,60,AU_CREATE_BWBOY,4
WWL -25,0,LAVA_GUY_DEATH
*
* Walls along inside warehouse entrance
*
KTENT_ENEMY:
LWLLW VENTPIL,1|AFunc,A_GOTO+3,KTE_NO_NINJA,512
LWLLW 1,1|AFunc,A_GOTO+3,KTE_FLY_NINJA,512
LWLWWLL 1,15|AFunc,AU_CREATE_SHUFFLE_NINJA+6,0,-2,10H,0
LWLL 1,1|AFunc,A_AnimGo+2,KTE_E_LOOP
KTE_FLY_NINJA
LWLWWLL 1,15|AFunc,AU_CREATE_SIDE_NINJA+6,0,-2,10H,0
KTE_NO_NINJA
LWLL 1,1|AFunc,A_AnimGo+2,KTE_E_LOOP
KTE_E_LOOP
ENEMY 1024/2,20,1,60,AU_CREATE_BWBOY2,4
WWL -45,0,LAVA_GUY_DEATH
*
* Security desk
*
E_LABDSK1gl
LWLL LABDSK1gl,1|AFunc,A_AnimGo+2,E_LABDSK1
E_LABDSK1gl2
LWLL LABDSK1gl2,1|AFunc,A_AnimGo+2,E_LABDSK1
JDESK_NONBOY:
LW LABDSK1,1
E_LABDSK1
LWL 1,1|AFunc,A_BRANCH_IF_FLIPPED+2,JDESK_NONBOY_POP
JDESK_NINJA_WAIT
LWLWWLL 1,15|AFunc,AU_CREATE_DESK_NINJA+6,79,-5,80H,JDESK_NINJA_WAIT
JDESK_NONBOY_POP
ENEMY 1024/4,30,0,30,AU_CREATE_POPTOP,4
LWW 0,5,50
**************************************************************************
* *
* A_BRANCH_IF_TRUE *
* *
* Anim func to branch animation if a given byte value *
* is TRUE. *
* *
* AARG+,L = Address of byte value *
* AARG+,L = Branch *
* *
**************************************************************************
A_BRANCH_IF_FLIPPED
MOVE *A8(OCTRL),A14,W
BTST B_FLIPH,A14
JANZ SetAnim_AFARG ;BR = It's flipped
RETS
**************************************************************************
* *
* Japan - R&D area *
* *
**************************************************************************
*
* Honeycomb wall piece that is really a door.
*
REWALL_SLIDE:
; LWL REWALL1,1|AFunc,AU_PORTAL_START
LW REWALL1,1
LWLW 1,1|AFunc,A_Set_AnimLoop+1,16
REWALL_S_LOOP
LWLW 1,1|AFunc,AU_ADD_XPOS+1,6
LWLL 1,1|AFunc,A_AnimFrm_DSJ+2,REWALL_S_LOOP
; LWL 1,1|AFunc,AU_PORTAL_SET_OPEN
LWL 1,1|AFunc,BG_TO_FG
LWL 1,1|AFunc,DELETE_OBJ
; LWL REWALL1,1|AFunc,PULL_ANIM
*
* Enemy generators for the honey comb wall
*
E_REWALL1
LWLL 1,1|AFunc,A_AnimGo+2,REW1_E_LOOP
REW1_E_LOOP
ENEMY 1024/2,20,1,60,AU_CREATE_BWBOY,4
WWL -75,0,LAVA_GUY_DEATH
*
* Enemies for the truncated version of the honeycomb wall
*
E_REWALL2:
LWLLW 1,1|AFunc,A_GOTO+3,REW2_NO_NINJA,512
LWLLW 1,1|AFunc,A_GOTO+3,REW2_FLY_NINJA,512
LWLWWLL 1,15|AFunc,AU_CREATE_SHUFFLE_NINJA_OPP+6,10,-2,10H,0
LWLL 1,1|AFunc,A_AnimGo+2,REW2_E_LOOP
REW2_FLY_NINJA
LWLWWLL 1,15|AFunc,AU_CREATE_SIDE_NINJA_OPP+6,10,-2,10H,0
REW2_NO_NINJA
LWLL 1,1|AFunc,A_AnimGo+2,REW2_E_LOOP
REW2_E_LOOP
ENEMY 1024/2,20,1,60,AU_CREATE_BWBOY2,4
WWL -75,0,LAVA_GUY_DEATH
*
* "Space Mountain" Tunnel
*
E_BLUHALS1
LWLWW BLUHALS1,1|AFunc,A_RAND_AnimSLP+2,5,10
LW 1,0
LWLWWLL 1,1|AFunc,AU_CREATE_SHUFFLE_NINJA+6,30,-2,10H,E_BLUHALS1
LWL 1,1|AFunc,UNIV_DISAB_ENEMY_GEN
*
* Enemy generators for the NON data bank
*
E_NONCOMP
LWLL 1,1|AFunc,A_AnimGo+2,NONCOMP_E_LOOP
NONCOMP_E_LOOP
ENEMY 1024/2,20,1,60,AU_CREATE_BWBOY,4
WWL -15,0,LAVA_GUY_DEATH
*
* Metal doors with a face like pattern in them.
*
BLUDOOR_SLIDE
LWL BLUDOOR2,1|AFunc,AU_PORTAL_START
LWLW 1,1|AFunc,A_Set_AnimLoop+1,12
BLUDOOR_S_LOOP
LWLW 1,1|AFunc,AU_ADD_XPOS+1,-6
LWLL 1,1|AFunc,A_AnimFrm_DSJ+2,BLUDOOR_S_LOOP
LWL 1,1|AFunc,AU_PORTAL_SET_OPEN
*
* Ornamental fan
*
fan1:
LW JFAN04,4
LW JFAN03,4
LW JFAN02,4
LWLWL JFAN01,1|AFunc,A_CREATEP_R+9,PID_IND,REVEAL_LIFE2,0
WWL 4,-40,8
LWL 1,1|AFunc,PULL_ANIM
.long 0
GLASS_A:
LW STATIC1,3
LW STATIC2,3
LW STATIC3,3
LW STATIC4,3
.long 0
*
* Balcony area of R&D lab
*
E_SKYBSEC1a
LW SKYBSEC1a,1
ENEMY 300,100,45,60,AU_CREATE_SIDERUN,3
.word -1,0,-14
*
* Enemy generators for the brain washer
*
E_STATIC5b
LWLWW 1,1|AFunc,AU_CREATE_KERRI_FLOSS+2,-47,12
LWLL 1,1|AFunc,A_AnimGo+2,BRAIN_E_LOOP
BRAIN_E_LOOP
ENEMY 1024/2,20,1,60,AU_CREATE_BWBOY,4
WWL -55,0,LAVA_GUY_DEATH
*Doors that lead to manager's office
BIG_DOORx:
; LWL DOOR_A_1x,6|AFunc,AU_PORTAL_START
LW DOOR_A_1x,6
LW DOOR_A_2x,6
LW DOOR_A_3x,6
LW DOOR_A_4x,6
; LWL DOOR_A_5x,1|AFunc,AU_PORTAL_SET_OPEN
LWL DOOR_A_5x,90|AFunc,BG_TO_FG
LWL 1,1|AFunc,DELETE_OBJ
*
* End of Japan - R&D area stuff
*
STGLAShor:
LWLL STGLASS1,40|AFunc,A_AnimGo+2,STGhk
STGLASang:
LW STGLASS2,39
LWLL 1,1|AFunc,A_SET_OYVEL+2,-4000h
STGhk:
LWLL 1,1|AFunc,A_SET_OXVEL+2,4000h
LWL 1,90|AFunc,BG_TO_FG
LWL 1,1|AFunc,DELETE_OBJ
STGLASctr:
LWLL STGLASS3,1|AFunc,A_SET_OXVEL+2,10000h
LWL 1,90|AFunc,BG_TO_FG
LWL 1,1|AFunc,DELETE_OBJ
.IF 0
EVLPLANT:
LW EVLPLANT1,1
LW EVLPLANT2,1
LW EVLPLANT3,1
LW EVLPLANT4,1
LW EVLPLANT5,1
LWL EVLPLANT6,1|AFunc,A_Set_LOOP_STRT
LW EVLPLANT9,1
LW EVLPLANT7,1
LW EVLPLANT8,1
LW EVLPLANT7,1
LW EVLPLANT6,1
.long 0
.ENDIF
SPIN1:
LW ESINSPINs1,0
LWL ESINSPINs2,0|AFunc,CHECK_EO_SPIN
LWLW ESINSPINs3,0|AFunc,A_INC_AnimSLP+1,12
LWL ESINSPINs4,0|AFunc,CHECK_EO_SPIN
LW ESINSPINs5,0
LWL ESINSPINs6,0|AFunc,CHECK_EO_SPIN
LWLW ESINSPINs7,0|AFunc,A_INC_AnimSLP+1,12
LW ESINSPINs8,0
LWL ESINSPINs9,0|AFunc,CHECK_EO_SPIN
LWLW ESINSPINs10,0|AFunc,A_INC_AnimSLP+1,12
.long 0
CHECK_EO_SPIN:
movb *a8(AnimSLP),a0
cmpk 10,a0
jrlt keepspin
calla PULL_ANIM
move *a8(OULINK),a3,L
move *a8(OIMG),*a3(MAP_IMG),L ; be here when recreated
keepspin:
rets
sodydam:
LW SODY01,4
LW SODY02,4
LW SODY03,4
LW SODY04,4
LW SODY05,4
LW SODY06,4
LW SODY07,4
LWL SODY08,4|AFunc,A_OFFSCRN_DEL
.long 0
BURGER:
LW BURGER1,1
LW BURGER2,1
LW BURGER3,1
LW BURGER4,1
LWL BURGER5,1|AFunc,A_OFFSCRN_DEL
.long 0
dHDRYFIRE1sq:
LW HDFLAM1,2
LW HDFLAM2,2
LW HDFLAM3,2
LW HDFLAM4,2
LW HDFLAM5,2
LW HDFLAM6,2
LW HDFLAM7,2
.long 0
GODCHIN1sq:
LW GODCHIN2,25
LWLL 1,9|AFunc,A_SET_OYVEL+2,80000h
LWLL 1,120|AFunc,A_SET_OYVEL+2,0
LWLL 1,9|AFunc,A_SET_OYVEL+2,-80000h
LWLL 1,1|AFunc,A_SET_OYVEL+2,0
LWL 1,1|AFunc,PULL_ANIM
.long 0
chabra1:
LWLL CHABRA01,4|AFunc,A_MAKE_PART+2,KER_PT2_INIT
LWL 1,1|AFunc,A_Set_LOOP_STRT
LW CHABRA02,6
LW CHABRA03a,1|AMulti
LWL CHABRA03b,7|AFunc,OBJ_ON
LW CHABRA04a,1|AMulti
LW CHABRA04b,8
LW CHABRA05a,1|AMulti
LW CHABRA05b,10
LWL CHABRA06a,1|AMulti|AFunc,A_DELETE_OFFLFT
LW CHABRA06b,9
LW CHABRA07,1|AMulti
LWL 1,7|AFunc,OBJ_OFF
LW CHABRA08a,1|AMulti
LWL CHABRA08b,5|AFunc,OBJ_ON
LW CHABRA09a,1|AMulti
LW CHABRA09b,3
LW CHABRA10a,1|AMulti
LW CHABRA10b,12
LWL CHABRA11a,1|AMulti|AFunc,A_DELETE_OFFLFT
LW CHABRA11b,4
LW CHABRA01,1|AMulti
LWL 1,5|AFunc,OBJ_OFF
.long 0
A_MAKE_PART:
calla BG_TO_FG ; make it FG
calla GETAFARG_LONG
move a0,b0
calla EASYMAKE
move *a8(OXVAL),*a0(OXVAL),L
move *a8(OYVAL),*a0(OYVAL),L
move *a8(OZVAL),*a0(OZVAL),L
move *a8(OCTRL),a14
andi M_FLIPH|M_FLIPV,a14
move *a0(OCTRL),a1
or a14,a1
move a1,*a0(OCTRL)
calla INSOBJ
calla INSPART ; make hiss part of beek
rets
A_DELETE_OFFLFT:
move *a8(ODAGX),a0
move *a8(OSIZEX),a1
add a1,a0
jrge nodeloff
calla DELETE_OBJ
nodeloff:
rets
KER_PT2_INIT:
.long CHABRA03b
.word DMAWNZ,M_NODISP,OM_GUNV
.long HAMMER_GUNVECT
HAMMER_GUNVECT:
CLRM *a8(OGUNVECT),L ; can't hit her no more
move *a8(OPART1),a8,L
movi 8000,a1
CALLA PRINT_SCORE
calla BG_TO_FG
move *a8(OPART1),a8,L
movi KER_FREED_ANIM,a1
move a1,*a8(AnimFrm),L
move a1,*a8(AnimScr),L
MOVKB 1,*a8(AnimSlp)
CALLA PLAYER_AWARD_GIRL
rets
KER_FREED_ANIM:
LW CHAFREE01a,1|AMulti
LW CHAFREE01b,10
LWLLW CHAFREE02a,1|AMulti|AFunc,A_TAB_SOUNDZ+3,KER_SND_TAB,6
LW CHAFREE02b,5
LW CHAFREE03,1|AMulti
LWL 1,5|AFunc,OBJ_OFF
LWL CHAFREE04,4|AFunc,A_RAND_HFLIP
LWLLL CHAFREE05,3|AFunc,A_RAND_OXVEL+4,24000h,38000h
LWLL 1,1|AFunc,A_AnimGo+2,KER3RUN
**************************************************************************
* *
* FINAL STAGE *
* *
**************************************************************************
MOLE1:
LW MOL1,10
LW MOL3,4
LW MOL5,4
LW MOL7,4
LW MOL9,4
LW MOL11,4
LW MOL13,4
LW MOL14,3
LW MOL13,4
LW MOL11,4
LW MOL9,4
LW MOL7,4
LW MOL5,4
LW MOL3,4
.long 0
FINALPORTAL:
LWL XDOROPN2,3|AFunc,AU_PORTAL_START
LW XDOROPN3,3
LW XDOROPN4,3
LW XDOROPN5,3
LWL XDOROPN6,1|AFunc,AU_PORTAL_SET_OPEN
TVSET:
LWL TV1,60|AFunc,CREATE_PICTURE
.long 0
.END