4524 lines
75 KiB
NASM
4524 lines
75 KiB
NASM
.FILE 'MUTOID.ASM'
|
||
.TITLE 'ROBO-RAMA GAME PROGRAM'
|
||
.WIDTH 132
|
||
.OPTION B,D,L,T
|
||
.MNOLIST
|
||
|
||
|
||
;CHANGE TO RED PAL WHEN DAMAGED
|
||
|
||
;
|
||
; INITIATED: APRIL 26,1989
|
||
; MODIFIED: !
|
||
; SOFTWARE: MARK TURMELL
|
||
;
|
||
; 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 "MUTEXP.TBL"
|
||
.INCLUDE "MAC2.ASM" ;MACRO 2 DEFINITIONS
|
||
.INCLUDE "AUDIT.EQU"
|
||
|
||
;
|
||
;SOUND HEADERS USED HERE
|
||
;
|
||
.REF MBANG,BUBL,EXP3,YAMOFF,EXP3HI,LAZSND,VICMSC,EXP3HIA
|
||
.REF AWWSND,EESND,ONOSND,WPWPSND,WPSSND,NOWAY,OUCH,CROWD1
|
||
.REF MCSPK7
|
||
.REF AWWSND2,SOUNDSUP,GOGO,BINGO,MCSPK4,MCSPK8,CIRCUIT
|
||
|
||
;
|
||
;SYMBOLS EXTERNALLY DEFINED
|
||
;
|
||
.REF CLNPAL,WAVEYX,CHKFREE,O_ITEMS2,BAD0,GET_ADJ
|
||
.REF EXPTLXY,EXPLRXY,DEXIT,BOSSON,GAMSTATE,ENDON,BOOM3
|
||
.REF GPALOBJ,TTORSO,FRANIM,RANGRAND,SHAKER,XYSKOBJ,CVRT
|
||
.REF GETHDR,RANDPER,PLYROBJS,STATUS,SHK_ON,NEWV
|
||
.REF KP_TS,HALT,PCNT,FLASHME,OBJOFF,OBJON,ARMOFF
|
||
.REF SCRTSTG,BOOM2,XVEL,YVEL,P1DATA,P2DATA,SCRADD2
|
||
.REF ARMOFF2,ADDPCS2,OVALBLD,CLUSTER,KILL_F2_NO,SCRTST
|
||
;
|
||
;SYMBOLS DEFINED IN THIS FILE
|
||
;
|
||
.DEF O_MUT,TOID_ON,KIL_SNK,BOOMN,MARM6A,DOSHK0,MUTPTR
|
||
.DEF MUT_HIT,EXP_BULL,EXP_BULL2,GETSPK,MCON
|
||
;
|
||
;UNINITIALIZED RAM DEFINITIONS
|
||
;
|
||
.BSS MCON,16
|
||
.BSS KPPLYR,32
|
||
.BSS SNDCNT,16
|
||
.BSS POPFLG,8
|
||
.BSS POP,8
|
||
.BSS DMGSK,16
|
||
.BSS DMGPNT,8
|
||
.BSS DMG,16
|
||
.BSS KPA10,8
|
||
.BSS PLYRAD,8
|
||
.BSS INAIR,8
|
||
.BSS FISTDN,8
|
||
.BSS MEMAD,16
|
||
.BSS MEROAR,16
|
||
.BSS TOTLZRS,8
|
||
.BSS HEADV,8
|
||
.BSS SKVW,8
|
||
.BSS SCNTR,8
|
||
.BSS UPDT,16
|
||
.BSS MDIR,8
|
||
.BSS TIMES,8
|
||
.BSS PLS,8 ;SLEEP CNTR USED FOR BOTH FAST AND SLOW POUND
|
||
.BSS PRS,8
|
||
.BSS FISTLP,32
|
||
.BSS FISTRP,32
|
||
.BSS PNDRP,32
|
||
.BSS PNDLP,32
|
||
.BSS POSEL,32
|
||
.BSS POSER,32
|
||
.BSS FPNDRP,32
|
||
.BSS FPNDLP,32
|
||
.BSS TOID_ON,8
|
||
.BSS TRDSLP,8
|
||
.BSS TRDFTRP,32
|
||
.BSS TRDFTLP,32
|
||
.BSS TRDSDLP,32
|
||
.BSS TRDSDRP,32
|
||
.BSS MACTION,8
|
||
.BSS MTIME,16
|
||
.BSS KP_BELL,32
|
||
.BSS SNKOUT,8
|
||
.BSS MUTPTR,32
|
||
;
|
||
;EQUATES FOR THIS FILE
|
||
;
|
||
DNYVEL .EQU 0E000H
|
||
DNYVEL2 .EQU 01A000H ;01C000H
|
||
UPYVEL .EQU -09000H
|
||
UPYVEL2 .EQU -01A000H ;-01C000H
|
||
;
|
||
;BEAM DATA STRUCTURE
|
||
;
|
||
PCS .EQU PDATA ;UHB TIMES TO LAY THIS BEAM DOWN
|
||
SLP .EQU PDATA+8
|
||
;
|
||
;MUTOID DATA STRUCTURE
|
||
;
|
||
TNKL .EQU PDATA ;UHL TANK LEFT PTR
|
||
TNKR .EQU PDATA+32 ;UHL TANK RGT PTR
|
||
TRSL .EQU PDATA+64 ;UHL TORSO LEFT PTR
|
||
TRSR .EQU PDATA+96 ;UHL TORSO RGT PTR
|
||
ARML .EQU PDATA+128 ;UHL ARM LEFT PTR
|
||
ARMR .EQU PDATA+160 ;UHL ARM RGT PTR
|
||
TRDLF .EQU PDATA+192 ;UHL TANK LEFT/FRONT TREAD
|
||
TRDRF .EQU PDATA+224 ;UHL TANK RGT/FRONT TREAD
|
||
TRDLS .EQU PDATA+256 ;UHL TANK LEFT/SIDE TREAD
|
||
TRDRS .EQU PDATA+288 ;UHL TANK RGT/SIDE TREAD
|
||
SHADR .EQU PDATA+320 ;UHL SHADOW ON RIGHT SIDE OF TANK
|
||
SHADF .EQU PDATA+352 ;UHL SHADOW IN FRONT OF TANK
|
||
MHEAD .EQU PDATA+384 ;UHL HEAD PTR
|
||
;
|
||
MAXPCS .EQU 10
|
||
LSTPC .EQU MAXPCS-1
|
||
;
|
||
;DATA STRUCTURE OF MASTER PIECE POINTER
|
||
;
|
||
BLDVW .EQU PDATA ;UHB BLADE VIEW 0-3
|
||
CDELAY .EQU PDATA+8 ;UHB DELAY BEFORE UPDATING
|
||
DLY .EQU PDATA+16 ;UHL DLY VEL UPDATE FOR THIS CNT
|
||
GDIE .EQU PDATA+48 ;UHB GONNA DIE FLAG
|
||
SKTM .EQU PDATA+56 ;UHW
|
||
SKHITS .EQU PDATA+72 ;UHB
|
||
;
|
||
;UNINITIALIZED RAM DEFINITIONS
|
||
;
|
||
.BSS OOF,16
|
||
.BSS CHEEK,16
|
||
.BSS TRAM1,32*MAXPCS+32
|
||
.BSS SCRL,8
|
||
.BSS TRAM2,32*MAXPCS
|
||
.TEXT
|
||
;
|
||
O_MUT
|
||
CREATE DUM_ID,MUTOID
|
||
RETS
|
||
OCH SLEEP 23
|
||
MOVI OUCH,A0
|
||
MOVE @MCON,A1
|
||
JRZ OCH1
|
||
MOVI MCSPK7,A0
|
||
OCH1
|
||
CALLA ONESND
|
||
DIE
|
||
MUTOID:
|
||
;SHAKE SCREEN
|
||
CLR A1
|
||
MOVE @CIRCUIT,A0
|
||
CMPI 2,A0
|
||
JRNZ JJ1
|
||
MOVK 1,A1
|
||
JJ1 MOVE A1,@MCON
|
||
MOVI EXP3HI,A0
|
||
CALLA ONESND
|
||
CALLR DOSHK0
|
||
SLEEP 5
|
||
CALLR DOSHK0
|
||
SLEEP 5
|
||
MOVI EXP3HI,A0
|
||
CALLA ONESND
|
||
CALLR DOSHK0
|
||
SLEEP 5
|
||
CALLR DOSHK0
|
||
MOVI EXP3HI,A0
|
||
CALLA ONESND
|
||
SLEEP 5
|
||
CALLR DOSHK0
|
||
CREATE 0,OCH
|
||
MOVE @GAMSTATE,A0,W
|
||
MOVI 300+400-90+180,A9
|
||
CMPI INAMODE,A0
|
||
JRNZ MD1
|
||
;NO WAY SOUND CALL
|
||
CLR A0
|
||
MOVE A0,@SOUNDSUP
|
||
;SOUNDS OFF IN DEMO
|
||
ADJUST ADJMUSIC ;GET MUSIC ON OFF FOR DEMO
|
||
MOVE A0,A0
|
||
JRNZ NONO
|
||
MOVI NOWAY,A0
|
||
CALLA ONESND
|
||
NONO MOVI 0FDH,A9
|
||
MOVK 1,A0
|
||
MOVE A0,@SOUNDSUP
|
||
MD1
|
||
MOVI 0FFH,A0
|
||
MOVB A0,@KP_TS
|
||
SLEEP 1
|
||
DSJS A9,MD1
|
||
|
||
; MOVI DLSTZ,A1
|
||
; CALLA UNGET
|
||
CALLA CLNPAL
|
||
SLEEP 1
|
||
|
||
;TURN ON ALL PIECES
|
||
MOVK 13,A9
|
||
TP MOVE A9,A0
|
||
SLL 5,A0
|
||
MOVE @MCON,A1
|
||
JRZ NOMC
|
||
ADDI MCLIST,A0
|
||
JRUC MC
|
||
NOMC ADDI ONLIST,A0
|
||
MC MOVE *A0,A14,L
|
||
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
|
||
MOVI 173,A11 ;X
|
||
MOVI -70,A10 ;Y
|
||
MOVE A10,*A8(OYPOS),W
|
||
MOVE A11,*A8(OXPOS),W
|
||
CALLA ADJSTWTL
|
||
MOVE *A8(OPAL),A0,L
|
||
ANDI 0FFFFH,A0
|
||
MOVE A0,*A8(OPAL),L
|
||
MOVE A9,A0
|
||
DEC A0
|
||
SLL 5,A0
|
||
ADD A13,A0
|
||
ADDI TNKL,A0
|
||
MOVE A8,*A0,L
|
||
DEC A9
|
||
JRNZ TP
|
||
;OBJECTS ALL ON
|
||
MOVB A9,@TOTLZRS
|
||
MOVE A9,@DMGPNT
|
||
MOVE A9,@DMG
|
||
MOVI 150,A9 ;200 ;FIRST LEVEL OF DAMAGE TO GET TO.
|
||
MOVE A9,@DMGSK
|
||
MOVK 1,A0
|
||
MOVB A0,@TOID_ON
|
||
MOVB A0,@BOSSON
|
||
MOVE A13,@MUTPTR,L
|
||
|
||
MOVE *A13(TNKL),A8,L
|
||
MOVE A13,A10
|
||
CLR A9 ;TORSO ON LEFT OF TANK
|
||
CREATE TNKPID,TTORSO
|
||
MOVE A13,A10
|
||
MOVK 1,A9
|
||
CREATE TNKPID,TTORSO
|
||
CREATE BONPID,BELLY
|
||
MOVE *A13(MHEAD),A9,L
|
||
CREATE BONPID,DO_HEAD
|
||
CREATE BONPID,SKPLYR
|
||
CREATE BONPID,GETDOWN
|
||
CLR A0 ;ROLL IN FROM DOOR
|
||
CALLA GET_ST ;SET INITIAL ACTION
|
||
|
||
SLEEP 3
|
||
TOID_TOP
|
||
MOVE @HALT,A0
|
||
JRZ TT2
|
||
; CLR A0
|
||
; MOVE A0,*A8(OXVEL),L
|
||
; MOVE A0,*A8(OYVEL),L
|
||
; CALLR MOD_VELS
|
||
CALLR LINE_UP ;ADJUST ALL PARTS TO MATCH TANK LEFT
|
||
SLEEP 1
|
||
JRUC TOID_TOP
|
||
TT2
|
||
CALLR LINE_UP ;ADJUST ALL PARTS TO MATCH TANK LEFT
|
||
CALLR MV_TNK
|
||
MOVE A8,*A13(TNKL),L
|
||
SLEEP 1
|
||
JRUC TOID_TOP
|
||
|
||
GETDOWN
|
||
MOVI 180,A9
|
||
GETD SLEEP 1
|
||
MOVE @HALT,A0
|
||
JRNZ GETD
|
||
MOVE @MUTPTR,A1,L
|
||
MOVE *A1(TNKL),A8,L
|
||
MOVI DNYVEL,A0
|
||
MOVE A0,*A8(OYVEL),L
|
||
DSJ A9,GETD
|
||
DIE
|
||
|
||
SKPLYR
|
||
SLEEP 24*60
|
||
MOVE @HALT,A0
|
||
JRNZ SKPLYR
|
||
SKTP
|
||
;MAYBE JERK TOWARD PLAYER
|
||
MOVE @PLYROBJS,A0,L
|
||
MOVB @PCNT,A1
|
||
ANDI 1,A1
|
||
JREQ COP1
|
||
MOVE @PLYROBJS+32,A0,L
|
||
COP1 MOVE @MUTPTR,A1,L
|
||
MOVE *A1(TNKL),A8,L
|
||
CALLA PLTLINE
|
||
MOVE A5,A9 ;X
|
||
MOVE A6,A10 ;Y
|
||
;SHAKE MUTOID MAN
|
||
CREATE BONPID,XYADJ
|
||
MOVI 30,A11
|
||
COP2
|
||
MOVE A9,*A8(OXVEL),L
|
||
MOVE A10,*A8(OYVEL),L
|
||
|
||
MOVE *A8(OXVAL),A1,L
|
||
MOVE @WORLDTLX,A2,L
|
||
SUB A2,A1
|
||
CMPI [90,0],A1
|
||
;HAS IS HIT LEFT, STOP IT FROM MOVING MORE TO LEFT
|
||
JRNC RTGOR
|
||
MOVI 020000H,A9
|
||
MOVK 1,A11
|
||
RTGOR
|
||
CMPI [245,0],A1
|
||
JRC RTOK
|
||
MOVI -020000H,A9
|
||
MOVK 1,A11
|
||
RTOK
|
||
MOVE *A8(OYVAL),A1,L
|
||
MOVE @WORLDTLY,A2,L
|
||
SUB A2,A1
|
||
CMPI [40,0],A1
|
||
;HAS IS HIT LEFT, STOP IT FROM MOVING MORE TO LEFT
|
||
JRNC RTYGO
|
||
MOVI 18000H,A10
|
||
; MOVK 1,A11
|
||
RTYGO
|
||
CMPI [170,0],A1
|
||
JRC CONT
|
||
MOVI -18000H,A10
|
||
MOVK 1,A11
|
||
CONT
|
||
SLEEP 2
|
||
|
||
DEC A11
|
||
JRNZ COP2
|
||
MOVE A11,*A8(OXVEL),L
|
||
MOVE A11,*A8(OYVEL),L
|
||
SLEEP 5*60
|
||
JRUC SKTP
|
||
;
|
||
MUT_HIT
|
||
;A8=PIECE HIT
|
||
;A0=BULLET PNTR
|
||
;
|
||
;IF GRENADE, DO DAMAGE
|
||
;IF SPEW, DO DAMAGE
|
||
;IF LAZER WEAPON, DO NOTHING
|
||
;IF NOT JUST FLASH IMAGE
|
||
MMTM SP,A1,A2,A7,A9,A10
|
||
MOVE *A8(OID),A1
|
||
ANDI 0FFFFH,A1
|
||
CMPI CLSENMY|TYPMUT|SUBSNK,A1
|
||
JREQ SNKHIT
|
||
MOVE *A0(OID),A1
|
||
CMPI CLSPLYR|TYPPLBL|SUBLZR,A1
|
||
JREQ NADA2
|
||
CMPI CLSPLYR|TYPPLBL|SUBGRND,A1
|
||
JREQ NF2
|
||
CMPI CLSPLYR|TYPPLBL|SUBSPEW,A1
|
||
JREQ NADA
|
||
;MORE DAMAGE IF SPEW2!
|
||
MOVE *A8(OID),A1
|
||
ANDI 0FFFFH,A1
|
||
CMPI CLSENMY|TYPMUT|SUBHD,A1
|
||
JREQ NADA
|
||
;A2=P1DATA OR P2DATA
|
||
MOVE *A0(OPLINK),A0,L
|
||
MOVB *A0(MYPLYR),A0
|
||
MOVI P1DATA,A2
|
||
CMPI 1,A0
|
||
JREQ YU7
|
||
CMPI 2,A0
|
||
JRNZ YU7A
|
||
MOVI P2DATA,A2
|
||
YU7
|
||
MOVI MUTPT,A1 ;AMOUNT OF SCORE
|
||
MOVE A2,@KPPLYR,L
|
||
CALLA SCRADD2 ;DO IT!
|
||
;
|
||
YU7A MOVI 2,A0
|
||
CALLR DAMAGE
|
||
NF
|
||
MOVI 03F3F0000H,A9
|
||
CREATE 0,FLASHME
|
||
;
|
||
NADA MMFM SP,A1,A2,A7,A9,A10
|
||
RETS
|
||
NADA2
|
||
MOVK 15,A0 ;50 ;90 ;60
|
||
CALLA RANDPER
|
||
JRNC NADA
|
||
MOVE @DMG,A2
|
||
MOVE @DMGSK,A1
|
||
CMP A1,A2
|
||
JRNC AHITU
|
||
|
||
ADDK 1,A2
|
||
MOVE A2,@DMG
|
||
CMPI 3,A0
|
||
JRNC NADA
|
||
AHITU
|
||
MOVI 5,A0
|
||
MOVE A0,@MEMAD
|
||
MOVI 15,A0
|
||
MOVE A0,@OOF
|
||
MOVI EESND,A0
|
||
CALLA ONESND
|
||
JRUC NADA
|
||
NF2
|
||
;A2=P1DATA OR P2DATA
|
||
MOVE *A0(OPLINK),A0,L
|
||
MOVB *A0(MYPLYR),A0
|
||
MOVI P1DATA,A2
|
||
CMPI 1,A0
|
||
JREQ YU8
|
||
CMPI 2,A0
|
||
JRNZ YU8A
|
||
MOVI P2DATA,A2
|
||
YU8
|
||
;A2=P1DATA OR P2DATA
|
||
MOVE A2,@KPPLYR,L
|
||
MOVI MUTPT,A1 ;AMOUNT OF SCORE
|
||
CALLA SCRADD2 ;DO IT!
|
||
;TELL HEAD TO OOF!
|
||
YU8A MOVI 15,A0
|
||
MOVE A0,@OOF
|
||
MOVI 15,A0
|
||
CALLR DAMAGE
|
||
CALLR GETSPK
|
||
|
||
JRUC NF
|
||
|
||
GETSPK
|
||
MOVE @SNDCNT,A0
|
||
INC A0
|
||
MOVE A0,@SNDCNT
|
||
ANDI 03H,A0
|
||
JRZ S2
|
||
SLL 5,A0
|
||
MOVE @MCON,A1
|
||
JRZ KOP
|
||
ADDI SNDLSTZ,A0
|
||
JRUC KOP2
|
||
KOP ADDI SNDLST,A0
|
||
KOP2 MOVE *A0,A0,L
|
||
CALLA ONESND
|
||
RETS
|
||
S2 MOVI 250,A0
|
||
CALLA RANDPER
|
||
JRC S3
|
||
MOVI AWWSND2,A0
|
||
CALLA ONESND
|
||
RETS
|
||
S3 MOVI AWWSND,A0
|
||
CALLA ONESND
|
||
RETS
|
||
SNDLST .LONG AWWSND,OUCH,EXP3HIA,ONOSND
|
||
SNDLSTZ .LONG MCSPK7,GOGO,MCSPK4,MCSPK8
|
||
DAMAGE
|
||
MOVE A0,A2
|
||
MOVE @DMG,A1
|
||
ADD A0,A1
|
||
MOVE A1,@DMG
|
||
MOVE @DMGSK,A0
|
||
CMP A0,A1
|
||
JRNC AHIT
|
||
CMPI 15,A2
|
||
JRZ DF4
|
||
MOVI 500,A0
|
||
CALLA RANDPER
|
||
JRNC DF5
|
||
DF4
|
||
PUSH A0
|
||
CREATE BONPID,XYADJ
|
||
PULL A0
|
||
CMPI 200,A0
|
||
JRNC DF5
|
||
ANDI 03,A0
|
||
SLL 5,A0
|
||
MOVE @MCON,A1
|
||
JRZ NN1
|
||
ADDI SNDLSTZ,A0
|
||
JRUC NN2
|
||
NN1
|
||
ADDI OTBL,A0
|
||
NN2 MOVE *A0,A0,L
|
||
CALLA ONESND
|
||
MOVI 20,A0
|
||
MOVE A0,@MEMAD
|
||
DF5
|
||
RETS
|
||
OTBL .LONG OUCH,AWWSND,EESND,ONOSND
|
||
XYADJ
|
||
;ADJUST MUTOID X/Y
|
||
MOVK 10,A9 ;14
|
||
MOVE @MCON,A0
|
||
JRZ I80
|
||
MOVK 20,A9 ;14
|
||
I80
|
||
MOVE @MUTPTR,A0,L
|
||
MOVE *A0(TNKL),A8,L
|
||
; MOVE *A0(TNKR),A10,L
|
||
XY2
|
||
MOVE @DMGSK,A0
|
||
ANDI 0FFFFH,A0
|
||
CMPI 0FFFFH,A0
|
||
JREQ DI
|
||
MOVE @MCON,A0
|
||
JRZ I801
|
||
MOVI -5,B0 ;-4
|
||
MOVI 5,B1 ;4
|
||
JRUC FOUT
|
||
I801
|
||
MOVI -3,B0 ;-4
|
||
MOVI 3,B1 ;4
|
||
FOUT CALLA RANGRAND
|
||
MOVE *A8(OXPOS),A1
|
||
ADD A0,A1
|
||
CALLA CKBNDX
|
||
JRC HITX
|
||
MOVE A1,*A8(OXPOS)
|
||
HITX
|
||
MOVE @MCON,A0
|
||
JRZ I802
|
||
MOVI -5,B0 ;-4
|
||
MOVI 5,B1 ;4
|
||
JRUC FOUT1
|
||
I802
|
||
MOVI -3,B0 ;-4
|
||
MOVI 3,B1 ;4
|
||
FOUT1 CALLA RANGRAND
|
||
MOVE *A8(OYPOS),A1
|
||
ADD A0,A1
|
||
CALLA CKBNDY
|
||
JRC HITY
|
||
MOVE A1,*A8(OYPOS)
|
||
HITY
|
||
; MOVE *A8(OYPOS),A0
|
||
; MOVE A0,*A10(OYPOS)
|
||
SLEEP 3
|
||
DEC A9
|
||
JRNZ XY2
|
||
DI DIE
|
||
XYADJ2
|
||
;ADJUST MUTOID X/Y
|
||
MOVK 10,A9 ;14
|
||
MOVE @MCON,A0
|
||
JRZ I90
|
||
MOVK 20,A9 ;14
|
||
I90
|
||
MOVE @MUTPTR,A0,L
|
||
MOVE *A0(TNKL),A8,L
|
||
; MOVE *A0(TNKR),A10,L
|
||
XY22
|
||
MOVI -8,B0 ;-4
|
||
MOVI 8,B1 ;4
|
||
CALLA RANGRAND
|
||
MOVE *A8(OXPOS),A1
|
||
ADD A0,A1
|
||
CALLA CKBNDX
|
||
JRC HITX2
|
||
MOVE A1,*A8(OXPOS)
|
||
HITX2 MOVI -8,B0 ;-4
|
||
MOVI 8,B1 ;4
|
||
CALLA RANGRAND
|
||
MOVE *A8(OYPOS),A1
|
||
ADD A0,A1
|
||
CALLA CKBNDY
|
||
JRC HITY2
|
||
MOVE A1,*A8(OYPOS)
|
||
HITY2
|
||
; MOVE *A8(OYPOS),A0
|
||
; MOVE A0,*A10(OYPOS)
|
||
SLEEP 3
|
||
DEC A9
|
||
JRNZ XY22
|
||
DIE
|
||
CKBNDX
|
||
PUSH A1
|
||
MOVE @WORLDTLX,A2,L
|
||
SLL 16,A1
|
||
SUB A2,A1
|
||
CMPI [100,0],A1
|
||
;HAS IS HIT LEFT, STOP IT FROM MOVING MORE TO LEFT
|
||
JRC RTBAD
|
||
CMPI [235,0],A1
|
||
JRNC RTBAD
|
||
PULL A1
|
||
CLRC
|
||
RETS
|
||
RTBAD PULL A1
|
||
SETC
|
||
RETS
|
||
CKBNDY
|
||
PUSH A1
|
||
MOVE @WORLDTLY,A2,L
|
||
SLL 16,A1
|
||
SUB A2,A1
|
||
CMPI [40,0],A1
|
||
;HAS IS HIT LEFT, STOP IT FROM MOVING MORE TO LEFT
|
||
JRC RTBAD
|
||
CMPI [160,0],A1
|
||
JRNC RTBAD
|
||
PULL A1
|
||
CLRC
|
||
RETS
|
||
AHIT
|
||
ADDI 40,A0 ;55
|
||
MOVE @MCON,A1
|
||
JRZ AHIY
|
||
ADDI 35,A0 ;25
|
||
AHIY
|
||
MOVE A0,@DMGSK
|
||
CREATE 0,AHITPRC
|
||
RETS
|
||
AHITPRC
|
||
CALLR HITRC2
|
||
DIE
|
||
HITRC2
|
||
MOVB @DMGPNT,A0
|
||
INC A0
|
||
MOVB A0,@DMGPNT
|
||
SLL 5,A0
|
||
ADDI JPTBLH,A0
|
||
MOVE *A0,A0,L
|
||
JUMP A0
|
||
JPTBLH .LONG 0,LFARM,RGTARM,BLOCHST,BLOHD,BLOCHST2,KILLMUT,TAG,TAG
|
||
TAG RETS
|
||
GETDMGSK
|
||
MOVI 0250,A1 ;300
|
||
MOVE @STATUS,A0
|
||
CMPI 3,A0
|
||
JRNZ ONEP
|
||
MOVI 300,A1 ;400
|
||
ONEP
|
||
MOVE @DMGSK,A0
|
||
ADD A1,A0
|
||
MOVE A0,@DMGSK
|
||
RETS
|
||
LFARM
|
||
CREATE 0,TAG1
|
||
CALLR GETDMGSK
|
||
|
||
MOVI MUTPT3,A1 ;AMOUNT OF SCORE FOR ARMS ETC
|
||
MOVE @KPPLYR,A2,L
|
||
CALLA SCRADD2 ;DO IT!
|
||
|
||
RETS
|
||
TAG1
|
||
MOVI OUCH,A0
|
||
CALLA ONESND
|
||
;COVER ARM WITH SMALL EXP
|
||
MOVI 105,A10
|
||
TL0 CREATE 0,COVER
|
||
SLEEP 3
|
||
DSJS A10,TL0
|
||
MOVI ONOSND,A0
|
||
CALLA ONESND
|
||
SLEEP 25
|
||
;BLOW OFF LEFT ARM
|
||
MOVE @MUTPTR,A0,L
|
||
MOVE *A0(ARML),A10,L ;ARML
|
||
CREATE 0,TURN1
|
||
CREATE 0,THROWL
|
||
SLEEP 40
|
||
MOVI EESND,A0
|
||
CALLA ONESND
|
||
DIE
|
||
TAG2
|
||
MOVI ONOSND,A0
|
||
CALLA ONESND
|
||
;COVER ARM WITH SMALL EXP
|
||
MOVI 105,A10
|
||
TL01 CREATE 0,COVER2 ;COVER2
|
||
SLEEP 3
|
||
DSJS A10,TL01
|
||
SLEEP 25
|
||
MOVI AWWSND,A0
|
||
CALLA ONESND
|
||
;BLOW OFF RGT ARM
|
||
MOVE @MUTPTR,A0,L
|
||
MOVE *A0(ARMR),A10,L ;ARMR
|
||
CREATE 0,TURN1
|
||
CREATE 0,THROWR
|
||
SLEEP 60
|
||
MOVI AWWSND,A0
|
||
CALLA ONESND
|
||
DIE
|
||
RGTARM
|
||
CREATE 0,TAG2
|
||
CALLR GETDMGSK
|
||
|
||
MOVI MUTPT3,A1 ;AMOUNT OF SCORE FOR ARMS ETC
|
||
MOVE @KPPLYR,A2,L
|
||
CALLA SCRADD2 ;DO IT!
|
||
RETS
|
||
BLOCHST
|
||
CREATE 0,THROWC
|
||
|
||
CALLR GETDMGSK
|
||
|
||
MOVI ONOSND,A0
|
||
CALLA ONESND
|
||
|
||
MOVI MUTPT3,A1 ;AMOUNT OF SCORE FOR ARMS ETC
|
||
MOVE @KPPLYR,A2,L
|
||
CALLA SCRADD2 ;DO IT!
|
||
|
||
RETS
|
||
BLOHD
|
||
MOVI OUCH,A0
|
||
CALLA ONESND
|
||
MOVE @MUTPTR,A0,L
|
||
MOVE *A0(MHEAD),A10,L ;MHEAD
|
||
CREATE 0,TURN1
|
||
CREATE 0,THROWH
|
||
CALLR GETDMGSK
|
||
MOVI MUTPT3,A1 ;AMOUNT OF SCORE FOR ARMS ETC
|
||
MOVE @KPPLYR,A2,L
|
||
CALLA SCRADD2 ;DO IT!
|
||
RETS
|
||
BLOCHST2
|
||
MOVI NOWAY,A0
|
||
CALLA ONESND
|
||
MOVE @MUTPTR,A0,L
|
||
MOVE *A0(TRSL),A10,L ;TRSL
|
||
CREATE 0,TURN1
|
||
|
||
MOVE @MUTPTR,A0,L
|
||
MOVE *A0(TRSR),A10,L ;TRSR
|
||
CREATE 0,TURN1
|
||
CREATE 0,THROWC2
|
||
|
||
MOVE @MUTPTR,A0,L
|
||
MOVE *A0(MHEAD),A0,L ;MHEAD
|
||
MOVE *A0(OFLAGS),A1
|
||
ORI M_NOCOLL,A1
|
||
MOVE A1,*A0(OFLAGS)
|
||
CALLA OBJON
|
||
|
||
MOVI 131,A1
|
||
MOVE A1,*A0(OZPOS)
|
||
|
||
CALLR GETDMGSK
|
||
|
||
MOVI MUTPT3,A1 ;AMOUNT OF SCORE FOR ARMS ETC
|
||
MOVE @KPPLYR,A2,L
|
||
CALLA SCRADD2 ;DO IT!
|
||
|
||
CLR A0
|
||
MOVB A0,@TOTLZRS ;TOTAL LAZER SHOTS HE WILL SHOOT
|
||
RETS
|
||
|
||
KILLMUT
|
||
;KILL MUTOID PROCESS
|
||
;BLOW UP FATMEN REMAINING!
|
||
;KILL SNAKE, LAZERS
|
||
|
||
MOVI MUTPT2,A1 ;AMOUNT OF SCORE AT END
|
||
MOVE @KPPLYR,A2,L
|
||
CALLA SCRADD2 ;DO IT!
|
||
|
||
MOVI OUCH,A0
|
||
CALLA ONESND
|
||
MOVK 1,A0
|
||
MOVB A0,@ENDON
|
||
MOVI CLSENMY|TYPORBL,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA KILOBJ
|
||
MOVI CLSENMY|TYPMUT|SUBSNK,A0
|
||
CALLA KILOBJ
|
||
BAD1
|
||
MOVI CLSENMY|TYPFAT,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRZ BAD2
|
||
;FOUND A FAT
|
||
MOVE A0,A8
|
||
;NO SCORE FOR THESE FAT GUYS
|
||
CALLA KILL_F2_NO ;KILL_FAT
|
||
JRUC BAD1
|
||
BAD2
|
||
MOVI BONPID,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILALL
|
||
MOVI LORDPID,A0
|
||
CALLA KILALL
|
||
|
||
MOVI CLSNEUT|TYPNEUT|SUBCHNK2,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILOBJ
|
||
|
||
CREATE 0,SPW2
|
||
MOVI 0FFFFH,A0
|
||
MOVE A0,@DMGSK
|
||
CREATE 0,VIC
|
||
|
||
RETS
|
||
VIC SLEEP 30
|
||
;TURN ON VICTORY MUSIC!
|
||
MOVI VICMSC,A0
|
||
CALLA ONESND
|
||
DIE
|
||
SPW2
|
||
;SPEW BIG
|
||
CALLA DOSHK0
|
||
CLR A0
|
||
MOVE @MUTPTR,A9,L
|
||
MOVE *A9(TNKL),A8,L
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVE A0,*A8(OYVEL),L
|
||
PUSH A13
|
||
MOVE A9,A13
|
||
CALLR MOD_VELS
|
||
PULL A13
|
||
MOVI DUM_ID,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILALL
|
||
PUSH A8
|
||
MOVE *A9(MHEAD),A8,L
|
||
MOVI -01B000H,B0
|
||
MOVI 01B000H,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVI -012000H,B0
|
||
MOVI 012000H,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,*A8(OYVEL),L
|
||
MOVI MUG1B,A1
|
||
MOVE @MCON,A4
|
||
JRZ NOBB
|
||
MOVI MUG1BZ,A1
|
||
NOBB
|
||
MOVE *A8(OFLAGS),A4,W ;NEW OFLAGS
|
||
CALLA ANI
|
||
MOVI 400,A0
|
||
MOVE A0,*A8(OZPOS)
|
||
PULL A8
|
||
|
||
MOVI 180,A9
|
||
KM1
|
||
MOVK 20,A0
|
||
CALLA CHKFREE
|
||
JRNE SPEWL0
|
||
CREATE 0,SPEW
|
||
CREATE 0,SPEW
|
||
CREATE 0,SPEW
|
||
CREATE 0,SPEW
|
||
CREATE 0,SPEW
|
||
MOVI BUBL,A0
|
||
CALLA ONESND
|
||
SPEWL0
|
||
SLEEP 1
|
||
DEC A9
|
||
JRNZ KM1
|
||
|
||
SLEEP 15H ;55
|
||
MOVI YAMOFF,A0
|
||
CALLA ONESND
|
||
;
|
||
;BLOW TANK PIECES OUT TO EDGES!
|
||
;
|
||
; MOVI CROWD1,A0
|
||
; CALLA ONESND
|
||
|
||
CALLA DOSHK0
|
||
SLEEP 10
|
||
CREATE 0,SHAKEME
|
||
CREATE 0,SMLEXP
|
||
SLEEP 3*60
|
||
CALLA DOSHK0
|
||
CREATE 0,BLOW1
|
||
CREATE 0,BLOW2
|
||
CREATE 0,BLOW3
|
||
CREATE 0,BLOW4
|
||
CREATE 0,BLOW5
|
||
|
||
SLEEP 60*1
|
||
|
||
CALLA DOSHK0
|
||
;WHEN DONE, WE WILL COVER OLD TANK AREA!
|
||
MOVE *A8(OYVAL),A0,L
|
||
MOVE @WORLDTLY,A4,L
|
||
SUB A4,A0
|
||
MOVE *A8(OXVAL),A1,L
|
||
MOVE @WORLDTLX,A4,L
|
||
SUB A4,A1
|
||
SRL 16,A1
|
||
MOVX A1,A0
|
||
MOVI [10H,10H],A1
|
||
SUBXY A1,A0
|
||
MOVE A0,@EXPTLXY,L
|
||
MOVI [060H,050H],A1
|
||
ADDXY A1,A0
|
||
MOVE A0,@EXPLRXY,L
|
||
MOVI 120H,A10
|
||
CALLA CLUSTER
|
||
|
||
SLEEP 60
|
||
|
||
CREATE 0,BAD0 ;SMART BOMB AND GET RID OF EVERYONE!
|
||
|
||
;KILL OFF ALL MUTOID OBJECTS
|
||
MOVI CLSNEUT|TYPNEUT|SUBCHNK,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILOBJ
|
||
MOVI CLSENMY|TYPMUT,A0
|
||
MOVI F_TYPE,A1
|
||
CALLA KILOBJ
|
||
|
||
SLEEP 3*60
|
||
CLR A0
|
||
MOVB A0,@ENDON
|
||
MOVE @MCON,A0
|
||
JRZ PIPPEN
|
||
CALLA O_ITEMS2
|
||
SLEEP 5*60-30
|
||
CALLA O_ITEMS2
|
||
SLEEP 5*60-30
|
||
CALLA O_ITEMS2
|
||
SLEEP 5*60-30
|
||
CALLA O_ITEMS2
|
||
SLEEP 5*60-30
|
||
CALLA O_ITEMS2
|
||
SLEEP 5*60-30
|
||
CALLA O_ITEMS2
|
||
SLEEP 5*60-30
|
||
PIPPEN CREATE 0,DEXIT
|
||
|
||
SLEEP 360*60
|
||
DIE
|
||
SMLEXP MOVI 186H,A9
|
||
SM1 SLEEP 1
|
||
MOVK 20,A0
|
||
CALLA CHKFREE
|
||
JRNE DONOT
|
||
CREATE 0,SMLE
|
||
MOVI EXP3HI,A0
|
||
CALLA ONESND
|
||
DONOT
|
||
DSJ A9,SM1
|
||
DIE
|
||
SMLE
|
||
CALLR SETKBM
|
||
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
ADDI 0020000H,A3
|
||
ADDI 03A0000H,A2
|
||
CALLA GANISAG
|
||
MOVE A9,A8
|
||
|
||
MOVI -060000H,B0
|
||
MOVI 060000H,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVI -060000H,B0
|
||
MOVI 060000H,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,*A8(OYVEL),L
|
||
|
||
|
||
MOVI BOOMN,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
SETKBM
|
||
MOVI KBM,A14 ;BLOOD
|
||
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
|
||
MOVE *A8(OPAL),A0,L
|
||
ANDI 0FFFFH,A0
|
||
MOVE A0,*A8(OPAL),L
|
||
MOVE A8,A9
|
||
MOVE @MUTPTR,A8,L
|
||
MOVE *A8(TNKL),A8,L
|
||
CALLA GETANIXY
|
||
MOVE A9,A0
|
||
RETS
|
||
|
||
SHAKEME MOVI 25,A9 ;25
|
||
SH1 CREATE 0,XYADJ2
|
||
MOVK 10,A10
|
||
SH2
|
||
PUSH A13
|
||
MOVE @MUTPTR,A13,L
|
||
MOVE *A13(TNKL),A8,L
|
||
CALLR LINEBLY
|
||
CALLA L2UP
|
||
PULL A13
|
||
SLEEP 1
|
||
DSJ A10,SH2
|
||
DSJ A9,SH1
|
||
DIE
|
||
|
||
BLOW1
|
||
SLEEP 60
|
||
MOVK 5,A9
|
||
MB1 CREATE 0,BLW1
|
||
SLEEP 2
|
||
DSJS A9,MB1
|
||
DIE
|
||
|
||
BLOW2
|
||
MOVK 9,A9
|
||
MB2 CREATE 0,BLW2
|
||
SLEEP 10
|
||
DSJS A9,MB2
|
||
DIE
|
||
BLOW3
|
||
MOVK 9,A9
|
||
MB3 CREATE 0,BLW3
|
||
SLEEP 10
|
||
DSJS A9,MB3
|
||
DIE
|
||
BLOW4
|
||
MOVK 9,A9
|
||
MB4 CREATE 0,BLW4
|
||
SLEEP 10
|
||
DSJS A9,MB4
|
||
DIE
|
||
BLOW5
|
||
SLEEP 60
|
||
MOVK 5,A9
|
||
MB5 CREATE 0,BLW5
|
||
SLEEP 2
|
||
DSJS A9,MB5
|
||
DIE
|
||
BLW1
|
||
;TURN ON OBJECT
|
||
;GIVE VELOCITY OUT AWAY FROM TANK
|
||
;STOP IT
|
||
;BLOW IT UP
|
||
;DIE
|
||
MOVI TKPC1,A14 ;BLOOD
|
||
CALLA BLWON
|
||
MOVI -80000H,B0
|
||
MOVI 80000H,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,*A8(OYVEL),L
|
||
SLEEP 25
|
||
JRUC BLWOFF
|
||
BLW2
|
||
MOVI TKPC2,A14 ;BLOOD
|
||
CALLA BLWON
|
||
SLEEP 15
|
||
JRUC BLWOFF
|
||
BLW5
|
||
MOVI TKPC5,A14 ;BLOOD
|
||
CALLA BLWON
|
||
MOVI -80000H,B0
|
||
MOVI 80000H,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,*A8(OYVEL),L
|
||
SLEEP 25
|
||
JRUC BLWOFF
|
||
BLW4
|
||
MOVI TKPC4,A14 ;BLOOD
|
||
CALLA BLWON
|
||
SLEEP 15
|
||
JRUC BLWOFF
|
||
BLW3
|
||
MOVI TKPC3,A14 ;BLOOD
|
||
CALLA BLWON
|
||
SLEEP 15
|
||
JRUC BLWOFF
|
||
BLWOFF
|
||
; CLR A0
|
||
; MOVE A0,*A8(OXVEL),L
|
||
; MOVE A0,*A8(OYVEL),L
|
||
;FRANIM LIST OF EXPLOSION
|
||
MOVE *A8(OYPOS),A0
|
||
ADDI 3AH,A0
|
||
MOVE A0,*A8(OYPOS)
|
||
MOVI BOOM3,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
BLWON
|
||
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
|
||
;ALIGN WITH TANK
|
||
MOVE A8,A9
|
||
MOVE @MUTPTR,A8,L
|
||
MOVE *A8(TNKL),A8,L
|
||
CALLA GETANIXY
|
||
MOVE A9,A0
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
ADDI 010000H,A3
|
||
ADDI 010000H,A2
|
||
CALLA GANISAG
|
||
MOVE A9,A8
|
||
RETS
|
||
|
||
;SPWAGN SLEEP 5
|
||
SPEW
|
||
MOVI BLD,A14 ;BLOOD
|
||
MOVE @MCON,A0
|
||
JRZ SPEWA
|
||
MOVI PRZBLD,A14
|
||
SPEWA
|
||
CALLA GPALOBJ ;ALLOCATE A COLOR PALETTE
|
||
; JRZ SPWAGN
|
||
CALLA STFOBJ ;STUFF OBJECT DATA
|
||
MOVE A13,*A0(OPLINK),L
|
||
CALLA INSOBJ ;INSERT OBJECT INTO LIST
|
||
MOVE A0,A8
|
||
MOVE *A8(OPAL),A0,L
|
||
ANDI 0FFFFH,A0
|
||
MOVE A0,*A8(OPAL),L
|
||
MOVE A8,A9
|
||
MOVE @MUTPTR,A8,L
|
||
MOVE *A8(TNKL),A8,L
|
||
CALLA GETANIXY
|
||
MOVE A9,A0
|
||
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
ADDI 0020000H,A3
|
||
ADDI 0260000H,A2
|
||
CALLA GANISAG
|
||
MOVE A9,A8
|
||
|
||
MOVI -010000H,B0
|
||
MOVI 010000H,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVI -010000H,B0
|
||
MOVI 010000H,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,*A8(OYVEL),L
|
||
|
||
|
||
MOVI OVALBLD2,A9
|
||
; MOVE @MCON,A0
|
||
; JRZ SPEWB
|
||
; MOVI OVALPRZ,A9
|
||
;SPEWB
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
OVALBLD2:
|
||
;OVAL BLOOD EXPLOSION
|
||
.LONG bldclt1
|
||
.WORD NEWPALET|1
|
||
.LONG nup1
|
||
.LONG bldclt2
|
||
.WORD 3
|
||
.LONG bldclt3
|
||
.WORD 3
|
||
.LONG bldclt4
|
||
.WORD 3
|
||
.LONG bldclt5
|
||
.WORD 3
|
||
.LONG bldclt6
|
||
.WORD 3
|
||
.LONG bldclt7
|
||
.WORD 3
|
||
.LONG bldclt8
|
||
.WORD 3
|
||
.LONG 0
|
||
;OVALPRZ:
|
||
;PRIZE
|
||
; .LONG PRZ1
|
||
; .WORD 1
|
||
; .LONG PRZ2
|
||
; .WORD 3
|
||
; .LONG CNS
|
||
; .WORD 3
|
||
; .LONG GLD
|
||
; .WORD 3
|
||
; .LONG PRZ3
|
||
; .WORD 3
|
||
; .LONG CASH
|
||
; .WORD 3
|
||
; .LONG GLD
|
||
; .WORD 3
|
||
; .LONG PRZ1
|
||
; .WORD 3
|
||
; .LONG 0
|
||
BLOSND
|
||
SLEEP 60
|
||
MOVI WPSSND,A0
|
||
CALLA ONESND
|
||
SLEEP 60
|
||
MOVI WPSSND,A0
|
||
CALLA ONESND
|
||
SLEEP 60
|
||
MOVI WPSSND,A0
|
||
CALLA ONESND
|
||
DIE
|
||
OHSND
|
||
MOVI OUCH,A0
|
||
CALLA ONESND
|
||
SLEEP 30 ;60
|
||
MOVI AWWSND,A0
|
||
CALLA ONESND
|
||
SLEEP 20 ;80
|
||
MOVI OUCH,A0
|
||
CALLA ONESND
|
||
DIE
|
||
|
||
THROWL
|
||
|
||
CREATE 0,OHSND
|
||
;CREATE SEVERAL ARMS BLOWING OFF BODY TO LEFT
|
||
MOVK 9,A10
|
||
TL1
|
||
CREATE 0,SENDL
|
||
SLEEP 10
|
||
PUSH A10
|
||
CALLA DOSHK0
|
||
PULL A10
|
||
DSJS A10,TL1
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
DIE
|
||
COVER2
|
||
MOVI KBM,A14
|
||
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
|
||
MOVE *A8(OPAL),A0,L
|
||
ANDI 0FFFFH,A0
|
||
MOVE A0,*A8(OPAL),L
|
||
MOVE A8,A9
|
||
MOVE @MUTPTR,A8,L
|
||
MOVE *A8(TNKL),A8,L ;ARML
|
||
CALLA GETANIXY
|
||
MOVE A9,A0
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
ADDI 0240000H,A2
|
||
ADDI 01F0000H,A3 ;X
|
||
JRUC FRT
|
||
COVER
|
||
MOVI KBM,A14
|
||
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
|
||
MOVE *A8(OPAL),A0,L
|
||
ANDI 0FFFFH,A0
|
||
MOVE A0,*A8(OPAL),L
|
||
MOVE A8,A9
|
||
MOVE @MUTPTR,A8,L
|
||
MOVE *A8(TNKL),A8,L ;ARML
|
||
CALLA GETANIXY
|
||
MOVE A9,A0
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
ADDI 0240000H,A2
|
||
SUBI 01F0000H,A3
|
||
FRT
|
||
CALLA GANISAG
|
||
MOVE *A8(OXVEL),A0,L
|
||
MOVE *A8(OYVEL),A1,L
|
||
MOVE A1,*A9(OYVEL),L
|
||
MOVE A0,*A9(OXVEL),L
|
||
|
||
MOVE A9,A8
|
||
|
||
MOVI -0F0000H,B0
|
||
MOVI 0F0000H,B1
|
||
CALLA RANGRAND
|
||
MOVE *A8(OXVAL),A1,L
|
||
ADD A0,A1
|
||
MOVE A1,*A8(OXVAL),L
|
||
MOVI -0F0000H,B0
|
||
MOVI 0F0000H,B1
|
||
CALLA RANGRAND
|
||
MOVE *A8(OYVAL),A1,L
|
||
ADD A0,A1
|
||
MOVE A1,*A8(OYVAL),L
|
||
|
||
MOVI BOOMN,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
|
||
SENDL
|
||
;BEGIN OBJ
|
||
;ALIGN WITH OLD LEFT ARM
|
||
;GIVE VELOCITIES
|
||
;FRANIM
|
||
;DELOBJ
|
||
MOVI ST5,A14
|
||
MOVE @MCON,A1
|
||
JRZ NOMCA
|
||
MOVI ST5Z,A14
|
||
NOMCA 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
|
||
MOVE *A8(OPAL),A0,L
|
||
ANDI 0FFFFH,A0
|
||
MOVE A0,*A8(OPAL),L
|
||
MOVE A8,A9
|
||
MOVE @MUTPTR,A8,L
|
||
MOVE *A8(TNKL),A8,L
|
||
AGA
|
||
CALLA GETANIXY
|
||
MOVE A9,A0
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
MOVE A9,A8
|
||
CREATE 0,FRBALLL
|
||
CREATE 0,FRBALL2L
|
||
CREATE 0,FRBALL2L
|
||
CREATE 0,FRBALL2L
|
||
|
||
MOVI -020000H,B0
|
||
MOVI 020000H,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,*A8(OYVEL),L
|
||
MOVI FLIPL,A9
|
||
MOVE @MCON,A1
|
||
JRZ NOMCA1
|
||
MOVI FLIPLZ,A9
|
||
NOMCA1 MOVK 1,A1
|
||
JSRP FRANIM
|
||
STILL SLEEP 40
|
||
CALLA SCRTST
|
||
JRZ STILL
|
||
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
FRBALL
|
||
MOVE *A8(OXVEL),A6,L
|
||
MOVE *A8(OYVEL),A7,L
|
||
JAUC ARMOFF
|
||
FRBALL2
|
||
MOVE *A8(OXVEL),A6,L
|
||
MOVI -020000H,B0
|
||
MOVI 020000H,B1
|
||
CALLA RANGRAND
|
||
ADD A0,A6
|
||
|
||
MOVI -020000H,B0
|
||
MOVI 020000H,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,A7
|
||
JAUC ARMOFF
|
||
FRBALLR
|
||
; MOVE *A8(OXPOS),A0
|
||
; ADDI 15,A0
|
||
; MOVE A0,*A8(OXPOS)
|
||
; JRUC X1
|
||
FRBALLL
|
||
; MOVE *A8(OXPOS),A0
|
||
; SUBI 15,A0
|
||
; MOVE A0,*A8(OXPOS)
|
||
;X1
|
||
MOVE *A8(OXVEL),A6,L
|
||
MOVE *A8(OYVEL),A7,L
|
||
JAUC ARMOFF
|
||
FRBALL2R
|
||
; MOVE *A8(OXPOS),A0
|
||
; SUBI 15,A0
|
||
; MOVE A0,*A8(OXPOS)
|
||
; JRUC X2
|
||
FRBALL2L
|
||
; MOVE *A8(OXPOS),A0
|
||
; SUBI 15,A0
|
||
; MOVE A0,*A8(OXPOS)
|
||
;X2
|
||
MOVE *A8(OXVEL),A6,L
|
||
MOVI -020000H,B0
|
||
MOVI 020000H,B1
|
||
CALLA RANGRAND
|
||
ADD A0,A6
|
||
|
||
MOVI -020000H,B0
|
||
MOVI 020000H,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,A7
|
||
JAUC ARMOFF
|
||
FRBALL1
|
||
MOVE *A8(OXVEL),A6,L
|
||
MOVE *A8(OYVEL),A7,L
|
||
JAUC ARMOFF2
|
||
FRBALL3
|
||
MOVE *A8(OXVEL),A6,L
|
||
MOVI -020000H,B0
|
||
MOVI 020000H,B1
|
||
CALLA RANGRAND
|
||
ADD A0,A6
|
||
|
||
MOVI -020000H,B0
|
||
MOVI 020000H,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,A7
|
||
JAUC ARMOFF2
|
||
|
||
THROWR
|
||
CREATE 0,OHSND
|
||
;CREATE SEVERAL ARMS BLOWING OFF BODY TO LEFT
|
||
MOVK 9,A10
|
||
TL2
|
||
CREATE 0,SENDR
|
||
SLEEP 10
|
||
PUSH A10
|
||
CALLA DOSHK0
|
||
PULL A10
|
||
DSJS A10,TL2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
DIE
|
||
SENDR
|
||
;BEGIN OBJ
|
||
;ALIGN WITH OLD LEFT ARM
|
||
;GIVE VELOCITIES
|
||
;FRANIM
|
||
;DELOBJ
|
||
MOVI ST6,A14
|
||
MOVE @MCON,A1
|
||
JRZ NOMCB
|
||
MOVI ST6Z,A14
|
||
NOMCB 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
|
||
MOVE *A8(OPAL),A0,L
|
||
ANDI 0FFFFH,A0
|
||
MOVE A0,*A8(OPAL),L
|
||
MOVE A8,A9
|
||
MOVE @MUTPTR,A8,L
|
||
MOVE *A8(TNKL),A8,L ;ARMR
|
||
CALLA GETANIXY
|
||
MOVE A9,A0
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
MOVE A9,A8
|
||
CREATE 0,FRBALLR
|
||
CREATE 0,FRBALL2R
|
||
CREATE 0,FRBALL3
|
||
CREATE 0,FRBALL2R
|
||
|
||
MOVI -020000H,B0
|
||
MOVI 020000H,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,*A8(OYVEL),L
|
||
MOVI FLIPR,A9
|
||
MOVE @MCON,A1
|
||
JRZ NOMCA3
|
||
MOVI FLIPRZ,A9
|
||
NOMCA3 MOVK 1,A1
|
||
JSRP FRANIM
|
||
STL1 SLEEP 40
|
||
CALLA SCRTST
|
||
JRZ STL1
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
|
||
|
||
ST5 ;ARM LEFT
|
||
.LONG 0,0,MARM1
|
||
.WORD 228,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG -40000H,-10000H
|
||
ST5Z ;ARM LEFT
|
||
.LONG 0,0,MARM1Z
|
||
.WORD 228,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG -40000H,-10000H
|
||
ST6 ;ARM RGT
|
||
.LONG 0,0,MARM1
|
||
.WORD 228,DMAWNZ+M_FLIPH+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 040000H,-10000H
|
||
ST6Z ;ARM RGT
|
||
.LONG 0,0,MARM1Z
|
||
.WORD 228,DMAWNZ+M_FLIPH+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 040000H,-10000H
|
||
STCR ;ARM RGT
|
||
.LONG 0,0,TRS1
|
||
.WORD 228,DMAWNZ+M_FLIPH+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 050000H,0H
|
||
STCRZ ;ARM RGT
|
||
.LONG 0,0,TRS1Z
|
||
.WORD 228,DMAWNZ+M_FLIPH+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 050000H,0H
|
||
TKPC1 ;
|
||
.LONG 0,0,MTNK1A
|
||
.WORD 328,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG -50000H,0H
|
||
TKPC2
|
||
.LONG 0,0,TRD2
|
||
.WORD 328,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG -40000H,30000H
|
||
TKPC3
|
||
.LONG 0,0,BELLY2
|
||
.WORD 328,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 0H,38000H
|
||
TKPC4
|
||
.LONG 0,0,TRD2
|
||
.WORD 328,DMAWNZ+M_FLIPH+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 40000H,30000H
|
||
TKPC5
|
||
.LONG 0,0,MTNK1A
|
||
.WORD 328,DMAWNZ+M_FLIPH+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 50000H,0H
|
||
|
||
BLD ;ARM RGT
|
||
.LONG 0,0,bldclt1
|
||
.WORD 228,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 0H,0H
|
||
PRZBLD ;ARM RGT
|
||
.LONG 0,0,CASH
|
||
.WORD 228,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 0H,0H
|
||
KBM ;ARM RGT
|
||
.LONG 0,0,KBM1
|
||
.WORD 228,DMAWNZ+M_FLIPH+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 0H,0H
|
||
STCL ;ARM RGT
|
||
.LONG 0,0,TRS1
|
||
.WORD 228,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG -050000H,0H
|
||
STCLZ ;ARM RGT
|
||
.LONG 0,0,TRS1Z
|
||
.WORD 228,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG -050000H,0H
|
||
STCR2 ;ARM RGT
|
||
.LONG 0,0,TRS1
|
||
.WORD 228,DMAWNZ+M_FLIPH+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 050000H,0H
|
||
STCR2Z ;ARM RGT
|
||
.LONG 0,0,TRS1Z
|
||
.WORD 228,DMAWNZ+M_FLIPH+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 050000H,0H
|
||
STCL2 ;ARM RGT
|
||
.LONG 0,0,TRS1
|
||
.WORD 228,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG -050000H,0H
|
||
STCL2Z ;ARM RGT
|
||
.LONG 0,0,TRS1Z
|
||
.WORD 228,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG -050000H,0H
|
||
STCH
|
||
.LONG 0,0,MUG1
|
||
.WORD 231,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 0H,-20000H
|
||
STCHZ
|
||
.LONG 0,0,MUG1Z
|
||
.WORD 231,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT
|
||
.LONG 0H,-20000H
|
||
|
||
THROWC
|
||
CREATE 0,BLOSND
|
||
;CREATE SEVERAL CHESTS BLOWING OFF BODY TO LEFT AND RIGHT
|
||
MOVK 15,A10
|
||
TL22
|
||
CREATE 0,SENDCL
|
||
CREATE 0,SENDCR
|
||
SLEEP 10
|
||
MOVI EXP3HIA,A0
|
||
CALLA ONESND
|
||
PUSH A10
|
||
CALLA DOSHK0
|
||
PULL A10
|
||
DSJ A10,TL22
|
||
MOVI WPSSND,A0
|
||
CALLA ONESND
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
|
||
MOVE @MUTPTR,A0,L
|
||
MOVE *A0(TRSL),A8,L
|
||
MOVI TRS1A,A1
|
||
MOVE @MCON,A4
|
||
JRZ NOVV
|
||
MOVI TRS1AZ,A1
|
||
NOVV
|
||
MOVE *A8(OFLAGS),A4,W ;NEW OFLAGS
|
||
CALLA ANI
|
||
|
||
MOVE @MUTPTR,A0,L
|
||
MOVE *A0(TRSR),A8,L
|
||
MOVI TRS1A,A1
|
||
MOVE @MCON,A4
|
||
JRZ NOBBA
|
||
MOVI TRS1AZ,A1
|
||
NOBBA
|
||
MOVE *A8(OFLAGS),A4,W ;NEW OFLAGS
|
||
CALLA ANI
|
||
DIE
|
||
SENDCR
|
||
MOVI STCR,A14
|
||
MOVE @MCON,A1
|
||
JRZ NOMCC
|
||
MOVI STCRZ,A14
|
||
NOMCC 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
|
||
MOVE *A8(OPAL),A0,L
|
||
ANDI 0FFFFH,A0
|
||
MOVE A0,*A8(OPAL),L
|
||
MOVE A8,A9
|
||
MOVE @MUTPTR,A8,L
|
||
MOVE *A8(TNKL),A8,L ;TRSR
|
||
CALLA GETANIXY
|
||
MOVE A9,A0
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
MOVE A9,A8
|
||
CREATE 0,FRBALL
|
||
CREATE 0,FRBALL2
|
||
CREATE 0,FRBALL3
|
||
CREATE 0,FRBALL2
|
||
|
||
MOVI FLIPCR,A9
|
||
MOVE @MCON,A1
|
||
JRZ NOMCA4
|
||
MOVI FLIPCRZ,A9
|
||
NOMCA4 MOVK 1,A1
|
||
JSRP FRANIM
|
||
STL2 SLEEP 40
|
||
CALLA SCRTST
|
||
JRZ STL2
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
SENDCL
|
||
MOVI STCL,A14
|
||
MOVE @MCON,A1
|
||
JRZ NOMCD
|
||
MOVI STCLZ,A14
|
||
NOMCD 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
|
||
MOVE *A8(OPAL),A0,L
|
||
ANDI 0FFFFH,A0
|
||
MOVE A0,*A8(OPAL),L
|
||
MOVE A8,A9
|
||
MOVE @MUTPTR,A8,L
|
||
MOVE *A8(TNKL),A8,L ;TRSL
|
||
CALLA GETANIXY
|
||
MOVE A9,A0
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
MOVE A9,A8
|
||
CREATE 0,FRBALL
|
||
CREATE 0,FRBALL2
|
||
CREATE 0,FRBALL3
|
||
CREATE 0,FRBALL2
|
||
|
||
MOVI FLIPCL,A9
|
||
MOVE @MCON,A1
|
||
JRZ NOMCA5
|
||
MOVI FLIPCLZ,A9
|
||
NOMCA5 MOVK 1,A1
|
||
JSRP FRANIM
|
||
STL3 SLEEP 40
|
||
CALLA SCRTST
|
||
JRZ STL3
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
|
||
THROWH
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
MOVK 20,A10
|
||
TL23
|
||
CREATE 0,SENDH
|
||
CREATE 0,SENDH
|
||
CREATE 0,SENDH
|
||
SLEEP 10
|
||
PUSH A10
|
||
CALLA DOSHK0
|
||
PULL A10
|
||
DSJ A10,TL23
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
DIE
|
||
SENDH
|
||
MOVI STCH,A14
|
||
MOVE @MCON,A1
|
||
JRZ NOMCE
|
||
MOVI STCHZ,A14
|
||
NOMCE 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
|
||
MOVE *A8(OPAL),A0,L
|
||
ANDI 0FFFFH,A0
|
||
MOVE A0,*A8(OPAL),L
|
||
MOVE A8,A9
|
||
MOVE @MUTPTR,A8,L
|
||
MOVE *A8(TNKL),A8,L ;MHEAD
|
||
CALLA GETANIXY
|
||
MOVE A9,A0
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
MOVE A9,A8
|
||
CREATE 0,FRBALL1
|
||
CREATE 0,FRBALL3
|
||
|
||
MOVI -040000H,B0
|
||
MOVI 040000H,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVI FLIPH,A9
|
||
MOVE @MCON,A1
|
||
JRZ NOMCA6
|
||
MOVI FLIPHZ,A9
|
||
NOMCA6 MOVK 1,A1
|
||
MOVE A9,A10
|
||
JSRP FRANIM
|
||
MOVE A10,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVE A10,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
STL4 SLEEP 40
|
||
CALLA SCRTST
|
||
JRZ STL4
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
|
||
THROWC2
|
||
;COVER TANK WITH EXPLOSIONS, THEN BLOW OFF
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
|
||
|
||
;CREATE SEVERAL CHESTS BLOWING OFF BODY TO LEFT AND RIGHT
|
||
CREATE 0,SENDCL2
|
||
CREATE 0,SENDCR2
|
||
CALLA DOSHK0
|
||
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
CREATE 0,ADDPCS2
|
||
SLEEP 60
|
||
MOVI NOWAY,A0
|
||
CALLA ONESND
|
||
DIE
|
||
SENDCR2
|
||
MOVI STCR2,A14
|
||
MOVE @MCON,A1
|
||
JRZ NOMCF
|
||
MOVI STCR2Z,A14
|
||
NOMCF 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
|
||
MOVE *A8(OPAL),A0,L
|
||
ANDI 0FFFFH,A0
|
||
MOVE A0,*A8(OPAL),L
|
||
MOVE A8,A9
|
||
MOVE @MUTPTR,A8,L
|
||
MOVE *A8(TNKL),A8,L ;TRSR
|
||
CALLA GETANIXY
|
||
MOVE A9,A0
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
MOVE A9,A8
|
||
CREATE 0,FRBALL
|
||
CREATE 0,FRBALL2
|
||
CREATE 0,FRBALL2
|
||
CREATE 0,FRBALL2
|
||
|
||
MOVI FLIPCR2,A9
|
||
MOVE @MCON,A1
|
||
JRZ NOMCA7
|
||
MOVI FLIPCR2Z,A9
|
||
NOMCA7
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
STL5 SLEEP 40
|
||
CALLA SCRTST
|
||
JRZ STL5
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
SENDCL2
|
||
MOVI STCL2,A14
|
||
MOVE @MCON,A1
|
||
JRZ NOMCG
|
||
MOVI STCL2Z,A14
|
||
NOMCG 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
|
||
MOVE *A8(OPAL),A0,L
|
||
ANDI 0FFFFH,A0
|
||
MOVE A0,*A8(OPAL),L
|
||
MOVE A8,A9
|
||
MOVE @MUTPTR,A8,L
|
||
MOVE *A8(TNKL),A8,L ;TRSL
|
||
CALLA GETANIXY
|
||
MOVE A9,A0
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
MOVE A9,A8
|
||
CREATE 0,FRBALL
|
||
CREATE 0,FRBALL2
|
||
CREATE 0,FRBALL2
|
||
CREATE 0,FRBALL2
|
||
|
||
MOVI FLIPCL2,A9
|
||
MOVE @MCON,A1
|
||
JRZ NOMCA8
|
||
MOVI FLIPCL2Z,A9
|
||
NOMCA8
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
STL6 SLEEP 40
|
||
CALLA SCRTST
|
||
JRZ STL6
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
TURN1 MOVI 30,A9
|
||
TX1
|
||
MOVE *A10(OFLAGS),A1
|
||
ORI M_NOCOLL,A1
|
||
MOVE A1,*A10(OFLAGS)
|
||
MOVE A10,A0
|
||
CALLA OBJOFF
|
||
SLEEP 1
|
||
DSJS A9,TX1
|
||
DIE
|
||
|
||
SNKHIT
|
||
MOVE *A0(OXVEL),A9,L
|
||
MOVE *A0(OYVEL),A10,L
|
||
CREATE 0,SHIFTIT
|
||
JRUC NADA
|
||
|
||
SHIFTIT MOVK 4,A11
|
||
SRA 2,A9
|
||
SRA 2,A10
|
||
SHF
|
||
MOVE A9,*A8(OXVEL),L
|
||
MOVE A10,*A8(OYVEL),L
|
||
SLEEP 1
|
||
DSJS A11,SHF
|
||
MOVE *A8(OPLINK),A0,L
|
||
MOVB *A0(SKHITS),A1
|
||
INC A1
|
||
MOVB A1,*A0(SKHITS)
|
||
D DIE
|
||
;
|
||
EXP_BULL2
|
||
CLR A0
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVE A0,*A8(OYVEL),L
|
||
EXP_BULL
|
||
MMTM SP,A1,A7
|
||
;A8=BULLET TO BLOW UP
|
||
CLR A1
|
||
MOVE *A8(OID),A0
|
||
CMPI CLSPLYR|TYPPLBL|SUBGRND,A0
|
||
JRNE EXB
|
||
;GRENADE TO EXPLODE
|
||
MOVE A1,*A8(OID),W
|
||
MOVE *A8(OPLINK),A0,L
|
||
CALLA GETA9
|
||
CALLA KILL ;KILLS PROCESS IN A0
|
||
MOVE A9,A0
|
||
CALLA DELOBJ
|
||
CREATE 0,GRNDEXP
|
||
MMFM SP,A1,A7
|
||
RETS
|
||
;
|
||
EXB
|
||
CMPI CLSPLYR|TYPPLBL|SUBNOSTP,A0
|
||
JRNE EXA
|
||
MOVE A1,*A8(OXVEL),L
|
||
MOVE A1,*A8(OYVEL),L
|
||
EXA MOVE A1,*A8(OID)
|
||
MOVE *A8(OPLINK),A0,L
|
||
CALLA KILL ;KILLS PROCESS IN A0
|
||
CREATE 0,BULEXP
|
||
MMFM SP,A1,A7
|
||
RETS
|
||
;
|
||
GRNDEXP
|
||
;GRENADE EXPLOSION!
|
||
MOVI BOOM2,A9
|
||
|
||
CLR A6
|
||
CLR A7
|
||
CALLA NEWV
|
||
MOVE @YVEL,A0,L
|
||
MOVE A0,*A8(OYVEL),L
|
||
MOVE @XVEL,A0,L
|
||
MOVE A0,*A8(OXVEL),L
|
||
JRUC BTR
|
||
BULEXP
|
||
MOVI BOOMN,A9 ;BOOM3 CHANGES PALETTE TO EXPLOSION!
|
||
MOVI 160,A0
|
||
MOVE A0,*A8(OZPOS)
|
||
BTR
|
||
MOVE *A8(OXPOS),A0
|
||
SUBI 4,A0
|
||
MOVE A0,*A8(OXPOS)
|
||
MOVE *A8(OYPOS),A0
|
||
SUBI 1,A0
|
||
MOVE A0,*A8(OYPOS)
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
;
|
||
BOOMN2:
|
||
.LONG KBM1
|
||
.WORD 4
|
||
.LONG KBM2
|
||
.WORD 4
|
||
.LONG 0
|
||
BOOMN:
|
||
.LONG KBM1
|
||
.WORD 4
|
||
.LONG KBM2
|
||
.WORD 4
|
||
.LONG KBM3
|
||
.WORD 4
|
||
.LONG KBM4
|
||
.WORD 4
|
||
.LONG KBM5
|
||
.WORD 4
|
||
.LONG KBM6
|
||
.WORD 4
|
||
.LONG KBM7
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
;
|
||
MV_TNK
|
||
;MOVE LOGIC
|
||
;HANDLE MOVE DIR, SPEED, LENGTH OF MOVE
|
||
;WHEN MOVE IS DONE, TANK STOPS FOR A SHORT TIME
|
||
;THEN GET NEW ACTION FROM THE FOLLOWING:
|
||
|
||
;ACTION
|
||
; 0=ROLLIN FROM TOP OF SCREEN
|
||
; 1=MOVE DOWN SCREEN FOR X TIME
|
||
; 2=MOVE UP SCREEN FOR X TIME
|
||
; 3=POUND RIGHT/LFT ARM FAST AND SKIP TANK TO LEFT
|
||
; 4=POUND RIGHT/LFT ARM FAST AND SKIP TANK TO RIGHT
|
||
; 5=MOVE HEAD AROUND AND TRY TO LASER AT PLAYERS
|
||
; 6=POUND LEFT ARM SLOW/SHAKE SCREEN ON IMPACT/SMILE FACE
|
||
; 7=POUND RIGHT ARM SLOW/SHAKE SCREEN ON IMPACT/SMILE FACE
|
||
; 8=DO MUSCLE POSE FOR A MOMENT THEN RELAX ARMS/SMILE FACE
|
||
; 9=BOTH ARMS FLAILING WITH POUNDS INTO GROUND NO X MOVE
|
||
; 10=STOP
|
||
; 11=BRING RANDOM ARM UP TO MARM3 POSITION
|
||
; 12=LUNGE BACKWARD INTO PLAYER
|
||
; 13=LUNGE FORWARD INTO PLAYER
|
||
|
||
MOVB @MACTION,A0
|
||
SLL 5,A0
|
||
ADDI JPTBL,A0
|
||
MOVE *A0,A0,L
|
||
JUMP A0
|
||
|
||
;JPTBLF .LONG ROLLINF,MDNF,MUPF,FPNDRGTF,FPNDLFTF,MVHDF,PNDLFTF,PNDRGTF,POSEF
|
||
; .LONG FLAILF,STOPF,FISTF,LUNGEF,LUNGEDF
|
||
ACTIONS
|
||
.BYTE 1,1,1,1,1,1
|
||
.BYTE 2,2,2,2,2,2
|
||
.BYTE 3,3,3,3,3,3,3
|
||
.BYTE 4,4,4,4,4,4,4
|
||
.BYTE 5,5,5,5,5,5,5,5
|
||
.BYTE 6,6
|
||
.BYTE 7,7
|
||
.BYTE 8,8,8
|
||
.BYTE 11,11,11,11 ;JUST IN CASE
|
||
|
||
.EVEN
|
||
GET_ACT
|
||
MOVI 800,A0
|
||
CALLA RANDPER
|
||
JRNC NO1
|
||
;MAYBE DO A LUNGE
|
||
CALLA RANDPL
|
||
MOVB @PLYRAD,A0
|
||
ADDI PLYROBJS,A0
|
||
MOVE *A0,A0,L
|
||
MOVE *A0(OYPOS),A2
|
||
MOVE *A0(OXPOS),A1
|
||
;IF PLAYER IS DIRECTLY ABOVE MUTOID MAN, LUNGE BACKWARD!
|
||
;IF PLAYER IS DIRECTLY BELOW MUTOID MAN, LUNGE BACKWARD!
|
||
MOVE *A8(OXPOS),A3
|
||
SUB A1,A3
|
||
ABS A3
|
||
CMPI 40,A3
|
||
JRNC NO1
|
||
;YES PLYR IS IN X RANGE
|
||
MOVE *A8(OYPOS),A3
|
||
ADDI 110,A3
|
||
SUB A2,A3
|
||
ABS A3
|
||
CMPI 20,A3 ;10
|
||
JRC HT2 ;BR=LUNGE DOWN SCREEN
|
||
|
||
MOVE *A8(OYPOS),A3
|
||
CMP A2,A3
|
||
JRNC HT
|
||
SUB A2,A3
|
||
ABS A3
|
||
CMPI 60,A3 ;50
|
||
JRNC NO1
|
||
;YES A HIT!
|
||
HT MOVK 12,A0
|
||
JRUC GET_ST
|
||
HT2 MOVK 13,A0
|
||
JRUC GET_ST
|
||
|
||
NO1
|
||
MOVI 1,B0
|
||
MOVI 43,B1
|
||
MOVE @DMGPNT,A0
|
||
CMPI 4,A0
|
||
JRNE NO1A
|
||
MOVI 28,B1
|
||
NO1A CALLA RANGRAND
|
||
DEC A0
|
||
SLL 3,A0
|
||
ADDI ACTIONS,A0
|
||
MOVB *A0,A0
|
||
GET_ST
|
||
MOVB @DMGPNT,A1
|
||
CMPI 5,A1
|
||
JRNZ HJ
|
||
MOVB @TOTLZRS,A1
|
||
JRNZ HJ
|
||
;START LAZER RIGHT AWAY!
|
||
MOVK 5,A0 ;STOP
|
||
JRUC GETY
|
||
HJ MOVB @SNKOUT,A1
|
||
JRZ GETY
|
||
CLR A0
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVE A0,*A8(OYVEL),L
|
||
MOVK 10,A0 ;STOP
|
||
|
||
;
|
||
GETY MOVB A0,@MACTION
|
||
SLL 5,A0
|
||
ADDI JPTBLF,A0 ;WHAT TO DO FIRST
|
||
MOVE *A0,A0,L
|
||
JUMP A0
|
||
|
||
LUNGEF
|
||
MOVI UPYVEL2,A0
|
||
JRUC MUPF2
|
||
LUNGEDF
|
||
MOVI DNYVEL2,A0
|
||
JRUC MDNF2
|
||
STOPF
|
||
;DO NOTHING!
|
||
CLR A0
|
||
CALLA MOD_VELS
|
||
MOVI 8,A0 ;10
|
||
MOVE A0,@MTIME
|
||
RETS
|
||
|
||
RORSND
|
||
SLEEP 60
|
||
MOVI AWWSND2,A0
|
||
CALLA ONESND
|
||
SLEEP 100
|
||
MOVI AWWSND2,A0
|
||
CALLA ONESND
|
||
SLEEP 100
|
||
MOVI EESND,A0
|
||
CALLA ONESND
|
||
DIE
|
||
|
||
ROLLINF
|
||
MOVK 1,A0 ;TELL TANK TO ROLL DOWN SCRN
|
||
MOVB A0,@TRDSLP
|
||
MOVB A0,@MACTION
|
||
MOVI 0100,A0
|
||
MOVE A0,@MEROAR ;TELL FACE TO ROAR
|
||
;@MEROAR
|
||
MOVI AWWSND2,A0
|
||
CALLA ONESND
|
||
MOVI DNYVEL,A0
|
||
CALLA MOD_VELS
|
||
CREATE 0,RORSND
|
||
MOVI 800,A0
|
||
JRUC INH
|
||
FPNDLFTF ;FAST PND LEFT FIRST
|
||
;SETUP FRANIM PNTR
|
||
;THIS ARM WILL POUND X TIMES AS WILL THE RIGHT ARM.
|
||
;SKIP TANK TO LEFT EACH TIME X PIXELS
|
||
CLR A0 ;LEFT
|
||
MOVB A0,@MDIR ;MUTOID DIR
|
||
ALL
|
||
MOVI 10,B0
|
||
MOVI 40,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,@UPDT
|
||
|
||
MOVK 1,A0
|
||
MOVB A0,@TIMES ;POUND TIMES
|
||
MOVI FPNDRARM,A0
|
||
MOVE @MCON,A1
|
||
JRZ NOMCB1
|
||
MOVI FPNDRARMZ,A0
|
||
NOMCB1 MOVE A0,@FPNDRP,L
|
||
MOVK 1,A0
|
||
MOVB A0,@PLS ;THIS WILL HANDLE BOTH ARMS
|
||
MOVI FPNDLARM,A0
|
||
MOVE @MCON,A1
|
||
JRZ NOMCB1A
|
||
MOVI FPNDLARMZ,A0
|
||
NOMCB1A
|
||
MOVE A0,@FPNDLP,L
|
||
CREATE 0,SHKIT
|
||
RETS
|
||
FPNDRGTF
|
||
;THIS ARM WILL POUND X TIMES AS WILL THE RIGHT ARM.
|
||
;SKIP TANK TO RIGHT EACH TIME X PIXELS
|
||
MOVK 4,A0
|
||
MOVB A0,@MACTION ;POUND LEFT
|
||
MOVK 1,A0 ;RIGHT
|
||
MOVB A0,@MDIR ;MUTOID DIR
|
||
JRUC ALL
|
||
|
||
MVHDF
|
||
;STOP TANK
|
||
;TELL HEAD PROC TO AIM AND FIRE
|
||
; MOVB @PCNT,A0
|
||
; ANDI 07H,A0
|
||
; JRZ MO0
|
||
; MOVI CLSENMY|TYPTORSO,A0
|
||
; MOVI 0FFFFH,A1
|
||
; CALLA EXISTOBJ
|
||
; JRNZ LOP
|
||
;MO0
|
||
MOVB @TOTLZRS,A0
|
||
JRZ OKC
|
||
JRNZ LOP2
|
||
;ALREADY IN LAZER MODE
|
||
;LOP
|
||
MOVB @PCNT,A0
|
||
LOP2 ANDI 1,A0
|
||
INC A0
|
||
MOVB A0,@MACTION
|
||
CMPI 1,A0
|
||
JREQ MDNF
|
||
JRUC MUPF
|
||
OKC CLR A0
|
||
MOVB A0,@INAIR
|
||
MOVI 500,A0
|
||
MOVB @DMGPNT,A1
|
||
CMPI 5,A1
|
||
JRZ DA1
|
||
|
||
MOVI 5,B0
|
||
MOVI 25,B1 ;20
|
||
CALLA RANGRAND
|
||
DA1 MOVB A0,@TOTLZRS ;TOTAL LAZER SHOTS HE WILL SHOOT
|
||
RANDPL
|
||
BTST 0,A0
|
||
JRZ PLY1
|
||
;WILL TRY TO LAZER PLAYER 2
|
||
MOVE @PLYROBJS+32,A1,L
|
||
JRZ PLY3
|
||
PLY2 MOVK 32,A0
|
||
MOVB A0,@PLYRAD
|
||
RETS
|
||
PLY1 MOVE @PLYROBJS,A1,L
|
||
JRZ PLY2
|
||
PLY3 CLR A0
|
||
MOVB A0,@PLYRAD
|
||
RETS
|
||
PNDLFTF
|
||
;SETUP FRANIM PNTR
|
||
MOVI 1,B0
|
||
MOVI 3,B1
|
||
CALLA RANGRAND
|
||
MOVB A0,@TIMES
|
||
SETL
|
||
MOVI PNDLARM,A0
|
||
MOVE @MCON,A1
|
||
JRZ NOMCB2
|
||
MOVI PNDLARMZ,A0
|
||
NOMCB2
|
||
MOVE A0,@PNDLP,L
|
||
MOVK 1,A0
|
||
MOVB A0,@PLS
|
||
CREATE 0,SHKIT
|
||
RETS
|
||
FISTF
|
||
;BRING RANDOM ARM UP TO MARM3 POSITION
|
||
;SETUP FRANIM PNTR
|
||
CLR A0
|
||
MOVE A0,@FISTRP,L
|
||
MOVE A0,@FISTLP,L
|
||
MOVB A0,@FISTDN
|
||
MOVI 60,B0
|
||
MOVI 300,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,@UPDT ;TIME ARM HELD IN AIR
|
||
BTST 0,A0
|
||
JRZ W1
|
||
MOVI FISTR,A0
|
||
MOVE @MCON,A1
|
||
JRZ NOMCC2
|
||
MOVI FISTRZ,A0
|
||
NOMCC2
|
||
MOVE A0,@FISTRP,L
|
||
MOVK 1,A0
|
||
MOVB A0,@PRS
|
||
RETS
|
||
W1
|
||
MOVI FISTL,A0
|
||
MOVE @MCON,A1
|
||
JRZ NOMCC3
|
||
MOVI FISTLZ,A0
|
||
NOMCC3
|
||
MOVE A0,@FISTLP,L
|
||
MOVK 1,A0
|
||
MOVB A0,@PLS
|
||
RETS
|
||
|
||
PNDRGTF
|
||
MOVI 1,B0
|
||
MOVI 3,B1
|
||
CALLA RANGRAND
|
||
MOVB A0,@TIMES
|
||
SETR
|
||
MOVI PNDRARM,A0
|
||
MOVE @MCON,A1
|
||
JRZ NOMCC4
|
||
MOVI PNDRARMZ,A0
|
||
NOMCC4
|
||
MOVE A0,@PNDRP,L
|
||
MOVK 1,A0
|
||
MOVB A0,@PRS
|
||
CREATE 0,SHKIT
|
||
RETS
|
||
POSEF
|
||
MOVI 2,B0
|
||
MOVI 4,B1
|
||
CALLA RANGRAND
|
||
MOVB A0,@TIMES
|
||
MOVB @TOTLZRS,A0
|
||
JRNZ PSET ;BR=LAZERS ARE ON
|
||
MOVI 800,A0
|
||
CALLA RANDPER
|
||
JRNC PSET
|
||
|
||
MOVI 30,B0
|
||
MOVI 140,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,@MEROAR ;TIME TO ROAR
|
||
CREATE 0,RORS
|
||
|
||
PSET
|
||
MOVE @MCON,A1
|
||
JRZ NOMCC1
|
||
MOVI POSEMELZ,A0
|
||
MOVE A0,@POSEL,L
|
||
MOVI POSEMERZ,A0
|
||
JRUC CONTA
|
||
|
||
NOMCC1 MOVI POSEMEL,A0
|
||
MOVE A0,@POSEL,L
|
||
MOVI POSEMER,A0
|
||
CONTA MOVE A0,@POSER,L
|
||
MOVK 1,A0
|
||
MOVB A0,@PLS
|
||
RETS
|
||
FLAILF
|
||
RETS
|
||
RORS SLEEP 40
|
||
MOVI AWWSND,A0
|
||
CALLA ONESND
|
||
SLEEP 60
|
||
MOVI AWWSND,A0
|
||
CALLA ONESND
|
||
SLEEP 80
|
||
MOVI OUCH,A0
|
||
CALLA ONESND
|
||
DIE
|
||
MUPF
|
||
MOVE @HALT,A0
|
||
JRNZ FLAILF
|
||
;MAKE SURE ARMS ARE NOT ON GROUND
|
||
MOVI UPYVEL,A0
|
||
MUPF2 ;FAST UP SCREEN
|
||
CALLA MOD_VELS
|
||
CALLR CK_KNUCK
|
||
CALLR GET_TIME
|
||
MOVE A0,@MTIME
|
||
;TELL LEGS TO ANIMATE BACKWARD
|
||
MOVI BTRDSDLL,A0 ;TREAD SIDE LFT ANI LIST
|
||
MOVE A0,@TRDSDLP,L ;PNTR FOR TREAD SIDE LEFT LIST
|
||
MOVI BTRDSDRL,A0 ;TREAD SIDE RGT ANI LIST
|
||
MOVE A0,@TRDSDRP,L ;PNTR FOR TREAD SIDE RGT LIST
|
||
MOVI BTRDFTLL,A0 ;TREAD FRONT ANI LIST LEFT
|
||
MOVE A0,@TRDFTLP,L ;PNTR FOR TREAD FRONT LEFT LIST
|
||
MOVI BTRDFTRL,A0 ;TREAD FRONT ANI LIST RIGHT
|
||
MOVE A0,@TRDFTRP,L ;PNTR FOR TREAD FRONT RGT LIST
|
||
;FRANIM LISTS ARE SET FOR TREADS
|
||
RYT RETS
|
||
MDNF
|
||
;CHECK TO SEE IF DOWN IS OKAY!
|
||
;MAKE SURE ARMS ARE NOT ON GROUND
|
||
MOVE @HALT,A0
|
||
JRNZ RYT
|
||
MOVI DNYVEL,A0
|
||
MDNF2
|
||
CALLA MOD_VELS
|
||
CALLR CK_KNUCK
|
||
CALLR GET_TIME
|
||
INH MOVE A0,@MTIME
|
||
;TELL LEGS TO ANIMATE FORWARD
|
||
MOVI TRDSDLL,A0 ;TREAD SIDE LFT ANI LIST
|
||
MOVE A0,@TRDSDLP,L ;PNTR FOR TREAD SIDE LEFT LIST
|
||
MOVI TRDSDRL,A0 ;TREAD SIDE RGT ANI LIST
|
||
MOVE A0,@TRDSDRP,L ;PNTR FOR TREAD SIDE RGT LIST
|
||
MOVI TRDFTLL,A0 ;TREAD FRONT ANI LIST LEFT
|
||
MOVE A0,@TRDFTLP,L ;PNTR FOR TREAD FRONT LEFT LIST
|
||
MOVI TRDFTRL,A0 ;TREAD FRONT ANI LIST RIGHT
|
||
MOVE A0,@TRDFTRP,L ;PNTR FOR TREAD FRONT RGT LIST
|
||
;FRANIM LISTS ARE SET FOR TREADS
|
||
RETS
|
||
CK_KNUCK
|
||
MOVB @DMGPNT,A0
|
||
JRZ CK1
|
||
CMPI 1,A0
|
||
JRZ MD2
|
||
JRUC MD3
|
||
CK1 MOVE *A13(ARML),A0,L
|
||
MOVE *A0(OIMG),A0,L
|
||
CMPI MARM6AZ,A0
|
||
JRZ CONTZ
|
||
CMPI MARM6A,A0
|
||
JRNE MD2
|
||
CONTZ
|
||
;ARM IS ON GROUND-ANI IN REGULAR ARM
|
||
PUSH A8
|
||
MOVE *A13(ARML),A8,L
|
||
; MOVI CLSENMY|TYPMUT|SUBARML,A3
|
||
; MOVE A3,*A8(OID)
|
||
MOVI MARM1,A1
|
||
MOVE @MCON,A4
|
||
JRZ NODD
|
||
MOVI MARM1Z,A1
|
||
NODD
|
||
MOVI DMAWNZ+M_PIXSCAN,A4,W ;NEW OFLAGS
|
||
CALLA ANI
|
||
PULL A8
|
||
MD2
|
||
MOVE *A13(ARMR),A0,L
|
||
MOVE *A0(OIMG),A0,L
|
||
CMPI MARM6AZ,A0
|
||
JRZ CONTZ1
|
||
CMPI MARM6A,A0
|
||
JRNE MD3
|
||
CONTZ1
|
||
;ARM IS ON GROUND-ANI IN REGULAR ARM
|
||
PUSH A8
|
||
MOVE *A13(ARMR),A8,L
|
||
; MOVI CLSENMY|TYPMUT|SUBARMR,A3
|
||
; MOVE A3,*A8(OID)
|
||
MOVI MARM1,A1
|
||
MOVE @MCON,A4
|
||
JRZ NOMCD1
|
||
MOVI MARM1Z,A1
|
||
NOMCD1
|
||
MOVI DMAWNZ+M_FLIPH+M_PIXSCAN,A4,W ;NEW OFLAGS
|
||
CALLA ANI
|
||
PULL A8
|
||
MD3 RETS
|
||
|
||
GET_TIME
|
||
;GET TIME TO TRAVEL IN DOWN DIRECTION
|
||
MOVI 50,B0
|
||
MOVI 100,B1
|
||
CALLA RANGRAND
|
||
RETS
|
||
DO_TIME
|
||
MOVE @MTIME,A0
|
||
; ANDI 03FFH,A0
|
||
DEC A0
|
||
MOVE A0,@MTIME
|
||
JRN DT3
|
||
RETS
|
||
DT3 MOVK 1,A0
|
||
MOVE A0,@MTIME
|
||
RETS
|
||
LUNGE
|
||
JRUC MUP
|
||
LUNGED
|
||
JRUC MDN
|
||
|
||
STOP
|
||
;TANK STOPPED
|
||
CALLR DO_TIME
|
||
JRNZ SKIPS
|
||
;STOP TANK FOR A MOMENT
|
||
CALLR GET_ACT
|
||
RETS
|
||
SKIPS
|
||
RETS
|
||
|
||
FPNDLFT ;FAST PND LEFT $ RIGHT
|
||
MOVB @TIMES,A0
|
||
JRNZ STIL ;BR=STILL MOVING ARMS
|
||
;POUND DONE, WE ARE UPDATING X
|
||
MOVE *A8(OXVAL),A1,L
|
||
MOVE @WORLDTLX,A4,L
|
||
SUB A4,A1
|
||
MOVB @MDIR,A0
|
||
JRNZ CKR
|
||
;CK LEFT
|
||
CMPI [115,0],A1 ;100,135
|
||
;HAS IS HIT LEFT, STOP IT FROM MOVING MORE TO LEFT
|
||
JRNC MOK
|
||
JRUC RTS
|
||
CKR CMPI [215,0],A1
|
||
JRNC RTS
|
||
;OKAY TO UPDATE X POS
|
||
; MOVB @MDIR,A0
|
||
MOK SLL 5,A0
|
||
MOVE @MCON,A1
|
||
JRZ NOMCD2
|
||
ADDI ADSUZ,A0
|
||
JRUC NOMCD3
|
||
NOMCD2
|
||
ADDI ADSU,A0
|
||
NOMCD3 MOVE *A0,A0,L
|
||
MOVE *A8(OXVAL),A1,L
|
||
ADD A0,A1
|
||
MOVE A1,*A8(OXVAL),L
|
||
RTS
|
||
MOVE @UPDT,A0
|
||
DEC A0
|
||
MOVE A0,@UPDT
|
||
JRNZ RT
|
||
MOVK 10,A0 ;STOP MUTOID MAN
|
||
CALLR GET_ST
|
||
RT
|
||
MOVE @UPDT,A0
|
||
ANDI 07H,A0
|
||
SLL 4,A0
|
||
ADDI YADJ,A0
|
||
MOVE *A0,A0,W
|
||
SLL 16,A0
|
||
MOVE *A8(OYVAL),A1,L
|
||
ADD A0,A1
|
||
MOVE A1,*A8(OYVAL),L
|
||
RETS
|
||
YADJ .WORD 3,-2,-4,4,-5,3,4,-3
|
||
|
||
STIL MOVB @PLS,A0 ;POUND LEFT SLEEP
|
||
DEC A0
|
||
MOVB A0,@PLS
|
||
JRNZ PEX
|
||
PUSH A8
|
||
;DO RIGHT ARM
|
||
MOVE @FPNDRP,A9,L
|
||
MOVE *A13(ARMR),A8,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,@FPNDRP,L
|
||
;DO LEFT
|
||
MOVE @FPNDLP,A9,L
|
||
MOVE *A13(ARML),A8,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVB A0,@PLS
|
||
MOVE A9,@FPNDLP,L
|
||
JRNC PL8X ;BR=DO RIGHT ARM
|
||
;
|
||
;POUND BY BOTH ARMS IS DONE
|
||
PULL A8
|
||
MOVB @TIMES,A0
|
||
DEC A0
|
||
MOVB A0,@TIMES
|
||
DOSHK0
|
||
;START SHAKE
|
||
MOVI MBANG,A0 ;MBANG
|
||
CALLA ONESND
|
||
MOVB @SHK_ON,A0
|
||
JRNZ PEX
|
||
MOVI 15,A10
|
||
CALLA SHAKER
|
||
RETS
|
||
PL8X PULL A8
|
||
PEX
|
||
RETS
|
||
;
|
||
ADSU: .LONG -020000H,020000H ;3,3
|
||
ADSUZ: .LONG -048000H,048000H ;3,3
|
||
MVHD
|
||
;LAZER MODE IS ON FOR HEAD. HEAD IS TRYING TO LASER PLAYERS TO DEATH
|
||
;DELAY FOR AWHILE, THEN GET A NEW ACTION
|
||
JRUC DN1
|
||
|
||
MOVB @TOTLZRS,A0
|
||
JRZ DN1 ;NEW MODE
|
||
RETS
|
||
|
||
PNDLFT ;POUND LEFT
|
||
MOVB @PLS,A0 ;POUND LEFT SLEEP
|
||
DEC A0
|
||
MOVB A0,@PLS
|
||
JRNZ PEXA
|
||
PUSH A8
|
||
;DO LEFT
|
||
MOVE @PNDLP,A9,L
|
||
MOVE *A13(ARML),A8,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVB A0,@PLS
|
||
MOVE A9,@PNDLP,L
|
||
JRNC PL8XA
|
||
|
||
;POUND BY LEFT ARM IS DONE
|
||
PULL A8
|
||
|
||
MOVB @TIMES,A0
|
||
DEC A0
|
||
MOVB A0,@TIMES
|
||
JRZ DN1
|
||
CALLA SETL
|
||
RETS
|
||
|
||
DN1 MOVK 10,A0 ;STOP MUTOID MAN
|
||
CALLR GET_ST
|
||
RETS
|
||
PL8XA PULL A8
|
||
PEXA
|
||
RETS
|
||
PNDRGT
|
||
MOVB @PRS,A0 ;POUND LEFT SLEEP
|
||
DEC A0
|
||
MOVB A0,@PRS
|
||
JRNZ PEXB
|
||
PUSH A8
|
||
;DO RGT
|
||
MOVE @PNDRP,A9,L
|
||
MOVE *A13(ARMR),A8,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVB A0,@PRS
|
||
MOVE A9,@PNDRP,L
|
||
JRNC PL8XB
|
||
;POUND BY RGT ARM IS DONE
|
||
PULL A8
|
||
|
||
MOVB @TIMES,A0
|
||
DEC A0
|
||
MOVB A0,@TIMES
|
||
JRZ DN1B
|
||
CALLA SETR
|
||
RETS
|
||
|
||
DN1B MOVK 10,A0 ;STOP MUTOID MAN
|
||
CALLR GET_ST
|
||
RETS
|
||
PL8XB PULL A8
|
||
PEXB
|
||
RETS
|
||
|
||
SHKIT
|
||
;SPAWNED FROM FRANIM
|
||
;START SHAKE
|
||
;TURN ON ID THAT SAYS ARM CAN KILL PLAYERS!
|
||
SLEEP 35
|
||
MOVI MBANG,A0
|
||
CALLA ONESND
|
||
MOVB @SHK_ON,A0
|
||
JRNZ PXD
|
||
MOVI 10,A10
|
||
CALLA SHAKER
|
||
PXD DIE
|
||
|
||
FIST
|
||
MOVE @FISTLP,A0,L
|
||
JRNZ DLFT ;BR=LEFT FIST INTO AIR
|
||
;RIGHT FIST INTO AIR
|
||
MOVB @FISTDN,A0
|
||
JRZ GUP
|
||
;FIST IN AIR
|
||
MOVE @UPDT,A0
|
||
JREQ GUP
|
||
DEC A0
|
||
MOVE A0,@UPDT
|
||
JRNZ NY
|
||
;BRING IT DOWN
|
||
MOVI FISTR2,A0 ;COME DOWN LIST
|
||
MOVE @MCON,A1
|
||
JRZ NOMCE1
|
||
MOVI FISTR2Z,A0 ;COME DOWN LIST
|
||
NOMCE1
|
||
MOVE A0,@FISTRP,L
|
||
MOVK 1,A0
|
||
MOVB A0,@PRS
|
||
|
||
GUP MOVB @PRS,A0 ;POUND LEFT SLEEP
|
||
DEC A0
|
||
MOVB A0,@PRS
|
||
JRNZ NY
|
||
|
||
PUSH A8
|
||
MOVE @FISTRP,A9,L
|
||
MOVE *A13(ARMR),A8,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVB A0,@PRS
|
||
MOVE A9,@FISTRP,L
|
||
JRNC NY0
|
||
;FIST UP INTO AIR
|
||
MOVB @FISTDN,A0
|
||
JRNZ ITDWN
|
||
MOVK 1,A0
|
||
MOVB A0,@FISTDN ;SET FLAG IT IS UP
|
||
|
||
NY0 PULL A8
|
||
NY RETS
|
||
ITDWN
|
||
;FIST HAS COME BACK DOWN
|
||
PULL A8
|
||
JRUC DN1C
|
||
DLFT
|
||
;LEFT FIST INTO AIR
|
||
MOVB @FISTDN,A0
|
||
JRZ GUPB
|
||
;FIST IN AIR
|
||
MOVE @UPDT,A0
|
||
JREQ GUPB
|
||
DEC A0
|
||
MOVE A0,@UPDT
|
||
JRNZ NYB
|
||
;BRING IT DOWN
|
||
MOVI FISTL2,A0 ;COME DOWN LIST
|
||
MOVE @MCON,A1
|
||
JRZ NOMCB3
|
||
MOVI FISTL2Z,A0 ;COME DOWN LIST
|
||
NOMCB3
|
||
MOVE A0,@FISTLP,L
|
||
MOVK 1,A0
|
||
MOVB A0,@PLS
|
||
|
||
GUPB MOVB @PLS,A0 ;POUND LEFT SLEEP
|
||
DEC A0
|
||
MOVB A0,@PLS
|
||
JRNZ NYB
|
||
|
||
PUSH A8
|
||
MOVE @FISTLP,A9,L
|
||
MOVE *A13(ARML),A8,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVB A0,@PLS
|
||
MOVE A9,@FISTLP,L
|
||
JRNC NY0B
|
||
;FIST UP INTO AIR
|
||
MOVB @FISTDN,A0
|
||
JRNZ ITDWN
|
||
MOVK 1,A0
|
||
MOVB A0,@FISTDN ;SET FLAG IT IS UP
|
||
|
||
NY0B PULL A8
|
||
NYB RETS
|
||
|
||
POSE
|
||
MOVB @PLS,A0 ;POUND LEFT SLEEP
|
||
DEC A0
|
||
MOVB A0,@PLS
|
||
JRNZ TY1
|
||
PUSH A8
|
||
;DO RGT ARM FIRST
|
||
MOVE @POSER,A9,L
|
||
MOVE *A13(ARMR),A8,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,@POSER,L
|
||
;DO LFT
|
||
MOVE @POSEL,A9,L
|
||
MOVE *A13(ARML),A8,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVB A0,@PLS
|
||
MOVE A9,@POSEL,L
|
||
JRNC TY2
|
||
;POSE ARMS DONE
|
||
PULL A8
|
||
MOVB @TIMES,A0
|
||
DEC A0
|
||
MOVB A0,@TIMES
|
||
JRZ DN1C
|
||
CALLA PSET
|
||
RETS
|
||
|
||
TY2 PULL A8
|
||
TY1
|
||
RETS
|
||
|
||
DN1C MOVK 10,A0 ;STOP MUTOID MAN
|
||
CALLR GET_ST
|
||
RETS
|
||
FLAIL
|
||
RETS
|
||
MUP
|
||
MOVE @HALT,A0
|
||
JRNZ FLAIL
|
||
;TANK MOVING UP FOR X TIME
|
||
CALLR DO_TIME
|
||
JRNZ SKIPU
|
||
;TIME TO STOP AND GET NEW ACTION
|
||
;STOP TANK FOR A MOMENT
|
||
|
||
MOVK 10,A0
|
||
CALLR GET_ST
|
||
RETS
|
||
SKIPU
|
||
;FLOATING UP
|
||
;CHECK FOR TOP BOUNDARY
|
||
;FRANIM 4 TREADS
|
||
MOVE *A8(OYVAL),A2,L
|
||
MOVE @WORLDTLY,A4,L
|
||
SUB A4,A2
|
||
CMPI [40,0],A2
|
||
JRNC OKU
|
||
;HAS HIT TOP, STOP IT
|
||
;MAKE ALL TREADS STOP ON 1 CORRECT VIEW!
|
||
MOVK 1,A0
|
||
JRUC GET_ST
|
||
|
||
OKU MOVB @TRDSLP,A0
|
||
DEC A0
|
||
MOVB A0,@TRDSLP
|
||
JRNZ SKP1U
|
||
;TIME TO UPDATE ALL TREADS!
|
||
|
||
PUSH A8
|
||
MOVE @TRDSDLP,A9,L ;PNTR FOR TREAD SIDE LEFT LIST
|
||
MOVE *A13(TRDLS),A8,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,@TRDSDLP,L ;PNTR FOR TREAD SIDE LEFT LIST
|
||
MOVB A0,@TRDSLP ;USE SLEEP FROM FIRST TREAD FOR ALL
|
||
JRNC NX1U
|
||
MOVK 1,A0
|
||
MOVB A0,@TRDSLP
|
||
MOVI BTRDSDLL,A0 ;TREAD SIDE LFT ANI LIST
|
||
MOVE A0,@TRDSDLP,L ;PNTR FOR TREAD SIDE LEFT LIST
|
||
NX1U MOVE @TRDSDRP,A9,L ;PNTR FOR TREAD SIDE RGT LIST
|
||
MOVE *A13(TRDRS),A8,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,@TRDSDRP,L ;PNTR FOR TREAD SIDE RGT LIST
|
||
JRNC NX2U
|
||
MOVI BTRDSDRL,A0 ;TREAD SIDE RGT ANI LIST
|
||
MOVE A0,@TRDSDRP,L ;PNTR FOR TREAD SIDE RGT LIST
|
||
NX2U MOVE @TRDFTLP,A9,L ;PNTR FOR TREAD SIDE LEFT LIST
|
||
MOVE *A13(TRDLF),A8,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,@TRDFTLP,L ;PNTR FOR TREAD SIDE LEFT LIST
|
||
JRNC NX3U
|
||
MOVI BTRDFTLL,A0 ;TREAD FRONT ANI LIST LEFT
|
||
MOVE A0,@TRDFTLP,L ;PNTR FOR TREAD FRONT LEFT LIST
|
||
NX3U MOVE @TRDFTRP,A9,L ;PNTR FOR TREAD SIDE RGT LIST
|
||
MOVE *A13(TRDRF),A8,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,@TRDFTRP,L ;PNTR FOR TREAD SIDE RGT LIST
|
||
JRNC NX4U
|
||
MOVI BTRDFTRL,A0 ;TREAD FRONT ANI LIST RIGHT
|
||
MOVE A0,@TRDFTRP,L ;PNTR FOR TREAD FRONT RGT LIST
|
||
NX4U PULL A8
|
||
SKP1U
|
||
RETS
|
||
MDN
|
||
MOVE @HALT,A0
|
||
JRNZ SKP1U
|
||
;TANK MOVING DOWN FOR X TIME
|
||
CALLR DO_TIME
|
||
JRNZ SKIP
|
||
;TIME TO STOP AND GET NEW ACTION
|
||
;STOP TANK FOR A MOMENT
|
||
MOVK 10,A0
|
||
CALLR GET_ST
|
||
RETS
|
||
SKIP
|
||
;FLOATING DOWN
|
||
;CHECK FOR BOTTOM BOUNDARY
|
||
;FRANIM 4 TREADS
|
||
CMPI 650,A0 ;IF A0>700 THEN TANK MUST BE ROLLING IN
|
||
JRNC OK
|
||
MOVE *A8(OYVAL),A2,L
|
||
MOVE @WORLDTLY,A4,L
|
||
SUB A4,A2
|
||
CMPI [170,0],A2 ;140,160
|
||
JRC OK
|
||
;HAS HIT BOTTOM, STOP IT
|
||
;MAKE ALL TREADS STOP ON 1 CORRECT VIEW!
|
||
MOVK 2,A0
|
||
JRUC GET_ST
|
||
|
||
OK MOVB @TRDSLP,A0
|
||
DEC A0
|
||
MOVB A0,@TRDSLP
|
||
JRNZ SKP1
|
||
;TIME TO UPDATE ALL TREADS!
|
||
|
||
PUSH A8
|
||
MOVE @TRDSDLP,A9,L ;PNTR FOR TREAD SIDE LEFT LIST
|
||
MOVE *A13(TRDLS),A8,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,@TRDSDLP,L ;PNTR FOR TREAD SIDE LEFT LIST
|
||
MOVB A0,@TRDSLP ;USE SLEEP FROM FIRST TREAD FOR ALL
|
||
JRNC NX1
|
||
MOVK 1,A0
|
||
MOVB A0,@TRDSLP
|
||
MOVI TRDSDLL,A0 ;TREAD SIDE LFT ANI LIST
|
||
MOVE A0,@TRDSDLP,L ;PNTR FOR TREAD SIDE LEFT LIST
|
||
NX1 MOVE @TRDSDRP,A9,L ;PNTR FOR TREAD SIDE RGT LIST
|
||
MOVE *A13(TRDRS),A8,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,@TRDSDRP,L ;PNTR FOR TREAD SIDE RGT LIST
|
||
JRNC NX2
|
||
MOVI TRDSDRL,A0 ;TREAD SIDE RGT ANI LIST
|
||
MOVE A0,@TRDSDRP,L ;PNTR FOR TREAD SIDE RGT LIST
|
||
NX2 MOVE @TRDFTLP,A9,L ;PNTR FOR TREAD SIDE LEFT LIST
|
||
MOVE *A13(TRDLF),A8,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,@TRDFTLP,L ;PNTR FOR TREAD SIDE LEFT LIST
|
||
JRNC NX3
|
||
MOVI TRDFTLL,A0 ;TREAD FRONT ANI LIST LEFT
|
||
MOVE A0,@TRDFTLP,L ;PNTR FOR TREAD FRONT LEFT LIST
|
||
NX3 MOVE @TRDFTRP,A9,L ;PNTR FOR TREAD SIDE RGT LIST
|
||
MOVE *A13(TRDRF),A8,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,@TRDFTRP,L ;PNTR FOR TREAD SIDE RGT LIST
|
||
JRNC NX4
|
||
MOVI TRDFTRL,A0 ;TREAD FRONT ANI LIST RIGHT
|
||
MOVE A0,@TRDFTRP,L ;PNTR FOR TREAD FRONT RGT LIST
|
||
NX4 PULL A8
|
||
SKP1
|
||
RETS
|
||
|
||
|
||
EYES
|
||
;A11=HEAD POINTER
|
||
;A9=HEADV
|
||
;THIS WILL CREATE X NEW PROCESSES OF PROPER IMAGE STARTING AT EYES
|
||
;AND ANGLING DOWN TOWARD THE GROUND. EACH IMAGE WILL ACT IDENTICALLY
|
||
; MOVK 2,A8
|
||
; MOVB @PCNT,A0
|
||
; BTST 0,A0
|
||
; JRZ ET1
|
||
; MOVK 4,A8
|
||
;ET1
|
||
MOVI LAZSND,A0
|
||
CALLA ONESND
|
||
|
||
MOVK 9,A10
|
||
ELP
|
||
CREATE BONPID,BOLT
|
||
SLEEP 2
|
||
DSJS A10,ELP
|
||
MOVB @TOTLZRS,A0
|
||
ANDI 07FH,A0
|
||
DEC A0
|
||
MOVB A0,@TOTLZRS
|
||
DIE
|
||
BMLIST .LONG BM6,BM7,BM8,BM9,BM10,BM11,BM12
|
||
BMLISTZ .LONG BM6Z,BM7Z,BM8Z,BM9Z,BM10Z,BM11Z,BM12Z
|
||
YOFS: .WORD 0CH,0BH,0FH,0FH,0FH,0BH,0CH
|
||
YOFSZ: .WORD 0CH+6,0BH+6,0FH+6,0FH+6,0FH+6,0BH+6,0CH+6
|
||
XOFS: .WORD 011H,011H,09H,06H,-3,-9,-8
|
||
BLTX: .WORD 12,11,4,0,-4,-11,-12
|
||
BLTY: .WORD 6,11,15,15,15,11,6
|
||
BOLT:
|
||
;TURN ON NEW IMAGE
|
||
;A9= 6-12
|
||
; MOVB A8,*A13(SLP)
|
||
|
||
SUBI 6,A9
|
||
MOVE A9,A0
|
||
SLL 5,A0
|
||
MOVE @MCON,A1
|
||
JRZ MCON2
|
||
ADDI BMLISTZ,A0
|
||
JRUC MCON3
|
||
MCON2 ADDI BMLIST,A0
|
||
MCON3 MOVE *A0,A14,L
|
||
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
|
||
MOVE *A11(OYPOS),A0
|
||
MOVE *A11(OXPOS),A1
|
||
SLL 4,A9
|
||
MOVI XOFS,A2
|
||
ADD A9,A2
|
||
MOVE *A2,A2,W
|
||
ADD A2,A1
|
||
MOVE A1,*A8(OXPOS)
|
||
|
||
MOVI YOFS,A2
|
||
MOVE @MCON,A3
|
||
JRZ NOMCF1
|
||
MOVI YOFSZ,A2
|
||
NOMCF1
|
||
ADD A9,A2
|
||
MOVE *A2,A2,W
|
||
ADD A2,A0
|
||
MOVE A0,*A8(OYPOS)
|
||
|
||
MOVK 9,A0
|
||
MOVB A0,*A13(PCS)
|
||
|
||
|
||
BOLTT
|
||
; MOVB *A13(SLP),A0
|
||
MOVK 2,A0
|
||
; MOVE @MCON,A1
|
||
; JRZ MCON4
|
||
; MOVK 1,A0
|
||
;MCON4
|
||
CALLA PRCSLP
|
||
; SLEEP 4
|
||
MOVI BLTX,A0
|
||
ADD A9,A0
|
||
MOVE *A0,A0,W
|
||
MOVE *A8(OXPOS),A1
|
||
ADD A0,A1
|
||
MOVE A1,*A8(OXPOS)
|
||
|
||
MOVI BLTY,A0
|
||
ADD A9,A0
|
||
MOVE *A0,A0,W
|
||
MOVE *A8(OYPOS),A1
|
||
ADD A0,A1
|
||
MOVE A1,*A8(OYPOS)
|
||
|
||
MOVB *A13(PCS),A0
|
||
DEC A0
|
||
MOVB A0,*A13(PCS)
|
||
JRZ ENDIT ;BOLTT
|
||
CMPI 1,A0
|
||
JRNE BOLTT
|
||
;SET Z LOW
|
||
MOVI 100,A0
|
||
MOVE A0,*A8(OZPOS)
|
||
JRNE BOLTT
|
||
ENDIT
|
||
CMPI 3,A10
|
||
JRLO OP
|
||
MOVB @PCNT,A0
|
||
ANDI 03H,A0
|
||
JRZ OP
|
||
|
||
MOVI CLSENMY|TYPORBL,A0
|
||
MOVE A0,*A8(OID)
|
||
OP
|
||
MOVI 1,B0
|
||
MOVI 8,B1
|
||
CALLA RANGRAND
|
||
SUBI 4,A0
|
||
MOVE *A8(OYPOS),A1
|
||
SUB A0,A1
|
||
MOVE A1,*A8(OYPOS)
|
||
|
||
MOVI 1,B0
|
||
MOVI 8,B1
|
||
CALLA RANGRAND
|
||
SUBI 4,A0
|
||
MOVE *A8(OXPOS),A1
|
||
SUB A0,A1
|
||
MOVE A1,*A8(OXPOS)
|
||
;HAVE MOVED BOLT ENOUGH TIMES
|
||
MOVI LZDIE,A9
|
||
MOVE @MCON,A0
|
||
JRZ NOMC1
|
||
MOVI LZDIEZ,A9
|
||
NOMC1
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
|
||
CMPI 1,A10
|
||
JRNE L1
|
||
;THIS IS LAST BEAM OF LAZER
|
||
CLR A0
|
||
MOVB A0,@INAIR
|
||
|
||
;LAZER FIZZLED OUT
|
||
L1 DIE
|
||
|
||
LZDIE
|
||
.LONG BEAMH1
|
||
.WORD 04
|
||
.LONG BEAMH2
|
||
.WORD 04
|
||
.LONG 0
|
||
LZDIEZ
|
||
.LONG BEAMH1Z
|
||
.WORD 04
|
||
.LONG BEAMH2Z
|
||
.WORD 04
|
||
.LONG BEAMH3Z
|
||
.WORD 04
|
||
.LONG 0
|
||
|
||
DO_HEAD
|
||
MOVE A9,A8
|
||
;SPIN HEAD AROUND
|
||
MOVK 9,A0
|
||
MOVB A0,@HEADV
|
||
CALLA ANIHEAD
|
||
;
|
||
HEADT
|
||
MOVE @OOF,A0
|
||
JRZ NOL2
|
||
;HEAD IS OOF VIEW!
|
||
SLEEP 1
|
||
MOVB @HEADV,A0
|
||
CMPI 16,A0
|
||
JRZ PRR2O
|
||
; CMPI 9,A0
|
||
; JREQ PRRO ;PASTE ROAR
|
||
; MOVK 9,A0
|
||
; MOVB A0,@SKVW
|
||
; JRUC NOR2
|
||
;PRRO
|
||
MOVI 16,A0
|
||
MOVB A0,@HEADV
|
||
CALLA ANIHEAD
|
||
PRR2O MOVE @OOF,A0
|
||
DEC A0
|
||
MOVE A0,@OOF
|
||
JRNZ KP_GO
|
||
|
||
MOVB A0,@SKVW
|
||
MOVK 9,A0
|
||
MOVB A0,@HEADV
|
||
CALLA ANIHEAD
|
||
CREATE 0,DOCHK
|
||
JRUC KP_GO
|
||
DOCHK
|
||
SLEEP 30
|
||
MOVI 20,A0
|
||
MOVE A0,@CHEEK
|
||
|
||
MOVI WPSSND,A0
|
||
CALLA ONESND
|
||
|
||
MOVI 650,A0
|
||
CALLA RANDPER
|
||
JRC ADAD
|
||
|
||
MOVI 1,A0
|
||
MOVB A0,@POPFLG
|
||
ADAD
|
||
DIE
|
||
|
||
CHKVW: .BYTE 11,9,7,9
|
||
POPTBL .BYTE 0,2,4,6,8,10,12,14,16
|
||
.BYTE 0,0,0,0,0,0,0,0,0,0
|
||
.BYTE 0,0,0,0,0,16,14,12,10,8
|
||
.BYTE 6,4,2,0,0FFH
|
||
.EVEN
|
||
NOL2
|
||
MOVB @POPFLG,A0
|
||
JRZ NOL2B
|
||
CMPI 33,A0
|
||
JRNC CLRIT
|
||
INC A0
|
||
MOVB A0,@POPFLG
|
||
SLL 3,A0
|
||
ADDI POPTBL,A0
|
||
MOVB *A0,A0
|
||
JRNN NT6
|
||
CLRIT
|
||
CLR A0
|
||
MOVB A0,@POPFLG
|
||
NT6 MOVB A0,@POP
|
||
SLEEP 3
|
||
|
||
NOL2B
|
||
MOVE @CHEEK,A0
|
||
JRZ NOL2A
|
||
;HEAD IS CHEEKS VIEW!
|
||
ANDI 03,A0
|
||
SLL 3,A0
|
||
ADDI CHKVW,A0
|
||
MOVB *A0,A0
|
||
MOVB A0,@HEADV
|
||
CALLA ANIHEAD
|
||
PRR2C MOVE @CHEEK,A0
|
||
DEC A0
|
||
MOVE A0,@CHEEK
|
||
JRNZ KP_GO
|
||
;
|
||
MOVB A0,@SKVW
|
||
MOVK 9,A0
|
||
MOVB A0,@HEADV
|
||
CALLA ANIHEAD
|
||
MOVI 20,A0
|
||
MOVE A0,@MEMAD
|
||
MOVI AWWSND,A0
|
||
CALLA ONESND
|
||
JRUC KP_GO
|
||
|
||
NOL2A
|
||
;IS HEAD IN LAZER MODE?
|
||
MOVB @TOTLZRS,A0
|
||
JRZ NOL
|
||
;YES IN LAZER MODE
|
||
;AIM AT PLAYER
|
||
;SHOOT/DEC TOTLZR
|
||
MOVB @INAIR,A0
|
||
JRNZ KP_GO
|
||
;NO LASER IN AIR
|
||
CALLR INSK
|
||
;A MATCH AFTER SEEK?
|
||
;YES, THEN FIRE
|
||
MOVB @SKVW,A0
|
||
;THIS HEAD HAS A PLAN
|
||
;WHICH DIR
|
||
JREQ SHOOT
|
||
MOVB @HEADV,A1 ;CURRENT VIEW
|
||
CMP A0,A1
|
||
JREQ SHOOT
|
||
|
||
JRC INCB ;INC TO GET THERE
|
||
;DEC HEADV TO GET TO SKVW!
|
||
DEC A1
|
||
JRUC GOALB
|
||
INCB INC A1
|
||
GOALB MOVB A1,@HEADV
|
||
CALLA ANIHEAD
|
||
|
||
MOVB @HEADV,A1
|
||
MOVB @SKVW,A0
|
||
CMP A0,A1
|
||
JRNE KP_GO
|
||
|
||
;I HAVE REACHED MY GOAL
|
||
SHOOT
|
||
CLR A0
|
||
MOVB A0,@SKVW ;STOP HEAD FROM MOVING
|
||
;PAUSE FOR AWHILE
|
||
;IF YES, STOP AND SHOOT?
|
||
;IF NO, LOOP BACK AROUND
|
||
MOVB @HEADV,A9
|
||
MOVB A9,@INAIR
|
||
MOVE A8,A11 ;PASS ALONG MY HEAD PTR
|
||
MOVB @DMGPNT,A0
|
||
CMPI 4,A0
|
||
JRZ KP_GO
|
||
CREATE BONPID,EYES
|
||
JRUC KP_GO
|
||
;
|
||
NOL
|
||
|
||
;IS HEAD ROARING
|
||
MOVE @MEMAD,A0
|
||
JRZ NOR22
|
||
;YES A MAD
|
||
SLEEP 1
|
||
MOVB @HEADV,A0
|
||
CMPI 15,A0
|
||
JRZ PRR2X
|
||
CMPI 9,A0
|
||
JREQ PRRX ;PASTE ROAR
|
||
MOVK 9,A0
|
||
MOVB A0,@SKVW
|
||
JRUC NOR2
|
||
PRRX
|
||
MOVK 15,A0
|
||
MOVB A0,@HEADV
|
||
CALLA ANIHEAD
|
||
PRR2X MOVE @MEMAD,A0
|
||
DEC A0
|
||
MOVE A0,@MEMAD
|
||
JRNZ KP_GO
|
||
;
|
||
MOVB A0,@SKVW
|
||
MOVK 9,A0
|
||
MOVB A0,@HEADV
|
||
CALLA ANIHEAD
|
||
JRUC KP_GO
|
||
|
||
|
||
NOR22
|
||
;IS HEAD ROARING
|
||
MOVE @MEROAR,A0
|
||
JRZ NOR
|
||
;YES A ROAR
|
||
SLEEP 1
|
||
MOVB @HEADV,A0
|
||
JRZ PRR2
|
||
CMPI 9,A0
|
||
JREQ PRR ;PASTE ROAR
|
||
MOVK 9,A0
|
||
MOVB A0,@SKVW
|
||
JRUC NOR2
|
||
PRR
|
||
CLR A0
|
||
MOVB A0,@HEADV
|
||
CALLA ANIHEAD
|
||
PRR2 MOVE @MEROAR,A0
|
||
DEC A0
|
||
MOVE A0,@MEROAR
|
||
JRNZ KP_GO
|
||
;
|
||
MOVB A0,@SKVW
|
||
MOVK 9,A0
|
||
MOVB A0,@HEADV
|
||
CALLA ANIHEAD
|
||
JRUC KP_GO
|
||
|
||
NOR
|
||
;IS HEAD SEEKING?
|
||
MOVB @SKVW,A0 ;0 IF NO SEEK, OTHERWISE THE SEEKED VIEW!
|
||
JRNZ NOR2
|
||
CALLA SEEK
|
||
JRUC KP_GO
|
||
; JRZ SEEK ;GO SEE IF I SHOULD SEEK
|
||
;THIS HEAD HAS A PLAN
|
||
;WHICH DIR
|
||
NOR2 MOVB @HEADV,A1 ;CURRENT VIEW
|
||
CMP A0,A1
|
||
JRC INCI ;INC TO GET THERE
|
||
;DEC HEADV TO GET TO SKVW!
|
||
DEC A1
|
||
JRUC GOAL
|
||
INCI INC A1
|
||
GOAL MOVB A1,@HEADV
|
||
CALLA ANIHEAD
|
||
MOVB @HEADV,A1
|
||
MOVB @SKVW,A0
|
||
CMP A0,A1
|
||
JRNE KP_GO
|
||
;I HAVE REACHED MY GOAL
|
||
CLR A0
|
||
MOVB A0,@SKVW ;STOP HEAD FROM MOVING
|
||
;PAUSE FOR AWHILE
|
||
;IF YES, STOP AND SHOOT?
|
||
;IF NO, LOOP BACK AROUND
|
||
SLEEP 30 ;60
|
||
KP_GO
|
||
SLEEP 1 ;1
|
||
JRUC HEADT
|
||
|
||
SEEK
|
||
MOVE @STATUS,A4
|
||
CMPI 3,A4
|
||
JREQ SK2
|
||
|
||
MOVI 20,A0 ;100
|
||
CALLA RANDPER
|
||
JRC INSK
|
||
RETS
|
||
|
||
INSK
|
||
MOVB @SCNTR,A3
|
||
INC A3
|
||
MOVB A3,@SCNTR
|
||
ANDI 01,A3
|
||
SLL 5,A3
|
||
|
||
MOVB @TOTLZRS,A0
|
||
JRZ IN1
|
||
;LAZERS ON, DO NOT CHANGE WHO I AM LOOKING AT
|
||
MOVI PLYROBJS,A2
|
||
MOVB @PLYRAD,A3 ;0 OR 32 - EYES DECIDED WHOM TO LAZER
|
||
ADD A3,A2
|
||
MOVE *A2,A0,L
|
||
;IF THIS PLAYER HAS JUST DIED, LAZERS WILL STILL BE AIMED AT HIM!
|
||
JRUC PX
|
||
|
||
IN1 XORI 32,A3
|
||
ADDI PLYROBJS,A3
|
||
MOVE *A3,A0,L
|
||
JRZ QZP
|
||
JRUC PX
|
||
|
||
SK2 MOVI 40,A0
|
||
CALLA RANDPER
|
||
JRC J8
|
||
RETS
|
||
|
||
J8
|
||
;SEEK PLAYER
|
||
MOVB @SCNTR,A3
|
||
INC A3
|
||
MOVB A3,@SCNTR
|
||
ANDI 01,A3
|
||
SLL 5,A3
|
||
MOVE A3,A2
|
||
ADDI PLYROBJS,A2
|
||
MOVE *A2,A0,L ;GET FIRST ENTRY
|
||
JRNZ PX
|
||
XORI 32,A3
|
||
ADDI PLYROBJS,A3
|
||
MOVE *A3,A0,L
|
||
JRNE PX
|
||
|
||
QZP MOVI 600,A0 ;800
|
||
CALLA RANDPER
|
||
JRC AG1
|
||
MOVI 0,B0
|
||
MOVI 0FFFFFFFFH,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,A1
|
||
MOVI 0,B0
|
||
MOVI 0FFFFFFFFH,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,A2
|
||
JRUC PXC
|
||
AG1 MOVK 6,A1
|
||
MOVI 500,A0
|
||
CALLA RANDPER
|
||
JRC AG
|
||
MOVK 12,A1
|
||
AG
|
||
MOVE A1,A0
|
||
JRUC OKJ
|
||
PX CALLA XYSKOBJ
|
||
MOVE A5,A1
|
||
MOVE A6,A2
|
||
PXC CALLA GETHDR
|
||
SLL 3,A0
|
||
ADDI CVRT,A0
|
||
MOVB *A0,A0
|
||
;DIR TO FACE IN A0
|
||
CMPI 6,A0
|
||
JRNC OKJ1
|
||
MOVK 6,A0
|
||
JRUC OKJ2
|
||
OKJ1 CMPI 13,A0
|
||
JRC OKJ
|
||
MOVK 12,A0
|
||
OKJ
|
||
OKJ2 MOVB A0,@SKVW
|
||
MOVB @HEADV,A1
|
||
CMP A1,A0
|
||
JREQ OKJ8
|
||
RETS
|
||
; JRNE KP_GO
|
||
OKJ8 CLR A0
|
||
MOVB A0,@SKVW
|
||
RETS
|
||
; JRUC KP_GO
|
||
|
||
; 01
|
||
; 16 02
|
||
; 15 03
|
||
; 14 04
|
||
; 13 05
|
||
; 12 06
|
||
; 11 07
|
||
; 10 08
|
||
; 09
|
||
; 04
|
||
; 12 11
|
||
; 08 07
|
||
; 16 15
|
||
; 02 01
|
||
; 10 09
|
||
; 06 05
|
||
; 14 13
|
||
; 03
|
||
ANIHEAD
|
||
;ANI ONTO SCREEN THIS HEAD
|
||
MOVB @DMGPNT,A0
|
||
CMPI 4,A0
|
||
JRZ REY
|
||
MOVB @HEADV,A0
|
||
MOVE A0,A2
|
||
SLL 5,A0
|
||
MOVE @MCON,A1
|
||
JRZ NOMC5
|
||
ADDI HEADVWZ,A0
|
||
JRUC NOMC6
|
||
NOMC5 ADDI HEADVW,A0
|
||
NOMC6 MOVE *A0,A1,L ;NEW OIMG
|
||
SLL 4,A2
|
||
ADDI HFLAG,A2
|
||
MOVE *A2,A4,W ;NEW OFLAGS
|
||
CALLA ANI
|
||
REY RETS
|
||
; 01
|
||
; 16 02
|
||
; 15 03
|
||
; 14 04
|
||
; 13 05
|
||
; 12 06
|
||
; 11 07
|
||
; 10 08
|
||
; 09
|
||
HEADVW .LONG MUG1A,MUG4,MUG4,MUG4,MUG4,MUG4,MUG4,MUG3
|
||
.LONG MUG2,MUG1,MUG2,MUG3,MUG4,MUG4,MUG4,MUG1C,MUG1B
|
||
HEADVWZ .LONG MUG1AZ,MUG4Z,MUG4Z,MUG4Z,MUG4Z,MUG4Z,MUG4Z,MUG3Z
|
||
.LONG MUG2Z,MUG1Z,MUG2Z,MUG3Z,MUG4Z,MUG4Z,MUG4Z,MUG1CZ,MUG1BZ
|
||
HFLAG .WORD DMAWNZ,DMAWNZ,DMAWNZ,DMAWNZ,DMAWNZ,DMAWNZ
|
||
.WORD DMAWNZ+M_FLIPH,DMAWNZ+M_FLIPH,DMAWNZ+M_FLIPH
|
||
.WORD DMAWNZ,DMAWNZ,DMAWNZ,DMAWNZ,DMAWNZ,DMAWNZ
|
||
.WORD DMAWNZ,DMAWNZ,DMAWNZ
|
||
|
||
BELLY
|
||
;BELLY DOOR OPENS AND CLOSES
|
||
;BEGIN NEW OBJECT
|
||
MOVE A8,A10
|
||
MOVI BLYIMG,A14
|
||
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
|
||
MOVE A8,@KP_BELL,L
|
||
;
|
||
CALLA OBJOFF
|
||
;WHEN CLOSED, OBJOFF
|
||
;WHEN ON, OBJON AND FRANIM LIST
|
||
;RELEASE SNAKE
|
||
;FRANIM CLOSED (CONT 1ST SCRIPT)
|
||
;OBJOFF
|
||
MOVE A10,A11
|
||
B_TOP
|
||
SLEEP 30
|
||
MOVB @DMGPNT,A0
|
||
CMPI 4,A0
|
||
JRNC BBT
|
||
MOVE *A11(OXVEL),A0,L
|
||
MOVE *A11(OYVEL),A1,L
|
||
OR A0,A1
|
||
JRNZ B_TOP
|
||
|
||
MOVI CLSENMY|TYPTORSO,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRNZ B_TOP
|
||
|
||
MOVB @MACTION,A0
|
||
CMPI 6,A0
|
||
JRLO B_TOP
|
||
CMPI 11,A0
|
||
JRHI B_TOP
|
||
|
||
BBT MOVI 400,A0
|
||
CALLA RANDPER
|
||
JRNC B_TOP
|
||
;CHECK TO SEE IF ANYONE IS BELOW ME
|
||
ANDI 01,A0
|
||
JRZ P1SK
|
||
;TRY TO SEEK PLYR 2 FIRST!
|
||
CLR A1
|
||
MOVI 32,A10
|
||
MOVE @PLYROBJS+32,A0,L
|
||
JRNZ CK
|
||
|
||
MOVI 32,A1
|
||
CLR A10
|
||
MOVE @PLYROBJS,A0,L
|
||
JRZ B_TOP
|
||
JRUC CK
|
||
P1SK
|
||
;TRY P1 FIRST!
|
||
MOVI 32,A1
|
||
CLR A10
|
||
MOVE @PLYROBJS,A0,L
|
||
JRNZ CK
|
||
CLR A1
|
||
MOVE @PLYROBJS+32,A0,L
|
||
JRZ B_TOP
|
||
MOVI 32,A10
|
||
CK
|
||
MOVE *A0(OYPOS),A2
|
||
MOVE *A8(OYPOS),A3
|
||
ADDI 30,A3
|
||
CMP A2,A3
|
||
JRLT AHIT0
|
||
MOVI PLYROBJS,A0
|
||
ADD A1,A0
|
||
MOVE *A0,A0,L
|
||
JRZ B_TOP ;AHIT0 ;B_TOP
|
||
XORI 32,A10
|
||
MOVE *A0(OYPOS),A2
|
||
CMP A2,A3
|
||
JRLT AHIT0
|
||
;NOPE, BOTH PLAYERS ARE ABOVE ME
|
||
JRUC B_TOP
|
||
|
||
AHIT0
|
||
MOVI CLSENMY|TYPMUT|SUBSNK,A0
|
||
MOVI 0FFFFH,A1
|
||
CALLA EXISTOBJ
|
||
JRNZ B_TOP
|
||
|
||
MOVK 1,A0
|
||
MOVB A0,@SNKOUT
|
||
MOVE A8,A0
|
||
CALLA OBJON
|
||
MOVB A10,@KPA10
|
||
;START FRANIM LIST
|
||
CREATE 0,SNAKE
|
||
MOVI OPNCLS,A9 ;OPEN AND CLOSE BELLY
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVE A8,A0
|
||
CALLA OBJOFF
|
||
SLEEP 1*60
|
||
JRUC B_TOP
|
||
;
|
||
OPNCLS .LONG BELLY1
|
||
.WORD 6
|
||
.LONG BELLY2
|
||
; .WORD SPAWNP|1*60+30
|
||
; .WORD 0,0,0
|
||
; .LONG SNAKE
|
||
.WORD 90
|
||
.LONG BELLY1
|
||
.WORD 6
|
||
.LONG 0
|
||
;
|
||
SNAKE
|
||
SLEEP 6
|
||
MOVI BONPID,A0
|
||
MOVE A0,*A13(PROCID)
|
||
MOVB @KPA10,A10
|
||
;0 FOR PLAYER 1 SEEK SNAKE
|
||
MOVI TRAM1,A11
|
||
CMPI 32,A10
|
||
JRNE TRW
|
||
MOVI TRAM2,A11
|
||
|
||
TRW MOVI PLYROBJS,A0
|
||
ADD A10,A0
|
||
MOVE *A0,A0,L
|
||
MOVE A0,*A11,L ;MOVE OBJECT BLOCK PTR INTO TOP OF RAM STACK
|
||
|
||
MOVI MAXPCS,A9 ;CHASER LENGTH
|
||
MOVK 1,A10
|
||
LPA:
|
||
CREATE BONPID,CHASER
|
||
SLEEP 2
|
||
INC A10
|
||
CMP A9,A10
|
||
JRLE LPA
|
||
SLEEP 1*60
|
||
CLR A0
|
||
MOVB A0,@SNKOUT
|
||
DIE
|
||
|
||
CHASER:
|
||
MOVE @KP_BELL,A8,L
|
||
MOVE *A8(OXVAL),A0,L
|
||
ADDI 0F0000H,A0
|
||
MOVE *A8(OYVAL),A1,L
|
||
ADDI 0F0000H,A1
|
||
MOVI HLPR1,A2
|
||
MOVI 159,A3
|
||
MOVI DMAWNZ,A4 ;NON-ZERO VALUE
|
||
MOVI CLSENMY|TYPMUT|SUBSNK,A5
|
||
MOVE *A8(OXVEL),A6,L
|
||
MOVE *A8(OYVEL),A7,L
|
||
MOVE A7,*A13(DLY),L
|
||
CALLA BEGINOBJ2
|
||
MOVE A10,A0
|
||
SLL 5,A0
|
||
;A11=TRAM PTR
|
||
ADD A11,A0
|
||
MOVE A8,*A0,L
|
||
MOVK 1,A0
|
||
MOVB A0,*A13(CDELAY)
|
||
MOVB A0,*A13(BLDVW)
|
||
CLR A0
|
||
MOVE A0,*A13(SKTM)
|
||
MOVB A7,*A13(GDIE)
|
||
MOVB A0,*A13(SKHITS)
|
||
; SLEEP 2
|
||
LPTP:
|
||
MOVB *A13(SKHITS),A0
|
||
CMPI 3,A0
|
||
JRC LO0
|
||
;KILL PC
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
|
||
MOVE A10,A0
|
||
SLL 5,A0
|
||
ADD A11,A0
|
||
CLR A1
|
||
MOVE A1,*A0,L
|
||
DIE
|
||
LO0
|
||
MOVB *A13(CDELAY),A1
|
||
ANDI 07H,A1
|
||
DEC A1
|
||
MOVB A1,*A13(CDELAY)
|
||
JRNE NO_SK
|
||
MOVI 1,A1
|
||
CMPI 1,A10
|
||
JRNE U2
|
||
MOVE *A13(SKTM),A0
|
||
INC A0
|
||
MOVE A0,*A13(SKTM)
|
||
CMPI 028H,A0
|
||
JRHI OUT1
|
||
MOVI 5,A1
|
||
U2
|
||
MOVB A1,*A13(CDELAY)
|
||
MOVE A10,A1
|
||
LPTP2 DEC A1
|
||
MOVE A1,A0
|
||
SLL 5,A0
|
||
ADD A11,A0
|
||
MOVE *A0,A0,L ;OBJ TO SK
|
||
JRZ OUT1
|
||
JRZ LPTP2
|
||
CALLR PLTLINE
|
||
MOVE A5,*A8(OXVEL),L
|
||
MOVE A6,*A8(OYVEL),L
|
||
NO_SK
|
||
;UPDATE VIEW OF BLADE
|
||
MOVB *A13(BLDVW),A0
|
||
ANDI 07H,A0
|
||
INC A0
|
||
MOVB A0,*A13(BLDVW)
|
||
CMPI 6,A0
|
||
JRNE KPG
|
||
CLR A0
|
||
MOVB A0,*A13(BLDVW)
|
||
KPG
|
||
MOVI CHSRIMG,A1
|
||
SLL 5,A0
|
||
ADD A0,A1
|
||
MOVE *A1,A1,L ;GET NEW OIMG FOR THIS CHASER PIECE
|
||
MOVE *A8(OFLAGS),A4
|
||
CALLA ANI
|
||
OUT SLEEP 2
|
||
JRUC LPTP
|
||
OUT1
|
||
MOVE A10,A0
|
||
SLL 5,A0
|
||
ADD A11,A0
|
||
CLR A1
|
||
MOVE A1,*A0,L
|
||
|
||
CLR A0
|
||
MOVE A0,*A8(OID)
|
||
|
||
; MOVE A8,A0
|
||
; CALLA DELOBJ
|
||
; DIE
|
||
|
||
MOVE *A8(OXPOS),A0
|
||
SUBI 1,A0
|
||
MOVE A0,*A8(OXPOS)
|
||
MOVE *A8(OYPOS),A0
|
||
SUBI 1,A0
|
||
MOVE A0,*A8(OYPOS)
|
||
MOVI BOOMN2,A9 ;BOOM3 CHANGES PALETTE TO EXPLOSION!
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
KIL_SNK
|
||
;A8=PC PNTR
|
||
MMTM SP,A1,A9,A10,A11
|
||
MOVE *A8(OPLINK),A0,L
|
||
CALLA GETA10
|
||
CALLA GETA11
|
||
MOVE A10,A0
|
||
SLL 5,A0
|
||
ADD A11,A0
|
||
CLR A1
|
||
MOVE A1,*A0,L
|
||
MOVE *A8(OPLINK),A0,L
|
||
CALLA KILL
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
MMFM SP,A1,A9,A10,A11
|
||
RETS
|
||
|
||
CHSRIMG:
|
||
.LONG HLPR1,HLPR2,HLPR3,HLPR4,HLPR5,HLPR6
|
||
;
|
||
JPTBL .LONG 0,MDN,MUP,0,FPNDLFT,MVHD,PNDLFT,PNDRGT,POSE
|
||
.LONG FLAIL,STOP,FIST,LUNGE,LUNGED
|
||
JPTBLF .LONG ROLLINF,MDNF,MUPF,FPNDRGTF,FPNDLFTF,MVHDF,PNDLFTF,PNDRGTF,POSEF
|
||
.LONG FLAILF,STOPF,FISTF,LUNGEF,LUNGEDF
|
||
;
|
||
MOD_VELS
|
||
MOVE A0,*A8(OYVEL),L
|
||
MOVE *A13(TNKR),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(TRSL),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(TRSR),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(TNKR),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(ARML),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(ARMR),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(TRDLF),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(TRDRF),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(TRDRS),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(TRDLS),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(SHADR),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(SHADF),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
MOVE *A13(MHEAD),A1,L
|
||
MOVE A0,*A1(OYVEL),L
|
||
RETS
|
||
|
||
LINEBLY
|
||
;LINE UP BELLY
|
||
CALLA GETANIXY
|
||
MOVE @KP_BELL,A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
SUBI 020000H,A3 ;SUB 1 FROM X
|
||
SUBI 010000H,A2 ;ADD 1 TO Y
|
||
CALLA GANISAG
|
||
RETS
|
||
LINE_UP
|
||
CALLR LINEBLY
|
||
;DO HEAD
|
||
CALLA GETANIXY
|
||
MOVE *A13(MHEAD),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
|
||
ADDI 020000H,A2 ;Y
|
||
MOVB @DMGPNT,A5
|
||
CMPI 5,A5
|
||
JRLO AU
|
||
;HEAD ON TANK
|
||
ADDI 0210000H,A2
|
||
JRUC P0
|
||
AU MOVB @POP,A5
|
||
JRZ P0
|
||
SLL 16,A5
|
||
SUB A5,A2
|
||
P0
|
||
CALLA GANISAG
|
||
|
||
L2UP
|
||
;RIGHT SIDE OF TANK
|
||
CALLA GETANIXY
|
||
MOVE *A13(TNKR),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
;ADJUST LEFT SIDE TORSO
|
||
CALLA GETANIXY
|
||
MOVE *A13(TRSL),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
;ADJUST RGT TORSO
|
||
CALLA GETANIXY
|
||
MOVE *A13(TRSR),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
SUBI 010000H,A3 ;SUB 1 FROM X
|
||
CALLA GANISAG
|
||
;ADJUST LEFT SIDE ARM
|
||
; MOVB @DMGPNT,A0
|
||
; JRNZ SKPIT
|
||
CALLA GETANIXY
|
||
MOVE *A13(ARML),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
;ADJUST RIGHT SIDE ARM
|
||
;SKPIT
|
||
; MOVB @DMGPNT,A0
|
||
; CMPI 2,A0
|
||
; JRGE SKPIT2
|
||
CALLA GETANIXY
|
||
MOVE *A13(ARMR),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
SUBI 010000H,A3 ;SUB 1 FROM X
|
||
CALLA GANISAG
|
||
;ADJUST LEFT SIDE TREAD
|
||
;SKPIT2
|
||
CALLA GETANIXY
|
||
MOVE *A13(TRDLS),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
;ADJUST RIGHT SIDE TREAD
|
||
CALLA GETANIXY
|
||
MOVE *A13(TRDRS),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
;ADJUST LEFT FRONT TREAD
|
||
CALLA GETANIXY
|
||
MOVE *A13(TRDLF),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
SUBI 010000H,A2 ;SUB 1 FROM Y
|
||
CALLA GANISAG
|
||
;ADJUST RIGHT FRONT TREAD
|
||
CALLA GETANIXY
|
||
MOVE *A13(TRDRF),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
SUBI 010000H,A2 ;SUB 1 FROM Y
|
||
CALLA GANISAG
|
||
;DO RIGHT SIDE SHADOW
|
||
CALLA GETANIXY
|
||
MOVE *A13(SHADR),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
CALLA GANISAG
|
||
;DO FRONT SHADOW
|
||
CALLA GETANIXY
|
||
MOVE *A13(SHADF),A0,L
|
||
MOVE *A0(OFLAGS),A4,W ;SAME FLAGS AS BEFORE
|
||
SUBI 010000H,A3 ;SUB 1 FROM X
|
||
SUBI 010000H,A2 ;SUB 1 FROM Y
|
||
CALLA GANISAG
|
||
RETS
|
||
|
||
|
||
; PLTLINE - MAKE AN OBJECT TRAVEL FROM PNT. A TO PNT. B
|
||
;
|
||
; A8 = OBJECT SEEKING
|
||
; A0 = OBJECT SEEKED
|
||
; RETURNS:
|
||
; A5 = X VEL UHL
|
||
; A6 = Y VEL UHL
|
||
PLTLINE:
|
||
MOVE *A0(OXPOS),A5,W
|
||
MOVE *A0(OYPOS),A6,W
|
||
CMPI 1,A10
|
||
JRNE GRGR
|
||
ADDI 10,A6
|
||
GRGR MOVE *A8(OXPOS),A3,W
|
||
MOVE *A8(OYPOS),A4,W
|
||
SUB A3,A5 ;FIND DIFFERENCE
|
||
SUB A4,A6
|
||
MOVE A6,A3 ;
|
||
MOVE A5,A1
|
||
ABS A5
|
||
ABS A6
|
||
ADD A5,A6 ;CALC SUM ABS(DX+DY)
|
||
SLL 16,A1 ;SHIFT TO ACCOMODATE FRACTIONAL VELOCITY
|
||
SLL 16,A3
|
||
DIVS A6,A1 ;GENERATE SPEED RATIOS
|
||
DIVS A6,A3
|
||
|
||
MOVI 18H,A5
|
||
|
||
MPYS A5,A3
|
||
MPYS A1,A5 ;FINAL X VEL
|
||
SRA 4,A3
|
||
SRA 4,A5
|
||
MOVE A3,A6 ;FINAL Y VEL
|
||
RETS
|
||
;
|
||
ONLIST .LONG 0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13
|
||
MCLIST .LONG 0,T1,T2,T3Z,T4Z,T5Z,T6Z,T7,T8,T9,T10,T11,T12,T13Z
|
||
T1 ;TANK LEFT
|
||
.LONG 0,0,MTNK1A
|
||
.WORD 130,DMAWNZ,CLSENMY|TYPMUT|SUBTKL
|
||
.LONG 0,0
|
||
T2 ;TANK RGT
|
||
.LONG 0,0,MTNK1A
|
||
.WORD 130,DMAWNZ+M_FLIPH,CLSENMY|TYPMUT|SUBTKR
|
||
.LONG 0,0
|
||
T3 ;TORSO LEFT
|
||
.LONG 0,0,TRS1
|
||
.WORD 201,DMAWNZ+M_PIXSCAN,CLSENMY|TYPMUT|SUBTSL
|
||
.LONG 0,0
|
||
T4 ;TORSO RGT
|
||
.LONG 0,0,TRS1
|
||
.WORD 201,DMAWNZ+M_FLIPH+M_PIXSCAN,CLSENMY|TYPMUT|SUBTSR
|
||
.LONG 0,0
|
||
T5 ;ARM LEFT
|
||
.LONG 0,0,MARM1
|
||
.WORD 202,DMAWNZ+M_PIXSCAN,CLSENMY|TYPMUT|SUBARML
|
||
.LONG 0,0
|
||
T6 ;ARM RGT
|
||
.LONG 0,0,MARM1
|
||
.WORD 202,DMAWNZ+M_FLIPH+M_PIXSCAN,CLSENMY|TYPMUT|SUBARMR
|
||
.LONG 0,0
|
||
T3Z ;TORSO LEFT
|
||
.LONG 0,0,TRS1Z
|
||
.WORD 201,DMAWNZ+M_PIXSCAN,CLSENMY|TYPMUT|SUBTSL
|
||
.LONG 0,0
|
||
T4Z ;TORSO RGT
|
||
.LONG 0,0,TRS1Z
|
||
.WORD 201,DMAWNZ+M_FLIPH+M_PIXSCAN,CLSENMY|TYPMUT|SUBTSR
|
||
.LONG 0,0
|
||
T5Z ;ARM LEFT
|
||
.LONG 0,0,MARM1Z
|
||
.WORD 202,DMAWNZ+M_PIXSCAN,CLSENMY|TYPMUT|SUBARML
|
||
.LONG 0,0
|
||
T6Z ;ARM RGT
|
||
.LONG 0,0,MARM1Z
|
||
.WORD 202,DMAWNZ+M_FLIPH+M_PIXSCAN,CLSENMY|TYPMUT|SUBARMR
|
||
.LONG 0,0
|
||
T7 ;TREAD LFT FRONT
|
||
.LONG 0,0,TRD1
|
||
.WORD 130,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT|SUBCHNK
|
||
.LONG 0,0
|
||
T8 ;TREAD RGT FRONT
|
||
.LONG 0,0,TRD1
|
||
.WORD 130,DMAWNZ+M_FLIPH+M_NOCOLL,CLSNEUT|TYPNEUT|SUBCHNK
|
||
.LONG 0,0
|
||
T9 ;TREAD LEFT SIDE
|
||
.LONG 0,0,TRD1A
|
||
.WORD 130,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT|SUBCHNK
|
||
.LONG 0,0
|
||
T10 ;TREAD RGT SIDE
|
||
.LONG 0,0,TRD1A
|
||
.WORD 130,DMAWNZ+M_FLIPH+M_NOCOLL,CLSNEUT|TYPNEUT|SUBCHNK
|
||
.LONG 0,0
|
||
T11 ;SHAD RGT
|
||
.LONG 0,0,SHAD
|
||
.WORD 129,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT|SUBCHNK
|
||
.LONG 0,0
|
||
T12 ;SHAD FRONT
|
||
.LONG 0,0,SHAD2
|
||
.WORD 129,DMAWNZ+M_NOCOLL,CLSNEUT|TYPNEUT|SUBCHNK
|
||
.LONG 0,0
|
||
T13 ;HEAD
|
||
.LONG 0,0,MUG1
|
||
.WORD 203,DMAWNZ,CLSENMY|TYPMUT|SUBHD
|
||
.LONG 0,0
|
||
T13Z ;HEAD
|
||
.LONG 0,0,MUG1Z
|
||
.WORD 203,DMAWNZ,CLSENMY|TYPMUT|SUBHD
|
||
.LONG 0,0
|
||
BM6 ;BEAM 6
|
||
.LONG 0,0,BEAM4
|
||
.WORD 213,DMAWNZ+M_FLIPH,CLSNEUT|TYPNEUT|SUBCHNK2
|
||
.LONG 0,0
|
||
BM7 ;BEAM 7
|
||
.LONG 0,0,BEAM3
|
||
.WORD 213,DMAWNZ+M_FLIPH,CLSNEUT|TYPNEUT|SUBCHNK2
|
||
.LONG 0,0
|
||
BM8 ;BEAM 8
|
||
.LONG 0,0,BEAM2
|
||
.WORD 213,DMAWNZ+M_FLIPH,CLSNEUT|TYPNEUT|SUBCHNK2
|
||
.LONG 0,0
|
||
BM9 ;BEAM 9
|
||
.LONG 0,0,BEAM1
|
||
.WORD 213,DMAWNZ,CLSNEUT|TYPNEUT|SUBCHNK2
|
||
.LONG 0,0
|
||
BM10 ;BEAM 10
|
||
.LONG 0,0,BEAM2
|
||
.WORD 213,DMAWNZ,CLSNEUT|TYPNEUT|SUBCHNK2
|
||
.LONG 0,0
|
||
BM11 ;BEAM 11
|
||
.LONG 0,0,BEAM3
|
||
.WORD 213,DMAWNZ,CLSNEUT|TYPNEUT|SUBCHNK2
|
||
.LONG 0,0
|
||
BM12 ;BEAM 12
|
||
.LONG 0,0,BEAM4
|
||
.WORD 213,DMAWNZ,CLSNEUT|TYPNEUT|SUBCHNK2
|
||
.LONG 0,0
|
||
BM6Z ;BEAM 6
|
||
.LONG 0,0,BEAM4Z
|
||
.WORD 213,DMAWNZ+M_FLIPH,CLSNEUT|TYPNEUT|SUBCHNK2
|
||
.LONG 0,0
|
||
BM7Z ;BEAM 7
|
||
.LONG 0,0,BEAM3Z
|
||
.WORD 213,DMAWNZ+M_FLIPH,CLSNEUT|TYPNEUT|SUBCHNK2
|
||
.LONG 0,0
|
||
BM8Z ;BEAM 8
|
||
.LONG 0,0,BEAM2Z
|
||
.WORD 213,DMAWNZ+M_FLIPH,CLSNEUT|TYPNEUT|SUBCHNK2
|
||
.LONG 0,0
|
||
BM9Z ;BEAM 9
|
||
.LONG 0,0,BEAM1Z
|
||
.WORD 213,DMAWNZ,CLSNEUT|TYPNEUT|SUBCHNK2
|
||
.LONG 0,0
|
||
BM10Z ;BEAM 10
|
||
.LONG 0,0,BEAM2Z
|
||
.WORD 213,DMAWNZ,CLSNEUT|TYPNEUT|SUBCHNK2
|
||
.LONG 0,0
|
||
BM11Z ;BEAM 11
|
||
.LONG 0,0,BEAM3Z
|
||
.WORD 213,DMAWNZ,CLSNEUT|TYPNEUT|SUBCHNK2
|
||
.LONG 0,0
|
||
BM12Z ;BEAM 12
|
||
.LONG 0,0,BEAM4Z
|
||
.WORD 213,DMAWNZ,CLSNEUT|TYPNEUT|SUBCHNK2
|
||
.LONG 0,0
|
||
BLYIMG ;BEAM 12
|
||
.LONG 0,0,BELLY1
|
||
.WORD 131,DMAWNZ,CLSNEUT|TYPNEUT|SUBCHNK
|
||
.LONG 0,0
|
||
;
|
||
;TREAD ANIMATION TABLES
|
||
;
|
||
TRDSDLL
|
||
.LONG TRD2A
|
||
.WORD FLIPBITS|02,0
|
||
.LONG TRD3A
|
||
.WORD 02
|
||
.LONG TRD1A
|
||
.WORD 02
|
||
.LONG 0
|
||
TRDSDRL
|
||
.LONG TRD2A
|
||
.WORD FLIPBITS|02,(M_FLIPH)
|
||
.LONG TRD3A
|
||
.WORD 02
|
||
.LONG TRD1A
|
||
.WORD 02
|
||
.LONG 0
|
||
TRDFTLL
|
||
.LONG TRD2
|
||
.WORD FLIPBITS|02,0
|
||
.LONG TRD3
|
||
.WORD 02
|
||
.LONG TRD1
|
||
.WORD 02
|
||
.LONG 0
|
||
TRDFTRL
|
||
.LONG TRD2
|
||
.WORD FLIPBITS|02,(M_FLIPH)
|
||
.LONG TRD3
|
||
.WORD 02
|
||
.LONG TRD1
|
||
.WORD 02
|
||
.LONG 0
|
||
;UP SCREEN
|
||
BTRDSDLL
|
||
.LONG TRD3A
|
||
.WORD FLIPBITS|03,0
|
||
.LONG TRD2A
|
||
.WORD 03
|
||
.LONG TRD1A
|
||
.WORD 03
|
||
.LONG 0
|
||
BTRDSDRL
|
||
.LONG TRD3A
|
||
.WORD FLIPBITS|03,(M_FLIPH)
|
||
.LONG TRD2A
|
||
.WORD 03
|
||
.LONG TRD1A
|
||
.WORD 03
|
||
.LONG 0
|
||
BTRDFTLL
|
||
.LONG TRD3
|
||
.WORD FLIPBITS|03,0
|
||
.LONG TRD2
|
||
.WORD 03
|
||
.LONG TRD1
|
||
.WORD 03
|
||
.LONG 0
|
||
BTRDFTRL
|
||
.LONG TRD3
|
||
.WORD FLIPBITS|03,(M_FLIPH)
|
||
.LONG TRD2
|
||
.WORD 03
|
||
.LONG TRD1
|
||
.WORD 03
|
||
.LONG 0
|
||
|
||
PNDLARM
|
||
.LONG MARM1
|
||
.WORD FLIPBITS|05,0
|
||
.LONG MARM2
|
||
.WORD 05
|
||
.LONG MARM3
|
||
.WORD 05
|
||
.LONG MARM4
|
||
.WORD 05
|
||
.LONG MARM3
|
||
.WORD 05
|
||
.LONG MARM2
|
||
.WORD 05
|
||
.LONG MARM1
|
||
.WORD 05
|
||
.LONG MARM6A
|
||
; .WORD SPAWNP|50
|
||
; .WORD 0,0,0
|
||
; .LONG SHKIT
|
||
.WORD 50
|
||
.LONG 0
|
||
PNDRARM
|
||
.LONG MARM1
|
||
.WORD FLIPBITS|05,(M_FLIPH)
|
||
.LONG MARM2
|
||
.WORD 05
|
||
.LONG MARM3
|
||
.WORD 05
|
||
.LONG MARM4
|
||
.WORD 05
|
||
.LONG MARM3
|
||
.WORD 05
|
||
.LONG MARM2
|
||
.WORD 05
|
||
.LONG MARM1
|
||
.WORD 05
|
||
.LONG MARM6A
|
||
; .WORD SPAWNP|50
|
||
; .WORD 0,0,0
|
||
; .LONG SHKIT
|
||
.WORD 50
|
||
.LONG 0
|
||
FISTL
|
||
.LONG MARM1
|
||
.WORD FLIPBITS|05,0
|
||
.LONG MARM2
|
||
.WORD FLIPBITS|05,0
|
||
.LONG MARM3
|
||
.WORD FLIPBITS|01,0
|
||
.LONG 0
|
||
|
||
FISTL2 ;COMING BACK DOWN
|
||
.LONG MARM2
|
||
.WORD FLIPBITS|05,0
|
||
.LONG MARM1
|
||
.WORD FLIPBITS|01,0
|
||
.LONG 0
|
||
FISTR
|
||
.LONG MARM1
|
||
.WORD FLIPBITS|05,(M_FLIPH)
|
||
.LONG MARM2
|
||
.WORD 05
|
||
.LONG MARM3
|
||
.WORD 01
|
||
.LONG 0
|
||
|
||
FISTR2 ;COMING BACK DOWN
|
||
.LONG MARM2
|
||
.WORD FLIPBITS|05,(M_FLIPH)
|
||
.LONG MARM1
|
||
.WORD 05
|
||
.LONG 0
|
||
|
||
|
||
|
||
|
||
PNDLARMZ
|
||
.LONG MARM1Z
|
||
.WORD FLIPBITS|05,0
|
||
.LONG MARM2Z
|
||
.WORD 05
|
||
.LONG MARM3Z
|
||
.WORD 05
|
||
.LONG MARM4Z
|
||
.WORD 05
|
||
.LONG MARM3Z
|
||
.WORD 05
|
||
.LONG MARM2Z
|
||
.WORD 05
|
||
.LONG MARM1Z
|
||
.WORD 05
|
||
.LONG MARM6AZ
|
||
; .WORD SPAWNP|50
|
||
; .WORD 0,0,0
|
||
; .LONG SHKIT
|
||
.WORD 50
|
||
.LONG 0
|
||
PNDRARMZ
|
||
.LONG MARM1Z
|
||
.WORD FLIPBITS|05,(M_FLIPH)
|
||
.LONG MARM2Z
|
||
.WORD 05
|
||
.LONG MARM3Z
|
||
.WORD 05
|
||
.LONG MARM4Z
|
||
.WORD 05
|
||
.LONG MARM3Z
|
||
.WORD 05
|
||
.LONG MARM2Z
|
||
.WORD 05
|
||
.LONG MARM1Z
|
||
.WORD 05
|
||
.LONG MARM6AZ
|
||
; .WORD SPAWNP|50
|
||
; .WORD 0,0,0
|
||
; .LONG SHKIT
|
||
.WORD 50
|
||
.LONG 0
|
||
FISTLZ
|
||
.LONG MARM1Z
|
||
.WORD FLIPBITS|05,0
|
||
.LONG MARM2Z
|
||
.WORD FLIPBITS|05,0
|
||
.LONG MARM3Z
|
||
.WORD FLIPBITS|01,0
|
||
.LONG 0
|
||
|
||
FISTL2Z ;COMING BACK DOWN
|
||
.LONG MARM2Z
|
||
.WORD FLIPBITS|05,0
|
||
.LONG MARM1Z
|
||
.WORD FLIPBITS|01,0
|
||
.LONG 0
|
||
FISTRZ
|
||
.LONG MARM1Z
|
||
.WORD FLIPBITS|05,(M_FLIPH)
|
||
.LONG MARM2Z
|
||
.WORD 05
|
||
.LONG MARM3Z
|
||
.WORD 01
|
||
.LONG 0
|
||
|
||
FISTR2Z ;COMING BACK DOWN
|
||
.LONG MARM2Z
|
||
.WORD FLIPBITS|05,(M_FLIPH)
|
||
.LONG MARM1Z
|
||
.WORD 05
|
||
.LONG 0
|
||
|
||
|
||
|
||
POSEMEL
|
||
.LONG MARM1
|
||
.WORD FLIPBITS|05,0
|
||
.LONG MARM2
|
||
.WORD 05
|
||
.LONG MARM3
|
||
.WORD 05
|
||
.LONG MARM4
|
||
.WORD 90
|
||
.LONG MARM3
|
||
.WORD 05
|
||
.LONG MARM2
|
||
.WORD 05
|
||
.LONG MARM1
|
||
.WORD 05
|
||
.LONG 0
|
||
POSEMER
|
||
.LONG MARM1
|
||
.WORD FLIPBITS|05,(M_FLIPH)
|
||
.LONG MARM2
|
||
.WORD 05
|
||
.LONG MARM3
|
||
.WORD 05
|
||
.LONG MARM4
|
||
.WORD 90
|
||
.LONG MARM3
|
||
.WORD 05
|
||
.LONG MARM2
|
||
.WORD 05
|
||
.LONG MARM1
|
||
.WORD 05
|
||
.LONG 0
|
||
POSEMELZ
|
||
.LONG MARM1Z
|
||
.WORD FLIPBITS|05,0
|
||
.LONG MARM2Z
|
||
.WORD 05
|
||
.LONG MARM3Z
|
||
.WORD 05
|
||
.LONG MARM4Z
|
||
.WORD 90
|
||
.LONG MARM3Z
|
||
.WORD 05
|
||
.LONG MARM2Z
|
||
.WORD 05
|
||
.LONG MARM1Z
|
||
.WORD 05
|
||
.LONG 0
|
||
POSEMERZ
|
||
.LONG MARM1Z
|
||
.WORD FLIPBITS|05,(M_FLIPH)
|
||
.LONG MARM2Z
|
||
.WORD 05
|
||
.LONG MARM3Z
|
||
.WORD 05
|
||
.LONG MARM4Z
|
||
.WORD 90
|
||
.LONG MARM3Z
|
||
.WORD 05
|
||
.LONG MARM2Z
|
||
.WORD 05
|
||
.LONG MARM1Z
|
||
.WORD 05
|
||
.LONG 0
|
||
|
||
FPNDLARM:
|
||
.LONG MARM1
|
||
.WORD FLIPBITS|03,0
|
||
.LONG MARM2
|
||
.WORD 03
|
||
.LONG MARM3
|
||
.WORD 03
|
||
.LONG MARM4
|
||
.WORD 03
|
||
.LONG MARM3
|
||
.WORD 03
|
||
.LONG MARM2
|
||
.WORD 03
|
||
.LONG MARM1
|
||
.WORD 03
|
||
.LONG MARM6A
|
||
.WORD 01
|
||
.LONG 0
|
||
FPNDLARMZ
|
||
.LONG MARM1Z
|
||
.WORD FLIPBITS|03,0
|
||
.LONG MARM2Z
|
||
.WORD 03
|
||
.LONG MARM3Z
|
||
.WORD 03
|
||
.LONG MARM4Z
|
||
.WORD 03
|
||
.LONG MARM3Z
|
||
.WORD 03
|
||
.LONG MARM2Z
|
||
.WORD 03
|
||
.LONG MARM1Z
|
||
.WORD 03
|
||
.LONG MARM6AZ
|
||
.WORD 01
|
||
.LONG 0
|
||
FLIPL
|
||
.LONG MARM3
|
||
.WORD FLIPBITS|02,0
|
||
.LONG 0
|
||
FLIPLZ
|
||
.LONG MARM3Z
|
||
.WORD FLIPBITS|02,0
|
||
.LONG 0
|
||
FLIPH
|
||
.LONG MUG1
|
||
.WORD FLIPBITS|03,0
|
||
.LONG MUG2
|
||
.WORD 3
|
||
.LONG MUG3
|
||
.WORD 3
|
||
.LONG MUG4
|
||
.WORD 3
|
||
.LONG MUG1C
|
||
.WORD 3
|
||
.LONG MUG4
|
||
.WORD FLIPBITS|3,(M_FLIPH)
|
||
.LONG MUG3
|
||
.WORD 3
|
||
.LONG MUG2
|
||
.WORD 3
|
||
.LONG MUG1
|
||
.WORD 3
|
||
.LONG 0
|
||
FLIPHZ
|
||
.LONG MUG1Z
|
||
.WORD FLIPBITS|03,0
|
||
.LONG MUG2Z
|
||
.WORD 3
|
||
.LONG MUG3Z
|
||
.WORD 3
|
||
.LONG MUG4Z
|
||
.WORD 3
|
||
.LONG MUG1CZ
|
||
.WORD 3
|
||
.LONG MUG4Z
|
||
.WORD FLIPBITS|3,(M_FLIPH)
|
||
.LONG MUG3Z
|
||
.WORD 3
|
||
.LONG MUG2Z
|
||
.WORD 3
|
||
.LONG MUG1Z
|
||
.WORD 3
|
||
.LONG 0
|
||
|
||
FLIPCR
|
||
.LONG TRS1
|
||
.WORD FLIPBITS|02,(M_FLIPH)
|
||
.LONG 0
|
||
FLIPCL
|
||
.LONG TRS1
|
||
.WORD FLIPBITS|02,0
|
||
.LONG 0
|
||
FLIPCR2
|
||
.LONG TRS1A
|
||
.WORD FLIPBITS|02,(M_FLIPH)
|
||
.LONG 0
|
||
FLIPCL2
|
||
.LONG TRS1A
|
||
.WORD FLIPBITS|02,0
|
||
.LONG 0
|
||
FLIPR
|
||
.LONG MARM3
|
||
.WORD FLIPBITS|02,(M_FLIPH)
|
||
.LONG 0
|
||
|
||
|
||
|
||
FLIPCRZ
|
||
.LONG TRS1Z
|
||
.WORD FLIPBITS|02,(M_FLIPH)
|
||
.LONG 0
|
||
FLIPCLZ
|
||
.LONG TRS1Z
|
||
.WORD FLIPBITS|02,0
|
||
.LONG 0
|
||
FLIPCR2Z
|
||
.LONG TRS1AZ
|
||
.WORD FLIPBITS|02,(M_FLIPH)
|
||
.LONG 0
|
||
FLIPCL2Z
|
||
.LONG TRS1AZ
|
||
.WORD FLIPBITS|02,0
|
||
.LONG 0
|
||
FLIPRZ
|
||
.LONG MARM3Z
|
||
.WORD FLIPBITS|02,(M_FLIPH)
|
||
.LONG 0
|
||
|
||
FPNDRARM:
|
||
.LONG MARM1
|
||
.WORD FLIPBITS|03,(M_FLIPH)
|
||
.LONG MARM2
|
||
.WORD 03
|
||
.LONG MARM3
|
||
.WORD 03
|
||
.LONG MARM4
|
||
.WORD 03
|
||
.LONG MARM3
|
||
.WORD 03
|
||
.LONG MARM2
|
||
.WORD 03
|
||
.LONG MARM1
|
||
.WORD 03
|
||
.LONG MARM6A
|
||
.WORD 01
|
||
.LONG 0
|
||
FPNDRARMZ:
|
||
.LONG MARM1Z
|
||
.WORD FLIPBITS|03,(M_FLIPH)
|
||
.LONG MARM2Z
|
||
.WORD 03
|
||
.LONG MARM3Z
|
||
.WORD 03
|
||
.LONG MARM4Z
|
||
.WORD 03
|
||
.LONG MARM3Z
|
||
.WORD 03
|
||
.LONG MARM2Z
|
||
.WORD 03
|
||
.LONG MARM1Z
|
||
.WORD 03
|
||
.LONG MARM6AZ
|
||
.WORD 01
|
||
.LONG 0
|
||
|
||
.END
|
||
|
||
|
||
|