647 lines
12 KiB
NASM
647 lines
12 KiB
NASM
|
.FILE 'BOUNCERS.ASM'
|
|||
|
.TITLE 'ROBO-RAMA GAME PROGRAM'
|
|||
|
.WIDTH 132
|
|||
|
.OPTION B,D,L,T
|
|||
|
.MNOLIST
|
|||
|
|
|||
|
;
|
|||
|
; INITIATED: APRIL 26,1989
|
|||
|
; MODIFIED: !
|
|||
|
; SOFTWARE: MARK TURMELL & ROBERT ASHWORTH
|
|||
|
;
|
|||
|
; COPYRIGHT (C) 1989 WILLIAMS ELECTRONICS GAMES, INC.
|
|||
|
;
|
|||
|
;
|
|||
|
; GET THE SYSTEM STUFF
|
|||
|
|
|||
|
.INCLUDE "MPROC.EQU" ;MPROC EQUATES
|
|||
|
.INCLUDE "DISP.EQU" ;DISPLAY PROC. EQUATES
|
|||
|
.INCLUDE "\VIDEO\SYS\SYS.INC" ;Z UNIT SYSTEM EQUATES
|
|||
|
.INCLUDE "\VIDEO\SYS\MACROS.HDR" ;MACROS DEFINITIONS
|
|||
|
.INCLUDE "IMGTBL.GLO"
|
|||
|
.INCLUDE "ROBO.EQU"
|
|||
|
.INCLUDE "MARK.EQU"
|
|||
|
; .INCLUDE "\VIDEO\SYS\SND.EQU"
|
|||
|
;
|
|||
|
;SYMBOLS EXTERNALLY DEFINED
|
|||
|
;
|
|||
|
.REF RANGRAND,GETCPNT,FRANIM,DELPAL,GPALOBJ,SCRADD2
|
|||
|
.REF P1DATA,PEXPLSND,ONESND
|
|||
|
.REF ADJSTWTL
|
|||
|
;
|
|||
|
;SYMBOLS DEFINED IN THIS FILE
|
|||
|
;
|
|||
|
.DEF SPAWN_BNCRS,DELETE_ME,KILL_BOUNCER,BOBJ2A
|
|||
|
.DEF BEGIN_OBJ,GENERIC_INIT,BEGIN_OBJ2
|
|||
|
.DEF XVAL,YVAL,IMG,ZPOS,FLAGS,ID,XVEL,YVEL
|
|||
|
.DEF BOOM2,ONSCRN_BNCRS
|
|||
|
;
|
|||
|
;UNINITIALIZED RAM DEFINITIONS
|
|||
|
;
|
|||
|
.BSS BNCR_CNT,8 ;TOTAL BNCRS ON SCREEN
|
|||
|
.BSS GENERIC_INIT,7*32-16
|
|||
|
;
|
|||
|
;EQUATES FIRST ORIGINATED IN THIS FILE
|
|||
|
;
|
|||
|
XVAL .EQU GENERIC_INIT
|
|||
|
YVAL .EQU XVAL+32
|
|||
|
IMG .EQU YVAL+32
|
|||
|
ZPOS .EQU IMG+32
|
|||
|
FLAGS .EQU ZPOS+16
|
|||
|
ID .EQU FLAGS+16
|
|||
|
XVEL .EQU ID+16
|
|||
|
YVEL .EQU XVEL+32
|
|||
|
|
|||
|
BLFT .EQU 0
|
|||
|
BRGT .EQU 070H
|
|||
|
MAXBNCR .EQU 10 ;MAX NUMBER OF BNCRS ALLOWED
|
|||
|
BNCRAGE .EQU 60*60 ;MAX AGE OF BNCRS (IN TICKS)
|
|||
|
HSPEED .EQU >10000 ;PIXELS PER FIELD UPDATE
|
|||
|
VSPEED .EQU >10000 ;PIXELS PER FIELD VERTICAL
|
|||
|
NUPBND .EQU >00390000+>200000
|
|||
|
NDNBND .EQU >00DF0000->200000
|
|||
|
NLFTBND .EQU >001A0000+>300000
|
|||
|
NRGTBND .EQU >01640000->300000
|
|||
|
;
|
|||
|
;BULLETS STRUCTURE
|
|||
|
;
|
|||
|
BV .EQU 0
|
|||
|
BXO .EQU 32
|
|||
|
BYO .EQU 64
|
|||
|
BF .EQU 96
|
|||
|
;
|
|||
|
;BNCR PDATA STRUCTURE
|
|||
|
;
|
|||
|
;AGE .EQU PDATA ;WORD
|
|||
|
DIR .EQU PDATA+16 ;WORD
|
|||
|
BDELAY .EQU PDATA+32 ;WORD
|
|||
|
KILLME .EQU PDATA+48 ;WORD
|
|||
|
**************************************************************************
|
|||
|
|
|||
|
.TEXT
|
|||
|
|
|||
|
KILL_BOUNCER:
|
|||
|
MOVE *A8(OPLINK),A0,L
|
|||
|
MOVK 1,A7
|
|||
|
MOVE A7,*A0(KILLME)
|
|||
|
RETS
|
|||
|
|
|||
|
DEC_BNCR:
|
|||
|
MOVB @BNCR_CNT,A3 ;DELETE A BNCR FROM CNT
|
|||
|
DEC A3
|
|||
|
MOVB A3,@BNCR_CNT
|
|||
|
RETS
|
|||
|
|
|||
|
SPAWN_BNCRS:
|
|||
|
MOVB @BNCR_CNT,A2 ;MOVE BYTE (# GRUNTS ON SCRN) TO A2
|
|||
|
CMPI MAXBNCR,A2 ;GRUNTS MAXED OUT?
|
|||
|
JRZ BNCR_OUT ;
|
|||
|
|
|||
|
CREATE 0,BOUNCER ;START ONE BOUNCER
|
|||
|
BNCR_OUT:
|
|||
|
RETS
|
|||
|
|
|||
|
ONSCRN_BNCRS:
|
|||
|
RETS
|
|||
|
|
|||
|
; MOVK 16,A9 ;31 IS HOW MANY MAKE UP CIRCLE AROUND
|
|||
|
; ;PLAYER WALKWAY INTO ARENA
|
|||
|
; MOVE A9,@TMP
|
|||
|
;A2=# OF HULKS TO CREATE ON SCREEN
|
|||
|
OH1 PUSH A2 ;CREATE A BUNCH OF THEM
|
|||
|
CREATE BNCRPID,OBNCR
|
|||
|
PULL A2
|
|||
|
DSJNE A2,OH1
|
|||
|
RETS
|
|||
|
|
|||
|
OBNCR:
|
|||
|
;OHULK IS CALLED AT THE START OF A WAVE TO PLACE X # OF HULKS ON SCREEN
|
|||
|
;AT THE BEGINNING OF A WAVE
|
|||
|
; MOVE *A13(CFLAGS),A0
|
|||
|
; ORI 01H,A0
|
|||
|
; MOVE A0,*A13(CFLAGS),W ;HULK IS IN STANDING MODE AT FIRST
|
|||
|
; CLR A11
|
|||
|
; CALLA GET_VALID_XY ;MAKE SURE NEW HULK IS NOT
|
|||
|
;OVERLAPPING ANY EXISTING SHAPE
|
|||
|
;WHICH IS ALREADY ON SCRN AT START
|
|||
|
;A0 & A1 ARE SET UP
|
|||
|
;ADD IN OFFSETS FOR THIS PARTICULAR ARENA
|
|||
|
; MOVE @GAMSTATE,A2
|
|||
|
; CMPI INAMODE,A2
|
|||
|
; JREQ DMD
|
|||
|
; MOVE @WAVEYX,A2,L
|
|||
|
;A2=PACKED OFFSETS
|
|||
|
MOVX A2,A3
|
|||
|
SLL 16,A3
|
|||
|
ADD A3,A0 ;ADJUSTED A0 XVAL!
|
|||
|
ANDI 0FFFF0000H,A2
|
|||
|
ADD A2,A1 ;ADJUSTED A1 YVAL!
|
|||
|
|
|||
|
;DMD CALLR IH1 ;INIT HULK (BEGIN_OBJ)
|
|||
|
; CALLA BEGIN_OBJ2
|
|||
|
|
|||
|
MOVI 3,A0 ;HULK STARTS FACING RIGHT
|
|||
|
MOVE A0,*A13(DIR)
|
|||
|
|
|||
|
; CALLR SETUP_HULK ;INC CNT, SET DIR, SET DEATH FLAG, ETC
|
|||
|
; CALLR DO_DIFF
|
|||
|
; CALLR JUST_SK
|
|||
|
; CALLR GET_STAND ;HULK STANDS AND SPINS UNTIL A MATCH
|
|||
|
;THIS GETS CORRECT OIMG, OFLAGS
|
|||
|
JRUC LUP_TOP
|
|||
|
BOUNCER:
|
|||
|
;
|
|||
|
CALLR INIT_BNCR ;INITIAL BNCR PARAMS (SHAPE ETC..)
|
|||
|
CALLR SETUP_BNCR ;STUFF NECESSARY FIELD FOR INIT
|
|||
|
|
|||
|
LUP_TOP:
|
|||
|
MOVE *A13(KILLME),A0
|
|||
|
JRZ NO_DELETE
|
|||
|
|
|||
|
MOVI P1DATA,A2 ;PLAYER 1 SCORE SELECT
|
|||
|
MOVI >25,A1 ;AMOUNT OF SCORE TO ADD PER BNCR
|
|||
|
CALLA SCRADD2 ;DO IT!
|
|||
|
|
|||
|
CALLR DELETE_ME
|
|||
|
CALLR DEC_BNCR
|
|||
|
CREATE 0,BNCR_EXP
|
|||
|
DIE
|
|||
|
|
|||
|
NO_DELETE:
|
|||
|
; AGE IS NOT ZERO!
|
|||
|
;DO WE NEED TO FIRE HORIZONTALLY AT PLAYER???
|
|||
|
MOVE *A13(BDELAY),A1
|
|||
|
JRZ MAYBE
|
|||
|
DEC A1
|
|||
|
MOVE A1,*A13(BDELAY)
|
|||
|
JRUC NO ;BR=DON'T EVEN THINK ABOUT SHOOTING
|
|||
|
|
|||
|
MAYBE:
|
|||
|
PUSH A8 ;SAVE OBJECT POINTER
|
|||
|
; MOVE @KEEP_TORSO_PTR,A8,L
|
|||
|
MOVE *A8(OXPOS),A7 ;XPOS OF PLAYER FOR LATER CHECK
|
|||
|
CALLA GETCPNT
|
|||
|
PULL A8 ;RESTORE BOUNCER POINTER
|
|||
|
SRL 16,A1
|
|||
|
SUBI 10,A1 ;A1 = CENTER POINT OF PLAYER
|
|||
|
|
|||
|
MOVE *A8(OYPOS),A5 ;BOUNCER Y POSITION
|
|||
|
CMP A5,A1
|
|||
|
JRLT NO ;BR=BOUNCER IS ABOVE PLAYER
|
|||
|
ADDI 20,A5
|
|||
|
CMP A5,A1
|
|||
|
JRGT NO ;BR=BOUNCER IS BELOW PLAYER
|
|||
|
; A HIT
|
|||
|
; START SPIN PRIOR TO FIRE
|
|||
|
MOVI 18,A1 ;DELAY BEFORE THIS BOUNCER FIRES AGAIN
|
|||
|
MOVE A1,*A13(BDELAY)
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A8(OXVEL),L
|
|||
|
MOVE A0,*A8(OYVEL),L
|
|||
|
|
|||
|
MOVE *A13(DIR),A4
|
|||
|
MOVE *A8(OXPOS),A6 ;X POSITION OF BOUNCER
|
|||
|
CMP A6,A7 ;A7 IS PLAYER OXPOS, A6 IS BOUNCER
|
|||
|
JRLT SPLFT ;BR=BOUNCER WILL SPIN TO LEFT TO FIRE
|
|||
|
; BOUNCER WILL SPIN TO RIGHT
|
|||
|
; NEED TO CHANGE A9 TO POINT TO APPROPRIATE FRANIM TBL (1 OF 2!)
|
|||
|
; WE ALSO NEED TO ZERO VELOCITIES
|
|||
|
MOVI UP_RGT,A9
|
|||
|
CMPI 2,A4
|
|||
|
JREQ STUFFA9
|
|||
|
MOVI DN_RGT,A9
|
|||
|
JRUC STUFFA9
|
|||
|
SPLFT: MOVI UP_LFT,A9
|
|||
|
CMPI 2,A4
|
|||
|
JREQ STUFFA9
|
|||
|
MOVI DN_LFT,A9
|
|||
|
STUFFA9:
|
|||
|
MOVK 1,A1
|
|||
|
JRUC ANI_BNCR ;SKIP BOUNDARY CHECK
|
|||
|
NO:
|
|||
|
;COMPARE FOR TOP/BOT BOUNDARIES
|
|||
|
MOVE *A8(OYVAL),A5,L ;Y POSITION OF BOUNCER
|
|||
|
MOVE *A13(DIR),A1 ;GET GRUNT DIRECTION
|
|||
|
CMPI 2,A1 ;IS HE MOVING UP??
|
|||
|
JRNE CHKDN ;BR=HE IS FACING DOWN
|
|||
|
; CMPI UPBND,A5
|
|||
|
JRHI ANI_BNCR
|
|||
|
JRUC DO_FLP
|
|||
|
CHKDN:
|
|||
|
; CMPI DNBND,A5 ;GET DOWN BOUNDARY
|
|||
|
JRLO ANI_BNCR ;BR=PLAYER LOWER THAN BOUNDARY
|
|||
|
DO_FLP:
|
|||
|
;FLIP_DIR REVERSES PLUS STARTS NEW FRANIM LIST (A9)
|
|||
|
CALLR FLIP_DIR ;REVERSE HIS DIRECTION
|
|||
|
MOVK 1,A1
|
|||
|
JRUC ANI_SPIN ;ANIM WILL LOOP TIL DONE WITH TABLE
|
|||
|
|
|||
|
ANI_BNCR:
|
|||
|
CLR A1 ;FOR NORMAL WALKING, WE WANT FRANIM
|
|||
|
;TO COME BACK AFTER EACH STEP SO THAT
|
|||
|
;WE CAN BE CHECKING TO SEE IF WE NEED
|
|||
|
;TO SHOOT OR FOR BOUNDARIES!
|
|||
|
;OR!!!
|
|||
|
ANI_SPIN: ;ENTRY FROM SET SPIN (NONSTOP FRANIM)
|
|||
|
JSRP FRANIM
|
|||
|
|
|||
|
JRNC CHECK_NEXT ;BR=NOT AT END OF SCRIPT YET
|
|||
|
CALLR STF4WLK ;RESTORE WALKING SCRIPT
|
|||
|
;
|
|||
|
CHECK_NEXT: ;GET NEXT TABLE ENTRY
|
|||
|
JRUC LUP_TOP
|
|||
|
;
|
|||
|
SETUP_BNCR:
|
|||
|
|
|||
|
MOVI BNCRAGE,A3 ;SET AGE LIMIT OF OBJECT
|
|||
|
; MOVE A3,*A13(AGE)
|
|||
|
|
|||
|
CALLR GET_DIR ;INITIAL DIRECTION OF PLAYER
|
|||
|
CALLR STF4WLK ;STUFF A9 FOR WALKING DIR
|
|||
|
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A13(BDELAY)
|
|||
|
MOVE A0,*A13(KILLME)
|
|||
|
|
|||
|
; UPDATE BNCR COUNT
|
|||
|
MOVB @BNCR_CNT,A0
|
|||
|
INC A0
|
|||
|
MOVB A0,@BNCR_CNT
|
|||
|
RETS
|
|||
|
|
|||
|
FLIP_DIR:
|
|||
|
MOVE *A13(DIR),A1 ;REVERSE DIRECTION FROM PREVIOUS
|
|||
|
XORI 1,A1
|
|||
|
MOVE A1,*A13(DIR)
|
|||
|
MOVI UP_DN,A9
|
|||
|
CMPI 3,A1
|
|||
|
JREQ SETPTRA
|
|||
|
MOVI DN_UP,A9
|
|||
|
|
|||
|
SETPTRA:
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A8(OXVEL),L
|
|||
|
MOVE A0,*A8(OYVEL),L
|
|||
|
RETS
|
|||
|
|
|||
|
STF4WLK:
|
|||
|
MOVI T_PWK_UP,A9 ;ASSUME UP
|
|||
|
MOVE *A13(DIR),A0
|
|||
|
CMPI 2,A0
|
|||
|
JREQ SETPTR
|
|||
|
MOVI T_PWK_DN,A9
|
|||
|
SETPTR:
|
|||
|
; START HIM WALKING IN PROPER DIR WITH VELOCITY
|
|||
|
; DIR IS IN A0
|
|||
|
SLL 5,A0 ;*32 FOR EACH TABLE ENTRY
|
|||
|
MOVI X1_OFFSET,A1,L ;BASE TABLE ADDRESS
|
|||
|
ADD A0,A1 ;ADJUSTED OFFSET FOR TABLE ENTRY
|
|||
|
MOVE *A1,A3,L ;A3 CONTAINS CORRECT X VELOCITY
|
|||
|
|
|||
|
MOVI Y1_OFFSET,A1,L ;BASE TABLE ADDRESS
|
|||
|
ADD A0,A1 ;ADJUSTED OFFSET FOR TABLE ENTRY
|
|||
|
MOVE *A1,A4,L ;A4 CONTAINS CORRECT Y VELOCITY
|
|||
|
|
|||
|
MOVE A3,*A8(OXVEL),L ;UPDATE X,Y VELOCITIES
|
|||
|
MOVE A4,*A8(OYVEL),L
|
|||
|
RETS
|
|||
|
|
|||
|
GET_DIR:
|
|||
|
; GET DIR 3 OR 4 AND STUFF IT
|
|||
|
MOVI 3,B0 ;CHOOSE RANDOM INITIAL DIRECTION
|
|||
|
MOVI 4,B1 ;EITHER UP OR DOWN (3 OR 4)
|
|||
|
CALLA RANGRAND
|
|||
|
DEC A0
|
|||
|
MOVE A0,*A13(DIR)
|
|||
|
RETS ;ROTATE HIS BODY TO MATCH DIRECTION
|
|||
|
|
|||
|
DELETE_ME:
|
|||
|
;
|
|||
|
; DELETE OBJECT FROM OBJLST
|
|||
|
;
|
|||
|
MOVE A8,A0
|
|||
|
CALLA DELPAL
|
|||
|
CALLA DELOBJ
|
|||
|
RETS
|
|||
|
|
|||
|
INIT_BNCR:
|
|||
|
;INITIAL BNCR POSITION,IMAGE SHAPE,AGE ETC....
|
|||
|
; DO STFOBF AND GET A0 PNTR
|
|||
|
;RANDOM POSITIONING FOR BNCRS X/Y WITHIN SCREEN BOUNDARIES
|
|||
|
; MOVE A0,A8
|
|||
|
; MOVI UPBND,B0
|
|||
|
; MOVI DNBND,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,A1
|
|||
|
;A1=YVAL
|
|||
|
; MOVI LFTBND,B0
|
|||
|
; MOVI RGTBND,B1
|
|||
|
CALLA RANGRAND
|
|||
|
;A0=XVAL
|
|||
|
MOVI CLSENMY|TYPBNCR,A5
|
|||
|
;A5=ID
|
|||
|
MOVI DMAWNZ,A4 ;DRAW NON-ZERO BITS
|
|||
|
;A4=FLAGS
|
|||
|
MOVI T12ORN1,A2 ;BNCR IMAGE
|
|||
|
;A2=IMG
|
|||
|
MOVI 159,A3
|
|||
|
;A3=ZPOS
|
|||
|
CLR A6
|
|||
|
;A6=XVEL
|
|||
|
CLR A7
|
|||
|
;A7=YVEL
|
|||
|
CALLA BEGIN_OBJ
|
|||
|
RETS
|
|||
|
|
|||
|
BNCR_EXP:
|
|||
|
CALLR BEGIN_EXP
|
|||
|
|
|||
|
MOVI PEXPLSND,A0
|
|||
|
CALLA ONESND
|
|||
|
|
|||
|
MOVI BOOM2,A9
|
|||
|
MOVK 1,A1
|
|||
|
JSRP FRANIM
|
|||
|
CALLR DELETE_ME
|
|||
|
DIE
|
|||
|
|
|||
|
BEGIN_EXP:
|
|||
|
MOVE *A8(OXVAL),A0,L
|
|||
|
;A0=XVAL
|
|||
|
MOVE *A8(OYVAL),A1,L
|
|||
|
;A1=YVAL
|
|||
|
MOVI CLSNEUT|TYPNEUT,A5
|
|||
|
;A5=ID
|
|||
|
MOVI DMAWNZ|M_NOCOLL,A4 ;DRAW NON-ZERO BITS
|
|||
|
;A4=FLAGS
|
|||
|
MOVI EXPb1,A2
|
|||
|
;A2=IMG
|
|||
|
MOVI 159,A3
|
|||
|
;A3=ZPOS
|
|||
|
CLR A6
|
|||
|
;A6=XVEL
|
|||
|
CLR A7
|
|||
|
;A7=YVEL
|
|||
|
;PUT ON ANOTHER LIST
|
|||
|
CALLA BEGIN_OBJ
|
|||
|
RETS
|
|||
|
|
|||
|
FLAMES:
|
|||
|
CALLR BEGIN_BLT
|
|||
|
;
|
|||
|
FLAMES1:
|
|||
|
; TEST FOR WALL BORDERS
|
|||
|
MOVI [>3C,>1A],A2
|
|||
|
MOVI [>EA,>178],A3
|
|||
|
CALLA SCRTSTG
|
|||
|
JRZ FLAMES2
|
|||
|
; DEL OBJ
|
|||
|
; NOW DELETE OBJECT FROM OBJLST
|
|||
|
CALLR DELETE_ME
|
|||
|
DIE
|
|||
|
|
|||
|
|
|||
|
FLAMES2:
|
|||
|
SLEEP 1
|
|||
|
JRUC FLAMES1
|
|||
|
|
|||
|
BEGIN_BLT:
|
|||
|
; NOW STUFF CORRECT BULLET AND CORRECT FLIP INFO
|
|||
|
; A10 = 0 FOR LEFT BULLET OR 112 FOR RGT BULLET
|
|||
|
|
|||
|
MOVI BINFO,A0
|
|||
|
ADD A10,A0
|
|||
|
MOVE *A0(BV),A6,L
|
|||
|
;A6=XVEL
|
|||
|
MOVE *A0(BXO),A2,L
|
|||
|
MOVE *A0(BYO),A7,L
|
|||
|
MOVE *A0(BF),A4
|
|||
|
;A4=FLAGS
|
|||
|
MOVE *A8(OXVAL),A0,L
|
|||
|
ADD A2,A0
|
|||
|
;A0=XVAL
|
|||
|
MOVE *A8(OYVAL),A1,L
|
|||
|
ADD A7,A1
|
|||
|
;A1=YVAL
|
|||
|
MOVI CLSENMY|TYPBNBL,A5 ;BOUNCER BULLET ID
|
|||
|
;A5=ID
|
|||
|
MOVI BULLETSIDE,A2
|
|||
|
;A2=IMG
|
|||
|
MOVI 159,A3
|
|||
|
;A3=ZPOS
|
|||
|
CLR A7
|
|||
|
;A7=YVEL
|
|||
|
CALLA BEGIN_OBJ2
|
|||
|
RETS
|
|||
|
;
|
|||
|
BEGIN_OBJ:
|
|||
|
;MAKE MORE EFFIECIENT
|
|||
|
MOVE A0,@XVAL,L
|
|||
|
MOVE A1,@YVAL,L
|
|||
|
MOVE A2,@IMG,L
|
|||
|
MOVE A3,@ZPOS
|
|||
|
MOVE A4,@FLAGS
|
|||
|
MOVE A5,@ID
|
|||
|
MOVE A6,@XVEL,L
|
|||
|
MOVE A7,@YVEL,L
|
|||
|
MOVI GENERIC_INIT,A14 ;DEFINE OBJECT PARAMS
|
|||
|
|
|||
|
CALLA GPALOBJ ;ALLOCATE A COLOR PALETTE
|
|||
|
CALLA STFOBJ ;STUFF OBJECT DATA
|
|||
|
MOVE A13,*A0(OPLINK),L
|
|||
|
CALLA ADJSTWTL ;PUT US IN THE WORLD
|
|||
|
CALLA INSOBJ ;INSERT OBJECT INTO LIST
|
|||
|
MOVE A0,A8
|
|||
|
RETS
|
|||
|
;
|
|||
|
BEGIN_OBJ2:
|
|||
|
MOVE A0,@XVAL,L
|
|||
|
MOVE A1,@YVAL,L
|
|||
|
MOVE A2,@IMG,L
|
|||
|
MOVE A3,@ZPOS
|
|||
|
MOVE A4,@FLAGS
|
|||
|
MOVE A5,@ID
|
|||
|
MOVE A6,@XVEL,L
|
|||
|
MOVE A7,@YVEL,L
|
|||
|
BOBJ2A:
|
|||
|
MOVI GENERIC_INIT,A14 ;DEFINE OBJECT PARAMS
|
|||
|
|
|||
|
CALLA GPALOBJ ;ALLOCATE A COLOR PALETTE
|
|||
|
CALLA STFOBJ ;STUFF OBJECT DATA
|
|||
|
MOVE A13,*A0(OPLINK),L
|
|||
|
CALLA INSOBJ ;INSERT OBJECT INTO LIST
|
|||
|
MOVE A0,A8
|
|||
|
RETS
|
|||
|
BINFO:
|
|||
|
; .LONG XVEL, .LONG XOFFSET, .LONG YOFFSET, .WORD FLAGS
|
|||
|
|
|||
|
.LONG -060000H,080000H,090000H
|
|||
|
.WORD DMAWNZ
|
|||
|
.LONG 060000H,0230000H,090000H
|
|||
|
.WORD DMAWNZ+M_FLIPH
|
|||
|
;
|
|||
|
X1_OFFSET:
|
|||
|
.LONG -HSPEED,HSPEED,0,0
|
|||
|
;
|
|||
|
Y1_OFFSET:
|
|||
|
.LONG 0,0,-VSPEED,VSPEED
|
|||
|
;
|
|||
|
;BOUNCER WALK ANIMATION TABLES
|
|||
|
;
|
|||
|
T_PWK_UP:
|
|||
|
.LONG T12ORN1
|
|||
|
.WORD FLIPBITS|6,0
|
|||
|
.LONG T12ORN2
|
|||
|
.WORD 6
|
|||
|
.LONG T12ORN3
|
|||
|
.WORD 6
|
|||
|
.LONG T12ORN4
|
|||
|
.WORD 6
|
|||
|
.LONG T12ORN5
|
|||
|
.WORD 6
|
|||
|
.LONG 0
|
|||
|
T_PWK_DN:
|
|||
|
.LONG T12ORN1
|
|||
|
.WORD FLIPBITS|6,(M_FLIPV)
|
|||
|
.LONG T12ORN2
|
|||
|
.WORD 6
|
|||
|
;FLIPBITS|6,(M_FLIPV)
|
|||
|
.LONG T12ORN3
|
|||
|
.WORD 6
|
|||
|
;FLIPBITS|6,(M_FLIPV)
|
|||
|
.LONG T12ORN4
|
|||
|
.WORD 6
|
|||
|
;FLIPBITS|6,(M_FLIPV)
|
|||
|
.LONG T12ORN5
|
|||
|
.WORD 6
|
|||
|
;FLIPBITS|6,(M_FLIPV)
|
|||
|
.LONG 0
|
|||
|
;
|
|||
|
;BOUNCER ROTATE ANIMATIONS TABLE
|
|||
|
;
|
|||
|
UP_LFT:
|
|||
|
.LONG T10ORN1
|
|||
|
.WORD FLIPBITS|4,0
|
|||
|
.LONG T3OSH1
|
|||
|
.WORD FLIPBITS|18,(M_FLIPH)
|
|||
|
.LONG T3OSH2
|
|||
|
.WORD SPAWNP|FLIPBITS|8
|
|||
|
.WORD BLFT,0,0
|
|||
|
.LONG FLAMES
|
|||
|
.WORD M_FLIPH
|
|||
|
.LONG T3OSH1
|
|||
|
.WORD FLIPBITS|18,(M_FLIPH)
|
|||
|
.LONG T3OSH2
|
|||
|
.WORD SPAWNP|FLIPBITS|8
|
|||
|
.WORD BLFT,0,0
|
|||
|
.LONG FLAMES
|
|||
|
.WORD M_FLIPH
|
|||
|
.LONG T10ORN1
|
|||
|
.WORD FLIPBITS|4,0
|
|||
|
.LONG 0
|
|||
|
;
|
|||
|
UP_RGT:
|
|||
|
.LONG T2ORN1
|
|||
|
.WORD FLIPBITS|4,0
|
|||
|
.LONG T3OSH1
|
|||
|
.WORD FLIPBITS|18,0
|
|||
|
.LONG T3OSH2
|
|||
|
.WORD SPAWNP|8
|
|||
|
.WORD BRGT,0,0
|
|||
|
.LONG FLAMES
|
|||
|
.LONG T3OSH1
|
|||
|
.WORD FLIPBITS|18,0
|
|||
|
.LONG T3OSH2
|
|||
|
.WORD SPAWNP|8
|
|||
|
.WORD BRGT,0,0
|
|||
|
.LONG FLAMES
|
|||
|
.LONG T2ORN1
|
|||
|
.WORD FLIPBITS|4,0
|
|||
|
.LONG 0
|
|||
|
;
|
|||
|
DN_LFT:
|
|||
|
.LONG T10ORN1
|
|||
|
.WORD FLIPBITS|4,(M_FLIPV)
|
|||
|
.LONG T3OSH1
|
|||
|
.WORD FLIPBITS|18,(M_FLIPH)
|
|||
|
.LONG T3OSH2
|
|||
|
.WORD SPAWNP|FLIPBITS|8
|
|||
|
.WORD BLFT,0,0
|
|||
|
.LONG FLAMES
|
|||
|
.WORD M_FLIPH
|
|||
|
.LONG T3OSH1
|
|||
|
.WORD FLIPBITS|18,(M_FLIPH)
|
|||
|
.LONG T3OSH2
|
|||
|
.WORD SPAWNP|FLIPBITS|8
|
|||
|
.WORD BLFT,0,0
|
|||
|
.LONG FLAMES
|
|||
|
.WORD M_FLIPH
|
|||
|
.LONG T10ORN1
|
|||
|
.WORD FLIPBITS|4,(M_FLIPV)
|
|||
|
.LONG 0
|
|||
|
;
|
|||
|
DN_RGT:
|
|||
|
.LONG T2ORN1
|
|||
|
.WORD FLIPBITS|4,(M_FLIPV)
|
|||
|
.LONG T3OSH1
|
|||
|
.WORD FLIPBITS|18,0
|
|||
|
.LONG T3OSH2
|
|||
|
.WORD SPAWNP|8
|
|||
|
.WORD BRGT,0,0
|
|||
|
.LONG FLAMES
|
|||
|
.LONG T3OSH1
|
|||
|
.WORD FLIPBITS|18,0
|
|||
|
.LONG T3OSH2
|
|||
|
.WORD SPAWNP|8
|
|||
|
.WORD BRGT,0,0
|
|||
|
.LONG FLAMES
|
|||
|
.LONG T2ORN1
|
|||
|
.WORD FLIPBITS|4,(M_FLIPV)
|
|||
|
.LONG 0
|
|||
|
;
|
|||
|
UP_DN:
|
|||
|
.LONG T2ORN1
|
|||
|
.WORD FLIPBITS|4,0
|
|||
|
.LONG T3ORN1
|
|||
|
.WORD FLIPBITS|4,0
|
|||
|
.LONG T2ORN1
|
|||
|
.WORD FLIPBITS|4,(M_FLIPV)
|
|||
|
.LONG 0
|
|||
|
;
|
|||
|
DN_UP:
|
|||
|
.LONG T10ORN1
|
|||
|
.WORD FLIPBITS|4,(M_FLIPV)
|
|||
|
.LONG T3ORN1
|
|||
|
.WORD FLIPBITS|4,(M_FLIPH)
|
|||
|
.LONG T10ORN1
|
|||
|
.WORD FLIPBITS|4,0
|
|||
|
.LONG 0
|
|||
|
|
|||
|
BOOM2:
|
|||
|
.LONG EXPb1
|
|||
|
.WORD 3
|
|||
|
.LONG EXPb2
|
|||
|
.WORD 3
|
|||
|
.LONG EXPb3
|
|||
|
.WORD 4
|
|||
|
.LONG EXPb4
|
|||
|
.WORD 4
|
|||
|
.LONG EXPb5
|
|||
|
.WORD 4
|
|||
|
.LONG EXPb6
|
|||
|
.WORD 4
|
|||
|
.LONG EXPb7
|
|||
|
.WORD 5
|
|||
|
.LONG EXPb8
|
|||
|
.WORD 5
|
|||
|
.LONG EXPb9
|
|||
|
.WORD 5
|
|||
|
.LONG 0
|
|||
|
|
|||
|
|
|||
|
|
|||
|
.END
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|