3929 lines
85 KiB
NASM
3929 lines
85 KiB
NASM
.MLIB "GXMACS.LIB"
|
||
.FILE "GXLA1.ASM"
|
||
.TITLE " <<< GENERATION X -- LA UNIVERSE ROUTINES PART 1 >>>"
|
||
.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 "GXCONTRL.H"
|
||
.INCLUDE "GXNONBOY.H"
|
||
.INCLUDE "IMGTBL.GLO"
|
||
.include "univtbl.glo"
|
||
.INCLUDE "GXLA1.TBL"
|
||
|
||
*** SYMBOLS IN HERE
|
||
.DEF LAVA_SHATTER_HOOK,LAVADAM2,LAVADAM3,LAVADAM4,LAVADAM5,LAVADAM6,LAVADAM7
|
||
.DEF LA_OUTSIDE2_VECT_TABLE,WC_MAKE_GLASS
|
||
.DEF LA_LOBBY_BAR_VECT_TABLE
|
||
.DEF LA_OUTSIDE1_VECT_TABLE, S_CHECK_TICKET_WINDOWS
|
||
.DEF FLASH_GITAR_PROC
|
||
.DEF LID_GUNVECT, LID_COLLVECT, CAN_GUNVECT, CAN_COLLVECT
|
||
.DEF CTABLE_GUNVECT, CTABLE_COLLVECT, BOTTLE_GUNVECT, BOTTLE_COLLVECT
|
||
.DEF GLASS_COLLVECT, SND_SWAT, BREAK_WINDOW, AU_GITAR_SND
|
||
.DEF DUMPSTER_COLLVECT, DUMPSTER_GUNVECT, FRAG_FZZZ_ANIM
|
||
.def PHONE_COLLVECT,PHONE_GUNVECT
|
||
.def RECEIVER_COLLVECT,RECEIVER_GUNVECT,COIN_DOOR_COLLVECT,COIN_DOOR_GUNVECT
|
||
.DEF PALMTREETOP_COLLVECTR,PALMTREETOP_GUNVECT
|
||
|
||
* SYMBOLS IN GXLA2.ASM
|
||
.REF TRASHCAN_GUNVECT, TRASHCAN_COLLVECT, SND_PIPE_DING
|
||
.REF MIRROR_GUNVECT, MIRROR_CVECT2, DLAMP_GUNVECT, DLAMP_COLLVECT
|
||
.REF FLOWERS_COLLVECT,FLOWERS_GUNVECT,MLIGHT_COLLVECT,MLIGHT_GUNVECT
|
||
.REF MIRROR_COLLVECT
|
||
|
||
* SYMBOLS IN GXLA3.ASM
|
||
.REF WLAMP_GUNVECT
|
||
.REF WLAMP_COLLVECT, PORTDOOR_COLLVECT
|
||
.REF FCHAIR_COLLVECT,FCHAIR_GUNVECT
|
||
|
||
***** From GXUNIFX.ASM
|
||
.REF GOT_TROG, MAKE_TROG_PROC, GITTEN_KITTEN, CAT_DONE
|
||
|
||
***** From GXUNIJP2.ASM
|
||
.REF METAL_GUNVECT
|
||
|
||
* SYMBOLS FROM GXAFUNC.ASM
|
||
.REF A_DELETE_ZBOT
|
||
|
||
* SYMBOLS IN GXJUNGLE.ASM
|
||
.ref MAKE_VIDCAM_SND
|
||
|
||
* SYMBOLS IN GXKERRI.ASM
|
||
.ref KERCAGE_COLLVECT, KERCAGE_GUNVECT
|
||
|
||
* SYMBOLS IN ?
|
||
.ref DGV_FRAG_SPARK
|
||
|
||
* SYMBOLS IN GXNONBOY.ASM
|
||
.REF FALLING_DEATH_ANIM, WINBOY_DEATH_ANIM
|
||
|
||
* SYMBOLS IN GXSCROLL.ASM
|
||
.REF PORTAL_LOCKOUT
|
||
|
||
* SYMBOLS IN GXPOWER.ASM
|
||
.REF REVEAL_CD2, REVEAL_SBOMB2, REVEAL_LIFE2, REVEAL_SHIELD
|
||
|
||
* SYMBOLS IN GXUNIV1.ASM
|
||
.REF FRAG_U1_X2
|
||
|
||
* SYMBOLS IN GXRAM.ASM
|
||
.REF ENERGY_AWARDS
|
||
|
||
* SYMBOLS IN GXHELI.ASM
|
||
.REF GET_PCENTRY
|
||
|
||
; .BSS ZFAR_FOLLOW,32 ;ZFAR FOLLOW THIS
|
||
.BSS PHONE_FLAG,16 ;PHONE RECORDING FLAG
|
||
.bss filler,16 ; to keep long word aligned
|
||
|
||
.TEXT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* ********************************************************************** *
|
||
* * *
|
||
* * ******************************************************************** *
|
||
* * * *
|
||
* * * LOBBY DAMAGE *
|
||
* * * *
|
||
* * ******************************************************************** *
|
||
* * *
|
||
* ********************************************************************** *
|
||
* *
|
||
**************************************************************************
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TICKET WINDOW VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
TWINDOW_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,TWINDOW_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
TWINDOW_CVECT
|
||
; CHKZLIM 078A7H+010H,TWG_DONE
|
||
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ TWG_DONE
|
||
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
|
||
MOVI 500,A5 ;500 POINTS
|
||
MOVK M_NOMORE|M_LASTFRM|M_FLASHOBJ,A7 ;LAST FRAME AND FLASH
|
||
JRUC TWG_STOP
|
||
|
||
TWINDOW_GUNVECT
|
||
; CHKZLIM 078A7H+010H,TWG_DONE
|
||
|
||
MOVI [-90, -26],A3
|
||
MOVI [-43, 26],A4
|
||
CALLA BOX_CHECK_OBJ
|
||
JRZ TWG_DONE ;BR=NOT THE WINDOW PART
|
||
|
||
SOUNDZ SND_WINDOW_CRACK
|
||
|
||
MOVE *A8(OFLAGS),A14,W
|
||
BTST B_NOPIXSCAN,A14
|
||
JRZ TWG_DONE ;BR=WINDOW ALREADY BROKE
|
||
|
||
; MOVK M_NOMORE|M_FLASHOBJ,A7 ;FLASH
|
||
MOVK M_FLASHOBJ,A7 ;FLASH
|
||
|
||
MOVI 500,A5 ;500 POINTS
|
||
|
||
MOVE *A8(OULINK),A0,L
|
||
MOVB *A0(MAP_ID+8),A14 ;GET CURRENT DAMAGE LEVEL
|
||
CMPK 1,A14
|
||
JRNE TWG_GO
|
||
|
||
MOVE *A2(PPLASMASHOTS),A14,W
|
||
JRNZ TWG_STOP ;BR=BIG GUN
|
||
|
||
MOVE *A0(MAP_OBJ),A14,W ;GET CURRENT COUNT
|
||
SLL 28,A14
|
||
SRL 28,A14
|
||
CMPK 3,A14
|
||
JRNE TWG_GO
|
||
TWG_STOP
|
||
CALLA STOP_ENEMIES
|
||
TWG_GO
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
JRNC TWG_DONE ;BR=NOT THE LAST
|
||
|
||
MOVI DUMCOLL,A14
|
||
MOVE A14,*A8(OCVECT),L
|
||
|
||
MOVE *A8(OFLAGS),A14,W ;TURN ON PIXEL SCANNING
|
||
ANDNI M_NOPIXSCAN,A14
|
||
MOVE A14,*A8(OFLAGS),W
|
||
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 040000H,A0
|
||
CLR A3
|
||
CALLA PreFrag_Center
|
||
MOVI -0FFH,B9
|
||
MOVI -01H,B10
|
||
MOVI FRAG_S20,B14
|
||
CALLA Fragger
|
||
|
||
MOVI SHARDPAL1,A5 ;SILVER PALETTE
|
||
MOVE A5,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MOVE *A8(OIHOFF),A14,W
|
||
JRNZ TWG_FRAG_DONE ;BR=DON'T MAKE SMALL PIECES
|
||
|
||
MOVI FRAG_SS10,B14
|
||
CALLA Fragger
|
||
|
||
MOVE A5,*A0(FPDATA),L ;SET PALETTE
|
||
TWG_FRAG_DONE
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
|
||
JRUC WC_MAKE_GLASS
|
||
TWG_DONE
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* S_CHECK_TICKET_WINDOWS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
S_CHECK_TICKET_WINDOWS
|
||
|
||
MOVI FGLIST,A8
|
||
MOVI BOXOWIN3b,A9 ;LOOK FOR THIS
|
||
|
||
S_CTW_RESTART
|
||
MOVE A8,A0
|
||
CLR A1
|
||
JRUC S_CTW_NEXT
|
||
S_CTW_LUPE
|
||
MOVE *A0(OIMG),A14,L ;CHECK IMAGES
|
||
CMP A9,A14
|
||
JRNE S_CTW_NEXT
|
||
INC A1
|
||
S_CTW_NEXT
|
||
MOVE *A0,A0,L
|
||
CMP A8,A0
|
||
JRNE S_CTW_LUPE ;BR=NOT END OF LIST
|
||
|
||
CMPK 3,A1
|
||
JREQ S_CTW_GO
|
||
SLEEP 1
|
||
JRUC S_CTW_RESTART
|
||
S_CTW_GO
|
||
SLEEP 60
|
||
JAUC SCRL_DISPATCHER
|
||
|
||
**************************************************************************
|
||
* *
|
||
* BREAK_WINDOW - CAUSE WINDOW TO BREAK IF NONBOY FLIES THROUGH IT *
|
||
* *
|
||
* PASS: *
|
||
* A8 = NONBOY OBJECT *
|
||
* RETURN: *
|
||
* A1 = NONBOY DEATH ANIMATION IF NO BREAK *
|
||
* *
|
||
**************************************************************************
|
||
|
||
BREAK_WINDOW
|
||
PUSH A8
|
||
; MOVE *A8(ONATEROCKET),A0,L
|
||
; JR-- BW_NOBREAK ;BR=ROCKET COLLISION
|
||
MOVE *A8(ONATEEXPLO),A0,L
|
||
JRNZ BW_NOBREAK ;BR=EXPLOSION COLLISION
|
||
|
||
MOVE *A8(OXVAL),A5,L
|
||
|
||
MOVI FGLIST,A0
|
||
; MOVE A0,A8
|
||
|
||
MOVI BOXOWIN1b,A3 ;CHANGE THIS
|
||
MOVI BOXOWIN2b,A4 ;OR THIS
|
||
|
||
MOVI 060000H,A6
|
||
|
||
JRUC BW_NEXT
|
||
BW_LUPE
|
||
MOVE *A8(OIMG),A14,L ;CHECK IMAGES
|
||
CMP A3,A14
|
||
JREQ BW_CHECK
|
||
CMP A4,A14
|
||
JRNE BW_NEXT
|
||
BW_CHECK
|
||
MOVE *A8(OXVAL),A14,L
|
||
SUB A5,A14
|
||
ABS A14
|
||
CMP A6,A14
|
||
JRGT BW_NEXT ;BR=OUTSIDE X RANGE
|
||
MOVE A2,A9 ;PLAYER
|
||
CALLA STOP_ENEMIES
|
||
MOVE *A8(OPLINK),A0,L
|
||
JRZ BW_NOKILL ;BR=NO FLASH PROC TO KILL
|
||
CLR A14
|
||
MOVE A14,*A8(OPLINK),L
|
||
CALLA KILL
|
||
BW_NOKILL
|
||
CREATE PID_IND,BREAK_WINDOW_PROC
|
||
MOVE A0,*A8(OPLINK),L
|
||
|
||
PULLQ A8
|
||
MOVE *A8(OYVAL),A14,L
|
||
SUBI 10 << 15,A14 ;MOVE NONBOY UP
|
||
MOVE A14,*A8(OYVAL),L
|
||
|
||
MOVI FALLING_DEATH_ANIM,A1
|
||
RETS
|
||
BW_NEXT
|
||
MOVE *A8(OBLINK),A8,L
|
||
CMP A0,A8
|
||
JRNE BW_LUPE ;BR=NOT END OF LIST
|
||
|
||
;GLASS ALREADY SHATTERED
|
||
BW_NOBREAK
|
||
MOVI WINBOY_DEATH_ANIM,A1 ;FALL BACK ANIMATION
|
||
PULLQ A8
|
||
RETS
|
||
|
||
BREAK_WINDOW_PROC
|
||
SLEEP 10
|
||
MOVE A9,A2 ;PLAYER
|
||
MOVI 25000,A5
|
||
CLR A14
|
||
MOVE A14,*A8(OPLINK),L ;MAKE FLASH HAPPEN
|
||
MOVK M_NOMORE|M_LASTFRM|M_FLASHOBJ,A7 ;LAST FRAME AND FLASH
|
||
CALLR TWG_GO
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* PHONE VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
SND_TONE_0
|
||
.WORD 0F351H,6,0A36EH,0
|
||
SND_TONE_1
|
||
.WORD 0F351H,6,0A371H,0
|
||
SND_TONE_2
|
||
.WORD 0F351H,6,0A374H,0
|
||
SND_TONE_3
|
||
.WORD 0F351H,6,0A377H,0
|
||
SND_TONE_4
|
||
.WORD 0F351H,6,0A37AH,0
|
||
SND_PHONE_RECORDING
|
||
.WORD 0E350H,120,0836BH,173,08368H,0
|
||
SND_DIAL_TONE
|
||
; .WORD 0E350H,120,0836BH,0
|
||
.WORD 0E350H,319,0836BH,0
|
||
SND_COINS_JACKPOT
|
||
.WORD 0E321H,62,0A35DH,0
|
||
SND_COINS_BOUNCE
|
||
.WORD 0F321H,277,0A163H,0
|
||
SND_PHONE_EXPLODE
|
||
.WORD 0F320H,61,0A126H,0
|
||
SND_COIN_DOOR_DING
|
||
.WORD 0F320H,45,0A13EH,0
|
||
SND_RECEIVER_BOING
|
||
.WORD 0F310H,82,0A15DH,0
|
||
SND_SIGN_CLANG
|
||
.WORD 0F310H,30,0A111H,0
|
||
SND_PHONE_HIT
|
||
.WORD 0F308H,34,0A160H,0
|
||
SND_RECEIVER_HIT
|
||
.WORD 0F308H,31,0A15AH,0
|
||
|
||
TONE_TBL
|
||
.LONG SND_TONE_0,SND_TONE_1,SND_TONE_2,SND_TONE_3
|
||
|
||
PHONE_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,PHONE_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
PHONE_CVECT
|
||
CHKZLIM 01239AH+010H,PHG_DONE
|
||
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ PHG_DONE ;BR=NO GOOD
|
||
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
|
||
MOVK M_NOMORE|M_LASTFRM|M_FLASHOBJ,A7 ;LAST FRAME AND FLASH
|
||
JRUC PHONE_GO
|
||
PHONE_GUNVECT
|
||
CHKZLIM 01239AH+010H,PHG_DONE
|
||
|
||
MOVI PHONE_BOX_TBL,A0
|
||
CALLA TABLE_BOX_CHECK
|
||
JRZ PHG_DONE ;BR=NO GOOD
|
||
|
||
DEC A1
|
||
JRNZ PHONE_NO_TONE
|
||
|
||
MOVK 4,A0
|
||
CALLA RAND0
|
||
SLL 5,A0
|
||
ADDI TONE_TBL,A0
|
||
MOVE *A0,A0,L
|
||
JAUC ONESND_Z
|
||
|
||
PHONE_NO_TONE
|
||
MOVK M_NOMORE|M_FLASHOBJ,A7 ;FLASH
|
||
PHONE_GO
|
||
SOUNDZ SND_PHONE_HIT
|
||
|
||
MOVI 500,A5 ;500 POINTS
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
JRNC PHG_DONE
|
||
|
||
SOUNDZ SND_PHONE_EXPLODE
|
||
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 040000H,A0
|
||
CLR A3
|
||
CALLA PreFrag_Center
|
||
MOVI -0FFH,B9
|
||
MOVI -01H,B10
|
||
MOVI FRAG_U10,B14
|
||
CALLA Fragger
|
||
|
||
MOVI PAYPHON2,A14
|
||
MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
|
||
MOVE *A8(OXVAL),A7,L
|
||
|
||
MOVI FGLIST,A0
|
||
; MOVE A0,A8
|
||
|
||
MOVI RECEIVER1,A3 ;CHANGE THIS
|
||
MOVI PCOINB1,A4 ;CHANGE THIS
|
||
|
||
MOVK 2,A5
|
||
|
||
JRUC PHG_NEXT
|
||
PHG_LUPE
|
||
MOVE *A8(OIMG),A14,L ;CHECK IMAGES
|
||
CMP A3,A14
|
||
JRNE PHG_OTHER
|
||
MOVE *A8(OXVAL),A14,L
|
||
SUB A7,A14
|
||
ABS A14
|
||
CMPI 050000H,A14
|
||
JRGT PHG_NEXT
|
||
|
||
; MOVB *A8(OFLAGS+B_ANIM-7),A14
|
||
; JRN PHG_NEXT ;BR=IT'S ANIMATING
|
||
|
||
DEC A5
|
||
CLR A3
|
||
MMTM SP,A0,A3,A4,A5,A7,A8
|
||
MOVK 1,A5 ;RECEIVER KABOOM FLAG
|
||
CALLR RECEIVER_KABOOM
|
||
MMFM SP,A0,A3,A4,A5,A7,A8
|
||
JRUC PHG_NEXT
|
||
|
||
PHG_OTHER
|
||
CMP A4,A14
|
||
JRNE PHG_NEXT
|
||
|
||
MOVE *A8(OXVAL),A14,L
|
||
SUB A7,A14
|
||
ABS A14
|
||
CMPI 050000H,A14
|
||
JRGT PHG_NEXT
|
||
|
||
MOVE *A8(OULINK),A14,L
|
||
JRZ PHG_NEXT
|
||
|
||
DEC A5
|
||
CLR A4
|
||
MMTM SP,A0,A3,A4,A5,A7,A8
|
||
CLR A3
|
||
CLR A5
|
||
CALLR COIN_DOOR_KABOOM
|
||
MMFM SP,A0,A3,A4,A5,A7,A8
|
||
|
||
PHG_NEXT
|
||
MOVE A5,A5
|
||
JRZ PHG_DONE
|
||
MOVE *A8(OBLINK),A8,L
|
||
CMP A0,A8
|
||
JRNE PHG_LUPE ;BR=NOT END OF LIST
|
||
|
||
PHG_DONE
|
||
RETS
|
||
|
||
PHONE_BOX_TBL
|
||
.LONG [20,12],[29,20] ;KEYPAD
|
||
.LONG [9,8],[37,24] ;DAMAGE AREA
|
||
.LONG -1
|
||
|
||
**************************************************************************
|
||
* *
|
||
* PHONE RECEIVER VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
RECEIVER_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,RECEIVER_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
RECEIVER_COLLVECT2
|
||
WL 0,RECEIVER_BLOWUP
|
||
|
||
RECEIVER_CVECT
|
||
CHKZLIM 01239AH+010H,REG_DONE
|
||
|
||
MOVE *A8(OIMG),A14,L
|
||
CMPI RECEIVER6,A14
|
||
JREQ RECEIVER_BLOWUP ;BR=WRONG COLLVECT IS SET
|
||
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ REG_DONE
|
||
|
||
RECEIVER_BLOWUP
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
clr a5
|
||
jruc RECEIVER_KABOOM
|
||
RECEIVER_GUNVECT
|
||
CHKZLIM 01239AH+010H,REG_DONE
|
||
|
||
CLR A5
|
||
RECEIVER_KABOOM
|
||
MOVB *A8(OFLAGS+B_ANIM-7),A14
|
||
JRNN REG_STILL ;BR=IT'S NOT ANIMATING
|
||
|
||
MOVE *A8(AnimScr),A14,L
|
||
CMPI dSWINGsq,A14
|
||
JRNE REG_DONE ;BR=WE'RE FALLING
|
||
|
||
MOVK 1,A14 ;SET ANIMATION LOOP FLAG
|
||
MOVB A14,*A8(AnimLoop)
|
||
RETS
|
||
REG_STILL
|
||
CLR A14
|
||
MOVB A14,*A8(AnimLoop)
|
||
|
||
MOVI SND_RECEIVER_HIT,A0
|
||
|
||
MOVE *A8(OIMG),A14,L
|
||
CMPI RECEIVER1,A14
|
||
JRNE REG_SND
|
||
|
||
CREATE PID_IND,PHONE_RECORDING_PROC
|
||
|
||
MOVI SND_RECEIVER_BOING,A0
|
||
REG_SND
|
||
CALLA ONESND_Z
|
||
|
||
CLR A7
|
||
|
||
MOVE A5,A5
|
||
JRNZ REG_GO ;BR=NO POINTS FOR KABOOM
|
||
|
||
MOVE *A8(OULINK),A0,L
|
||
MOVI RECEIVER_DAM_TBL+M_IF_DAM,A1
|
||
MOVE *A0(MAP_IMG),A14,L
|
||
CMP A1,A14
|
||
JREQ REG_GO ;BR=NO POINTS
|
||
MOVI 500,A5 ;500 POINTS
|
||
MOVK M_FLASHOBJ,A7 ;FLASH
|
||
REG_GO
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
|
||
MOVE A1,*A0(MAP_IMG),L ;RESET DAMAGE TABLE
|
||
|
||
SETF 4,0,0 ;FIELD 0 IS 4 BITS
|
||
CLR A4 ;RESET COUNT FOR NEW FRAME
|
||
MOVE A4,*A0(MAP_OBJ),0 ;SAVE CURRENT COUNT
|
||
SETF 16,1,0 ;WORD SIGN EXTEND
|
||
|
||
MOVI RECEIVER_COLLVECT2,A14
|
||
MOVE A14,*A8(OCVECT),L
|
||
|
||
REG_DONE
|
||
RETS
|
||
|
||
PHONE_RECORDING_PROC
|
||
MOVE @PHONE_FLAG,A14,W
|
||
JRNZ PRP_TONE
|
||
SLEEP 40
|
||
SOUNDZ SND_PHONE_RECORDING
|
||
MOVK 1,A14
|
||
MOVE A14,@PHONE_FLAG,W
|
||
DIE
|
||
PRP_TONE
|
||
SOUNDZ SND_DIAL_TONE
|
||
DIE
|
||
|
||
RECEIVER_DAM_TBL:
|
||
.long RECEIVER6+0
|
||
.word 1
|
||
.long dSWINGsq+9
|
||
|
||
dSWINGsq:
|
||
LWWL RECEIVER5,3|AFlip|AFunc,M_FLIPH,AU_RESET_LUPE
|
||
LW RECEIVER4,3
|
||
LW RECEIVER5,2
|
||
LWW RECEIVER6,2|AFlip,0
|
||
LW RECEIVER5,2
|
||
LW RECEIVER4,2
|
||
LW RECEIVER5,2
|
||
LWL RECEIVER6,3|AFunc,AU_CHECK_LUPE+2,dSWINGsq
|
||
LWW RECEIVER5,3|AFlip,M_FLIPH
|
||
LWWL RECEIVER6,1|AFlip|AFunc,0,PULL_ANIM
|
||
|
||
**************************************************************************
|
||
* *
|
||
* COIN DOOR VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
COIN_DOOR_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,COIN_DOOR_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
COIN_DOOR_CVECT
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ CDG_ABORT
|
||
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
|
||
CLR A3 ;NO CURSOR POSITION, FLY RANDOM
|
||
COIN_DOOR_GUNVECT
|
||
CHKZLIM 01239AH+010H,CDG_ABORT
|
||
|
||
MOVI 500,A5 ;500 POINTS
|
||
COIN_DOOR_KABOOM
|
||
MOVK M_FLASHOBJ,A7 ;FLASH
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
|
||
MOVE *A8(OIHOFF),A14,W
|
||
JRNZ CDG_COIN_DOOR ;BR=WE'RE FAR AWAY
|
||
|
||
MOVE @ZSCROLL,A14,L
|
||
JRN CDG_COIN_DOOR ;BR=NOT IF WE'RE BACKIN' UP
|
||
|
||
SOUNDZ SND_COINS_JACKPOT
|
||
|
||
CREATE PID_IND,MAKE_BOUNCING_COINS_SND_PROC
|
||
|
||
MOVE A8,A14
|
||
ADDI OXVAL,A14
|
||
MMFM A14,A9,A10,A11
|
||
SRA 16,A10
|
||
SRA 16,A11
|
||
|
||
move @WAVE_UNIV,a14,L ; no coins in elevator room
|
||
cmpi GXELRM2,a14
|
||
jreq CDG_COIN_DOOR
|
||
CREATE PID_IND,MAKE_CHANGE_PROC
|
||
CDG_COIN_DOOR
|
||
MOVI COIN_DOOR_FLY,A0
|
||
JAUC THING_FLY_START
|
||
CDG_ABORT
|
||
RETS
|
||
|
||
MAKE_BOUNCING_COINS_SND_PROC
|
||
SLEEP 20
|
||
SOUNDZ SND_COINS_BOUNCE
|
||
DIE
|
||
|
||
* .WORD OFLYSCORE, OFLYSCOREINC *
|
||
* .LONG OFLYHITSND, OFLYYVEL *
|
||
* .WORD OFLYXSLL, OYACCEL, OZVEL *
|
||
|
||
COIN_DOOR_FLY
|
||
.LONG [5000, 5000], SND_COIN_DOOR_DING, -020000H
|
||
.WORD 13, 02000H, -080H
|
||
|
||
**************************************************************************
|
||
* *
|
||
* MAKE_CHANGE_PROC *
|
||
* *
|
||
**************************************************************************
|
||
|
||
MAKE_CHANGE_PROC
|
||
MOVI 20,A8
|
||
MCP_LUPE
|
||
MOVE A9,B0
|
||
|
||
MOVE A11,B1
|
||
MOVE A11,B2
|
||
|
||
MOVE A10,B5
|
||
MOVE A10,B6
|
||
|
||
MOVI -04000H,B3
|
||
MOVI 04000H,B4
|
||
|
||
CLR B7
|
||
MOVI 01000H,B8
|
||
|
||
CLR B9
|
||
CLR B10
|
||
|
||
* B0 = OZVAL *
|
||
* B1 = min Xpos *
|
||
* B2 = max Xpos *
|
||
* B3 = min Xvel *
|
||
* B4 = max Xvel *
|
||
* B5 = min Ypos *
|
||
* B6 = max Ypos *
|
||
* B7 = min Yvel *
|
||
* B8 = max Yvel *
|
||
* B9 = min Zvel *
|
||
* B10 = max Zvel *
|
||
|
||
MOVI COINS_FRAG,B14
|
||
CALLA Fragger
|
||
|
||
SLEEP 5
|
||
|
||
MOVE @ZBASE,A6,L ;GET Z OFFSET FROM UNIVERSE TO WORLD
|
||
MOVE @ZFAR,A5,L
|
||
ADD A6,A5
|
||
ADDI ZMAX_KLUDGE,A6
|
||
|
||
CMP A6,A9
|
||
JALT SUCIDE
|
||
CMP A5,A9
|
||
JAGT SUCIDE
|
||
|
||
DSJ A8,MCP_LUPE
|
||
|
||
DIE
|
||
|
||
COINS_FRAG
|
||
.long COIN_ANIM,COIN_STUFF
|
||
.word OID_JUNK,(1 << 11) + (0 << 6) + (FRGGCOL+FRGNOFLY+FRGPAL)
|
||
.long 0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* COIN_STUFF *
|
||
* *
|
||
**************************************************************************
|
||
|
||
COIN_STUFF
|
||
MOVI 03000H,A14
|
||
MOVE A14,*A0(OYACCEL),W
|
||
MOVI COIN_CVECT,A14
|
||
MOVE A14,*A0(OCVECT),L
|
||
RETS
|
||
|
||
COIN_CVECT
|
||
WWL OID_GRND,0FFFFH,COIN_GRND_COLL
|
||
WL 0,DUMCRETS
|
||
|
||
COIN_GRND_COLL
|
||
MOVE *A8(OYVEL),A14,L
|
||
JAN DELETE_OBJ ;BR=GOING UP
|
||
JAZ DELETE_OBJ ;BR=STOPPED
|
||
MOVE A14,A0
|
||
SRA 2,A0
|
||
SUB A0,A14
|
||
CMPI 010000H,A14
|
||
JALT DELETE_OBJ ;BR=BELOW MINIMUM VELOCITY
|
||
NEG A14 ;REVERSE VELOCITY
|
||
MOVE A14,*A8(OYVEL),L
|
||
RETS
|
||
|
||
COIN_ANIM
|
||
LW COINa1,3
|
||
LW COINa2,3
|
||
LW COINa3,3
|
||
LW COINa4,3
|
||
LW COINa5,3
|
||
LW COINa6,3
|
||
LW COINa7,3
|
||
.long 0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SIGN PORTAL DAMAGE VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
FLEASIGN_PORTAL_DAMAGE_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,FLEASIGN_PORTAL_DAMAGE_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
SIGN_PORTAL_DAMAGE_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,SIGN_PORTAL_DAMAGE_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
FLEASIGN_PORTAL_DAMAGE_GUNVECT
|
||
SOUNDZ SND_SIGN_CLANG
|
||
|
||
MOVE @SCROLL_FLAG,A14,W
|
||
JRNZ SPD_DONE ;BR=NOT ALLOWED
|
||
JRUC SPD_LOCKOUT
|
||
|
||
FLEASIGN_PORTAL_DAMAGE_CVECT
|
||
MOVE @SCROLL_FLAG,A14,W
|
||
JRNZ SPD_DONE ;BR=NOT ALLOWED
|
||
|
||
SIGN_PORTAL_DAMAGE_CVECT
|
||
MOVE @PORTAL_LOCKOUT,A0,W
|
||
JRNZ SPD_DONE ;BR=NOT ALLOWED
|
||
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ SPD_DONE
|
||
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
|
||
SIGN_PORTAL_DAMAGE_GUNVECT
|
||
SOUNDZ SND_SIGN_CLANG
|
||
SPD_LOCKOUT
|
||
MOVE @PORTAL_LOCKOUT,A0,W
|
||
JRNZ SPD_DONE ;BR=NOT ALLOWED
|
||
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 040000H,A0
|
||
CLR A3
|
||
CALLA PreFrag_Center
|
||
MOVI -0FFH,B9 ;MIN Z VEL
|
||
MOVI -01H,B10 ;MAX Z VEL
|
||
MOVI FRAG_U5,B14
|
||
CALLA Fragger
|
||
|
||
MOVE *A8(OIMG),A1,L
|
||
MOVE *A1(ICMAP),*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
|
||
MOVI 1000,A5 ;500 POINTS
|
||
MOVK M_NOMORE|M_FLASHOBJ,A7 ;NO MORE DAMAGE AND FLASH
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
|
||
JAUC PORTAL_GUNVECT
|
||
SPD_DONE
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* ********************************************************************** *
|
||
* * *
|
||
* * ******************************************************************** *
|
||
* * * *
|
||
* * * BAR DAMAGE *
|
||
* * * *
|
||
* * ******************************************************************** *
|
||
* * *
|
||
* ********************************************************************** *
|
||
* *
|
||
**************************************************************************
|
||
|
||
LAVA_LAMP_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,LAVA_LAMP_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
LAVA_LAMP_CVECT
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ LLG_DONE ;BR=NO GOOD
|
||
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
|
||
MOVK M_NOMORE|M_LASTFRM,A7
|
||
JRUC LLG_DAM
|
||
LAVA_LAMP_GUNVECT
|
||
MOVK M_FLASHOBJ,A7
|
||
MOVE *A8(OULINK),A0,L
|
||
MOVB *A0(MAP_ID+8),A14 ;GET CURRENT DAMAGE LEVEL
|
||
JRZ LLG_DAM ;BR=NOT DAMAGED
|
||
MOVK M_NOMORE,A7
|
||
LLG_DAM
|
||
CLR A5
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
JRNC LLG_CRACK ;BR=CRACK THE GLASS
|
||
|
||
MOVI [-40,0],A10 ;[Y,X] OFFSET
|
||
MOVK 1,A11 ;Z OFFSET
|
||
CREATE PID_IND,REVEAL_CD
|
||
|
||
MOVE *A8(OZVAL),A10,L
|
||
MOVE @ZREL_OFF,A14,L
|
||
SRA ZFRAC,A14
|
||
SUB A14,A10
|
||
CMPI 18000H,A10
|
||
JRGE LLG_JUST_CDS
|
||
|
||
MOVI [-90,0],A10 ;[Y,X] OFFSET
|
||
CREATE PID_IND,REVEAL_SHIELD
|
||
JRUC LLG_CONT
|
||
|
||
LLG_JUST_CDS
|
||
MOVI [-80,0],A10 ;[Y,X] OFFSET
|
||
CREATE PID_IND,REVEAL_CD
|
||
|
||
LLG_CONT
|
||
CALLA GET_FREE_LINK
|
||
JRZ LLG_DONE ;BR=NONE AVAILABLE
|
||
|
||
MOVE *A8(OCTRL),A14,W ;DO THE FLIPH THING
|
||
ANDI M_FLIPH,A14
|
||
XORI M_FLIPH,A14
|
||
MOVE A14,*A0(MAP_FLAGS),W
|
||
|
||
MOVE A8,A14
|
||
ADDI OXVAL,A14 ;GET POSITION
|
||
MMFM A14,A3,A4,A5 ;A5,A4,A3 = OXVAL, OYVAL, OZVAL
|
||
|
||
MOVI LAVADAM7,A14
|
||
MOVE A14,*A0(MAP_IMG),L
|
||
|
||
MOVE A5,*A0(MAP_X),L
|
||
MOVE A4,*A0(MAP_Y),L
|
||
INC A3
|
||
MOVE A3,*A0(MAP_Z),L
|
||
|
||
MOVE @UNIV_ID,A14 ;SET ID AND OBJ
|
||
MOVE A14,*A0(MAP_ID),W
|
||
MOVI 080000000H,A14
|
||
MOVE A14,*A0(MAP_OBJ),L
|
||
CALLA INSERT_LINK
|
||
|
||
movi lvdamp1,a11 ; set palette - was LAVADAMp
|
||
MOVE A0,A9
|
||
MOVE A2,A10
|
||
CREATE PID_IND,LAVA_SHATTER_PROC
|
||
|
||
MOVK 1,A0
|
||
MOVE A0,@UNIVERR,W ;FORCE CREATION BY UPDATE_UNIV
|
||
RETS
|
||
|
||
LLG_CRACK
|
||
SOUNDZ SND_LAVA_CRACK
|
||
LLG_DONE
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* LAVA_SHATTER_PROC *
|
||
* *
|
||
**************************************************************************
|
||
|
||
LAVA_SHATTER_PROC
|
||
SLEEP 1
|
||
MOVE *A9(MAP_OBJ),A0,L
|
||
JRN LAVA_SHATTER_PROC
|
||
|
||
MOVI 1000,A1
|
||
MOVE A10,A2
|
||
CLR A9
|
||
CALLA PRINT_SCORE
|
||
|
||
MOVI dLAVA2asq,A1
|
||
CALLA STRTANIM
|
||
|
||
MOVE *A8(OULINK),A0,L
|
||
|
||
MOVI LAVADAM7,A14
|
||
MOVE A14,*A0(MAP_IMG),L
|
||
|
||
CALLA STRT_ANIM
|
||
|
||
SOUNDZ SND_LAVA_SHATTER
|
||
|
||
LAVA_SHATTER_HOOK:
|
||
|
||
MOVI 030000H,A0
|
||
CLR A3
|
||
CALLA PreFrag_Box
|
||
MOVI -0FFH,B9 ;MIN Z VEL
|
||
MOVI -01H,B10 ;MAX Z VEL
|
||
MOVI FRAG_S20,B14
|
||
CALLA Fragger
|
||
|
||
MOVI SHARDPAL2,A14
|
||
MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MOVI FRAG_LAVA_BLOBS,B14
|
||
CALLA Fragger
|
||
move a11,*a0(FPDATA),L ; store palette
|
||
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* F_BLOB_STUFF - DO STUFF *
|
||
* *
|
||
* A0 = Ptr to un-inserted object. *
|
||
* *
|
||
* Note: Frag funcs must preserve A8-A11 and all B-File regs. *
|
||
* *
|
||
**************************************************************************
|
||
|
||
F_BLOB_STUFF
|
||
MOVE *A0(OZVEL),A14,L
|
||
SUBI 080H,A14
|
||
MOVE A14,*A0(OZVEL),L
|
||
|
||
MOVI 03000H,A14
|
||
MOVE A14,*A0(OYACCEL),W
|
||
|
||
MOVI 9 << 15,A14
|
||
MOVE A14,*A0(OGRNDOFF),L
|
||
|
||
MOVI FRAG_BLOB_COLL,A14
|
||
MOVE A14,*A0(OCVECT),L ;Set up chunk with Vectors
|
||
|
||
move A0,A2
|
||
MOVE *A13(FPDATA),A0,L ;GET PALETTE
|
||
calla GETFPAL
|
||
JRNZ FB_PAL ;BR = WE HAVE PALETTE!
|
||
CLR A0
|
||
FB_PAL
|
||
move A0,*A2(OPAL),W
|
||
move A2,A0
|
||
|
||
RETS
|
||
|
||
|
||
FRAG_BLOB_COLL
|
||
WWL OID_GRND,0FFFFH,FRAG_BLOB_GRND_COLL
|
||
WL 0,DUMCRETS
|
||
|
||
FRAG_BLOB_COLL2
|
||
WWL OID_GRND,0FFFFH,FRAG_BLOB_GRND_COLL2
|
||
WL 0,DUMCRETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* FRAG_BLOB_GRND_COLL - LAVA BLOB FRAGMENT GROUND COLLISION VECTOR *
|
||
* *
|
||
* PASS: *
|
||
* A8 = OBJECT *
|
||
* *
|
||
**************************************************************************
|
||
|
||
FRAG_BLOB_GRND_COLL
|
||
MOVI 256,A0
|
||
CALLA RANDPER
|
||
JRC FBGC_BOUNCE ;BR=FOLLOW THE BOUNCING BALL
|
||
CLR A14
|
||
MOVE A14,*A8(OCVECT),L
|
||
CALLA CLR_VEL
|
||
MOVI 11 << 15,A14
|
||
MOVE A14,*A8(OGRNDOFF),L
|
||
CALLA SetOnGrnd
|
||
MOVI LAVA_BLOB_SPLAT,A1
|
||
JAUC STRT_ANIM
|
||
FBGC_BOUNCE
|
||
MOVI FRAG_BLOB_COLL2,A14
|
||
MOVE A14,*A8(OCVECT),L
|
||
FRAG_BLOB_GRND_COLL2
|
||
MOVE *A8(OYVEL),A14,L
|
||
JAN DELETE_OBJ ;BR=GOING UP
|
||
JAZ DELETE_OBJ ;BR=STOPPED
|
||
|
||
MOVE A14,A0
|
||
SRA 2,A0
|
||
SUB A0,A14 ;OYVEL=OYVEL*3/4
|
||
|
||
; SRA 1,A14 ;OYVEL=OYVEL/2
|
||
|
||
CMPI 010000H,A14
|
||
JALT DELETE_OBJ ;BR=BELOW MINIMUM VELOCITY
|
||
NEG A14 ;REVERSE VELOCITY
|
||
MOVE A14,*A8(OYVEL),L
|
||
; MOVI LAVA_BLOB_BOUNCE,A14
|
||
; MOVE A14,*A8(AnimFrm),L
|
||
; CLR A14
|
||
; MOVB A14,*A8(AnimSlp)
|
||
; RETS
|
||
MOVI LAVA_BLOB_BOUNCE,A1
|
||
JAUC STRT_ANIM
|
||
|
||
|
||
FRAG_LAVA_BLOBS
|
||
.long FRAG_LAVA_BLOB_ANIM,F_BLOB_STUFF
|
||
; .word OID_JUNK,(10 << 11) + (1 << 6) + (FRGBOG+FRGGCOL+FRGNOFLY+FRGNOFLP)
|
||
.word OID_JUNK,(5 << 11) + (1 << 6) + (FRGGCOL+FRGNOFLY+FRGNOFLP)
|
||
.long FRAG_LAVA_BLOB_ANIM,F_BLOB_STUFF
|
||
.word OID_JUNK,(5 << 11) + (0 << 6) + (FRGBOG+FRGGCOL+FRGNOFLY+FRGNOFLP)
|
||
.long 0
|
||
|
||
LAVA_BLOB_SPLAT
|
||
LW BSPLAT1,4
|
||
LW BSPLAT2,4
|
||
LW BSPLAT3,4
|
||
LW BSPLAT4,4
|
||
LW BSPLAT5,4
|
||
LWL BSPLAT6,4|AFunc,DELETE_OBJ
|
||
|
||
LAVA_BLOB_BOUNCE
|
||
LW BLOB1h,1
|
||
LW BLOB2h,1
|
||
LW BLOB3h,2
|
||
LW BLOB2h,3
|
||
LW BLOB1h,4
|
||
FRAG_LAVA_BLOB_ANIM
|
||
; LWL BLOB1,1|AFunc,PULL_ANIM
|
||
LWLL BLOB1,1|AFunc,A_AnimScr+2,LAVA_BLOB_WAIT
|
||
LAVA_BLOB_WAIT
|
||
LWL 1,4|AFunc,A_DELETE_ZBOT
|
||
.long 0
|
||
|
||
; LW BLOB1,4
|
||
; LW BLOB1v,4
|
||
; LW BLOB2v,4
|
||
; LW BLOB3v,4
|
||
; LW BLOB2v,4
|
||
; LW BLOB1v,4
|
||
; .long 0
|
||
|
||
dLAVA2asq:
|
||
LW LAVADAM2,5
|
||
LW LAVADAM3,3
|
||
LW LAVADAM4,3
|
||
LW LAVADAM5,3
|
||
LW LAVADAM6,3
|
||
LWL LAVADAM7,1|AFunc,PULL_ANIM
|
||
|
||
SND_LAVA_CRACK
|
||
.WORD 0E30BH,47,0A32BH,0
|
||
|
||
SND_LAVA_SHATTER
|
||
.WORD 0F325H,64,0A316H,0
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* GITAR VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
GITAR_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,GITAR_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
GITAR_COLLVECT2
|
||
WWL OID_GRND,0FFFFH,GITAR_CVECT2
|
||
WL 0,DUMCRETS
|
||
|
||
GITAR_CVECT
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ GG_DONE ;BR=NO GOOD
|
||
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
|
||
SOUNDZ SND_GITAR_TWANG
|
||
|
||
MOVI 5000,A5
|
||
MOVK M_NOMORE|M_FLASHOBJ|M_LASTFRM,A7 ;NO MORE DAMAGE
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
|
||
MOVE *A8(OULINK),A0,L
|
||
CLR A14
|
||
MOVE A14,*A8(OULINK),L
|
||
CALLA REMOVE_AND_FREE_LINK
|
||
|
||
MOVE *A8(OFLAGS),A14,W
|
||
ORI M_GCOLL,A14 ;SET GROUND COLL FLAG
|
||
MOVE A14,*A8(OFLAGS),W
|
||
|
||
MOVI -20 << 15,A14
|
||
MOVE A14,*A8(OGRNDOFF),L
|
||
|
||
MOVI 03000H,A14
|
||
MOVE A14,*A8(OYACCEL),W
|
||
MOVI GITAR_COLLVECT2,A14
|
||
MOVE A14,*A8(OCVECT),L
|
||
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 040000H,A0
|
||
CLR A3
|
||
CALLA PreFrag_Center
|
||
MOVI -0FFH,B9 ;MIN Z VEL
|
||
MOVI -01H,B10 ;MAX Z VEL
|
||
MOVI FRAG_U5,B14
|
||
CALLA Fragger
|
||
|
||
MOVI FLYVG4ap,A14
|
||
MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
|
||
RETS
|
||
|
||
GITAR_CVECT2
|
||
CLR A14
|
||
MOVE A14,*A8(OCVECT),L
|
||
MOVE A14,*A8(OYACCEL),W
|
||
MOVE A14,*A8(OYVEL),L
|
||
|
||
MOVE *A8(OFLAGS),A14,W
|
||
ANDNI M_GCOLL,A14 ;CLEAR GROUND COLL FLAG
|
||
MOVE A14,*A8(OFLAGS),W
|
||
|
||
SOUNDZ SND_GITAR_TWANG
|
||
|
||
CALLA SetOnGrnd
|
||
|
||
MOVI GITAR_TIMEOUT_ANIM,A1
|
||
JAUC STRT_ANIM
|
||
|
||
GITAR_GUNVECT
|
||
MOVK 1,A3 ;DEFAULT LOOP AND HIT SOUND
|
||
MOVE *A8(OID),A1,W
|
||
ANDI MASK_ID,A1
|
||
SRL 2,A1
|
||
CMPK 15,A1
|
||
JREQ GG_NOT_SPECIAL
|
||
MOVE *A8(OPLINK),A14,L ;THIS IS NOT A DAMAGE PROCESS!
|
||
JRZ GG_NOT_SPECIAL
|
||
SUBK 16,A1
|
||
MOVK 1,A14
|
||
SLL A1,A14
|
||
MOVE @SCROLL_FLAG,A0,W
|
||
BTST A1,A0
|
||
JRNZ GG_NOT_SPECIAL
|
||
OR A14,A0
|
||
MOVE A0,@SCROLL_FLAG,W
|
||
MOVK 2,A3 ;SET LOOP AND TWANG SOUND
|
||
GG_NOT_SPECIAL
|
||
MOVB A3,*A8(AnimLoop)
|
||
MOVB *A8(OFLAGS+B_ANIM-7),A14
|
||
JRN GG_DONE ;BR=IT'S ANIMATING
|
||
CLR A5
|
||
MOVK M_STAY,A7 ;NO MORE DAMAGE
|
||
CLR A9 ;NO OFFSET
|
||
JAUC UNIV_DAMAGE_HANDLER
|
||
GG_DONE
|
||
RETS
|
||
|
||
GITAR_TIMEOUT_ANIM
|
||
LW 1,60
|
||
LWL 1,1|AFunc,DELETE_OBJ
|
||
|
||
**************************************************************************
|
||
* *
|
||
* AU_GITAR_SND *
|
||
* *
|
||
**************************************************************************
|
||
|
||
AU_GITAR_SND
|
||
MOVI SND_SWAT,A0
|
||
MOVB *A8(AnimLoop),A14
|
||
CMPK 2,A14
|
||
JRNE AU_GS_GO
|
||
MOVI SND_GITAR_SLIDE,A0
|
||
AU_GS_GO
|
||
CALLA ONESND_Z
|
||
JAUC AU_RESET_LUPE
|
||
|
||
SND_SWAT
|
||
.WORD 0F308H,31,0A15AH,0
|
||
SND_GITAR_TWANG
|
||
.WORD 0F320H,86,0A16AH,0
|
||
SND_GITAR_SLIDE
|
||
.WORD 0F330H,130,08167H,0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* FLASH_GITAR_PROC *
|
||
* *
|
||
* PASS: *
|
||
* A9 = GITAR ID *
|
||
* *
|
||
**************************************************************************
|
||
|
||
FLASH_GITAR_PROC
|
||
MOVE A9,A11
|
||
SLL 2,A9
|
||
MOVI FGLIST,A0
|
||
MOVE A0,A8
|
||
JRUC FGP_NEXT
|
||
FGP_LUPE
|
||
MOVE *A8(OID),A14,W
|
||
ANDI MASK_ID,A14
|
||
CMP A9,A14
|
||
JRNE FGP_NEXT
|
||
MOVE *A8(OULINK),A14,L
|
||
JRNZ FGP_FOUND
|
||
FGP_NEXT
|
||
MOVE *A8,A8,L
|
||
CMP A0,A8
|
||
JRNE FGP_LUPE ;BR=NOT END OF LIST
|
||
DIE
|
||
FGP_FOUND
|
||
MOVE A13,*A8(OPLINK),L
|
||
|
||
SUBK 16,A11
|
||
|
||
MOVK 20,A10
|
||
FGP_FLASH_LUPE
|
||
MOVE *A8(OCTRL),A14,W
|
||
ANDI 0FFF0H,A14
|
||
ORI DMACNZ & 0FH,A14 ;SET CONSTANT ON NON-ZERO DATA
|
||
MOVE A14,*A8(OCTRL),W
|
||
|
||
SLEEP 3
|
||
|
||
MOVE *A8(OCTRL),A14,W
|
||
ANDI 0FFF0H,A14
|
||
ORI DMAWNZ & 0FH,A14 ;SET CONSTANT ON NON-ZERO DATA
|
||
MOVE A14,*A8(OCTRL),W
|
||
|
||
MOVE @SCROLL_FLAG,A14,W
|
||
BTST A11,A14
|
||
JRNZ FGP_DONE
|
||
|
||
MOVE *A8(OULINK),A14,L
|
||
JRZ FGP_DONE
|
||
|
||
SLEEP 3
|
||
DSJ A10,FGP_FLASH_LUPE
|
||
FGP_DONE
|
||
CLR A14
|
||
MOVE A14,*A8(OPLINK),L
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* BOTTLE VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
BOTTLE_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,BOTTLE_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
BOTTLE_CVECT
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ B_DONE
|
||
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
|
||
BOTTLE_GUNVECT
|
||
; CHKZLIM 0A3E0H+010H,B_DONE
|
||
CHKZLIM 012511H+010H,B_DONE
|
||
|
||
MOVI SND_BOTTLE_SHATTER,A0
|
||
MOVE *A8(OID),A14,W
|
||
CMPI OID_UNIV|26 << 2,A14
|
||
JRNE B_SND
|
||
MOVI SND_CANDLE_SHATTER,A0
|
||
B_SND
|
||
CALLA ONESND_Z
|
||
|
||
MOVE *A8(OIHOFF),A14,W
|
||
JRNZ B_GO
|
||
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 040000H,A0
|
||
CLR A3
|
||
CALLA PreFrag_Up
|
||
MOVI -0FFH,B9 ;MIN Z VEL
|
||
MOVI -01H,B10 ;MAX Z VEL
|
||
MOVI FRAG_SS10,B14
|
||
CALLA Fragger
|
||
|
||
MOVE *A8(OIMG),A1,L
|
||
MOVE *A1(ICMAP),*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
B_GO
|
||
MOVI 500,A5 ;500 POINTS
|
||
MOVK M_NOMORE,A7
|
||
CLR A9 ;NO OFFSET
|
||
JAUC UNIV_DAMAGE_HANDLER
|
||
B_DONE
|
||
RETS
|
||
|
||
SND_BOTTLE_SHATTER
|
||
.WORD 0F310H,36,0A16DH,0
|
||
|
||
SND_CANDLE_SHATTER
|
||
.WORD 0F310H,44,0A173H,0
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* FISH VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
FISH_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,FISH_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
FISH_CVECT
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ FG_DONE
|
||
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
|
||
MOVI OID_UNIV|20 << 2,A1 ;FIND TAIL
|
||
MOVE *A8(OCTRL),A5,W
|
||
|
||
MOVI 0100H,A14
|
||
BTST B_FLIPH,A5
|
||
JRZ FC_NOFLIPH
|
||
SLL 1,A14
|
||
FC_NOFLIPH
|
||
MOVE @SCROLL_FLAG,A10,W
|
||
OR A14,A10
|
||
MOVE A10,@SCROLL_FLAG,W
|
||
|
||
MOVE A8,A10
|
||
MOVI FGLIST,A0
|
||
JRUC FC_NEXT
|
||
FC_LUPE
|
||
MOVE *A8(OID),A14,W
|
||
CMP A1,A14
|
||
JRNE FC_NEXT
|
||
MOVE *A8(OCTRL),A14,W
|
||
XOR A5,A14
|
||
BTST B_FLIPH,A14
|
||
JRNZ FC_NEXT
|
||
FC_DEL
|
||
MOVE *A8(OULINK),A0,L
|
||
CLR A14
|
||
MOVE A14,*A8(OULINK),L
|
||
CALLA REMOVE_AND_FREE_LINK ;DELETE TAIL
|
||
CALLA DEL_PROC_AND_OBJ
|
||
JRUC FC_GO
|
||
FC_NEXT
|
||
MOVE *A8(OBLINK),A8,L
|
||
CMP A0,A8
|
||
JRNE FC_LUPE ;BR=NOT END OF LIST
|
||
FC_GO
|
||
MOVE A10,A8
|
||
|
||
MOVI 1000,A5
|
||
MOVK M_LASTFRM|M_NOMORE|M_FLASHOBJ,A7 ;NO MORE DAMAGE
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
|
||
SOUNDZ SND_FISH_SKIN
|
||
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 040000H,A0
|
||
CLR A3
|
||
CALLA PreFrag_Up
|
||
MOVI -0FFH,B9 ;MIN Z VEL
|
||
MOVI -01H,B10 ;MAX Z VEL
|
||
MOVI FRAG_U40,B14
|
||
CALLA Fragger
|
||
|
||
MOVI MARLN3p2,A14
|
||
MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
|
||
RETS
|
||
|
||
FISH_GUNVECT
|
||
MOVI OID_UNIV|20 << 2,A1
|
||
MOVE *A8(OCTRL),A5,W
|
||
|
||
MOVE A8,A10
|
||
MOVI FGLIST,A0
|
||
JRUC FG_NEXT
|
||
FG_LUPE
|
||
MOVE *A10(OID),A14,W
|
||
CMP A1,A14
|
||
JRNE FG_NEXT
|
||
MOVE *A10(OCTRL),A14,W
|
||
XOR A5,A14
|
||
BTST B_FLIPH,A14
|
||
JRNZ FG_NEXT
|
||
|
||
MOVB *A10(OFLAGS+B_ANIM-7),A14
|
||
JRN FG_DONE ;BR=IT'S ANIMATING
|
||
|
||
CALLA UNIV_FLASH
|
||
JRUC FTG_GO
|
||
FG_NEXT
|
||
MOVE *A10(OBLINK),A10,L
|
||
CMP A0,A10
|
||
JRNE FG_LUPE ;BR=NOT END OF LIST
|
||
FG_DONE
|
||
RETS
|
||
|
||
SND_FISH_SKIN
|
||
.WORD 0F320H,87,0A179H,0
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* FISH TALE VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
FISHTALE_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,FISHTALE_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
FISHTALE_CVECT
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ FG_DONE
|
||
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
|
||
MOVI OID_UNIV|29 << 2,A1
|
||
MOVE *A8(OCTRL),A5,W
|
||
|
||
MOVE A8,A10
|
||
MOVI FGLIST,A0
|
||
JRUC FTC_NEXT
|
||
FTC_LUPE
|
||
MOVE *A10(OID),A14,W
|
||
CMP A1,A14
|
||
JRNE FTC_NEXT
|
||
MOVE *A10(OCTRL),A14,W
|
||
XOR A5,A14
|
||
BTST B_FLIPH,A14
|
||
JRZ FC_DEL
|
||
FTC_NEXT
|
||
MOVE *A10,A10,L
|
||
CMP A0,A10
|
||
JRNE FTC_LUPE ;BR=NOT END OF LIST
|
||
|
||
RETS
|
||
|
||
FISHTALE_GUNVECT
|
||
MOVB *A8(OFLAGS+B_ANIM-7),A14
|
||
JRN FTG_DONE ;BR=IT'S ANIMATING
|
||
|
||
MOVI OID_UNIV|29 << 2,A1
|
||
MOVE *A8(OCTRL),A5,W
|
||
|
||
MOVE A8,A10
|
||
MOVI FGLIST,A0
|
||
JRUC FTG_NEXT
|
||
FTG_LUPE
|
||
MOVE *A8(OID),A14,W
|
||
CMP A1,A14
|
||
JRNE FTG_NEXT
|
||
MOVE *A8(OCTRL),A14,W
|
||
XOR A5,A14
|
||
BTST B_FLIPH,A14
|
||
JRNZ FTG_NEXT
|
||
CALLA UNIV_FLASH
|
||
JRUC FTG_GO
|
||
FTG_NEXT
|
||
MOVE *A8,A8,L
|
||
CMP A0,A8
|
||
JRNE FTG_LUPE ;BR=NOT END OF LIST
|
||
FTG_GO
|
||
MOVE A10,A8
|
||
CLR A5
|
||
MOVI M_STAY|M_FLASHOBJ,A7
|
||
CLR A9
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
|
||
SOUNDZ SND_FISHTALE_SHAKE
|
||
FTG_DONE
|
||
RETS
|
||
|
||
SND_FISHTALE_SHAKE
|
||
.WORD 0F310H,45,0A17CH,0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* BAR WALL VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
BARWALL_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,BARWALL_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
BARWALL_CVECT
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ BG_DONE
|
||
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
|
||
CALLA STOP_ENEMIES
|
||
|
||
MOVI 1000,A5
|
||
MOVK M_LASTFRM|M_NOMORE|M_FLASHOBJ,A7 ;NO MORE DAMAGE
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
|
||
SOUNDZ SND_BARWALL_EXPLODE
|
||
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 040000H,A0
|
||
CLR A3
|
||
CALLA PreFrag_Up
|
||
MOVI -0FFH,B9 ;MIN Z VEL
|
||
MOVI -01H,B10 ;MAX Z VEL
|
||
MOVI -060000H,B7 ;MIN Y VEL
|
||
MOVI FRAG_BRICKS,B14
|
||
CALLA Fragger
|
||
|
||
CLR A14
|
||
MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
|
||
MOVI [-17,17],A11 ;X OFFSETS
|
||
MOVI [0,65],A9 ;Y OFFSETS
|
||
MOVK 5,A1 ;Z OFFSET
|
||
JAUC OBJ_KILL_ENEMIES
|
||
BARWALL_GUNVECT
|
||
SOUNDZ SND_SWAT
|
||
BG_DONE
|
||
RETS
|
||
|
||
SND_BARWALL_EXPLODE
|
||
.WORD 0F320H,76,0A170H,0
|
||
|
||
FRAG_BRICKS
|
||
; .long FRAG_BRICK_ANIM,F_UFRAG_STUFF
|
||
; .word OID_JUNK,(24 << 11) + (0 << 6) + (FRGGCOL+FRGNOFLY+FRGPAL)
|
||
|
||
.long FRAG_BRICK_ANIM,F_UFRAG_STUFF
|
||
.word OID_JUNK,(5 << 11) + (1 << 6) + (FRGGCOL+FRGNOFLY+FRGPAL)
|
||
.long FRAG_BRICK_ANIM,F_UFRAG_STUFF
|
||
.word OID_JUNK,(5 << 11) + (1 << 6) + (FRGGCOL+FRGNOFLY+FRGPAL)
|
||
.long FRAG_BRICK_ANIM,F_UFRAG_STUFF
|
||
.word OID_JUNK,(5 << 11) + (1 << 6) + (FRGGCOL+FRGNOFLY+FRGPAL)
|
||
.long FRAG_BRICK_ANIM,F_UFRAG_STUFF
|
||
.word OID_JUNK,(5 << 11) + (1 << 6) + (FRGGCOL+FRGNOFLY+FRGPAL)
|
||
|
||
; .long FRAG_BRICK_ANIM,F_UFRAG_STUFF
|
||
; .word OID_JUNK,(16 << 11) + (0 << 6) + (FRGBOG+FRGGCOL+FRGNOFLY+FRGPAL)
|
||
|
||
.long FRAG_BRICK_ANIM,F_UFRAG_STUFF
|
||
.word OID_JUNK,(5 << 11) + (1 << 6) + (FRGGCOL+FRGNOFLY+FRGPAL)
|
||
.long FRAG_BRICK_ANIM,F_UFRAG_STUFF
|
||
.word OID_JUNK,(5 << 11) + (1 << 6) + (FRGGCOL+FRGNOFLY+FRGPAL)
|
||
|
||
.long 0
|
||
|
||
FRAG_BRICK_ANIM
|
||
LW CBRIK1,1
|
||
LW CBRIK2,1
|
||
LW CBRIK3,1
|
||
LW CBRIK4,1
|
||
LW CBRIK5,1
|
||
LW CBRIK6,1
|
||
LW CBRIK7,1
|
||
LW CBRIK8,1
|
||
LW CBRIK9,1
|
||
LW CBRIK10,1
|
||
LW CBRIK11,1
|
||
LWL CBRIK12,1|AFunc,A_DELETE_ZBOT
|
||
.long 0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* COCKTAIL TABLE VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CTABLE_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,CTABLE_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
CTABLE_CVECT
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ CTG_DONE
|
||
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
|
||
CALLA STOP_ENEMIES
|
||
|
||
MOVI 1000,A5
|
||
MOVK M_LASTFRM|M_NOMORE|M_FLASHOBJ,A7 ;NO MORE DAMAGE
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
|
||
SOUNDZ SND_TABLE_EXPLODE
|
||
SOUNDZ SND_TABLE_TORCH
|
||
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 040000H,A0
|
||
CLR A3
|
||
CALLA PreFrag_Up
|
||
MOVI -0FFH,B9 ;MIN Z VEL
|
||
MOVI -01H,B10 ;MAX Z VEL
|
||
MOVI FRAG_U40,B14
|
||
CALLA Fragger
|
||
|
||
MOVI CAMTBLd1,A14
|
||
MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
|
||
MOVI [-17,17],A11 ;X OFFSETS
|
||
MOVI [0,64],A9 ;Y OFFSETS
|
||
MOVK 5,A1 ;Z OFFSET
|
||
JAUC OBJ_KILL_ENEMIES
|
||
CTABLE_GUNVECT
|
||
SOUNDZ SND_SWAT
|
||
CTG_DONE
|
||
RETS
|
||
|
||
SND_TABLE_EXPLODE
|
||
.WORD 0F327H,29,0A176H,0
|
||
SND_TABLE_TORCH
|
||
.WORD 0F326H,70,0A319H,0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* STOOL VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
STOOL_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,STOOL_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
STOOL_CVECT
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ STG_DONE
|
||
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
|
||
MOVI 1000,A5
|
||
MOVK M_LASTFRM|M_NOMORE|M_FLASHOBJ,A7 ;NO MORE DAMAGE
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
|
||
SOUNDZ SND_STOOL_EXPLODE
|
||
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 040000H,A0
|
||
CLR A3
|
||
CALLA PreFrag_Up
|
||
MOVI -0FFH,B9 ;MIN Z VEL
|
||
MOVI -01H,B10 ;MAX Z VEL
|
||
MOVI FRAG_U10,B14
|
||
CALLA Fragger
|
||
|
||
MOVI BSTSMA1p,A14
|
||
MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
|
||
RETS
|
||
|
||
STOOL_GUNVECT
|
||
SOUNDZ SND_PIPE_DING
|
||
STG_DONE
|
||
RETS
|
||
|
||
SND_STOOL_EXPLODE
|
||
.WORD 0F320H,60,0A147H,0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* NEON SIGN VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
NEON_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,NEON_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
NEON2_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,NEON2_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
NEON_CVECT
|
||
CHKZLIM 01306FH+010H,NG_DONE
|
||
NEON2_CVECT
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ NG_DONE
|
||
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
MOVI 25000,A5 ;BIG POINTS
|
||
MOVK M_NOMORE|M_LASTFRM|M_FLASHOBJ,A7 ;LAST FRAME AND FLASH
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
JRNC NG_DONE
|
||
; LOCKON NC
|
||
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 040000H,A0
|
||
CLR A3
|
||
CALLA PreFrag_Up
|
||
MOVI -0FFH,B9 ;MIN Z VEL
|
||
MOVI -01H,B10 ;MAX Z VEL
|
||
MOVI FRAG_U20_X2,B14
|
||
CALLA Fragger
|
||
|
||
MOVI XNEON2,A14
|
||
MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
|
||
SOUNDZ SND_NEON_TOAST
|
||
SOUNDZ SND_NEON_TOAST2
|
||
|
||
CLR A5 ;FLASH DELETION
|
||
JRUC NG_STOP_FLASHES
|
||
|
||
NEON_GUNVECT
|
||
CHKZLIM 01306FH+010H,NG_DONE
|
||
NEON2_GUNVECT
|
||
MOVE *A8(AnimScr),A14,L
|
||
CMPI dNEONCX2b,A14
|
||
JREQ NG_MAKE_FZZZ ;BR=IN FLASH ANIM, JUST FZZZ
|
||
|
||
CLR A5 ;NO POINTS
|
||
CLR A7 ;NO FLAGS
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
; JRZ NG_FZZZ
|
||
JRZ NG_DONE
|
||
|
||
MOVI SND_NEON_SURGE_1,A0
|
||
CMPK 11,A10
|
||
JRLT NG_GO
|
||
|
||
MOVI 5000,A1
|
||
CLR A9
|
||
CALLA PRINT_SCORE
|
||
|
||
CREATE PID_IND,MAKE_MULTI_FZZZ
|
||
MOVI SND_NEON_SURGE_2,A0
|
||
NG_GO
|
||
CALLA ONESND_Z
|
||
NG_FZZZ
|
||
CALLR NG_MAKE_FZZZ ;MAKE FZZZ EFFECT
|
||
NG_CHECK_FLASHES
|
||
MOVE A10,A10
|
||
JRZ NG_DONE
|
||
|
||
CLR A5 ;DEFAULT TO FLASH DELETION
|
||
MOVE *A8(AnimScr),A14,L
|
||
CMPI NEOZAP1,A14
|
||
JREQ NG_STOP_FLASHES ;BR=STOP THE FLASHES
|
||
MOVK 1,A5 ;LET'S RE-SYNCRONIZE INSTEAD!
|
||
NG_STOP_FLASHES
|
||
MOVE @WAVE_UNIV,A14,L
|
||
CMPI GXCX3,A14
|
||
JRNE NG_DONE
|
||
|
||
MOVI ANIOBJS,A0
|
||
MOVE *A0,A0,L
|
||
JRZ NG_DONE ;BR=NUTIN'S ANIMATING
|
||
MOVI GLAMPH1,A1
|
||
MOVI FLASHBULB,A6
|
||
MOVK 2,A4 ;LOOK FOR 2 ANIMATIONS
|
||
NG_LUPE
|
||
MOVE *A0(AnimScr),A14,L
|
||
CMP A1,A14
|
||
JREQ NG_FOUND ;BR=FOUND ONE GUY
|
||
CMP A6,A14
|
||
JRNE NG_NOT_HERE ;BR=CLUELESS
|
||
NG_FOUND
|
||
MOVE A5,A5
|
||
JRZ NG_ZAP ;BR=DELETE THE ANIMATION
|
||
SUBI 050H*2,A14 ;BACKUP SOME HOMEY!
|
||
MOVE A14,*A0(AnimFrm),L ;RESYNC
|
||
clr A14
|
||
movb A14,*A0(AnimSlp) ;NO SLEEP 'TIL
|
||
DEC A4
|
||
JRZ NG_DONE ;BR=GOT 'EM BOTH
|
||
MOVE *A0(AnimNxt),A0,L
|
||
JRNZ NG_LUPE ;BR=NOT DONE YET
|
||
RETS
|
||
NG_ZAP
|
||
MOVE *A0(AnimNxt),A3,L
|
||
MOVE A0,A10
|
||
MOVE *A10(OULINK),A0,L
|
||
CLR A14
|
||
MOVE A14,*A10(OULINK),L
|
||
CALLA REMOVE_AND_FREE_LINK
|
||
MOVE A10,A0
|
||
CALLA DELOBJ
|
||
DEC A4
|
||
JRZ NG_DONE ;BR=GOT 'EM BOTH
|
||
MOVE A3,A0
|
||
JRNZ NG_LUPE ;BR=NOT DONE YET
|
||
RETS
|
||
NG_NOT_HERE
|
||
MOVE *A0(AnimNxt),A0,L
|
||
JRNZ NG_LUPE ;BR=NOT DONE YET
|
||
NG_DONE
|
||
RETS
|
||
|
||
NG_MAKE_FZZZ
|
||
SOUNDZ SND_NEON_CRACKLE_0
|
||
|
||
MOVE *A8(OIHOFF),A14,W
|
||
CMPI 090H,A14
|
||
JRGT NG_MF_DONE
|
||
|
||
MOVE *A8(OGTIME),A14,L
|
||
MOVE @WAVEIRQS,A9,L
|
||
SUB A9,A14
|
||
CMPI -30,A14
|
||
JRGT NG_MF_DONE ;BR=NO FZZZ
|
||
MOVE A9,*A8(OGTIME),L ;NEW LAST GUN HIT TIME
|
||
|
||
MOVI FZZZ_INIT,A5 ;LET'S MAKE SOME FIREWORKS
|
||
CALLA CREATE_OBJ
|
||
JRZ NG_DONE ;BR=OOPS!
|
||
|
||
MOVE *A8(OZVAL),A1,L ;SET Z
|
||
SUBK 6,A1
|
||
MOVE A1,*A0(OZVAL),L
|
||
|
||
MOVE A3,A5 ;CONVERT SCREEN TO UNIVERSE
|
||
SEXT A3,W
|
||
SRA 16,A5
|
||
STOUXY A1,A3,A5
|
||
|
||
MOVE A3,*A0(OXVAL),L ;SET X, Y POSITION
|
||
MOVE A5,*A0(OYVAL),L
|
||
|
||
MOVK M_FLIPH,A14
|
||
CALLA RANDFLIP ;RANDOM FLIPH
|
||
CALLA INSOBJ
|
||
NG_MF_DONE
|
||
RETS
|
||
|
||
FZZZ_INIT
|
||
.LONG FWORKS1,0
|
||
.WORD OID_JUNK, DMAWNZ, 0, 0
|
||
.LONG C_STRTANIM
|
||
.LONG NEONSIGN_FZZZ_ANIM
|
||
|
||
**************************************************************************
|
||
* *
|
||
* MAKE_MULTI_FZZZ *
|
||
* *
|
||
**************************************************************************
|
||
|
||
MAKE_MULTI_FZZZ
|
||
MOVI 20,A9
|
||
MMF_LUPE
|
||
MOVE *A8(OIHOFF),A14,W
|
||
CMPI 090H,A14
|
||
JAGT SUCIDE
|
||
|
||
CLR A0
|
||
CLR A3
|
||
CALLA PreFrag_Box
|
||
MOVI -1,B9
|
||
MOVI FZZZ_FRAG,B14
|
||
CALLA Fragger
|
||
|
||
SLEEP 3
|
||
|
||
DSJ A9,MMF_LUPE
|
||
|
||
DIE
|
||
|
||
FZZZ_FRAG
|
||
.long FRAG_FZZZ_ANIM,0
|
||
.word OID_JUNK,(1 << 11) + (0 << 6) + (FRGBOG+FRGNOFLP+FRGNOFLY+FRGPAL)
|
||
.long 0
|
||
|
||
FRAG_FZZZ_ANIM
|
||
LWLL FWORKS1,1|AFunc,A_SOUNDZ+2,SND_NEON_CRACKLE_0
|
||
NEONSIGN_FZZZ_ANIM
|
||
LW 1,4
|
||
LW FWORKS2,4
|
||
LW FWORKS3,4
|
||
LW FWORKS4,4
|
||
LW FWORKS5,4
|
||
LWL 1,1|AFunc,DELETE_OBJ
|
||
|
||
SND_NEON_TOAST
|
||
.WORD 0F320H,70,0A319H,0
|
||
SND_NEON_TOAST2
|
||
.WORD 0F120H,64,0A32CH,0
|
||
SND_NEON_CRACKLE_0
|
||
.WORD 0F310H,22,0A31CH,0
|
||
;SND_NEON_CRACKLE_1
|
||
; .WORD 0F310H,25,0A31FH,0
|
||
SND_NEON_SURGE_1
|
||
.WORD 0F320H,20,0A322H,0
|
||
SND_NEON_SURGE_2
|
||
; .WORD 0F320H,12,0A325H,12,0A325H,24,0A325H,0
|
||
.WORD 0F320H,12,0A325H,6,0A325H,24,0A325H,0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SECRET MIRROR EXIT IN BAR COLLISION VECTOR *
|
||
* *
|
||
**************************************************************************
|
||
|
||
BAR_SECRET_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,BAR_SECRET_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
BAR_SECRET_CVECT
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ BS_DONE
|
||
CALLA MIRROR_CVECT2
|
||
JRUC BS_CHECK
|
||
BAR_SECRET_GUNVECT
|
||
CALLA MIRROR_GUNVECT
|
||
MOVE *A8(OGUNVECT),A14,L
|
||
CMPI DUMRETS,A14
|
||
JRNE BS_DONE
|
||
BS_CHECK
|
||
|
||
; RETS
|
||
|
||
MOVE @SCROLL_FLAG,A14,W
|
||
SLL 16+6,A14
|
||
SRL 30,A14
|
||
CMPK 3,A14
|
||
JAEQ PORTAL_GUNVECT
|
||
BS_DONE
|
||
RETS
|
||
|
||
;**************************************************************************
|
||
;* *
|
||
;* ZFAR_FOLLOW_PROC *
|
||
;* *
|
||
;**************************************************************************
|
||
;
|
||
;ZFAR_FOLLOW_PROC
|
||
; MOVE @ZFAR_FOLLOW,A8,L
|
||
; JAZ SUCIDE
|
||
; MOVE *A8(OCTRL),A14,W
|
||
; JANN SUCIDE
|
||
; MOVE *A8(OZVAL),A0,L
|
||
; MOVE @ZBASE,A14,L
|
||
; SUB A14,A0
|
||
; ADDK 4,A0 ;ERROR
|
||
; MOVE A0,@ZFAR,L
|
||
; SLEEP 1
|
||
; JRUC ZFAR_FOLLOW_PROC
|
||
|
||
**************************************************************************
|
||
* *
|
||
* ********************************************************************** *
|
||
* * *
|
||
* * ******************************************************************** *
|
||
* * * *
|
||
* * * OUTSIDE CLUB X DAMAGE *
|
||
* * * *
|
||
* * ******************************************************************** *
|
||
* * *
|
||
* ********************************************************************** *
|
||
* *
|
||
**************************************************************************
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SKYLITE VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
SKYLITE_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,SKYLITE_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
SKYLITE_CVECT
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ SG_DONE
|
||
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
MOVI 1000,A5 ;POINTS
|
||
MOVK M_NOMORE|M_LASTFRM|M_FLASHOBJ,A7 ;LAST FRAME AND FLASH
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
JRNC SG_SANS_GLASS
|
||
SC_MAKE_GLASS
|
||
SOUNDZ SND_WINDOW_BREAK
|
||
|
||
MOVI [-35,-37],A10 ;[Y,X] OFFSET
|
||
MOVK 1,A11 ;Z OFFSET
|
||
CREATE PID_IND,REVEAL_CD
|
||
MOVI [-35,37],A10 ;[Y,X] OFFSET
|
||
CREATE PID_IND,REVEAL_CD
|
||
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 040000H,A0
|
||
CLR A3
|
||
CALLA PreFrag_Box
|
||
MOVI -0FFH,B9 ;MIN Z VEL
|
||
MOVI -01H,B10 ;MAX Z VEL
|
||
MOVI -010000H,B8
|
||
MOVI FRAG_S20,B14
|
||
CALLA Fragger
|
||
|
||
; MOVI GLASTOP2,A14
|
||
MOVI SHARDPAL1,A14
|
||
MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
|
||
MOVI SKYGLASS_INIT,A5 ;LET'S MAKE SOME SHARDS
|
||
CALLA CREATE_OBJ
|
||
JRZ SG_SANS_GLASS ;BR=OOPS!
|
||
MOVE *A8(OXVAL),*A0(OXVAL),L ;SET POSITION
|
||
MOVE *A8(OYVAL),*A0(OYVAL),L
|
||
MOVE *A8(OZVAL),A14,L
|
||
DEC A14
|
||
MOVE A14,*A0(OZVAL),L
|
||
MOVI 04000H,A14 ;SET GRAVITY
|
||
MOVE A14,*A0(OYACCEL),W
|
||
MOVE A0,A8
|
||
MOVI -70,A1
|
||
CALLA SET_OGRNDOFF ;DON'T FALL TO THE GROUND!
|
||
JAUC INSERT_OBJ
|
||
SKYLITE_GUNVECT
|
||
MOVI 1000,A5 ;500 POINTS
|
||
MOVK M_NOMORE|M_FLASHOBJ,A7 ;FLASH
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
JRC SC_MAKE_GLASS ;BR=LAST DAMAGE FRAME
|
||
SOUNDZ SND_WINDOW_CRACK
|
||
SG_SANS_GLASS
|
||
SG_DONE
|
||
RETS
|
||
|
||
;SND_WINDOW_SHATTER
|
||
; .WORD 0F325H,64,0A32EH,0
|
||
;SND_WINDOW_CRACK
|
||
; .WORD 0E30BH,47,0A32BH,0
|
||
|
||
SKYGLASS_INIT
|
||
.LONG SKYSHAT3, GLASS_COLLVECT
|
||
.WORD OID_JUNK, DMAWNZ, M_GCOLL, 0
|
||
.LONG 0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* WINDOW_VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
WINDOW_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,WINDOW_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
WINDOW_CVECT
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ WG_DONE
|
||
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
MOVI 500,A5 ;500 POINTS
|
||
WC_DAMAGE
|
||
MOVK M_NOMORE|M_LASTFRM|M_FLASHOBJ,A7 ;LAST FRAME AND FLASH
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
JRNC WG_SANS_GLASS
|
||
WC_MAKE_GLASS
|
||
SOUNDZ SND_WINDOW_BREAK
|
||
|
||
CALLR MAKE_WINDOW_FRAGS ;Do our glass
|
||
|
||
MOVE @WAVE_UNIV,A14,L
|
||
CMPI GXCX3,A14
|
||
JRNE WG_SANS_GLASS ;BR=THIS IS NOT THE SPECIAL CASE
|
||
|
||
MOVE *A8(OID),A14,L
|
||
ANDI MASK_ID,A14 ;JUST GET ID OF OID
|
||
CMPI 14 << 2,A14
|
||
JRNE WG_SANS_GLASS ;BR=NOT THE PORTAL
|
||
|
||
MOVE @GITTEN_KITTEN,A14,W
|
||
JRZ WG_SANS_GLASS
|
||
|
||
MOVE *A8(OULINK),A0,L ;SET ANIMATION AND FLAGS
|
||
MOVI BROKEN_WINDOW_OPEN+M_IF_DANIM+M_IF_SEQ,A14
|
||
MOVE A14,*A0(MAP_IMG),L
|
||
|
||
MOVE *A0(MAP_FLAGS),A14,W ;SET TO PORTAL
|
||
ORI 1 << B_BF_PORTAL,A14
|
||
MOVE A14,*A0(MAP_FLAGS),W
|
||
|
||
JAUC PORTAL_GUNVECT ;OPEN PORTAL
|
||
|
||
WINDOW_GUNVECT
|
||
MOVI [6-119, 9-42],A3
|
||
MOVI [110-119, 77-42],A4
|
||
CLR A9 ;NO OFFSET
|
||
MOVE *A8(OIMG),A14,L
|
||
CMPI CXWIND1b,A14
|
||
JREQ WG_OPENBOX ;BR=IT'S THE OPEN WINDOW
|
||
CMPI CXWIND2b,A14
|
||
JRNE WG_BOX ;BR=IT'S CLOSED
|
||
WG_OPENBOX
|
||
MOVI [56-119,77-42],A4 ;WINDOW BOTTOM RIGHT
|
||
MOVI [-29,0],A9 ;SCORE OFFSET
|
||
WG_BOX
|
||
CALLA BOX_CHECK_OBJ
|
||
JRZ TWG_DONE ;BR=NOT THE WINDOW PART
|
||
|
||
SOUNDZ SND_WINDOW_CRACK
|
||
|
||
MOVI 1000,A5 ;500 POINTS
|
||
MOVK M_NOMORE|M_FLASHOBJ,A7 ;FLASH
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
JRC WC_MAKE_GLASS ;BR=LAST DAMAGE FRAME
|
||
; SOUNDZ SND_WINDOW_CRACK
|
||
WG_SANS_GLASS
|
||
WG_DONE
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* MAKE_WINDOW_FRAGS *
|
||
* *
|
||
* Routine to make the fragments for a busted window. *
|
||
* *
|
||
* A8 = Ptr to window making frags *
|
||
* *
|
||
* Returns: *
|
||
* Nothing *
|
||
* *
|
||
**************************************************************************
|
||
MAKE_WINDOW_FRAGS
|
||
MMTM SP,A0,A3,A5
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,B10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 040000H,A0
|
||
CLR A3
|
||
CALLA PreFrag_Box
|
||
MOVI -0FFH,B9 ;MIN Z VEL
|
||
MOVI -01H,B10 ;MAX Z VEL
|
||
MOVI FRAG_S10,B14
|
||
CALLA Fragger
|
||
|
||
; MOVI PELLA2,A14
|
||
MOVI SHARDPAL1,A14
|
||
MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,B10
|
||
|
||
MOVI GLASS_INIT,A5 ;LET'S MAKE SOME SHARDS
|
||
CALLA CREATE_OBJ
|
||
JRZ MWF_NO_GLASS ;BR=OOPS!
|
||
MOVE *A8(OXVAL),*A0(OXVAL),L ;SET POSITION
|
||
MOVE *A8(OYVAL),A14,L
|
||
SUBI 60 << 15,A14
|
||
MOVE A14,*A0(OYVAL),L
|
||
MOVE *A8(OZVAL),A14,L
|
||
SUBI 05DH,A14
|
||
MOVE A14,*A0(OZVAL),L
|
||
MOVI 04000H,A14
|
||
MOVE A14,*A0(OYACCEL),W ;SET GRAVITY
|
||
CALLA INSOBJ
|
||
MWF_NO_GLASS
|
||
MMFM SP,A0,A3,A5
|
||
RETS
|
||
|
||
GLASS_COLLVECT
|
||
.WORD OID_GRND,0FFFFH
|
||
.LONG DELETE_OBJ
|
||
.WORD 0
|
||
.LONG DUMCRETS
|
||
|
||
GLASS_INIT
|
||
.LONG CXWNSHAT1, GLASS_COLLVECT
|
||
.WORD OID_JUNK, DMAWNZ, M_GCOLL, 0
|
||
.LONG 0
|
||
|
||
BROKEN_WINDOW_OPEN:
|
||
LWL CXWIND3a,3|AFunc,AU_PORTAL_START
|
||
LW CXWIND4a,3
|
||
LW CXWIND5a,3
|
||
LW CXWIND6a,3
|
||
LWL CXWIND7a,1|AFunc,AU_PORTAL_SET_OPEN
|
||
LWL CXWIND7a,3|AFunc,A_DISABLE_PORTAL
|
||
LW CXWIND6a,3
|
||
LW CXWIND5a,3
|
||
LW CXWIND4a,3
|
||
LWL CXWIND3a,3|AFunc,AU_PORTAL_SET_CLOSED
|
||
|
||
**************************************************************************
|
||
* *
|
||
* A_DISABLE_PORTAL *
|
||
* *
|
||
**************************************************************************
|
||
|
||
A_DISABLE_PORTAL
|
||
MOVI DUMCOLL,A14
|
||
MOVE A14,*A8(OCVECT),L
|
||
MOVI DUMRETS,A14
|
||
MOVE A14,*A8(OGUNVECT),L
|
||
JAUC AU_PORTAL_START
|
||
|
||
**************************************************************************
|
||
* *
|
||
* Kerri's Bedroom window vectors *
|
||
* *
|
||
**************************************************************************
|
||
BED_WINDOW_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,BED_WINDOW_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* BED_WINDOW_CVECT *
|
||
* *
|
||
* Collision vector for an explosion and Kerri's bedroom *
|
||
* window. *
|
||
* *
|
||
* A0 = Ptr to explosion object *
|
||
* A8 = Ptr to window object *
|
||
* *
|
||
**************************************************************************
|
||
BED_WINDOW_CVECT
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ WG_DONE
|
||
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
MOVI 500,A5 ;500 POINTS
|
||
BWC_DAMAGE
|
||
MOVK M_NOMORE|M_LASTFRM|M_FLASHOBJ,A7 ;LAST FRAME AND FLASH
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
JRNC WG_DONE
|
||
BWC_MAKE_GLASS
|
||
SOUNDZ SND_WINDOW_BREAK
|
||
|
||
CALLR MAKE_WINDOW_FRAGS
|
||
|
||
MOVE @GOT_TROG,A14,W
|
||
JRNZ BWC_DO_PORTAL ;BR = He found the secret
|
||
|
||
RETS
|
||
|
||
BWC_DO_PORTAL
|
||
MOVE *A8(OULINK),A0,L ;SET ANIMATION AND FLAGS
|
||
MOVI BROKEN_WINDOW_OPEN+M_IF_DANIM+M_IF_SEQ,A14
|
||
MOVE A14,*A0(MAP_IMG),L
|
||
|
||
MOVE *A0(MAP_FLAGS),A14,W ;SET TO PORTAL
|
||
ORI 1 << B_BF_PORTAL,A14
|
||
MOVE A14,*A0(MAP_FLAGS),W
|
||
|
||
JAUC PORTAL_GUNVECT ;OPEN PORTAL
|
||
|
||
**************************************************************************
|
||
* *
|
||
* BED_WINDOW_GUNVECT *
|
||
* *
|
||
* Gun vector for Kerri's bedroom. *
|
||
* *
|
||
* A2 = Ptr to player shooting *
|
||
* A8 = Ptr to window object *
|
||
* *
|
||
**************************************************************************
|
||
BED_WINDOW_GUNVECT
|
||
MOVI [-29-119,0-42],A9 ;SCORE OFFSET
|
||
|
||
SOUNDZ SND_WINDOW_CRACK
|
||
|
||
MOVI 500,A5 ;500 POINTS
|
||
MOVK M_NOMORE|M_FLASHOBJ,A7 ;FLASH
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
JRC BWC_MAKE_GLASS ;BR=LAST DAMAGE FRAME
|
||
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* X BOARD UP VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
XBOARD_AWARD_TABLE
|
||
.LONG REVEAL_SBOMB2, REVEAL_LIFE2, REVEAL_LIFE2
|
||
|
||
XBOARD_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,XBOARD_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
XBOARD_CVECT
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ XC_DONE
|
||
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
|
||
MOVI 5000,A5 ;500 POINTS
|
||
MOVK M_NOMORE|M_LASTFRM|M_FLASHOBJ,A7 ;LAST FRAME AND FLASH
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
JRNC XC_DONE
|
||
|
||
SOUNDZ SND_XBOARD_EXPLODE
|
||
|
||
MOVI [-64,-12],A10 ;[Y,X] OFFSET
|
||
MOVK 1,A11 ;Z OFFSET
|
||
|
||
MOVI PID_IND,A1
|
||
|
||
MOVE *A8(OID),A7,W
|
||
SLL 16+9,A7 ;GET ID
|
||
SRL 16+11,A7
|
||
SUBK 29,A7
|
||
JRNN XC_GET_OFFSET ;BR=NOT DA SPECIAL CASE
|
||
CLR A7 ;ZERO INDEX
|
||
XC_GET_OFFSET
|
||
SLL 5,A7
|
||
ADDI XBOARD_AWARD_TABLE,A7
|
||
MOVE *A7,A7,L
|
||
CALLA GETPRC
|
||
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 040000H,A0
|
||
CLR A3
|
||
CALLA PreFrag_Box
|
||
MOVI -0FFH,B9 ;MIN Z VEL
|
||
MOVI -01H,B10 ;MAX Z VEL
|
||
MOVI FRAG_U20,B14
|
||
CALLA Fragger
|
||
|
||
MOVI HBORED2,A14
|
||
MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
|
||
CLR A14
|
||
MOVE A14,*A8(OCVECT),L ;NO MORE COLLISIONS
|
||
|
||
CALLA GET_FREE_LINK
|
||
JRZ XC_DONE ;BR=NONE AVAILABLE
|
||
|
||
ADDI OXVAL,A8 ;GET POSITION
|
||
MMFM A8,A2,A3,A4 ;A4,A3,A2 = OXVAL, OYVAL, OZVAL
|
||
|
||
MOVI DRAPE1,A14 ;COVER UP DA HOLE IMAGE
|
||
MOVE A14,*A0(MAP_IMG),L
|
||
|
||
CLR A14
|
||
MOVE A14,*A0(MAP_FLAGS),L
|
||
|
||
MOVE A4,A14 ;ADJUST POSITION
|
||
ADDI 039971H,A14
|
||
MOVE A14,*A0(MAP_X),L
|
||
MOVE A3,A14
|
||
ADDI 024F64H,A14
|
||
MOVE A14,*A0(MAP_Y),L
|
||
ADDK 10+9,A2
|
||
MOVE A2,*A0(MAP_Z),L
|
||
|
||
MOVE @UNIV_ID,A5 ;SET ID AND OBJ
|
||
MOVE A5,*A0(MAP_ID),W
|
||
MOVI 080000000H,A6
|
||
MOVE A6,*A0(MAP_OBJ),L
|
||
CALLA INSERT_LINK
|
||
|
||
CALLA GET_FREE_LINK
|
||
JRZ XC_DONE ;BR=NONE AVAILABLE
|
||
MOVI XBOARD_FIRE_ANIM+M_IF_SEQ,A14
|
||
MOVE A14,*A0(MAP_IMG),L ;FIRE ANIMATION
|
||
|
||
MOVE @RAND,A14,W ;LEFTY OR RIGHTY?
|
||
ANDI M_FLIPH,A14
|
||
MOVE A14,*A0(MAP_FLAGS),L
|
||
|
||
ADDI 048E5BH,A4 ;ADJUST POSITION
|
||
MOVE A4,*A0(MAP_X),L
|
||
ADDI 01BD74FH,A3
|
||
MOVE A3,*A0(MAP_Y),L
|
||
DEC A2
|
||
MOVE A2,*A0(MAP_Z),L
|
||
|
||
MOVE A5,*A0(MAP_ID),W ;SET ID AND OBJ
|
||
MOVE A6,*A0(MAP_OBJ),L
|
||
CALLA INSERT_LINK
|
||
|
||
MOVK 1,A0
|
||
MOVE A0,@UNIVERR,W ;FORCE CREATION BY UPDATE_UNIV
|
||
XC_DONE
|
||
RETS
|
||
|
||
XBOARD_GUNVECT
|
||
MOVI 1000,A5 ;POINTS
|
||
MOVK M_FLASHOBJ,A7 ;FLASH
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
JRZ XG_DONE
|
||
|
||
MOVI 1000,A1
|
||
CLR A9
|
||
CALLA PRINT_SCORE
|
||
|
||
SOUNDZ SND_XBOARD_CRACK
|
||
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 040000H,A0
|
||
CLR A3
|
||
CALLA PreFrag_Box
|
||
MOVI -0FFH,B9 ;MIN Z VEL
|
||
MOVI -01H,B10 ;MAX Z VEL
|
||
MOVI FRAG_U10,B14
|
||
CALLA Fragger
|
||
|
||
MOVI HBORED2,A14
|
||
MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
XG_DONE
|
||
RETS
|
||
|
||
SND_XBOARD_CRACK
|
||
.WORD 0F340H,44,0A328H,0
|
||
SND_XBOARD_EXPLODE
|
||
.WORD 0F340H,44,0A328H,90,0A33EH,0 ;X window blow out, skip chan
|
||
|
||
XBOARD_FIRE_ANIM
|
||
; LW DUMFLAM1,4
|
||
LW DUMFLAM2,4
|
||
LW DUMFLAM3,4
|
||
LW DUMFLAM4,4
|
||
; LW DUMFLAM5,4
|
||
; LW DUMFLAM6,4
|
||
; LW DUMFLAM7,4
|
||
LW DUMFLAM8,4
|
||
LW DUMFLAM9,4
|
||
LW DUMFLAM10,4
|
||
; LW DUMFLAM11,4
|
||
.long 0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* EXIT SIGN VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
EXIT_COLLVECT
|
||
.WORD 0
|
||
.LONG EXIT_CVECT
|
||
|
||
EXIT_CVECT
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
|
||
EXIT_GUNVECT
|
||
MOVI 500,A5
|
||
MOVK M_NOMORE|M_FLASHOBJ,A7
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
JRNC EG_DONE
|
||
|
||
SOUNDZ SND_LAMP_BREAK
|
||
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 040000H,A0
|
||
CLR A3
|
||
CALLA PreFrag_Box
|
||
MOVI -0FFH,B9 ;MIN Z VEL
|
||
MOVI -01H,B10 ;MAX Z VEL
|
||
MOVI FRAG_U5,B14
|
||
CALLA Fragger
|
||
|
||
MOVI EXITLITEb,A14
|
||
MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
|
||
CLR A5
|
||
MOVK M_FLASHOBJ|M_ANIMSYNC,A7 ;SYNC AND FLASH
|
||
CLR A9 ;NO OFFSET
|
||
MOVK 3,A6 ;CHANGE 3 OBJECTS MAX.
|
||
MOVE *A8(OXVAL),A1,L
|
||
MOVE *A8(OYVAL),A3,L
|
||
MOVI FGLIST,A0
|
||
MOVE A0,A8
|
||
|
||
MOVI CLBXIT1_CXsq,A4 ;CHANGE THESE
|
||
MOVI NNDOR1,A11
|
||
|
||
JRUC EG_NEXT
|
||
EG_LUPE
|
||
MOVE *A8(AnimScr),A14,L ;CHECK SCRIPTS
|
||
JRZ EG_NOANIM
|
||
CMP A4,A14
|
||
JREQ EG_CHECK_OBJ
|
||
CMPI CLBXIT1_SHOOTER,A14
|
||
JREQ EG_CHECK_OBJ
|
||
CMPI CLBXIT1_LADDER,A14
|
||
JREQ EG_CHECK_OBJ
|
||
EG_NOANIM
|
||
MOVE *A8(OIMG),A14,L ;CHECK IMAGES
|
||
CMPI CLBSTEP2,A14
|
||
JREQ EG_CHECK_OBJ
|
||
CMPI CLBXITBLK1a,A14
|
||
JREQ EG_CHECK_OBJ
|
||
CMP A11,A14
|
||
JREQ EG_CHECK_OBJ
|
||
EG_NEXT
|
||
MOVE A6,A6
|
||
JRZ EG_DONE ;BR=CHANGED EVERYTHING
|
||
MOVE *A8,A8,L
|
||
CMP A0,A8
|
||
JRNE EG_LUPE ;BR=NOT END OF LIST
|
||
EG_DONE
|
||
RETS
|
||
|
||
EG_CHECK_OBJ
|
||
MOVE *A8(OXVAL),A14,L
|
||
SUB A1,A14
|
||
ABS A14
|
||
CMPI 0D0000H,A14
|
||
JRGT EG_NEXT ;BR=OUT OF X RANGE
|
||
MOVE *A8(OYVAL),A14,L
|
||
SUB A3,A14
|
||
JRN EG_NEXT ;BR=OUT OF Y RANGE
|
||
CMPI 0680000H,A14
|
||
JRGT EG_NEXT ;BR=OUT OF Y RANGE
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
DEC A6 ;COUNT CHANGE
|
||
JRUC EG_NEXT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* POSTA_COLLVECT *
|
||
* *
|
||
**************************************************************************
|
||
|
||
POSTA_COLLVECT
|
||
.WORD 0
|
||
.LONG POSTA_CVECT
|
||
|
||
POSTA_CVECT
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
|
||
POSTA_GUNVECT
|
||
MOVI 500,A5
|
||
MOVK M_NOMORE|M_FLASHOBJ,A7
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
JRNC PG_DONE
|
||
|
||
SOUNDZ SND_LAMP_BREAK
|
||
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 040000H,A0
|
||
CLR A3
|
||
CALLA PreFrag_Box
|
||
MOVI -0FFH,B9 ;MIN Z VEL
|
||
MOVI -01H,B10 ;MAX Z VEL
|
||
MOVI FRAG_U5,B14
|
||
CALLA Fragger
|
||
|
||
MOVI GRELAMP2b,A14
|
||
MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
|
||
CLR A5 ;NO SCORE
|
||
|
||
MOVK 2,A6 ;CHANGE 5 OBJECTS
|
||
|
||
MOVE *A8(OXVAL),A1,L
|
||
MOVI FGLIST,A0
|
||
MOVE A0,A8
|
||
|
||
MOVI CXEWAL1,A3 ;CHANGE THESE
|
||
MOVI BASEMOLD1h,A11
|
||
|
||
JRUC PG_NEXT
|
||
PG_LUPE
|
||
MOVE *A8(OIMG),A14,L ;CHECK IMAGES
|
||
CMP A3,A14
|
||
JREQ PG_CHECK_OBJ
|
||
CMP A11,A14
|
||
JREQ PG_CHECK_OBJ
|
||
PG_NEXT
|
||
MOVE A6,A6
|
||
JRZ PG_DONE ;BR=CHANGED EVERYTHING
|
||
MOVE *A8,A8,L
|
||
CMP A0,A8
|
||
JRNE PG_LUPE ;BR=NOT END OF LIST
|
||
PG_DONE
|
||
RETS
|
||
|
||
PG_CHECK_OBJ
|
||
MOVE *A8(OXVAL),A14,L
|
||
SUB A1,A14
|
||
ABS A14
|
||
CMPI 0200000H,A14
|
||
JRGT PG_NEXT ;BR=OUT OF X RANGE
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
DEC A6 ;COUNT CHANGE
|
||
JRUC PG_NEXT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* LAMP_COLLVECT *
|
||
* *
|
||
**************************************************************************
|
||
|
||
LAMP_COLLVECT
|
||
.WORD 0
|
||
.LONG LAMP_CVECT
|
||
|
||
LAMP_CVECT
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
|
||
LAMP_GUNVECT
|
||
PUSH A8
|
||
|
||
MOVI 500,A5
|
||
MOVK M_NOMORE|M_FLASHOBJ,A7
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
JRNC LG_DONE
|
||
|
||
SOUNDZ SND_LAMP_BREAK
|
||
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 040000H,A0
|
||
CLR A3
|
||
CALLA PreFrag_Box
|
||
MOVI -0FFH,B9 ;MIN Z VEL
|
||
MOVI -01H,B10 ;MAX Z VEL
|
||
MOVI FRAG_U5,B14
|
||
CALLA Fragger
|
||
|
||
MOVI GRELAMP2b,A14
|
||
MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
|
||
MOVE *A8(OCTRL),A10,W
|
||
MOVI FGLIST,A8
|
||
MOVE A8,A4
|
||
|
||
CLR A5 ;NO SCORE
|
||
MOVK M_NOMORE|M_FLASHOBJ|M_ANIMSYNC,A7
|
||
; CLR A9
|
||
|
||
MOVK 2,A6 ;2 OBJECT TO FIND
|
||
|
||
MOVI (OID_UNIV|((28-1) << 2)) & ~MASK_SUPP,A1 ;FIND DOOR
|
||
|
||
JRUC LG_NEXT
|
||
LG_LUPE
|
||
MOVE *A8(AnimScr),A14,L ;CHECK SCRIPTS
|
||
JRZ LG_CHECK_DOOR
|
||
CMPI GLAMPH1,A14
|
||
JRNE LG_CHECK_DOOR
|
||
|
||
MOVE *A8,A3,L ;GET RID OF FLASH ANIMATION
|
||
MOVE *A8(OULINK),A0,L
|
||
CLR A14
|
||
MOVE A14,*A8(OULINK),L
|
||
CALLA REMOVE_AND_FREE_LINK
|
||
CALLA DELETE_OBJ
|
||
DEC A6
|
||
JRZ LG_DONE ;BR=WE'RE OUT OF HERE
|
||
MOVE A3,A8
|
||
JRUC LG_COMP
|
||
LG_CHECK_DOOR
|
||
MOVE *A8(OID),A14,W
|
||
CMP A1,A14
|
||
JRNE LG_NEXT
|
||
MOVE *A8(OCTRL),A14,W
|
||
XOR A10,A14
|
||
BTST B_FLIPH,A14
|
||
JRZ LG_NEXT
|
||
|
||
CALLA UNIV_DAMAGE_HANDLER ;DAMAGE DOOR
|
||
DEC A6
|
||
JRZ LG_DONE ;BR=WE'RE OUT OF HERE
|
||
LG_NEXT
|
||
MOVE *A8,A8,L
|
||
LG_COMP
|
||
CMP A4,A8
|
||
JRNE LG_LUPE ;BR=NOT END OF LIST
|
||
LG_DONE
|
||
PULLQ A8
|
||
RETS
|
||
|
||
; MOVI XDOORON1,A11
|
||
;
|
||
; JRUC LG_NEXT
|
||
;LG_LUPE
|
||
; MOVE *A8(AnimScr),A14,L ;CHECK SCRIPTS
|
||
; JRZ LG_NOANIM
|
||
; CMPI GLAMPH1,A14
|
||
; JRNE LG_NOANIM
|
||
;
|
||
; MOVE *A8,A3,L ;GET RID OF FLASH ANIMATION
|
||
; MOVE *A8(OULINK),A0,L
|
||
; CLR A14
|
||
; MOVE A14,*A8(OULINK),L
|
||
; CALLA REMOVE_AND_FREE_LINK
|
||
; CALLA DELETE_OBJ
|
||
; DEC A6
|
||
; JRZ LG_DONE ;BR=WE'RE OUT OF HERE
|
||
; MOVE A3,A8
|
||
; JRUC LG_COMP
|
||
;LG_NOANIM
|
||
; MOVE *A8(OIMG),A14,L ;CHECK IMAGES
|
||
; CMP A11,A14
|
||
; JRNE LG_NEXT
|
||
; MOVE *A8(OCTRL),A14,W
|
||
; XOR A1,A14
|
||
; BTST B_FLIPH,A14
|
||
; JRZ LG_NEXT ;BR=WRONG DOOR
|
||
; CALLA UNIV_DAMAGE_HANDLER
|
||
; DEC A6
|
||
;LG_NEXT
|
||
; MOVE A6,A6
|
||
; JRZ LG_DONE ;BR=CHANGED EVERYTHING
|
||
; MOVE *A8,A8,L
|
||
;LG_COMP
|
||
; CMP A4,A8
|
||
; JRNE LG_LUPE ;BR=NOT END OF LIST
|
||
;LG_DONE
|
||
; RETS
|
||
|
||
SND_WINDOW_BREAK
|
||
.WORD 0F340H,64,0A32EH,0 ;Window break, skips channels
|
||
SND_WINDOW_CRACK
|
||
.WORD 0E308H,47,0A32BH,0
|
||
SND_LAMP_BREAK
|
||
.WORD 0F340H,75,083CEH,0 ;Lamp break
|
||
|
||
**************************************************************************
|
||
* *
|
||
* DUMPSTER VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
DUMPSTER_COLLVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,DUMPSTER_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
DUMPSTER_CVECT
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ DG_DONE
|
||
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
|
||
MOVI 25000,A5 ;POINTS
|
||
MOVK M_NOMORE|M_LASTFRM|M_FLASHOBJ,A7 ;LAST AND FLASH
|
||
MOVI [0,42],A9 ;OFFSET TO CENTER OF WHOLE DUMP
|
||
MOVE *A8(OCTRL),A14,W
|
||
BTST B_FLIPH,A14
|
||
JRZ DC_OOK ;BR=NO FLIP, OFFSET OK
|
||
NEG A9 ;FLIP OFFSET
|
||
DC_OOK
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVE *A8(OZVAL),A14,L
|
||
DEC A14
|
||
MOVE A14,B0
|
||
|
||
MOVK (11 << 15) >> 16,B3
|
||
MOVI (43*2 << 15) >> 16,B4
|
||
MOVE *A8(OCTRL),A14,W
|
||
BTST B_FLIPH,A14
|
||
JRZ DC_XOK
|
||
NEG B3
|
||
NEG B4
|
||
DC_XOK
|
||
MOVE *A8(OXPOS),A14,W
|
||
MOVE A14,B1
|
||
ADD B3,B1
|
||
MOVE A14,B2
|
||
ADD B4,B2
|
||
|
||
MOVI -040000H,B3
|
||
MOVI 040000H,B4
|
||
|
||
MOVE *A8(OYPOS),A14,W
|
||
MOVE A14,B5
|
||
SUBI (78 << 15) >> 16,B5
|
||
MOVE A14,B6
|
||
SUBK (61 << 15) >> 16,B6
|
||
|
||
MOVI -040000H,B7
|
||
MOVI 040000H,B8
|
||
|
||
MOVI -07FH,B9
|
||
MOVI 07FH,B10
|
||
|
||
MOVI FRAG_U20,B14
|
||
CALLA Fragger
|
||
|
||
MOVE *A8(OIMG),A1,L
|
||
MOVE *A1(ICMAP),*A0(FPDATA),L ;SET PALETTE
|
||
|
||
; MOVI FLYINHK,A14
|
||
; MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
|
||
SOUNDZ SND_DUMPSTER_EXPLODE
|
||
SOUNDZ SND_DUMPSTER_BURN
|
||
|
||
CALLA GET_FREE_LINK
|
||
JRZ DC_CAUSE_DAMAGE ;BR=NONE AVAILABLE
|
||
|
||
MOVE *A8(OCTRL),A14,W ;DO THE FLIPH THING
|
||
ANDI M_FLIPH,A14
|
||
MOVE A14,*A0(MAP_FLAGS),W
|
||
|
||
MOVE A8,A14
|
||
ADDI OXVAL,A14 ;GET POSITION
|
||
MMFM A14,A3,A4,A5 ;A5,A4,A3 = OXVAL, OYVAL, OZVAL
|
||
|
||
MOVI XBOARD_FIRE_ANIM+M_IF_SEQ,A14
|
||
MOVE A14,*A0(MAP_IMG),L ;FIRE ANIMATION
|
||
|
||
MOVE A5,*A0(MAP_X),L
|
||
MOVE A4,*A0(MAP_Y),L
|
||
INC A3
|
||
MOVE A3,*A0(MAP_Z),L
|
||
|
||
MOVE @UNIV_ID,A14 ;SET ID AND OBJ
|
||
MOVE A14,*A0(MAP_ID),W
|
||
MOVI 080000000H,A14
|
||
MOVE A14,*A0(MAP_OBJ),L
|
||
CALLA INSERT_LINK
|
||
|
||
MOVK 1,A0
|
||
MOVE A0,@UNIVERR,W ;FORCE CREATION BY UPDATE_UNIV
|
||
|
||
;WE COULD CALL OBJ_KILL_ALL_ENEMIES
|
||
|
||
PUSH A8 ;SAVE FOR LATER
|
||
SLL 15,A9
|
||
ADD A9,A5 ;OFFSET X TO CENTER OF DUMPSTER
|
||
MOVI OID_NONBOY,A14
|
||
CALLA GETSUPP_FROM_OID
|
||
MOVE A14,A8
|
||
DC_ENEMY_CHECK_LUPE
|
||
MOVE *A8(OSLINK),A8,L
|
||
JRZ DC_CAUSE_DAMAGE ;BR=END OF LIST
|
||
MOVE *A8(OZVAL),A9,L
|
||
SUB A3,A9
|
||
CMPK 6,A9
|
||
JRNE DC_ENEMY_CHECK_LUPE ;BR=Z IS WRONG
|
||
MOVE *A8(OGUNVECT),A14,L
|
||
;WFD start 6/14/1994
|
||
JRZ DC_ENEMY_CHECK_LUPE ;BR = NO GUN VECTOR
|
||
;WFD end 6/14/1994
|
||
MMTM SP,A3,A9
|
||
CALL A14 ;CALL GUN VECTOR
|
||
MMFM SP,A3,A9
|
||
JRUC DC_ENEMY_CHECK_LUPE
|
||
|
||
DC_CAUSE_DAMAGE
|
||
PULLQ A8 ;WE'RE BACK!
|
||
|
||
.if BILL
|
||
MOVK 3,A11 ;CHANGE THIS NUMBER OF OBJECTS
|
||
.endif
|
||
|
||
CLR A5 ;NO POINTS
|
||
|
||
MOVI BCAN1GRN,A3 ;DEFAULT TO THE GREEN DUMPSTER
|
||
MOVI DMPOPN1g,A4
|
||
|
||
MOVE *A8(OPAL),A0,W
|
||
CALLA GET_PALID
|
||
CMPI GRNDMP1,A0
|
||
JREQ DC_GO_GET_EM ;BR=IT'S THE GREEN DUMPSTER
|
||
|
||
MOVI BCAN1RED,A3 ;THE RED DUMPSTER
|
||
MOVI DLIDOPN1,A4
|
||
DC_GO_GET_EM
|
||
MOVI FGLIST,A0
|
||
MOVE A0,A8
|
||
JRUC DC_NEXT
|
||
DC_LUPE
|
||
MOVE *A8(OIMG),A14,L
|
||
CMP A3,A14
|
||
JREQ DC_DAMAGE ;BR=DUMPSTER IMAGE
|
||
MOVE *A8(AnimScr),A14,L
|
||
CMP A4,A14
|
||
JRNE DC_NEXT ;BR=NO LID IMAGE
|
||
DC_DAMAGE
|
||
|
||
.if BILL
|
||
DEC A11 ;COUNT DAMAGED OBJECT
|
||
.endif
|
||
|
||
CALLA OBJ_ON_WNZ ;TURN LIDS ON!
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
CLR A14
|
||
MOVE A14,*A8(OCVECT),L ;NO MORE COLLISIONS
|
||
DC_NEXT
|
||
MOVE *A8,A8,L
|
||
CMP A0,A8
|
||
JRNE DC_LUPE ;BR=NOT END OF LIST
|
||
|
||
.if BILL
|
||
MOVE A11,A11
|
||
LOCKON NZ ;DIDN'T CHANGE ALL IMAGES
|
||
.endif
|
||
|
||
DC_DONE
|
||
RETS
|
||
DUMPSTER_GUNVECT
|
||
SOUNDZ SND_DUMPSTER_HIT
|
||
DG_DONE
|
||
RETS
|
||
|
||
SND_DUMPSTER_HIT
|
||
.WORD 0F306H,20,0A33BH,0
|
||
SND_DUMPSTER_EXPLODE
|
||
.WORD 0F328H,69,0A14AH,0
|
||
SND_DUMPSTER_BURN
|
||
.WORD 0F327H,85,0A33EH,0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* GARBAGE CAN VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CAN_COLLVECT
|
||
WWL OID_GRND,0FFFFH,CAN_GRND_CVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,CAN_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
CAN_GRND_CVECT
|
||
SOUNDZ SND_CAN_LAND
|
||
MOVE *A8(OYVEL),A14,L
|
||
JRN CGC_ONGRND ;BR=GOING UP
|
||
JRZ CGC_ONGRND ;BR=STOPPED
|
||
SRA 2,A14
|
||
CMPI [1,0],A14
|
||
JRLT CGC_ONGRND ;BR=BELOW MINIMUM VELOCITY
|
||
NEG A14 ;REVERSE VELOCITY
|
||
MOVE A14,*A8(OYVEL),L
|
||
RETS
|
||
CGC_ONGRND
|
||
;DON'T DO THIS (SEE NOTE BELOW)
|
||
; MOVI CAN_GUNVECT,A14
|
||
; MOVE A14,*A8(OGUNVECT),L
|
||
|
||
CLR A14 ;STOP IT!
|
||
MOVE A14,*A8(OXVEL),L
|
||
MOVE A14,*A8(OYVEL),L
|
||
MOVE A14,*A8(OZVEL),L
|
||
MOVE A14,*A8(OYACCEL),W
|
||
MOVE *A8(OFLAGS),A14,W
|
||
ANDNI M_GCOLL,A14 ;CLEAR GROUND COLL FLAG
|
||
MOVE A14,*A8(OFLAGS),W
|
||
|
||
CALLA SET_ONGRND
|
||
|
||
MOVE *A8(OULINK),A0,L ;UPDATE RAM LINK POSITION
|
||
MOVE *A8(OXVAL),*A0(MAP_X),L
|
||
MOVE *A8(OYVAL),*A0(MAP_Y),L
|
||
MOVE *A8(OZVAL),*A0(MAP_Z),L
|
||
|
||
MOVE @RAND,A3,W ;RANDOM FLIPH
|
||
ANDI M_FLIPH,A3 ;ISOLATE FLIPH BIT ONLY
|
||
MOVE *A8(OCTRL),A9,W
|
||
XOR A3,A9
|
||
MOVE A9,*A8(OCTRL),W
|
||
ANDI M_FLIPH,A1 ;UPDATE FLIPH IN MAP_FLAGS
|
||
MOVE *A0(MAP_FLAGS),A14,W
|
||
ANDNI M_FLIPH,A14
|
||
OR A1,A14
|
||
MOVE A14,*A0(MAP_FLAGS),W
|
||
|
||
PUSH B0
|
||
CALLA UNLINK_LINK ;RESORT UNIVERSE LINK
|
||
CALLA INSERT_LINK
|
||
PULLQ B0
|
||
|
||
MOVE @BLACKOUT,A14,W
|
||
JRNZ CGC_ANIM ;BR=DON'T GIVE ME ANY GARBAGE
|
||
|
||
MOVE @WAVE_UNIV,A14,L
|
||
; CMPI GXSTAGE3,A14
|
||
CMPI GXSTG3TP,A14
|
||
JREQ CGC_MAKE_GARBAGE ;BR=NO ROCKETS HERE
|
||
|
||
MOVE *A0(MAP_ID),A3,W ;ROCKET COUNT IN PORTAL ID
|
||
MOVE A3,A1
|
||
SLL 16+8,A3
|
||
SRL 16+8+3,A3 ;WE JUST HAVE THE COUNT
|
||
CMPK 4,A3
|
||
JRGE CGC_MAKE_GARBAGE ;BR=NO ROCKETS LEFT
|
||
SUBK 4,A3
|
||
NEG A3 ;MAKE THE REST
|
||
ANDNI 0F8H,A1 ;CLEAR OLD COUNT
|
||
ORI 4 << 3,A1 ;SAVE MAX COUNT
|
||
MOVE A1,*A0(MAP_ID),W
|
||
|
||
MOVI [-010H,-0100H],A10 ;[MAX, MIN] Z VELOCITY
|
||
MOVI [-060H,010H],A11 ;[Y, X] VELOCITY LIMITS
|
||
|
||
MOVE A9,A14
|
||
MOVI (-2 << 16) + ((-18 << 8) & 0FF00H) + 27,A9 ;Z, Y, X OFFSET
|
||
BTST B_FLIPH,A14
|
||
JRZ CGC_PROCK_LUPE
|
||
MOVI (-2 << 16) + ((-18 << 8) & 0FF00H) + (-27 & 0FFH),A9 ;Z, Y, X OFFSET
|
||
CGC_PROCK_LUPE
|
||
CREATE PID_IND,THROW_PROCK
|
||
DSJS A3,CGC_PROCK_LUPE
|
||
JRUC CGC_ANIM
|
||
CGC_MAKE_GARBAGE
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVE *A8(OZVAL),A14,L
|
||
DEC A14
|
||
MOVE A14,B0
|
||
|
||
MOVI 01000H,B3
|
||
MOVI 040000H,B4
|
||
MOVK (27 << 15) >> 16,B7
|
||
BTST B_FLIPH,A9
|
||
JRZ CGC_XOK
|
||
NEG B3
|
||
NEG B4
|
||
NEG B7
|
||
CGC_XOK
|
||
MOVE *A8(OXPOS),A14,W
|
||
MOVE A14,B1
|
||
ADD B7,B1
|
||
MOVE B1,B2
|
||
|
||
MOVE *A8(OYPOS),A14,W
|
||
MOVE A14,B5
|
||
SUBK (18 << 15) >> 16,B5
|
||
MOVE B5,B6
|
||
|
||
MOVI -040000H,B7
|
||
MOVI -01000H,B8
|
||
|
||
MOVI -07FH,B9
|
||
MOVI 07FH,B10
|
||
|
||
MOVI FRAG_U5,B14
|
||
CALLA Fragger
|
||
|
||
; MOVE *A8(OIMG),A1,L
|
||
; MOVE *A1(ICMAP),*A0(FPDATA),L ;SET PALETTE
|
||
|
||
; MOVI FLYINHK,A14
|
||
MOVI P_METALHF,A14
|
||
MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
CGC_ANIM
|
||
MOVI CAN_HIT_ANIM,A1 ;CAN LANDING ON GROUND ANIM
|
||
JAUC STRT_ANIM
|
||
CAN_CVECT
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ CG_DONE
|
||
|
||
; MOVB *A8(OFLAGS+B_ANIM-7),A14
|
||
; JRN CG_DONE ;IT'S ANIMATING LEAVE IT ALONE!
|
||
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
|
||
MOVI 500,A5 ;500 POINTS
|
||
MOVK M_LASTFRM|M_FLASHOBJ,A7 ;LAST FRAME AND FLASH
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
.if DEBUG
|
||
LOCKON NC
|
||
.else
|
||
JRNC CG_DONE
|
||
.endif
|
||
|
||
SOUNDZ SND_CAN_ROCKET
|
||
|
||
;DON'T DO THIS MAKE IT AT LEAST FLASH AND GIVE SOME POINTS!
|
||
; MOVI DUMRETS,A14
|
||
; MOVE A14,*A8(OGUNVECT),L
|
||
|
||
MOVI CAN_DAM_TBL+M_IF_DAM,A14 ;RESET DAMAGE TABLE
|
||
MOVE *A8(OULINK),A0,L
|
||
MOVE A14,*A0(MAP_IMG),L
|
||
|
||
MOVI 04000H,A14 ;SET VELOCITIES AND ACCEL
|
||
MOVE A14,*A8(OYACCEL),W ;GRAVITY
|
||
MOVI -060000H,A0
|
||
MOVI -080000H,A1
|
||
CALLA RANGERND
|
||
MOVE A0,*A8(OYVEL),L ;RANDOM INITIAL Y VELOCITY
|
||
MOVI 18 << 13,A0
|
||
MOVI -18 << 13,A1
|
||
CALLA RANGERND
|
||
MOVE A0,*A8(OXVEL),L ;RANDOM INITIAL X VELOCITY
|
||
MOVI -060H,A14
|
||
MOVE A14,*A8(OZVEL),L ;Z VELOCITY
|
||
MOVE *A8(OFLAGS),A14,W
|
||
ORI M_GCOLL,A14 ;SET GROUND COLL FLAG
|
||
MOVE A14,*A8(OFLAGS),W
|
||
JRUC CG_LID ;THROW LID
|
||
CAN_GUNVECT
|
||
SOUNDZ SND_CAN_HIT
|
||
|
||
MOVB *A8(OFLAGS+B_ANIM-7),A14
|
||
JRNN CG_STILL ;BR=IT'S NOT ANIMATING
|
||
|
||
MOVE *A8(AnimScr),A14,L
|
||
CMPI dGCANSPIN1sq,A14
|
||
JREQ CG_DONE ;BR=WE'RE SPINNING
|
||
|
||
MOVK 1,A14 ;SET ANIMATION LOOP FLAG
|
||
MOVB A14,*A8(AnimLoop)
|
||
RETS
|
||
CG_STILL
|
||
CLR A14
|
||
MOVB A14,*A8(AnimLoop)
|
||
|
||
MOVI 500,A5 ;500 POINTS
|
||
MOVI M_STAY|M_FLASHOBJ,A7 ;FLASH
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
|
||
MOVE *A8(OULINK),A0,L
|
||
MOVE *A0(MAP_IMG),A14,L
|
||
CMPI CAN_DAM_TBL+M_IF_DAM,A14
|
||
JREQ CG_DONE
|
||
|
||
MOVE *A0(MAP_ID),A14,W ;ROCKET COUNT IN PORTAL ID
|
||
MOVE A14,A1
|
||
SLL 16+8,A14
|
||
SRL 16+8+3,A14 ;WE JUST HAVE THE COUNT
|
||
CMPK 4,A14
|
||
JRGE CG_DONE ;BR=NO ROCKETS LEFT
|
||
INC A14
|
||
SLL 3,A14
|
||
ANDNI 0F8H,A1 ;CLEAR OLD COUNT
|
||
OR A14,A1 ;SAVE NEW COUNT
|
||
MOVE A1,*A0(MAP_ID),W
|
||
|
||
MOVE @WAVE_UNIV,A14,L
|
||
; CMPI GXSTAGE3,A14
|
||
CMPI GXSTG3TP,A14
|
||
JREQ CG_LID ;BR=NO ROCKETS HERE
|
||
|
||
MOVI (2 << 16) + ((-52 << 8) & 0FF00H) + 0,A9 ;Z, Y, X OFFSET
|
||
MOVI [-010H,-0100H],A10 ;[MAX, MIN] Z VELOCITY
|
||
MOVI [-060H,010H],A11 ;[Y, X] VELOCITY LIMITS
|
||
CREATE PID_IND,THROW_PROCK
|
||
CG_LID
|
||
MOVE *A8(OXVAL),A4,L
|
||
MOVI XGCAN2lid,A3 ;FIND THE LID
|
||
|
||
MOVI FGLIST,A0
|
||
MOVE A0,A8
|
||
JRUC CG_NEXT
|
||
CG_LUPE
|
||
MOVE *A8(OIMG),A14,L
|
||
CMP A3,A14
|
||
JRNE CG_NEXT ;BR=NO LID IMAGE
|
||
MOVB *A8(OFLAGS+B_ANIM-7),A14
|
||
JRN CG_NEXT ;BR=IT'S ANIMATING ALREADY
|
||
|
||
MOVE *A8(OXVAL),A14,L ;GET X POSITION DELTA
|
||
SUB A4,A14
|
||
ABS A14
|
||
CMPI 020000H,A14
|
||
JRLE LID_FLY_RANDOM ;BR=THIS IS THE LID FOR THE CAN
|
||
CG_NEXT
|
||
MOVE *A8,A8,L
|
||
CMP A0,A8
|
||
JRNE CG_LUPE ;BR=NOT END OF LIST
|
||
CG_DONE
|
||
RETS
|
||
|
||
CAN_DAM_TBL:
|
||
.long XGCANDRP1+0
|
||
.word 1
|
||
.long CAN_HIT_ANIM+1
|
||
.word 128
|
||
.long dGCANSPIN1sq+9
|
||
|
||
CAN_HIT_ANIM ;THIS IS ALSO THE LANDING SEQ
|
||
LW XGCANDRP3,2
|
||
LW XGCANDRP6,2
|
||
LW XGCANDRP1,2
|
||
LW XGCANDRP3,2
|
||
LWL XGCANDRP1,2|AFunc,PULL_ANIM
|
||
|
||
SND_CAN_HIT
|
||
.WORD 0F305H,40,0A35AH,0
|
||
SND_CAN_ROCKET
|
||
.WORD 0F320H,53,0A341H,0
|
||
SND_CAN_LAND
|
||
.WORD 0F320H,46,0A357H,0
|
||
|
||
SND_LID_HIT
|
||
.WORD 0F305H,27,0A344H,0
|
||
SND_LID_LAND
|
||
.WORD 0F320H,35,0A347H,0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* AU_RESET_LUPE - RESET ANIMATION LOOP FLAG *
|
||
* *
|
||
* PASS: *
|
||
* A8 = OBJECT *
|
||
* *
|
||
**************************************************************************
|
||
|
||
AU_RESET_LUPE
|
||
CLR A14
|
||
MOVB A14,*A8(AnimLoop)
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* AU_CHECK_LUPE - CHECK IF ANIMATION SHOULD LOOP *
|
||
* *
|
||
* PASS: *
|
||
* A8 = OBJECT *
|
||
* AARG+,L = LOOP ADDRESS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
AU_CHECK_LUPE
|
||
MOVB *A8(AnimLoop),A14
|
||
JRZ AU_CL_DONE ;BR=DON'T LOOP
|
||
CALLA GETAFARG_LONG
|
||
MOVE A0,*A8(AnimFrm),L ;LOAD LOOP FRAME
|
||
AU_CL_DONE
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* GARBAGE CAN LID VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
LID_COLLVECT
|
||
WWL OID_GRND,0FFFFH,LID_GRND_CVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,LID_CVECT
|
||
WL 0,DUMCRETS
|
||
|
||
LID_GRND_CVECT
|
||
SOUNDZ SND_LID_LAND
|
||
|
||
CLR A14 ;STOP IT!
|
||
MOVE A14,*A8(OXVEL),L
|
||
MOVE A14,*A8(OYVEL),L
|
||
MOVE A14,*A8(OZVEL),L
|
||
MOVE A14,*A8(OYACCEL),W
|
||
MOVE *A8(OFLAGS),A14,W
|
||
ANDNI M_GCOLL,A14 ;CLEAR GROUND COLL FLAG
|
||
MOVE A14,*A8(OFLAGS),W
|
||
CALLA SET_ONGRND
|
||
|
||
MOVE *A8(OULINK),A0,L ;UPDATE RAM LINK POSITION
|
||
MOVE *A8(OXVAL),*A0(MAP_X),L
|
||
MOVE *A8(OYVAL),*A0(MAP_Y),L
|
||
MOVE *A8(OZVAL),*A0(MAP_Z),L
|
||
|
||
MOVE @RAND,A3,W ;RANDOM FLIPH
|
||
ANDI M_FLIPH,A3 ;ISOLATE FLIPH BIT ONLY
|
||
MOVE *A8(OCTRL),A1,W
|
||
XOR A3,A1
|
||
MOVE A1,*A8(OCTRL),W
|
||
ANDI M_FLIPH,A1 ;UPDATE FLIPH IN MAP_FLAGS
|
||
MOVE *A0(MAP_FLAGS),A14,W
|
||
ANDNI M_FLIPH,A14
|
||
OR A1,A14
|
||
MOVE A14,*A0(MAP_FLAGS),W
|
||
|
||
PUSH B0
|
||
CALLA UNLINK_LINK ;RESORT UNIVERSE LINK
|
||
CALLA INSERT_LINK
|
||
PULLQ B0
|
||
|
||
MOVI LID_LAND_ANIM,A1 ;LID LANDING ON GROUND ANIM
|
||
JAUC STRT_ANIM
|
||
LID_CVECT
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ LID_DONE
|
||
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
LID_FLY_RANDOM
|
||
CLR A3 ;FLAG RANDOM DIRECTION
|
||
LID_GUNVECT
|
||
MOVI 500,A5 ;500 POINTS
|
||
MOVI M_STAY|M_FLASHOBJ,A7 ;FLASH
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
.if DEBUG
|
||
LOCKON NC
|
||
.else
|
||
JRNC LID_DONE
|
||
.endif
|
||
LID_FLY
|
||
SOUNDZ SND_LID_HIT
|
||
MOVI 04000H,A14 ;SET VELOCITIES AND ACCEL
|
||
MOVE A14,*A8(OYACCEL),W ;GRAVITY
|
||
MOVI -070000H,A0
|
||
MOVI -080000H,A1
|
||
CALLA RANGERND
|
||
MOVE A0,*A8(OYVEL),L ;RANDOM INITIAL Y VELOCITY
|
||
SEXT A3,W
|
||
JRNZ LID_XOK ;BR=NO RANDOM DIRECTION
|
||
MOVI 25 << 13,A0
|
||
MOVI -24 << 13,A1
|
||
CALLA RANGERND ;GET RANDOM X VELOCITY
|
||
MOVE A0,A1
|
||
JRUC LID_XSET
|
||
LID_XOK
|
||
MOVE *A8(ODAGX),A1,W ;COMPUTE VELOCITY FROM OFFSET
|
||
MOVE *A8(OSIZEX),A14,W ; FROM THE CENTER OF THE LID
|
||
SRA 1,A14
|
||
ADD A14,A1 ;CENTER OF THE LID (SCREEN X)
|
||
SUB A3,A1 ;DIFFERENCE FROM GUN (SCREEN X)
|
||
SLL 13,A1 ;CONVERT TO VELOCITY
|
||
MOVE *A8(OZVAL),A4,L
|
||
MOVE @ZBASE,A14,L
|
||
SUB A14,A4
|
||
SRA Z2SCALE,A4
|
||
SETF 16,1,1
|
||
MPYS A4,A1 ;SCALE X VELOCITY
|
||
SETF 32,1,1
|
||
SRA 8,A1
|
||
LID_XSET
|
||
MOVE A1,*A8(OXVEL),L
|
||
MOVI -080H,A14
|
||
MOVE A14,*A8(OZVEL),L ;Z VELOCITY
|
||
MOVE *A8(OFLAGS),A14,W
|
||
ORI M_GCOLL,A14 ;SET GROUND COLL FLAG
|
||
MOVE A14,*A8(OFLAGS),W
|
||
LID_DONE
|
||
RETS
|
||
|
||
LID_LAND_ANIM
|
||
LW XGCANLID1,2
|
||
LW XGCANLID2,2
|
||
LW XGCANLID3,2
|
||
LW XGCANLID4,2
|
||
LW XGCANLID5,2
|
||
LWW XGCANLID4,2|AFlip,M_FLIPH
|
||
LW XGCANLID2,2
|
||
LWW XGCANLID8,2|AFlip,0
|
||
; LW XGCANLID9,2
|
||
; LW XGCANLID10,2
|
||
; LW XGCANLID9,2
|
||
; LW XGCANLID10,2
|
||
LWL XGCAN2lid,1|AFunc,PULL_ANIM
|
||
.long 0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* ********************************************************************** *
|
||
* * *
|
||
* * ******************************************************************** *
|
||
* * * *
|
||
* * * CITY DAMAGE *
|
||
* * * *
|
||
* * ******************************************************************** *
|
||
* * *
|
||
* ********************************************************************** *
|
||
* *
|
||
**************************************************************************
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SQUARE CITY WINDOW VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CITY_WINDOW_COLLVECT
|
||
.WORD 0
|
||
.LONG CITY_WINDOW_CVECT
|
||
|
||
CITY_WINDOW_COLLVECTR
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,CITY_WINDOW_CVECTR
|
||
WL 0,DUMCRETS
|
||
|
||
CITY_WINDOW_CVECTR
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ CWV_DONE
|
||
CITY_WINDOW_CVECT
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
JRUC CWV_GO
|
||
CITY_WINDOW_SQUARE_GUNVECT
|
||
MOVI [-82*2, -12*2],A3
|
||
MOVI [-39*2, 40*2],A4
|
||
CWV_CHECK
|
||
CALLA BOX_CHECK_OBJ
|
||
JRZ CWV_DONE ;BR=NOT THE WINDOW PART
|
||
CWV_GO
|
||
MOVE *A8(OID),A7,W
|
||
MOVI 500,A5 ;500 POINTS
|
||
MOVI [-72, 13*2],A9 ;SQUARE SCORE OFFSET
|
||
MOVI [-60*2, 14*2],A10 ;SQUARE POWERUP OFFSET
|
||
SLL 25,A7 ;LATER
|
||
SRL 28,A7
|
||
JRZ CWV_CHOOSE ;BR=THIS IS THE SQUARE WINDOW
|
||
MOVI [-29, 0*2],A9 ;LOFT SCORE OFFSET
|
||
CMPK 1,A7
|
||
JRNE CWV_DAM ;BR=THIS IS A LOFT WINDOW
|
||
MOVI [0*2, -11*2],A9 ;LONG SCORE OFFSET
|
||
MOVI [-21*2, 0*2],A10 ;LONG POWERUP OFFSET
|
||
CWV_CHOOSE
|
||
MOVI 1024,A0
|
||
CALLA RAND0
|
||
CMPI 1024/3,A0
|
||
JRGT CWV_DAM
|
||
CLR A5 ;NO POINTS
|
||
MOVK 1,A11 ;Z OFFSET
|
||
MOVE @ENERGY_AWARDS,A3,W
|
||
MOVI ENERGY_MAX_TABLE,A1
|
||
CALLA GET_PCENTRY
|
||
CMP A14,A3
|
||
JRGE CWV_CD2_AWARD ;BR=MAXED OUT ENERGY AWARDS
|
||
CMPI 1024/25,A0
|
||
JRLT CWV_LIFE_AWARD
|
||
CWV_CD2_AWARD
|
||
CREATE PID_IND,REVEAL_CD2
|
||
JRUC CWV_DAM
|
||
CWV_LIFE_AWARD
|
||
CREATE PID_IND,REVEAL_LIFE2
|
||
CWV_DAM
|
||
MOVI M_NOSTOPANIM|M_NOMORE|M_LASTFRM|M_FLASHOBJ,A7
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
CWV_SND
|
||
MOVK 5,A0
|
||
CALLA RAND0
|
||
SLL 6,A0
|
||
ADDI SND_SHATTER,A0
|
||
JAUC ONESND_Z
|
||
CWV_DONE
|
||
RETS
|
||
|
||
ENERGY_MAX_TABLE
|
||
.WORD 2, 3, 5
|
||
|
||
SND_SHATTER
|
||
.WORD 0F320H,82,0A3C2H,0 ;SHATTER #0
|
||
.WORD 0F320H,82,0A3C5H,0 ;SHATTER #1
|
||
.WORD 0F320H,82,0A3C8H,0 ;SHATTER #2
|
||
.WORD 0F320H,82,0A3CBH,0 ;SHATTER #3
|
||
.WORD 0F320H,82,0A3CEH,0 ;SHATTER #4
|
||
|
||
**************************************************************************
|
||
* *
|
||
* LONG CITY WINDOW VECTOR *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CITY_WINDOW_LONG_GUNVECT
|
||
MOVI [-38*2, -72*2],A3
|
||
MOVI [-4*2, 74*2],A4
|
||
JRUC CWV_CHECK
|
||
|
||
**************************************************************************
|
||
* *
|
||
* LOFT CITY WINDOW VECTOR *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CITY_WINDOW_LOFT_GUNVECT
|
||
MOVI [6-119, 9-42],A3
|
||
MOVI [110-119, 77-42],A4
|
||
JRUC CWV_CHECK
|
||
|
||
**************************************************************************
|
||
* *
|
||
* LOFT SIGN LIGHT VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
LOFTSIGNLITE_COLLVECT
|
||
.WORD 0
|
||
.LONG LOFTSIGNLITE_CVECT
|
||
|
||
LOFTSIGNLITE_CVECT
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
|
||
LOFTSIGNLITE_GUNVECT
|
||
MOVI 10000,A5
|
||
MOVK M_NOMORE|M_FLASHOBJ,A7
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
JRNC LV_DONE
|
||
|
||
SOUNDZ SND_LAMP_BREAK
|
||
|
||
MOVI FGLIST,A0
|
||
MOVE A0,A8
|
||
|
||
MOVI LOFTSINE1,A3 ;CHANGE THIS
|
||
|
||
JRUC LV_NEXT
|
||
LV_LUPE
|
||
MOVE *A8(OIMG),A14,L ;CHECK IMAGES
|
||
CMP A3,A14
|
||
JRNE LV_NEXT
|
||
|
||
MOVI LOFTPAL1d,A0
|
||
JAUC CHANGE_PAL
|
||
LV_NEXT
|
||
MOVE *A8,A8,L
|
||
CMP A0,A8
|
||
JRNE LV_LUPE ;BR=NOT END OF LIST
|
||
LV_DONE
|
||
RETS
|
||
|
||
LOFTPAL1d:
|
||
.word 8
|
||
.word 00000h,07fffh,02504h,02d45h,02d45h,02d45h,01060h,01060h
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* PALM TREE TOP VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
PALMTREETOP_COLLVECTR
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,PALMTREETOP_CVECTR
|
||
WL 0,DUMCRETS
|
||
|
||
PALMTREETOP_CVECTR
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ PV_DONE
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
MOVK M_NOMORE|M_LASTFRM|M_FLASHOBJ,A7 ;LAST FRAME AND FLASH
|
||
JRUC PV_GO
|
||
PALMTREETOP_GUNVECT
|
||
; SOUND1 SND_TREE_HIT
|
||
|
||
MOVE @WAVE_UNIV,A14,L
|
||
CMPI GXFLITE4,A14
|
||
JREQ PG_NOFRAG ;BR=NO FRAGS IN CITY
|
||
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 080000H,A0
|
||
CLR A3
|
||
CLR A4
|
||
CALLA PreFrag_Gun
|
||
DEC B0
|
||
MOVI FRAG_U1_X2,B14
|
||
CALLA Fragger
|
||
|
||
MOVI NEWPLM1c2,A14
|
||
MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
PG_NOFRAG
|
||
MOVE *A8(OGTIME),A14,L
|
||
MOVE @WAVEIRQS,A9,L
|
||
MOVE A9,*A8(OGTIME),L ;NEW LAST GUN HIT TIME
|
||
SUB A14,A9
|
||
CMPK 10,A9
|
||
JRLE PV_COUNT ;BR=HIT COUNTED
|
||
|
||
MOVE *A8(OULINK),A0,L
|
||
SETF 4,0,0 ;FIELD 0 IS 4 BITS
|
||
CLR A14
|
||
MOVE A14,*A0(MAP_OBJ),0 ;RESET COUNT
|
||
SETF 16,1,0 ;WORD SIGN EXTEND
|
||
RETS
|
||
PV_COUNT
|
||
MOVK M_NOMORE|M_FLASHOBJ,A7
|
||
PV_GO
|
||
MOVI 5000,A5 ;500 POINTS
|
||
MOVI [-75*2,0],A9 ;SCORE OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
JRNC PV_DONE ;BR=NO TORCH
|
||
|
||
MOVE @WAVE_UNIV,A14,L
|
||
CMPI GXFLITE4,A14
|
||
JREQ PG_NOFRAGS ;BR=NO FRAGS IN CITY
|
||
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 080000H,A0
|
||
CLR A3
|
||
CLR A4
|
||
CALLA PreFrag_Center
|
||
DEC B0
|
||
MOVI FRAG_U20_X2,B14
|
||
CALLA Fragger
|
||
|
||
MOVI NEWPLM1c2,A14
|
||
MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
PG_NOFRAGS
|
||
SOUND1 SND_TREE_TORCH
|
||
PV_DONE
|
||
RETS
|
||
|
||
SND_TREE_TORCH
|
||
.WORD 0F327H,85,0A33EH,0
|
||
|
||
;SND_TREE_HIT
|
||
; .WORD 0E10AH,26,0A1CFH,0
|
||
|
||
*
|
||
* Collision vector for tree that spawns forth the Trog
|
||
*
|
||
TROG_PALM_CVECT
|
||
WWL OID_PROCKET,~MASK_PLAYER,UNIV_ROCKET_COLL
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,TROG_PALM_COLL
|
||
WL 0,DUMCRETS
|
||
|
||
TROG_PALM_COLL
|
||
CALLA UNIV_COLL_CHECK
|
||
JRNZ TPC_DONE ;BR = We were not the intended obj
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
MOVK M_NOMORE|M_LASTFRM|M_FLASHOBJ,A7 ;LAST FRAME AND FLASH
|
||
MOVI 500,A5 ;500 POINTS
|
||
CLR A5
|
||
CLR A9 ;NO OFFSET
|
||
CALLA UNIV_DAMAGE_HANDLER
|
||
JRNC TPC_DONE ;BR = Not destroyed
|
||
|
||
SOUNDZ SND_TREE_TORCH
|
||
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 040000H,A0
|
||
CLR A3
|
||
CLR A4
|
||
CALLA PreFrag_Center
|
||
DEC B0
|
||
CLR B8
|
||
MOVI FRAG_U20,B14
|
||
CALLA Fragger
|
||
|
||
MOVI NEWPLM1c2,A14
|
||
MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
|
||
MOVE @GITTEN_KITTEN,A14,W
|
||
JRZ TPC_DONE ;BR = No chance to see Trog
|
||
MOVB @CAT_DONE,A14
|
||
JRNZ TPC_DONE ;BR = No chance to see Trog
|
||
|
||
CREATE PID_IND,MAKE_TROG_PROC ;Get Trog to blow out
|
||
|
||
TPC_DONE
|
||
RETS
|
||
|
||
TROG_PALM_GUNVECT
|
||
MMTM SP,B1,B2,B4,B5,B6,B8,B9,b10 ;MAKE FRAGMENTS
|
||
|
||
MOVI 040000H,A0
|
||
CLR A3
|
||
CLR A4
|
||
CALLA PreFrag_Gun
|
||
DEC B0
|
||
CLR B8
|
||
MOVI FRAG_U1,B14
|
||
CALLA Fragger
|
||
|
||
MOVI NEWPLM1c2,A14
|
||
MOVE A14,*A0(FPDATA),L ;SET PALETTE
|
||
|
||
MMFM SP,B1,B2,B4,B5,B6,B8,B9,b10
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* DAMAGE VECTOR TABLES *
|
||
* *
|
||
**************************************************************************
|
||
|
||
LA_OUTSIDE1_VECT_TABLE
|
||
;1, 2
|
||
.LONG 0,0,EXIT_COLLVECT,EXIT_GUNVECT
|
||
;3, 4
|
||
.LONG POSTA_COLLVECT,POSTA_GUNVECT,NEON_COLLVECT,NEON_GUNVECT
|
||
;5, 6
|
||
; .LONG LAMP_COLLVECT,LAMP_GUNVECT,0,0
|
||
.LONG 0,0,0,0
|
||
;7, 8
|
||
.LONG 0,0,0,0
|
||
;9, 10
|
||
.LONG SKYLITE_COLLVECT,SKYLITE_GUNVECT,WINDOW_COLLVECT,WINDOW_GUNVECT
|
||
;11, 12
|
||
.LONG XBOARD_COLLVECT,XBOARD_GUNVECT,DUMPSTER_COLLVECT,DUMPSTER_GUNVECT
|
||
;13, 14
|
||
.LONG CAN_COLLVECT,CAN_GUNVECT,LID_COLLVECT,LID_GUNVECT
|
||
;15, 16
|
||
.LONG WINDOW_COLLVECT,WINDOW_GUNVECT,DLAMP_COLLVECT,DLAMP_GUNVECT
|
||
;17, 18
|
||
.LONG BOTTLE_COLLVECT,BOTTLE_GUNVECT,WLAMP_COLLVECT,WLAMP_GUNVECT
|
||
;19, 20
|
||
.LONG 0,0,FLEASIGN_PORTAL_DAMAGE_COLLVECT,FLEASIGN_PORTAL_DAMAGE_GUNVECT
|
||
;21, 22
|
||
.LONG FLEASIGN_PORTAL_DAMAGE_COLLVECT,FLEASIGN_PORTAL_DAMAGE_GUNVECT,PHONE_COLLVECT,PHONE_GUNVECT
|
||
;23, 24
|
||
.LONG RECEIVER_COLLVECT,RECEIVER_GUNVECT,COIN_DOOR_COLLVECT,COIN_DOOR_GUNVECT
|
||
;25, 26
|
||
; .LONG CHAIRBOY_COLLVECT,CHAIRBOY_GUNVECT,PORTDOOR_COLLVECT,DUMRETS
|
||
.LONG 0,0,PORTDOOR_COLLVECT,DUMRETS
|
||
;27, 28
|
||
.LONG PALMTREETOP_COLLVECTR,PALMTREETOP_GUNVECT,0,0
|
||
;29, 30
|
||
.LONG TROG_PALM_CVECT,TROG_PALM_GUNVECT,0,0
|
||
;31, 32
|
||
.LONG XBOARD_COLLVECT,XBOARD_GUNVECT,XBOARD_COLLVECT,XBOARD_GUNVECT
|
||
|
||
LA_LOBBY_BAR_VECT_TABLE
|
||
;1, 2
|
||
.LONG 0,0,TWINDOW_COLLVECT,TWINDOW_GUNVECT
|
||
;3, 4
|
||
.LONG BAR_SECRET_COLLVECT,BAR_SECRET_GUNVECT,TRASHCAN_COLLVECT,TRASHCAN_GUNVECT
|
||
;5, 6
|
||
.LONG KERCAGE_COLLVECT,KERCAGE_GUNVECT
|
||
.LONG SIGN_PORTAL_DAMAGE_COLLVECT,SIGN_PORTAL_DAMAGE_GUNVECT
|
||
;7, 8
|
||
.LONG SIGN_PORTAL_DAMAGE_COLLVECT,SIGN_PORTAL_DAMAGE_GUNVECT,PHONE_COLLVECT,PHONE_GUNVECT
|
||
;9, 10
|
||
.LONG RECEIVER_COLLVECT,RECEIVER_GUNVECT,COIN_DOOR_COLLVECT,COIN_DOOR_GUNVECT
|
||
;11, 12
|
||
.LONG 0,0,0,0
|
||
;13, 14
|
||
.LONG 0,0,0,0
|
||
;15, 16
|
||
.LONG NEON2_COLLVECT,NEON2_GUNVECT,GITAR_COLLVECT,GITAR_GUNVECT
|
||
;17, 18
|
||
.LONG GITAR_COLLVECT,GITAR_GUNVECT,GITAR_COLLVECT,GITAR_GUNVECT
|
||
;19, 20
|
||
.LONG GITAR_COLLVECT,GITAR_GUNVECT,GITAR_COLLVECT,GITAR_GUNVECT
|
||
;21, 22
|
||
.LONG FISHTALE_COLLVECT,FISHTALE_GUNVECT,BARWALL_COLLVECT,BARWALL_GUNVECT
|
||
;23, 24
|
||
.LONG STOOL_COLLVECT,STOOL_GUNVECT,LAVA_LAMP_COLLVECT,LAVA_LAMP_GUNVECT
|
||
;25, 26
|
||
.LONG DUM_COLLVECT,METAL_GUNVECT,CTABLE_COLLVECT,CTABLE_GUNVECT
|
||
;27, 28
|
||
.LONG BOTTLE_COLLVECT,BOTTLE_GUNVECT,BOTTLE_COLLVECT,BOTTLE_GUNVECT
|
||
;29, 30
|
||
.LONG BOTTLE_COLLVECT,BOTTLE_GUNVECT,FISH_COLLVECT,FISH_GUNVECT
|
||
;31, 32
|
||
.LONG 0,0,0,0
|
||
|
||
LA_OUTSIDE2_VECT_TABLE
|
||
;1, 2
|
||
.LONG 0,0,CITY_WINDOW_COLLVECT,CITY_WINDOW_SQUARE_GUNVECT
|
||
;3, 4
|
||
.LONG CITY_WINDOW_COLLVECT,CITY_WINDOW_LONG_GUNVECT,PALMTREETOP_COLLVECTR,PALMTREETOP_GUNVECT
|
||
;5, 6
|
||
.LONG LOFTSIGNLITE_COLLVECT,LOFTSIGNLITE_GUNVECT,CITY_WINDOW_COLLVECT,CITY_WINDOW_LOFT_GUNVECT
|
||
;7, 8
|
||
.LONG 0,0,0,0
|
||
;9, 10
|
||
.LONG SKYLITE_COLLVECT,SKYLITE_GUNVECT,BED_WINDOW_COLLVECT,BED_WINDOW_GUNVECT
|
||
;11, 12
|
||
.LONG 0,0,0,0
|
||
; .LONG XBOARD_COLLVECT,XBOARD_GUNVECT,DUMPSTER_COLLVECT,DUMPSTER_GUNVECT
|
||
;13, 14
|
||
.LONG 0,0,0,0
|
||
; .LONG CAN_COLLVECT,CAN_GUNVECT,LID_COLLVECT,LID_GUNVECT
|
||
;15, 16
|
||
.LONG 0,0,0,0
|
||
;17, 18
|
||
.LONG 0,0,0,0
|
||
;19, 20
|
||
.LONG 0,0,0,0
|
||
;21, 22
|
||
.LONG 0,0,0,0
|
||
;23, 24
|
||
.LONG 0,0,0,0
|
||
;25, 26
|
||
.LONG 0,0,0,0
|
||
;27, 28
|
||
.LONG 0,0,0,0
|
||
;29, 30
|
||
.LONG 0,0,0,0
|
||
;31, 32
|
||
.LONG 0,0,0,0
|
||
|
||
.END
|
||
|