4373 lines
70 KiB
NASM
4373 lines
70 KiB
NASM
|
.FILE 'HULKS.ASM'
|
|||
|
.TITLE 'ROBO-RAMA GAME PROGRAM'
|
|||
|
.WIDTH 132
|
|||
|
.OPTION B,D,L,T
|
|||
|
.MNOLIST
|
|||
|
|
|||
|
;
|
|||
|
; 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 "FINGRNT.TBL"
|
|||
|
|
|||
|
;
|
|||
|
;SOUNDS EXTERNAL
|
|||
|
;
|
|||
|
.REF EXP1,UGH,HEXP,EXP3HI,EXP3,UGH2,UGH3
|
|||
|
;
|
|||
|
;SYMBOLS EXTERNALLY DEFINED
|
|||
|
;
|
|||
|
.REF GPALOBJ,GETFPAL,BLOE2,FACEON,ZOOM4,FRANIM_DIE
|
|||
|
.REF ADJSTWTL,PCNT,CIRCUIT,GALTYP
|
|||
|
.REF RANGRAND,FRANIM
|
|||
|
.REF P2DATA,P1DATA,SCRADD2
|
|||
|
.REF GAMSTATE,WAVEYX
|
|||
|
.REF KEEPXY,RAMXY,WAVE_RAM,HALT,EHALT
|
|||
|
.REF GETANIX
|
|||
|
.REF SET_GATE_2,RANDPER,KP_LS,KP_RS,KP_TS
|
|||
|
.REF WAVE
|
|||
|
.REF KILOBJ
|
|||
|
.REF DEXIT
|
|||
|
.REF FROMDR,PLYROBJS,PLYRPRCS
|
|||
|
;
|
|||
|
;SYMBOLS DEFINED IN THIS FILE
|
|||
|
;
|
|||
|
.DEF OVALBLD,SWAPSK,BAT_PLYR,BLOW,NEWV,ARMOFF,ARMOFF2,TWOCHNKS
|
|||
|
.DEF CHNKS2,SETUP_DIR,ADDRPCS,BIG3A,NEW_OV
|
|||
|
.DEF SPAWN_HULKS,KILL_HULK,ONSCRN_HULKS,HULK_DN,HULK_CNT,BIG2,BIG3
|
|||
|
.DEF RED_CARPETX,RED_CARPETY,PIECES,NXT,DRINF,MAXHULK,KILL_H2
|
|||
|
.DEF INTO,INFOTBL,GET_WVADDR,DO_DIFF2,GET_VALID_XY,INTO16
|
|||
|
.DEF ADDPCS2,ADPCS3,ADPCS1,KILL_H1,PCTOT,GET_VALID_DOOR
|
|||
|
.DEF ADPCS2,ADPCS4
|
|||
|
.DEF XVEL,YVEL
|
|||
|
; .DEF BEGIN_OBJ,GENERIC_INIT,BEGIN_OBJ2
|
|||
|
.DEF BOOM2,BOOM3,HULKTYP,SPINFLGS
|
|||
|
|
|||
|
;
|
|||
|
;UNINITIALIZED RAM DEFINITIONS
|
|||
|
;
|
|||
|
.BSS GENERIC_INIT,7*32-16
|
|||
|
.BSS MAXHULK,8 ;MAX NUMBER OF HULKS ALLOWED ON SCRN
|
|||
|
.BSS TMP1,32
|
|||
|
.BSS TMP2,32
|
|||
|
.BSS NXT,8
|
|||
|
.BSS LASTPC,32
|
|||
|
.BSS PCTOT,8
|
|||
|
.BSS HULK_CNT,16 ;TOTAL HULKS ON SCREEN
|
|||
|
.BSS TMP,16
|
|||
|
.BSS LDOOR_INFO,32*2
|
|||
|
.BSS RDOOR_INFO,32*2
|
|||
|
.BSS TDOOR_INFO,32*2
|
|||
|
.BSS BDOOR_INFO,32*2
|
|||
|
.BSS HULK_DN,16
|
|||
|
.BSS HULKTYP,16
|
|||
|
.BSS PCINFO,(32+16+32)*PCSMAX
|
|||
|
|
|||
|
;
|
|||
|
;EQUATES FOR THIS FILE
|
|||
|
;
|
|||
|
;FOR STARTING AN OBJECT
|
|||
|
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
|
|||
|
;
|
|||
|
;HULK DATA STRUCTURE
|
|||
|
;
|
|||
|
HAGE .EQU PDATA ;OBJECT AGE
|
|||
|
DIR .EQU PDATA+16 ;OBJECT DIRECTION
|
|||
|
DIS .EQU PDATA+32 ;OBJECT DISTANCE COUNT
|
|||
|
CFLAGS .EQU PDATA+48 ;CONTROL FLAGS FOR OBJECT
|
|||
|
SK_DIR .EQU PDATA+64 ;SEEK DIR FOR SPIN
|
|||
|
LEVEL .EQU PDATA+80 ;DIFFICULTY LEVEL FOR SPEEDS ETC.
|
|||
|
HSPD .EQU PDATA+96
|
|||
|
H2SPD .EQU PDATA+128
|
|||
|
VSPD .EQU PDATA+160
|
|||
|
V2SPD .EQU PDATA+192
|
|||
|
KPAGE .EQU PDATA+224 ;UHW
|
|||
|
OSCILLATE .EQU PDATA+240 ;UHW
|
|||
|
SKPLYR .EQU PDATA+256 ;UHB PLAYER # TO PURSUE
|
|||
|
IBAT .EQU PDATA+264 ;UHB BAT FLAG 0=OFF, 1=ON
|
|||
|
|
|||
|
;
|
|||
|
MAXLEVEL .EQU 10
|
|||
|
;
|
|||
|
HSPEED .EQU 08000H
|
|||
|
|
|||
|
.TEXT
|
|||
|
;
|
|||
|
SPAWN_HULKS:
|
|||
|
;SPAWN HULKS IS CALLED FROM 'WAVE OVERLORD' CODE WHICH DISPERSES
|
|||
|
;BAD GUYS THROUGHOUT A WAVE
|
|||
|
; MOVE @HULK_DN,A0
|
|||
|
; JRNZ HULK_OUT
|
|||
|
MOVE @HULK_CNT,A2 ;MOVE BYTE (# HULKS ON SCRN) TO A2
|
|||
|
MOVB @MAXHULK,A3
|
|||
|
CMP A3,A2 ;HULKS MAXED OUT?
|
|||
|
JRGT HULK_OUT
|
|||
|
MOVI 140,A0
|
|||
|
CALLA RANDPER
|
|||
|
JRC GANG
|
|||
|
|
|||
|
CREATE HULKPID,AHULK ;START ONE HULK
|
|||
|
HULK_OUT:
|
|||
|
RETS
|
|||
|
DRINF .LONG 0,KP_LS,KP_RS,KP_TS
|
|||
|
GANG:
|
|||
|
CLR B0
|
|||
|
MOVK 4,B1
|
|||
|
CALLA RANGRAND
|
|||
|
;ANDI WAVE # AND CAUSE GANGS TO USE DIFFERENT DOORS!
|
|||
|
MOVE A0,A1
|
|||
|
SLL 5,A1
|
|||
|
ADDI DRINF,A1
|
|||
|
MOVE *A1,A1,L
|
|||
|
MOVB *A1,A1 ;GET KP_LS ETC.
|
|||
|
CMPI 1,A1
|
|||
|
JRNE GT
|
|||
|
;DOOR THIS GANG WANTS TO ORIGINATE IS CLOSING RIGHT NOW!
|
|||
|
;SHIFT THIS GANG TO BOTTOM DOOR
|
|||
|
MOVK 4,A0
|
|||
|
GT MOVI 58,A1
|
|||
|
PUSH A0
|
|||
|
CALLA SET_GATE_2
|
|||
|
PULL A0
|
|||
|
DEC A0 ;DOOR TO GANG UP ON!
|
|||
|
MOVE A0,A8
|
|||
|
MOVI HULK,A2
|
|||
|
CALLR GET_WVADDR
|
|||
|
MOVE *A0(16),A0 ;GET HULKS LEFT TO RELEASE THIS WAVE!
|
|||
|
CMPI 16,A0 ;MIN HULKS BEFORE GANG
|
|||
|
JRLT GH1 ;RELEASE ALL OF THEM!
|
|||
|
MOVK 7,B0 ;# OF HULKS IN A GANG
|
|||
|
MOVK 16,B1
|
|||
|
CALLA RANGRAND
|
|||
|
GH1:
|
|||
|
PUSH A0
|
|||
|
CREATE HULKPID,GHULK
|
|||
|
PULL A0
|
|||
|
DSJNE A0,GH1
|
|||
|
RETS
|
|||
|
|
|||
|
ONSCRN_HULKS:
|
|||
|
MOVE @CIRCUIT,A0
|
|||
|
CMPI 2,A0
|
|||
|
JRC REGS
|
|||
|
;CIRCUIT 2/3 (LAST TWO!)
|
|||
|
MOVE @WAVE,A0
|
|||
|
SLL 3,A0
|
|||
|
ADDI HTYP,A0
|
|||
|
MOVB *A0,A0
|
|||
|
MOVE A0,@HULKTYP,W
|
|||
|
|
|||
|
REGS 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 HULKPID,OHULK
|
|||
|
PULL A2
|
|||
|
DSJNE A2,OH1
|
|||
|
RETS
|
|||
|
HTYP
|
|||
|
;0=REGULAR HULKS
|
|||
|
;2=SNAKE GRUNTS
|
|||
|
;3=TECH CREW
|
|||
|
.BYTE 0,2,2,0,2,0,0,2,0,2,2,0,0,2,0,0,2,0,0,0,0,0,0,0,0
|
|||
|
.EVEN
|
|||
|
OHULK:
|
|||
|
;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
|
|||
|
MOVI HULK,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 BEGINOBJ2
|
|||
|
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
|
|||
|
;POSSIBLY SLEEP HERE??!?? TO ALLEVIATE OSCILLATE PROBLEM? AT BEGINNING.
|
|||
|
JRUC LUP_TOP
|
|||
|
|
|||
|
GXL: .LONG -400000H,01900000H,0AD0000H,0AD0000H
|
|||
|
GXR: .LONG -010000H,01D00000H,0DD0000H,0DD0000H
|
|||
|
GYT: .LONG 0600000H,0600000H,-600000H,00F80000H
|
|||
|
GYB: .LONG 0880000H,0880000H,-100000H,01480000H
|
|||
|
|
|||
|
REALO:
|
|||
|
MOVE A8,A0
|
|||
|
; CALLA DELPAL ;NEEDED? NOT IF IN PLYR PAL!
|
|||
|
CALLA DELOBJ
|
|||
|
|
|||
|
MOVE @HULK_CNT,A3
|
|||
|
DEC A3
|
|||
|
MOVE A3,@HULK_CNT
|
|||
|
DIE
|
|||
|
GHULK:
|
|||
|
;GHULK PUTS X # OF HULKS BEHIND A DOOR IN GANG FORMATION!
|
|||
|
;A0=DOOR TO GANG UP ON
|
|||
|
;
|
|||
|
SLL 4,A8
|
|||
|
MOVI 30,A1
|
|||
|
MOVE A1,*A13(DIS)
|
|||
|
MOVI SD,A1
|
|||
|
ADD A8,A1
|
|||
|
MOVE *A1,A1
|
|||
|
MOVE A1,*A13(DIR)
|
|||
|
SLL 1,A8
|
|||
|
MOVI GXL,A1
|
|||
|
ADD A8,A1
|
|||
|
MOVE *A1,A2,L ;GET X LEFT BOUNDARY
|
|||
|
MOVI GXR,A1
|
|||
|
ADD A8,A1
|
|||
|
MOVE *A1,A3,L ;GET X RIGHT SIDE BOUNDARY
|
|||
|
MOVI GYT,A1
|
|||
|
ADD A8,A1
|
|||
|
MOVE *A1,A4,L ;GET Y TOP
|
|||
|
MOVI GYB,A1
|
|||
|
ADD A8,A1
|
|||
|
MOVE *A1,A5,L ;GET Y BOT
|
|||
|
MOVE A2,B0
|
|||
|
MOVE A3,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,A6 ;A6 IS X
|
|||
|
MOVE A4,B0
|
|||
|
MOVE A5,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,A1 ;A1 IS Y
|
|||
|
MOVE A6,A0
|
|||
|
|
|||
|
CALLR IH1
|
|||
|
CALLA BEGINOBJ
|
|||
|
|
|||
|
CALLR SETUP_HULK ;INC CNT, SET DIR, SET DEATH FLAG, ETC
|
|||
|
CLR B0
|
|||
|
MOVK 4,B1
|
|||
|
MOVE @GALTYP,A0
|
|||
|
JRZ R4
|
|||
|
MOVK 1,B0
|
|||
|
MOVK 5,B1
|
|||
|
R4 CALLA RANGRAND
|
|||
|
DEC A0
|
|||
|
MOVE A0,*A13(LEVEL)
|
|||
|
CALLR DO_DIFF
|
|||
|
MOVE *A13(DIR),A0
|
|||
|
CALLR INTO
|
|||
|
CALLR GET_RUN
|
|||
|
MOVE *A13(CFLAGS),A0 ;INDICATE GANG MEMBER FOR RUN IN
|
|||
|
ORI 010H,A0
|
|||
|
MOVE A0,*A13(CFLAGS)
|
|||
|
SLEEP 2
|
|||
|
JRUC LUP_TOP
|
|||
|
|
|||
|
AHULK:
|
|||
|
;YES A NEW HULK WILL APPEAR
|
|||
|
;UPDATE WAVE_INFO RAM TABLE TO REFLECT THIS NEW ENTRY!
|
|||
|
;THIS HULK WAS SPAWNED FROM 'WAVE OVERLORD' CODE
|
|||
|
;
|
|||
|
CALLR SETUP_HULK ;INC CNT, SET DIR, SET DEATH FLAG, ETC
|
|||
|
CALLR INIT_HULK ;INITIAL HULK PARAMS (BEGIN_OBJ)
|
|||
|
JRNC OKZ
|
|||
|
;CARRY SET MEANS THIS GUY WILL DIE BECAUSE HE WAS GOING TO COME
|
|||
|
;OUT CLOSED DOOR
|
|||
|
DIE
|
|||
|
|
|||
|
OKZ
|
|||
|
MOVE *A13(LEVEL),A0
|
|||
|
CMPI 4,A0 ;4
|
|||
|
JRLT OKZ0
|
|||
|
;CHANGE TO PURPLE PAL
|
|||
|
MOVI GRNTP,A0
|
|||
|
MOVE @HULKTYP,A1
|
|||
|
JRZ YAH
|
|||
|
MOVI SNKGP,A0
|
|||
|
CMPI 2,A1
|
|||
|
JRZ YAH
|
|||
|
MOVI SNKGP,A0
|
|||
|
|
|||
|
YAH
|
|||
|
CALLA GETFPAL ;GET A COLOR MAP ASSIGNMENT
|
|||
|
MOVE A0,*A8(OPAL),W ;STORE THE NEW PALETTE
|
|||
|
|
|||
|
OKZ0 CALLR DO_DIFF
|
|||
|
MOVE *A13(CFLAGS),A0
|
|||
|
ORI 02H,A0
|
|||
|
MOVE A0,*A13(CFLAGS) ;FROM DOORWAY!
|
|||
|
BTST 2,A0 ;CHECK FOR PAUSE DELAY BEHIND DOOR
|
|||
|
JRNZ LR
|
|||
|
MOVE *A13(DIR),A0
|
|||
|
|
|||
|
CALLR INTO
|
|||
|
LR
|
|||
|
CALLR GET_RUN ;GET FIRST FRANIM PNTR FOR
|
|||
|
;THIS HULKS DIRECTION
|
|||
|
;
|
|||
|
; LOOP TOP FOR HULKS
|
|||
|
;
|
|||
|
LUP_TOP:
|
|||
|
;TOP OF HULK LOGIC
|
|||
|
MOVE @HALT,A0
|
|||
|
JRNZ CONT1
|
|||
|
|
|||
|
MOVB *A13(IBAT),A0
|
|||
|
JRZ LP5
|
|||
|
;A0=PLAYER 1 OR 2
|
|||
|
;THIS HULK IS BATTING
|
|||
|
;START BAT SWING
|
|||
|
CLR A1
|
|||
|
MOVE A1,*A8(OXVEL),L
|
|||
|
MOVE A1,*A8(OYVEL),L
|
|||
|
DEC A0
|
|||
|
SLL 5,A0
|
|||
|
ADDI PLYROBJS,A0
|
|||
|
MOVE *A0,A0,L
|
|||
|
MOVE *A0(OYPOS),A2 ;A2=Y OF PLYR I HIT
|
|||
|
MOVE *A0(OXPOS),A1 ;A1=X
|
|||
|
MOVE *A8(OYPOS),A3 ;A3=THIS HULKS' Y
|
|||
|
MOVE *A8(OXPOS),A4 ;A4=THIS HULKS' X
|
|||
|
CMP A3,A2
|
|||
|
JRC SUP ;BR=BAT UPWARD
|
|||
|
CMP A4,A1
|
|||
|
JRC B8O ;BR=8 O'CLOCK SWING NEEDED
|
|||
|
;4 O'CLOCK
|
|||
|
MOVI BAT4O,A9
|
|||
|
MOVE @HULKTYP,A0
|
|||
|
JRZ GBAT
|
|||
|
MOVI BAT4OS,A9
|
|||
|
CMPI 2,A0
|
|||
|
JRZ GBAT
|
|||
|
;4TH CIRCUIT
|
|||
|
MOVI BAT4OS,A9
|
|||
|
|
|||
|
GBAT MOVE A9,A10
|
|||
|
MOVK 1,A1
|
|||
|
JSRP FRANIM
|
|||
|
MOVE A10,A9
|
|||
|
MOVK 1,A1
|
|||
|
JSRP FRANIM
|
|||
|
JRUC BATDN
|
|||
|
B8O
|
|||
|
;8
|
|||
|
MOVI BAT8O,A9
|
|||
|
MOVE @HULKTYP,A0
|
|||
|
JRZ GBAT1
|
|||
|
MOVI BAT8OS,A9
|
|||
|
CMPI 2,A0
|
|||
|
JRZ GBAT1
|
|||
|
;4TH CIRCUIT
|
|||
|
GBAT1 MOVE A9,A10
|
|||
|
MOVK 1,A1
|
|||
|
JSRP FRANIM
|
|||
|
MOVE A10,A9
|
|||
|
MOVK 1,A1
|
|||
|
JSRP FRANIM
|
|||
|
JRUC BATDN
|
|||
|
SUP CMP A4,A1
|
|||
|
JRC B10O
|
|||
|
;2 O'CLOCK
|
|||
|
MOVI BAT2O,A9
|
|||
|
MOVE @HULKTYP,A0
|
|||
|
JRZ GBAT2
|
|||
|
MOVI BAT2OS,A9
|
|||
|
CMPI 2,A0
|
|||
|
JRZ GBAT2
|
|||
|
;4TH CIRCUIT
|
|||
|
MOVI BAT2O,A9
|
|||
|
GBAT2 MOVE A9,A10
|
|||
|
MOVK 1,A1
|
|||
|
JSRP FRANIM
|
|||
|
MOVE A10,A9
|
|||
|
MOVK 1,A1
|
|||
|
JSRP FRANIM
|
|||
|
JRUC BATDN
|
|||
|
B10O
|
|||
|
MOVI BAT10O,A9
|
|||
|
MOVE @HULKTYP,A0
|
|||
|
JRZ GBAT3
|
|||
|
MOVI BAT10OS,A9
|
|||
|
CMPI 2,A0
|
|||
|
JRZ GBAT3
|
|||
|
;4TH CIRCUIT
|
|||
|
MOVI BAT10O,A9
|
|||
|
GBAT3 MOVE A9,A10
|
|||
|
MOVK 1,A1
|
|||
|
JSRP FRANIM
|
|||
|
MOVE A10,A9
|
|||
|
MOVK 1,A1
|
|||
|
JSRP FRANIM
|
|||
|
BATDN CLR A0
|
|||
|
MOVB A0,*A13(IBAT)
|
|||
|
MOVE *A13(DIR),A0
|
|||
|
MOVE A10,A9
|
|||
|
CALLA INTO
|
|||
|
SLEEP 1
|
|||
|
JRUC LUP_TOP
|
|||
|
|
|||
|
|
|||
|
|
|||
|
LP5 MOVE *A13(CFLAGS),A0
|
|||
|
BTST 2,A0
|
|||
|
JREQ DOLOGIC
|
|||
|
MOVE @HULK_DN,A1
|
|||
|
JRNE REALO
|
|||
|
BTST 3,A0
|
|||
|
JRZ DOHULK
|
|||
|
;END OF WAVE
|
|||
|
;CHECK TO SEE IF DOOR IS IN PROCESS OF CLOSING
|
|||
|
;IF SO, DELAY INTO CODE!
|
|||
|
ANDI 0FFF3H,A0
|
|||
|
MOVE A0,*A13(CFLAGS)
|
|||
|
MOVE *A13(DIR),A0
|
|||
|
CALLR INTO
|
|||
|
;
|
|||
|
; DO HULK MOVEMENT LOGIC A8=CURRENT OBJECT POINTER (HULK IMAGE)
|
|||
|
;
|
|||
|
DOLOGIC:
|
|||
|
MOVE @EHALT,A0
|
|||
|
JRZ MV ;BR=HALT ALL HULKS!!
|
|||
|
;PLAYER IS WALKING INTO ARENA
|
|||
|
;MAKE HULK FACE PLAYER AS HE ENTERS
|
|||
|
;PUT HULKS INTO STAND MODE
|
|||
|
; MOVE @HALT,A0 ;FOR WHEN PLAYER DIES AND EVERYTHING
|
|||
|
;MUST HALT! NO RUNNING OFF SCRN!
|
|||
|
; JRNZ DONE_SPIN
|
|||
|
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI BUYINPID,A0
|
|||
|
CALLA EXISTP
|
|||
|
JRNZ DONE_SPIN
|
|||
|
|
|||
|
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A8(OXVEL),L
|
|||
|
MOVE A0,*A8(OYVEL),L
|
|||
|
MOVE *A13(CFLAGS),A0
|
|||
|
ORI 01H,A0
|
|||
|
MOVE A0,*A13(CFLAGS),W ;SET STAND MODE FOR THIS HULK
|
|||
|
MOVE *A13(SK_DIR),A1
|
|||
|
MOVE *A13(DIR),A0,W
|
|||
|
CMP A0,A1
|
|||
|
JREQ DONE ;BR=ALREADY FACING IN CORRECT DIR
|
|||
|
CALLR WAY
|
|||
|
DONE_SPIN:
|
|||
|
SLEEP 2
|
|||
|
JRUC LUP_TOP
|
|||
|
DONE:
|
|||
|
;GET NEW SEEK DIR
|
|||
|
;IGNORE (DIS) TIMER AND GET NEW SEEK DIR RIGHT AWAY!
|
|||
|
CALLR SETUP_DIR
|
|||
|
CALLR DO_DIFF
|
|||
|
JRUC DONE_SPIN
|
|||
|
MV:
|
|||
|
;FIRST, DO AGE/LEVEL UPDATE
|
|||
|
MOVE *A13(HAGE),A0
|
|||
|
ANDI 03FFH,A0
|
|||
|
DEC A0
|
|||
|
MOVE A0,*A13(HAGE)
|
|||
|
JRNZ C7
|
|||
|
MOVE *A13(LEVEL),A0
|
|||
|
CMPI MAXLEVEL,A0
|
|||
|
JREQ C7
|
|||
|
INC A0
|
|||
|
MOVE A0,*A13(LEVEL)
|
|||
|
; CMPI 4,A0
|
|||
|
; JRNE MVB
|
|||
|
; MOVI GRNTP,A0
|
|||
|
; CALLA GETFPAL ;GET A COLOR MAP ASSIGNMENT
|
|||
|
; MOVE A0,*A8(OPAL),W ;STORE THE NEW PALETTE
|
|||
|
;MVB
|
|||
|
CALLR DO_DIFF
|
|||
|
MOVE *A13(KPAGE),A0
|
|||
|
MOVE A0,*A13(HAGE)
|
|||
|
C7: MOVE *A13(CFLAGS),A0
|
|||
|
BTST 0,A0
|
|||
|
JRZ NOSPN
|
|||
|
; THIS HULK IS SPINNING, DO SPIN
|
|||
|
MOVE *A13(SK_DIR),A1
|
|||
|
MOVE *A13(DIR),A0,W
|
|||
|
CMP A0,A1
|
|||
|
JRNE CONT
|
|||
|
; HULK HAS SPUN TO CORRECT DIR, NOW START HIM WALKING AGAIN
|
|||
|
; SET DIS CNTR ALSO
|
|||
|
; CHECK TO MAKE THIS DIR IS STILL HEADING TOWARD PLAYER!
|
|||
|
; IF SO, START RUN WITH CORRECT VELOCITY STUFFED TO COLLIDE WITH PLAYER
|
|||
|
; IF NOT, SPIN SOME MORE!
|
|||
|
; IF NEW SEEK IS <> OLD SEEK, THEN SET STAND FLAG
|
|||
|
MOVE *A13(CFLAGS),A0
|
|||
|
BTST 1,A0 ;REGULAR HULK RUN IN FLAG
|
|||
|
JRZ R0
|
|||
|
; HULK HAS RUN IN, NOW ANGLE HIM OFF RANDOMLY
|
|||
|
MOVK 15,A0
|
|||
|
MOVE A0,*A13(DIS)
|
|||
|
MOVE *A13(CFLAGS),A0
|
|||
|
ANDI 0FFFDH,A0
|
|||
|
MOVE A0,*A13(CFLAGS)
|
|||
|
JRUC GOODNEWS
|
|||
|
R0 PUSH A1
|
|||
|
CALLA JUST_SK ;WILL STUFF NEW VEL
|
|||
|
PULL A1
|
|||
|
MOVE *A13(SK_DIR),A0
|
|||
|
CMP A0,A1 ;NEW CMP OLD SEEK
|
|||
|
JREQ GOODNEWS
|
|||
|
;HULK SPUN TO CORRECT DIR THEN CHECKED AGAIN AND THE PLAYER HAD MOVED
|
|||
|
MOVE *A13(OSCILLATE),A0
|
|||
|
JRNZ GNW
|
|||
|
MOVK 1,A0
|
|||
|
MOVE A0,*A13(OSCILLATE)
|
|||
|
;SET HULK SPIN FLAG AGAIN BECAUSE PLAYER MOVED!
|
|||
|
MOVE *A13(CFLAGS),A0
|
|||
|
ORI 01H,A0
|
|||
|
MOVE A0,*A13(CFLAGS),W
|
|||
|
SLEEP 1
|
|||
|
JRUC LUP_TOP
|
|||
|
GNW MOVK 6,A0
|
|||
|
MOVE A0,*A13(DIS)
|
|||
|
GOODNEWS:
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A13(OSCILLATE)
|
|||
|
CALLR GET_RUN ;ZEROS STAND FLAG ALSO
|
|||
|
SLEEP 1
|
|||
|
JRUC LUP_TOP
|
|||
|
CONT:
|
|||
|
CALLR WAY ;WHICH WAY TO SPIN/THEN ANI STAND VW
|
|||
|
CONT1: SLEEP 3
|
|||
|
JRUC LUP_TOP
|
|||
|
|
|||
|
NOSPN: MOVE *A13(DIS),A0 ;UPDATE DISTANCE COUNT
|
|||
|
DEC A0
|
|||
|
MOVE A0,*A13(DIS) ;STUFF NEW COUNT
|
|||
|
JRNZ DOHULK ;BR=CONTINUE CURRENT DIRECTION
|
|||
|
MOVE *A13(CFLAGS),A0
|
|||
|
BTST 4,A0
|
|||
|
JRZ NGNG ;BR=NOT A GANG MEMBER
|
|||
|
;GANG MEMBER WHO WANTS TO TURN TOWARD PLAYER
|
|||
|
;HE MUST WAIT TILL HE IS ON SCREEN!
|
|||
|
MOVE *A8(OYVAL),A5,L
|
|||
|
MOVE *A8(OXVAL),A4,L
|
|||
|
MOVE @PLYRPRCS,A7,L
|
|||
|
JRNZ TOK
|
|||
|
;GET BND FROM OTHER PLAYER
|
|||
|
MOVE @PLYRPRCS+32,A7,L
|
|||
|
|
|||
|
TOK MOVE *A7(LFTBND),A0,L
|
|||
|
CMP A0,A4
|
|||
|
JRLO BAD
|
|||
|
MOVE *A7(RGTBND),A0,L
|
|||
|
CMP A0,A4
|
|||
|
JRHI BAD
|
|||
|
MOVE *A7(UPBND),A0,L
|
|||
|
CMP A0,A5
|
|||
|
JRLO BAD
|
|||
|
MOVE *A7(DNBND),A0,L
|
|||
|
CMP A0,A5
|
|||
|
JRLO OK
|
|||
|
BAD MOVK 5,A0
|
|||
|
MOVE A0,*A13(DIS) ;STUFF NEW COUNT
|
|||
|
JRUC DOHULK ;BR=CONTINUE CURRENT DIRECTION
|
|||
|
OK MOVE *A13(CFLAGS),A0
|
|||
|
ANDI 0FFEFH,A0
|
|||
|
MOVE A0,*A13(CFLAGS)
|
|||
|
JRUC T3
|
|||
|
NGNG MOVE *A13(CFLAGS),A0
|
|||
|
BTST 1,A0
|
|||
|
JRZ T3
|
|||
|
;THIS HULK JUST RUNNING IN! GIVE THIS ONE A BOGUS SEEK DIR
|
|||
|
;IF WITHIN WALLS THEN CONT, OTHERWISE RESET DIS CNTR
|
|||
|
MOVE *A13(DIR),A3
|
|||
|
DEC A3
|
|||
|
SLL 5,A3
|
|||
|
ADDI NEWANG,A3
|
|||
|
MOVK 1,B0
|
|||
|
MOVK 4,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE *A3,A3,L
|
|||
|
DEC A0
|
|||
|
SLL 4,A0
|
|||
|
ADD A0,A3
|
|||
|
MOVE *A3,A0 ;NEW SEEK DIR
|
|||
|
MOVE A0,*A13(SK_DIR)
|
|||
|
CALLR INTO
|
|||
|
JRUC T4
|
|||
|
|
|||
|
NEWANG: .LONG ANG1,0,ANG3,0,ANG5,0,ANG7
|
|||
|
ANG5: .WORD 7,6,4,3
|
|||
|
ANG1: .WORD 7,3,8,2
|
|||
|
ANG3: .WORD 1,5,2,4
|
|||
|
ANG7: .WORD 8,6,1,5
|
|||
|
;
|
|||
|
;
|
|||
|
;NOW POINT THIS HULK AT CURRENT POSITION OF PLAYER
|
|||
|
T3: MOVE *A13(SK_DIR),A7,W
|
|||
|
;IF NEW SEEK IS <> OLD SEEK, THEN SET STAND FLAG
|
|||
|
CALLA JUST_SK ;WILL STUFF NEW VEL
|
|||
|
MOVE *A13(SK_DIR),A0
|
|||
|
CMP A0,A7 ;NEW CMP OLD SEEK
|
|||
|
JREQ DOHULK
|
|||
|
T4: MOVE *A13(CFLAGS),A0 ;SAYS I AM SPINNING
|
|||
|
ORI 01H,A0
|
|||
|
MOVE A0,*A13(CFLAGS),W
|
|||
|
MOVK 2,A0
|
|||
|
MOVE A0,*A13(OSCILLATE)
|
|||
|
SLEEP 3
|
|||
|
JRUC LUP_TOP
|
|||
|
DOHULK:
|
|||
|
CLR A1
|
|||
|
JSRP FRANIM
|
|||
|
JRNC CHECK_NEXT ;BR=NOT AT END OF SCRIPT YET
|
|||
|
CALLR GET_RUN
|
|||
|
|
|||
|
CHECK_NEXT:
|
|||
|
JRUC LUP_TOP
|
|||
|
;
|
|||
|
SETUP_HULK:
|
|||
|
;DIR IS BASED ON WHAT DOOR HE IS ENTERING THROUGH!
|
|||
|
;IF THIS IS AN ONSCREEN HULK, THEN ANY DIR IS OKAY!
|
|||
|
;
|
|||
|
MOVK 5,A0 ;1
|
|||
|
MOVE A0,*A13(SK_DIR)
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A13(CFLAGS)
|
|||
|
MOVB A0,*A13(IBAT) ;NO BATTING AT START!
|
|||
|
MOVI 0,B0
|
|||
|
MOVK 10,B1
|
|||
|
CALLA RANGRAND ;TIE THIS IN WITH DIFFICULTY!
|
|||
|
SLL 4,A0
|
|||
|
ADDI AGTBL,A0
|
|||
|
MOVE *A0,A0
|
|||
|
SLL 1,A0 ;TAKE OUT! MODIFY TABLE
|
|||
|
MOVE A0,*A13(HAGE)
|
|||
|
MOVE A0,*A13(KPAGE)
|
|||
|
;
|
|||
|
; UPDATE HULK COUNT
|
|||
|
;
|
|||
|
MOVE @HULK_CNT,A0
|
|||
|
INC A0
|
|||
|
MOVE A0,@HULK_CNT
|
|||
|
|
|||
|
;CHOOSE PLAYER TO SEEK
|
|||
|
ANDI 01,A0
|
|||
|
MOVB A0,*A13(SKPLYR)
|
|||
|
MOVE A0,A1
|
|||
|
SLL 5,A1
|
|||
|
ADDI PLYROBJS,A1
|
|||
|
MOVE *A1,A1,L
|
|||
|
MOVE *A1(OXPOS),A1
|
|||
|
JRNZ ZY ;BR=OKAY TO SEEK THIS PLAYER
|
|||
|
;PLAYER I AM SEEKING IS IN DIE MODE
|
|||
|
XORI 1,A0
|
|||
|
MOVB A0,*A13(SKPLYR)
|
|||
|
ZY
|
|||
|
MOVI HULK,A2
|
|||
|
CALLR GET_WVADDR
|
|||
|
|
|||
|
MOVE *A0(32),A1,W ;GET DIFFICULTY LEVEL
|
|||
|
MOVE A1,*A13(LEVEL),W
|
|||
|
|
|||
|
MOVE *A0(16),A1,W ;DEC WAVE RAM CNT FOR THIS HULK
|
|||
|
DEC A1
|
|||
|
MOVE A1,*A0(16),W
|
|||
|
JRNZ BZ
|
|||
|
|
|||
|
;END OF THIS WAVES HULK CNT
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,@HULK_DN
|
|||
|
|
|||
|
CREATE 0,DEXIT
|
|||
|
;
|
|||
|
BZ
|
|||
|
RETS
|
|||
|
|
|||
|
GET_WVADDR:
|
|||
|
;A2=ENEMY TYPE LOOKING FOR
|
|||
|
;IE.HULK,TANK
|
|||
|
MOVI WAVE_RAM,A0
|
|||
|
HU1: MOVE *A0,A1,W ;TYPE
|
|||
|
CMP A2,A1
|
|||
|
JREQ YSID
|
|||
|
ADDI 6*16,A0
|
|||
|
JRUC HU1
|
|||
|
YSID: RETS
|
|||
|
;
|
|||
|
JUST_SK:
|
|||
|
CALLR GET_DIS
|
|||
|
CALLR SETUP_DIR
|
|||
|
RETS
|
|||
|
|
|||
|
DO_DIFF:
|
|||
|
MOVI HSPEED,A1
|
|||
|
DO_DIFF2:
|
|||
|
MOVE *A13(LEVEL),A0
|
|||
|
Z0 JRZ Z1
|
|||
|
ADDI 02000H,A1
|
|||
|
DEC A0
|
|||
|
JRUC Z0
|
|||
|
Z1 MOVE A1,*A13(HSPD),L
|
|||
|
MOVE A1,A5
|
|||
|
SUBI 01000H,A5
|
|||
|
MOVE A5,*A13(VSPD),L
|
|||
|
MOVK 10,A3
|
|||
|
DIVU A3,A1 ;DIVIDE A1 BY 10
|
|||
|
MOVK 8,A4
|
|||
|
MPYU A4,A1 ;A1 * .8
|
|||
|
MOVE A1,*A13(H2SPD),L
|
|||
|
DIVU A3,A5
|
|||
|
MPYU A4,A5
|
|||
|
MOVE A5,*A13(V2SPD),L
|
|||
|
RETS
|
|||
|
|
|||
|
LEVTBL:
|
|||
|
; .WORD 9,9,8,8,7,7,6,6,5,5,4,4,3,3,3,3
|
|||
|
.WORD 11,10,9,8,7,7,6,6,5,5,4,4,3,3,3,3
|
|||
|
AGTBL: .WORD 80,150,90,110,140,210,250,50,70,125,45,80
|
|||
|
;AGTBL: .WORD 03,13,23,32,43,53,63,8,18,03,3,7
|
|||
|
;
|
|||
|
GET_DIS:
|
|||
|
MOVK 1,B0
|
|||
|
MOVE *A13(LEVEL),A0
|
|||
|
SLL 4,A0
|
|||
|
ADDI LEVTBL,A0
|
|||
|
MOVE *A0,A2
|
|||
|
MOVE A2,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,*A13(DIS) ;TIME BEFORE WE GET NEW VELOCITIES
|
|||
|
RETS
|
|||
|
|
|||
|
WAY:
|
|||
|
;A1=SEEK DIR
|
|||
|
;A0=DIR IMAGE IS FACING NOW
|
|||
|
SUB A0,A1
|
|||
|
MOVE A1,A2
|
|||
|
ABS A1
|
|||
|
CMPI 5,A1
|
|||
|
JRLT N0
|
|||
|
NEG A2
|
|||
|
N0: BTST 31,A2
|
|||
|
JRZ IC
|
|||
|
DEC A0
|
|||
|
JRP T1
|
|||
|
MOVK 8,A0
|
|||
|
JRUC T1
|
|||
|
IC: INC A0 ;ROTATE TOWARD PLAYER
|
|||
|
CMPI 9,A0
|
|||
|
JRNE T1
|
|||
|
MOVK 1,A0
|
|||
|
T1: MOVE A0,*A13(DIR),W
|
|||
|
CALLA GET_STAND ;DOES ANI OF CORRECT VIEW
|
|||
|
RETS
|
|||
|
|
|||
|
SWAPSK
|
|||
|
;SEEK ANOTHER PLAYER ROUTINE
|
|||
|
;A10=0 OR 1 FOR WHICH PLAYER DIED
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI HULKPID,A0
|
|||
|
CALLA EXISTP
|
|||
|
JRZ OUTZ
|
|||
|
;FOUND HULK
|
|||
|
MOVB *A0(SKPLYR),A1
|
|||
|
CMP A1,A10
|
|||
|
JRZ YES
|
|||
|
MOVI TP2PID,A1
|
|||
|
MOVE A1,*A0(PROCID),W
|
|||
|
JRUC SWAPSK
|
|||
|
|
|||
|
YES MOVI TEMPPID,A1
|
|||
|
MOVI SWAPIT,A7
|
|||
|
CALLA GETA8
|
|||
|
CALLA GETA9
|
|||
|
CALLA XFERPROC
|
|||
|
JRUC SWAPSK
|
|||
|
OUTZ
|
|||
|
CLR A1
|
|||
|
NOT A1
|
|||
|
MOVI TP2PID,A0
|
|||
|
CALLA EXISTP
|
|||
|
JRZ OUTB
|
|||
|
;FOUND TEMP HULK
|
|||
|
MOVI HULKPID,A1
|
|||
|
MOVE A1,*A0(PROCID),W
|
|||
|
JRUC OUTZ
|
|||
|
OUTB RETS
|
|||
|
|
|||
|
SWAPIT
|
|||
|
;HULKS FALL INTO HERE IF PLAYER THEY WERE SEEKING HAS DIED. THEY WILL
|
|||
|
;NOW SEEK OTHER PLAYER
|
|||
|
MOVI HULKPID,A0
|
|||
|
MOVE A0,*A13(PROCID),W
|
|||
|
|
|||
|
MOVB *A13(SKPLYR),A2
|
|||
|
XORI 1,A2
|
|||
|
MOVE A2,A1
|
|||
|
SLL 5,A1
|
|||
|
ADDI PLYROBJS,A1
|
|||
|
MOVE *A1,A1,L
|
|||
|
JRZ ZCT ;BR=OTHER PLAYER DOES NOT EXIST!
|
|||
|
MOVB A2,*A13(SKPLYR)
|
|||
|
ZCT
|
|||
|
SLEEP 1
|
|||
|
JAUC LUP_TOP
|
|||
|
|
|||
|
SETUP_DIR:
|
|||
|
;GET NEW VELOCITIES AND SEEK DIR FOR THIS HULK
|
|||
|
;SET SEEK DIR FOR THIS HULK
|
|||
|
;MAKE SURE THIS LEG_PTR HAS A VALID VALUE! THE PLAYER MUST BE INITIALIZED!
|
|||
|
;DETERMINE WHICH OF TWO PLAYERS THIS HULK IS SEEKING!
|
|||
|
|
|||
|
;NORMAL
|
|||
|
MOVB *A13(SKPLYR),A2
|
|||
|
MOVE A2,A1
|
|||
|
SLL 5,A1
|
|||
|
ADDI PLYROBJS,A1
|
|||
|
MOVE *A1,A1,L
|
|||
|
JRNZ ZCV
|
|||
|
;PLAYER NO LONGER EXISTS! GET OTHER
|
|||
|
WIT
|
|||
|
CMPI 3,A2
|
|||
|
JRLT WIT2
|
|||
|
;OH OH! BOTH ARE DEAD
|
|||
|
MOVI >111,A0
|
|||
|
MOVE A0,@EHALT
|
|||
|
RETS
|
|||
|
|
|||
|
WIT2 XORI 1,A2
|
|||
|
MOVB A2,*A13(SKPLYR)
|
|||
|
SLL 5,A2
|
|||
|
ADDI PLYROBJS,A2
|
|||
|
MOVE *A2,A1,L
|
|||
|
ZCV
|
|||
|
MOVE *A1(OXPOS),A0,W
|
|||
|
JRZ WIT
|
|||
|
MOVE *A1(OYPOS),A2,W
|
|||
|
SLL 16,A2
|
|||
|
MOVY A2,A0
|
|||
|
CALLA GETXY ;A8 TO SEEK A0
|
|||
|
INC A0
|
|||
|
MOVE A0,*A13(SK_DIR) ;DIR WE WANT TO BE FACING!
|
|||
|
;
|
|||
|
;NEEDED?!!
|
|||
|
;
|
|||
|
MOVE @EHALT,A1 ;IN CASE HULKS MOVE SLIGHTLY
|
|||
|
JRNE NRM
|
|||
|
;FALLS INTO THIS
|
|||
|
INTO:
|
|||
|
;A0=DIR FROM 1-8
|
|||
|
SLL 5,A0
|
|||
|
ADDI JTBL,A0
|
|||
|
MOVE *A0,A0,L
|
|||
|
JUMP A0
|
|||
|
JTBL .LONG 0,IN1,IN2,IN3,IN4,IN5,IN6,IN7,IN8
|
|||
|
INTO16:
|
|||
|
;A0=DIR FROM 1-16
|
|||
|
SLL 5,A0
|
|||
|
ADDI JTBL16,A0
|
|||
|
MOVE *A0,A0,L
|
|||
|
JUMP A0
|
|||
|
|
|||
|
JTBL16 .LONG LK,IN1,LK,IN2,LK,IN3,LK,IN4,LK,IN5,LK,IN6,LK,IN7,LK,IN8,LK
|
|||
|
|
|||
|
|
|||
|
; 01
|
|||
|
; 16 02
|
|||
|
; 15 03
|
|||
|
; 14 04
|
|||
|
; 13 05
|
|||
|
; 12 06
|
|||
|
; 11 07
|
|||
|
; 10 08
|
|||
|
; 09
|
|||
|
;
|
|||
|
LK
|
|||
|
; LOCKUP
|
|||
|
IN1
|
|||
|
;IS 0 DIR
|
|||
|
MOVE *A13(VSPD),A0,L
|
|||
|
NEG A0
|
|||
|
CLR A1
|
|||
|
MOVE A1,*A8(OXVEL),L
|
|||
|
MOVE A0,*A8(OYVEL),L
|
|||
|
NRM RETS
|
|||
|
IN2
|
|||
|
MOVE *A13(V2SPD),A0,L
|
|||
|
NEG A0
|
|||
|
MOVE *A13(H2SPD),A1,L
|
|||
|
MOVE A1,*A8(OXVEL),L
|
|||
|
MOVE A0,*A8(OYVEL),L
|
|||
|
RETS
|
|||
|
IN3
|
|||
|
CLR A0
|
|||
|
MOVE *A13(HSPD),A1,L
|
|||
|
MOVE A1,*A8(OXVEL),L
|
|||
|
MOVE A0,*A8(OYVEL),L
|
|||
|
RETS
|
|||
|
IN4
|
|||
|
MOVE *A13(V2SPD),A0,L
|
|||
|
MOVE *A13(H2SPD),A1,L
|
|||
|
MOVE A1,*A8(OXVEL),L
|
|||
|
MOVE A0,*A8(OYVEL),L
|
|||
|
RETS
|
|||
|
IN5
|
|||
|
MOVE *A13(VSPD),A0,L
|
|||
|
CLR A1
|
|||
|
MOVE A1,*A8(OXVEL),L
|
|||
|
MOVE A0,*A8(OYVEL),L
|
|||
|
RETS
|
|||
|
IN6
|
|||
|
MOVE *A13(V2SPD),A0,L
|
|||
|
MOVE *A13(H2SPD),A1,L
|
|||
|
NEG A1
|
|||
|
MOVE A1,*A8(OXVEL),L
|
|||
|
MOVE A0,*A8(OYVEL),L
|
|||
|
RETS
|
|||
|
IN7
|
|||
|
CLR A0
|
|||
|
MOVE *A13(HSPD),A1,L
|
|||
|
NEG A1
|
|||
|
MOVE A1,*A8(OXVEL),L
|
|||
|
MOVE A0,*A8(OYVEL),L
|
|||
|
RETS
|
|||
|
IN8
|
|||
|
MOVE *A13(H2SPD),A1,L
|
|||
|
NEG A1
|
|||
|
MOVE *A13(V2SPD),A0,L
|
|||
|
NEG A0
|
|||
|
MOVE A1,*A8(OXVEL),L
|
|||
|
MOVE A0,*A8(OYVEL),L
|
|||
|
RETS
|
|||
|
|
|||
|
GET_RUN:
|
|||
|
;GET FRANIM BASE ADDRESS FOR THIS HULKS DIRECTION
|
|||
|
;
|
|||
|
MOVE *A13(DIR),A4
|
|||
|
DEC A4
|
|||
|
SLL 5,A4 ;*32 FOR LONG WORD LOOKUP TABLE
|
|||
|
MOVE @HULKTYP,A0
|
|||
|
JRZ NORM
|
|||
|
CMPI 2,A0
|
|||
|
JRZ NORM1
|
|||
|
;4TH CIRCUIT
|
|||
|
JRUC NORM ;SPO
|
|||
|
NORM1
|
|||
|
MOVE *A13(LEVEL),A0
|
|||
|
CMPI 2,A0 ;3
|
|||
|
JRLT SLOA
|
|||
|
CMPI 5,A0 ;6
|
|||
|
JRLT MEDA
|
|||
|
ADDI WALK_LISTFA,A4
|
|||
|
JRUC SPO
|
|||
|
MEDA ADDI WALK_LISTMA,A4
|
|||
|
JRUC SPO
|
|||
|
SLOA ADDI WALK_LISTA,A4 ;CALCULATE OFFSET IN TABLE
|
|||
|
JRUC SPO
|
|||
|
NORM MOVE *A13(LEVEL),A0
|
|||
|
CMPI 2,A0 ;3
|
|||
|
JRLT SLO
|
|||
|
CMPI 5,A0 ;6
|
|||
|
JRLT MED
|
|||
|
ADDI WALK_LISTF,A4
|
|||
|
JRUC SPO
|
|||
|
MED ADDI WALK_LISTM,A4
|
|||
|
JRUC SPO
|
|||
|
SLO ADDI WALK_LIST,A4 ;CALCULATE OFFSET IN TABLE
|
|||
|
SPO MOVE *A4,A9,L ;MOVE TABLE VALUE INTO A9
|
|||
|
;NEW ANIMATION SCRIPT
|
|||
|
MOVE *A13(CFLAGS),A0
|
|||
|
ANDI 0FFFEH,A0 ;
|
|||
|
MOVE A0,*A13(CFLAGS) ;ZERO STANDING FLAG
|
|||
|
RETS
|
|||
|
|
|||
|
GET_STAND:
|
|||
|
;ANI ONTO SCREEN THIS HULKS STANDING POSITION
|
|||
|
;
|
|||
|
MOVE *A13(DIR),A0 ;CURRENT DIR HULK IS FACING
|
|||
|
DEC A0
|
|||
|
MOVE A0,A2
|
|||
|
SLL 5,A0
|
|||
|
MOVE @HULKTYP,A4
|
|||
|
JRZ C1
|
|||
|
CMPI 2,A4
|
|||
|
JRZ C2
|
|||
|
;4TH CIRCUIT
|
|||
|
JRUC C1
|
|||
|
C2 ADDI SPINFRMS2,A0
|
|||
|
JRUC COUT
|
|||
|
C1 ADDI SPINFRMS,A0
|
|||
|
COUT MOVE *A0,A1,L ;NEW OIMG
|
|||
|
SLL 4,A2
|
|||
|
ADDI SPINFLGS,A2
|
|||
|
MOVE *A2,A4,W ;NEW OFLAGS
|
|||
|
CALLA ANI
|
|||
|
RETS
|
|||
|
|
|||
|
|
|||
|
**************************************************************************
|
|||
|
GETXY:
|
|||
|
* gets direction from Obj in A8 to Z:X coors in A0, where dir
|
|||
|
* is expressed as
|
|||
|
* 7 0 1
|
|||
|
* 6 * 2
|
|||
|
* 5 4 3
|
|||
|
* The direction is returned in A0
|
|||
|
|
|||
|
mmtm SP,A2,A3,A4,A5
|
|||
|
|
|||
|
movy A0,A3
|
|||
|
srl 16,A3
|
|||
|
movx A0,A2
|
|||
|
zext A2,W
|
|||
|
|
|||
|
calla GETANIX ;A0 - MBIG X
|
|||
|
sub A0,A2 ;A2 = XDELTA
|
|||
|
; SHOULD BE ANIMATION Y COOR!
|
|||
|
move *A8(OYPOS),A0,W
|
|||
|
sub A0,A3 ;A3 = ZDELTA
|
|||
|
move A2,A4
|
|||
|
move A3,A5
|
|||
|
abs A4
|
|||
|
abs A5
|
|||
|
sll 16,A5
|
|||
|
clr A0 ;set Direction
|
|||
|
divu A4,A5 ;A5 = A5/A4 = ABS(ZDELTA)/ABS(XDELTA) = TAN(THETA)
|
|||
|
jrv GotD0 ;Overflow indicates XDELTA=0
|
|||
|
cmpi >269FB,A5 ;Tan(22.5deg) = 2.414 as 16.16
|
|||
|
jrgt GotD0
|
|||
|
inc A0
|
|||
|
cmpi >69FB,A5 ;Tan(67.5deg) = .414 as 16.16
|
|||
|
jrgt GotD0
|
|||
|
inc A0
|
|||
|
|
|||
|
GotD0:
|
|||
|
;* Must Adjust for Quadrant
|
|||
|
move A2,A2 ;check sign of XDELTA
|
|||
|
jrn Q34
|
|||
|
move A3,A3 ;ck sign of ZDELTA
|
|||
|
jrn Q1
|
|||
|
;* Quadrant 2, X+,Z+
|
|||
|
neg A0
|
|||
|
addk 4,A0
|
|||
|
jruc GotD1
|
|||
|
Q34:
|
|||
|
move A3,A3 ;ck sign of ZDELTA
|
|||
|
jrn Q4
|
|||
|
Q3:
|
|||
|
;* Quadrant 3, X-,Z+
|
|||
|
addk 4,A0
|
|||
|
jruc GotD1
|
|||
|
Q4:
|
|||
|
;* Quadrant 4, X-,Z-
|
|||
|
neg A0
|
|||
|
jrz GotD1
|
|||
|
addk 8,A0
|
|||
|
jruc GotD1
|
|||
|
Q1:
|
|||
|
;* Quadrant 1, X+,Z-
|
|||
|
GotD1:
|
|||
|
mmfm SP,A2,A3,A4,A5
|
|||
|
rets
|
|||
|
|
|||
|
SX: .LONG -080000H,01980000H,0AD0000H,0AD0000H
|
|||
|
SY: .LONG 05D0000H,05D0000H,-220000H,0F80000H
|
|||
|
SOX: .LONG 0,0,0180000H,0180000H
|
|||
|
SOY: .LONG 0130000H,0130000H,0,0
|
|||
|
SD: .WORD 3,7,5,1
|
|||
|
INFOTBL:
|
|||
|
.LONG LDOOR_INFO,RDOOR_INFO,TDOOR_INFO,BDOOR_INFO
|
|||
|
GET_VALID_DOOR
|
|||
|
MOVI 0,B0
|
|||
|
MOVI 4,B1
|
|||
|
CALLA RANGRAND ;TIE THIS IN WITH DIFFICULTY!
|
|||
|
MOVE A0,A1
|
|||
|
SLL 5,A1
|
|||
|
ADDI DRINF,A1
|
|||
|
MOVE *A1,A1,L
|
|||
|
MOVB *A1,A1
|
|||
|
JRZ G
|
|||
|
CMPI 06,A1
|
|||
|
JRGE G
|
|||
|
;DOOR THIS GUY WILL BE SENT TO IS CLOSING RIGHT NOW. SO SEND HIM TO DOOR 4
|
|||
|
MOVI 4,A0 ;DOOR 4
|
|||
|
G MOVE A0,@TMP
|
|||
|
DEC A0
|
|||
|
MOVE A0,A2
|
|||
|
RETS
|
|||
|
|
|||
|
INIT_HULK:
|
|||
|
;INITIAL HULK POSITION,IMAGE SHAPE,AGE ETC....
|
|||
|
;DO STFOBF AND GET A0 PNTR
|
|||
|
;
|
|||
|
CALLR GET_VALID_DOOR
|
|||
|
|
|||
|
MOVI SD,A1
|
|||
|
SLL 4,A2
|
|||
|
ADD A2,A1
|
|||
|
MOVE *A1,A1
|
|||
|
MOVE A1,*A13(DIR)
|
|||
|
MOVI SOX,A1 ;OFFSETS
|
|||
|
SLL 1,A2
|
|||
|
ADD A2,A1
|
|||
|
MOVE *A1,A8,L ;XOFFSET FOR EACH NEW SPACE
|
|||
|
MOVI SOY,A1
|
|||
|
ADD A2,A1
|
|||
|
MOVE *A1,A9,L ;YOFFSET
|
|||
|
MOVI SX,A1
|
|||
|
ADD A2,A1
|
|||
|
MOVE *A1,A0,L
|
|||
|
MOVI SY,A1
|
|||
|
ADD A2,A1
|
|||
|
MOVE *A1,A1,L
|
|||
|
|
|||
|
ADDI INFOTBL,A2
|
|||
|
MOVE *A2,A3,L
|
|||
|
MOVE *A3,A4,L ;CORRECT PNTR1 FOR DOOR INFO
|
|||
|
JRNE SPC1 ;FIRST SPACE FOR THIS DOOR IS OPEN
|
|||
|
AS MOVE A13,*A3,L
|
|||
|
MOVE *A13(CFLAGS),A4
|
|||
|
ORI 04H,A0
|
|||
|
MOVE A0,*A13(CFLAGS)
|
|||
|
JRUC STUFFED
|
|||
|
SPC1 ADDI 32,A3
|
|||
|
ADD A9,A1
|
|||
|
ADD A8,A0
|
|||
|
MOVE *A3,A4,L
|
|||
|
JREQ AS
|
|||
|
;3RD SPACE AVAILABLE
|
|||
|
|
|||
|
|
|||
|
MOVE @TMP,A2
|
|||
|
CMPI 4,A2
|
|||
|
JREQ OV
|
|||
|
|
|||
|
DEC A2
|
|||
|
SLL 5,A2
|
|||
|
ADDI DRINF,A2
|
|||
|
MOVE *A2,A2,L
|
|||
|
MOVB *A2,A2 ;GET KP_LS RS
|
|||
|
; .IF DEBUG
|
|||
|
CMPI 1,A2
|
|||
|
JRNE OV
|
|||
|
;DOOR THESE GUYS WANT TO COME OUT OF IS CLOSING
|
|||
|
;SEND THEM TO BOTTOM DOOR!
|
|||
|
SETC
|
|||
|
RETS
|
|||
|
|
|||
|
OV
|
|||
|
; .ENDIF
|
|||
|
CALLR NEW_OV
|
|||
|
|
|||
|
STUFFED:
|
|||
|
MOVI 38,A3
|
|||
|
MOVE A3,*A13(DIS) ;CHANGE BASED ON HULKS SPEED?
|
|||
|
CALLR IH1
|
|||
|
CALLA BEGINOBJ
|
|||
|
CLRC ;INDICATES GOOD HULK
|
|||
|
RETS
|
|||
|
NEW_OV
|
|||
|
ADD A9,A1
|
|||
|
ADD A8,A0
|
|||
|
SUBI 32,A3
|
|||
|
CLR A6
|
|||
|
MOVK 2,A5
|
|||
|
SPCFULL:
|
|||
|
MOVE *A3,A2,L
|
|||
|
MOVE A6,*A3,L
|
|||
|
MOVE *A2(CFLAGS),A4
|
|||
|
ORI 08H,A4 ;PAUSE FLAG FOR BEHIND DOORS
|
|||
|
MOVE A4,*A2(CFLAGS)
|
|||
|
ADDI 32,A3
|
|||
|
DSJS A5,SPCFULL
|
|||
|
|
|||
|
|
|||
|
MMTM SP,A0,A1
|
|||
|
MOVE @TMP,A0
|
|||
|
MOVI >17,A1
|
|||
|
CALLA SET_GATE_2
|
|||
|
MMFM SP,A0,A1
|
|||
|
RETS
|
|||
|
|
|||
|
IH1: ;ENTER HERE IF ON SCRN HULK
|
|||
|
MOVI gb6w5a,A2 ;DOES NOT MATTER
|
|||
|
MOVE @HULKTYP,A3
|
|||
|
JRZ IH1A
|
|||
|
MOVI SNG6A,A2 ;DOES NOT MATTER
|
|||
|
CMPI 2,A3
|
|||
|
JRZ IH1A
|
|||
|
;4TH CIRCUIT TECHNICIAN GRUNT
|
|||
|
IH1A
|
|||
|
MOVI 159,A3
|
|||
|
MOVI DMAWNZ+M_FLIPH,A4 ;NON-ZERO VALUE
|
|||
|
MOVI CLSENMY|TYPHULK,A5
|
|||
|
CLR A6
|
|||
|
CLR A7
|
|||
|
RETS
|
|||
|
|
|||
|
CTBL:
|
|||
|
.WORD 0000000011111100B ;IF SET, THAT WAVE HAS CIRCLE
|
|||
|
;ALIGNMENT
|
|||
|
CTBL1 .LONG TABLEX,TABLEX,TABLEX3,TABLEX,TABLEX,TABLEX1,TABLEX,TABLEX3
|
|||
|
.LONG TABLEX,TABLEX,TABLEX3
|
|||
|
|
|||
|
GET_VALID_XY:
|
|||
|
CMPI HULK,A11
|
|||
|
JRNE GV
|
|||
|
MOVE @GAMSTATE,A0
|
|||
|
CMPI INAMODE,A0
|
|||
|
JREQ GV
|
|||
|
MOVE @WAVE,A0
|
|||
|
DEC A0
|
|||
|
MOVE @CTBL,A1
|
|||
|
BTST A0,A1
|
|||
|
JREQ GV ;TABLE SAYS NO CIRCLE IF BR
|
|||
|
;THIS WAVE WANTS CIRCLE ALIGNMENT
|
|||
|
MOVE @HULKTYP,A5 ;FOR OTHER CIRCUITS - NO CIRCLE ALIGN
|
|||
|
JRNZ GV
|
|||
|
|
|||
|
; ALIGN HULKS ON CIRCLE!
|
|||
|
MOVE @TMP,A5
|
|||
|
JRZ GV
|
|||
|
DEC A5
|
|||
|
MOVE A5,@TMP
|
|||
|
SLL 5,A5
|
|||
|
MOVI CTBL1,A1
|
|||
|
MOVE @WAVE,A0
|
|||
|
DEC A0
|
|||
|
SLL 5,A0
|
|||
|
ADD A1,A0
|
|||
|
MOVE *A0,A0,L ;WHAT KIND OF CIRCLE TBL
|
|||
|
ADD A0,A5
|
|||
|
MOVE *A5,A1,L ;VALUES FOR CIRCLE TABLE
|
|||
|
MOVX A1,A0
|
|||
|
SLL 16,A0
|
|||
|
|
|||
|
MOVE A0,A2
|
|||
|
MOVY A1,A3
|
|||
|
SRL 16,A2
|
|||
|
MOVX A2,A3
|
|||
|
|
|||
|
JRUC OEXIT
|
|||
|
|
|||
|
GV:
|
|||
|
;BOUNDARIES NOW REFLECT THE NEXT WAVES BOUNDARIES!
|
|||
|
;FROM WAVESYX
|
|||
|
|
|||
|
MOVI 0C10000H,B1 ;E1
|
|||
|
MOVI 0210000H,B0 ;21
|
|||
|
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,@YVAL,L
|
|||
|
MOVI 02A0000H,B0
|
|||
|
MOVI 01570000H,B1
|
|||
|
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE @YVAL,A1,L
|
|||
|
|
|||
|
;A0=X,A1=Y
|
|||
|
;A2 SHOULD EQUAL WHAT DOOR PLAYER IS COMING FROM SO HULKS LINE UP
|
|||
|
;AROUND CORRECT AISLE
|
|||
|
;CHECK PROPER RED CARPET!
|
|||
|
MOVE @FROMDR,A2
|
|||
|
JREQ ZTV
|
|||
|
SLL 5,A2
|
|||
|
ZTV MOVE A2,A5
|
|||
|
ADDI RED_CARPETX,A2
|
|||
|
MOVE *A2,A2,L
|
|||
|
CLR A3
|
|||
|
MOVY A2,A3
|
|||
|
MOVX A2,A4
|
|||
|
SLL 16,A4
|
|||
|
; A3=LEFT X,A4=RGT X
|
|||
|
CMP A3,A0
|
|||
|
JRLT OUT
|
|||
|
CMP A4,A0
|
|||
|
JRGT OUT
|
|||
|
ADDI RED_CARPETY,A5
|
|||
|
MOVE *A5,A5,L
|
|||
|
MOVY A5,A3
|
|||
|
MOVX A5,A4
|
|||
|
SLL 16,A4
|
|||
|
CMP A3,A1
|
|||
|
JRLT OUT
|
|||
|
CMP A4,A1
|
|||
|
JRGT OUT
|
|||
|
|
|||
|
;IT IS ON RED CARPET! GET ANOTHER X,Y POSITION
|
|||
|
JRUC GET_VALID_XY
|
|||
|
OUT:
|
|||
|
MOVE A0,A2
|
|||
|
MOVY A1,A3
|
|||
|
SRL 16,A2
|
|||
|
MOVX A2,A3
|
|||
|
|
|||
|
;
|
|||
|
;CHECK FOR OTHER SHAPES NOW
|
|||
|
;
|
|||
|
; CMPI BUST,A11
|
|||
|
; JREQ EXIT ;DON'T CHECK BUST TYPE ENEMY
|
|||
|
|
|||
|
MOVI RAMXY,A2
|
|||
|
TCK: MOVE *A2+,A4,L
|
|||
|
JRZ OEXIT
|
|||
|
;AN EXISTING SHAPE MUST BE CHECKED
|
|||
|
MOVX A4,A5 ;A4 = Y VAL (32 BIT)
|
|||
|
SLL 16,A5 ;A5 = X VAL
|
|||
|
ADDI 01C0000H,A4 ;ADD IN HEIGHT OF OBJ
|
|||
|
; ADDI 0130000H,A4 ;ADD IN HEIGHT OF OBJ
|
|||
|
CMP A4,A1
|
|||
|
JRGT VALID ;BR IF A1>A4
|
|||
|
SUBI 0380000H,A4
|
|||
|
; SUBI 0260000H,A4
|
|||
|
CMP A4,A1
|
|||
|
JRLT VALID ;BR IF A1<A4
|
|||
|
|
|||
|
;NEW Y VAL IS IN ANOTHER SHAPES Y BAND
|
|||
|
;NOW CHECK X
|
|||
|
|
|||
|
ADDI 01A0000H,A5
|
|||
|
; ADDI 0130000H,A5
|
|||
|
CMP A5,A0
|
|||
|
JRGT VALID ;BR IF A5>A0
|
|||
|
SUBI 0340000H,A5
|
|||
|
; SUBI 0260000H,A5
|
|||
|
CMP A5,A0
|
|||
|
JRLT VALID
|
|||
|
;SOME SHAPE IS ALREADY THERE!
|
|||
|
JRUC GET_VALID_XY
|
|||
|
;HIT
|
|||
|
VALID:
|
|||
|
JRUC TCK
|
|||
|
|
|||
|
OEXIT:
|
|||
|
MOVE @KEEPXY,A4,L
|
|||
|
MOVE A3,*A4+,L
|
|||
|
MOVE A4,@KEEPXY,L
|
|||
|
RETS
|
|||
|
|
|||
|
KILL_H1
|
|||
|
;A8=HULK IMAGE TO SMART BOMB
|
|||
|
;A9=P1DATA OR P2DATA FOR SCORE UPDATE
|
|||
|
;SMART BOMB ENTRY
|
|||
|
;ENTER HERE WITH SMART BOMB
|
|||
|
CREATE 0,HSMRT ;BULLETS DIR WILL BE IN A10
|
|||
|
;HULK_EXP WHEN IT WAKES UP
|
|||
|
MOVI CLSNEUT|TYPNEUT,A0
|
|||
|
MOVE A0,*A8(OID)
|
|||
|
MOVE *A8(OPLINK),A0,L
|
|||
|
CALLA KILL ;KILLS PROCESS IN A0
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A8(OXVEL),L
|
|||
|
MOVE A0,*A8(OYVEL),L
|
|||
|
RETS
|
|||
|
HSMRT
|
|||
|
MOVE @HULK_CNT,A3 ;DELETE A BNCR FROM CNT
|
|||
|
DEC A3
|
|||
|
MOVE A3,@HULK_CNT
|
|||
|
|
|||
|
MOVE A9,A2
|
|||
|
;A2=P1DATA OR P2DATA
|
|||
|
MOVI HLKPT,A1 ;AMOUNT OF SCORE
|
|||
|
CALLA SCRADD2 ;DO IT!
|
|||
|
MOVE *A8(OYPOS),A2
|
|||
|
ADDI 01CH,A2 ;A2=Y OFFSET
|
|||
|
MOVE A2,*A8(OYPOS)
|
|||
|
|
|||
|
BLW2 MOVI BOOM3,A9 ;BOOM3 CHANGES PALETTE TO EXPLOSION!
|
|||
|
JAUC FRANIM_DIE
|
|||
|
; MOVK 1,A1
|
|||
|
; JSRP FRANIM
|
|||
|
; MOVE A8,A0
|
|||
|
; CALLA DELPAL ;NEEDED? NOT IF IN PLYR PAL!
|
|||
|
; CALLA DELOBJ
|
|||
|
; DIE
|
|||
|
BLOW
|
|||
|
MOVE *A8(OYPOS),A0
|
|||
|
ADDI 20,A0
|
|||
|
MOVE A0,*A8(OYPOS)
|
|||
|
JRUC BLW2
|
|||
|
|
|||
|
BAT_PLYR:
|
|||
|
;STOP HULK FROM MOVING
|
|||
|
;DECIDE WHICH OF FOUR SWING ANGLES TO USE
|
|||
|
;TELL MAIN LOGIC THIS HULK IS SWINGING
|
|||
|
MOVE *A0(OPLINK),A0,L
|
|||
|
MOVB *A0(PNUM),A0
|
|||
|
MOVE *A8(OPLINK),A8,L
|
|||
|
MOVB A0,*A8(IBAT)
|
|||
|
RETS
|
|||
|
KILL_H2 ;IF TANK KILLED THIS HULK
|
|||
|
MMTM SP,A1
|
|||
|
MOVE *A0(OID),A9,W ;KILLERS OID
|
|||
|
MOVE *A0(OPLINK),A10,L
|
|||
|
;WILL BE BOGUS IF SOMETHING OTHER THAN A BULLET STRUCK HULK!
|
|||
|
MOVE *A8(OPLINK),A0,L
|
|||
|
MOVE *A0(DIR),A11 ;HULKS DIR
|
|||
|
CREATE 0,HULK_X2 ;BULLETS DIR WILL BE IN A10
|
|||
|
;HULK_EXP WHEN IT WAKES UP
|
|||
|
JRUC TAG
|
|||
|
|
|||
|
KILL_HULK:
|
|||
|
;A8=HULK IMG PNTR, A0=KILLER IMG PNTR
|
|||
|
MMTM SP,A1
|
|||
|
MOVE *A0(OID),A9,W ;KILLERS OID
|
|||
|
MOVE *A0(OPLINK),A10,L
|
|||
|
;WILL BE BOGUS IF SOMETHING OTHER THAN A BULLET STRUCK HULK!
|
|||
|
MOVE *A8(OPLINK),A0,L
|
|||
|
MOVE *A0(DIR),A11 ;HULKS DIR
|
|||
|
|
|||
|
CREATE 0,HULK_EXP ;BULLETS DIR WILL BE IN A10
|
|||
|
;HULK_EXP WHEN IT WAKES UP
|
|||
|
TAG MOVE *A8(OPLINK),A0,L
|
|||
|
CALLA KILL ;KILLS PROCESS IN A0
|
|||
|
MOVE A8,A0
|
|||
|
CALLA DELOBJ
|
|||
|
|
|||
|
MOVI EXP1,A0 ;GDTH1,2,EXP1
|
|||
|
MOVE @HULKTYP,A1
|
|||
|
JRZ YAG
|
|||
|
MOVB @PCNT,A1
|
|||
|
ANDI 0FH,A1
|
|||
|
JRNZ YAG
|
|||
|
MOVI UGH2,A0 ;SQUEAL!
|
|||
|
MOVB @PCNT,A1
|
|||
|
BTST 5,A1
|
|||
|
JRZ YAG
|
|||
|
MOVI UGH3,A0 ;OOF
|
|||
|
YAG
|
|||
|
CALLA ONESND
|
|||
|
|
|||
|
MMFM SP,A1
|
|||
|
RETS
|
|||
|
|
|||
|
HULK_EXP:
|
|||
|
;A10=PROCESS OF BULLET/BLADE THAT HIT THIS HULK
|
|||
|
;A11=HULKS DIR
|
|||
|
;A9=KILLERS OID
|
|||
|
|
|||
|
MOVI P1DATA,A2 ;PLAYER 1 SCORE SELECT
|
|||
|
MOVB *A10(MYPLYR),A0 ;GET PLAYER #
|
|||
|
CMPI 1,A0
|
|||
|
JREQ CGA
|
|||
|
MOVI P2DATA,A2
|
|||
|
CGA
|
|||
|
MOVI HLKPT,A1 ;AMOUNT OF SCORE
|
|||
|
CALLA SCRADD2 ;DO IT!
|
|||
|
MOVE *A10(BLTDIR),A10 ;=BLTDIR!!! CAREFUL!!
|
|||
|
|
|||
|
HULK_X2 ;TANK KILLED HULK
|
|||
|
MOVE @HULK_CNT,A3 ;DELETE A BNCR FROM CNT
|
|||
|
DEC A3
|
|||
|
MOVE A3,@HULK_CNT
|
|||
|
|
|||
|
;JRUC BIGEXP IF A BOMB POD HAS COLLIDED WITH HULK
|
|||
|
CMPI CLSPLYR|TYPPLBL|SUBSPEW,A9
|
|||
|
JREQ BIGSND ;GO TO REGULAR FIRE BOMB EXPLOSION
|
|||
|
CMPI CLSPLYR|TYPPLBL|SUBNOSTP,A9
|
|||
|
JREQ BIGEXP ;GO TO REGULAR FIRE BOMB EXPLOSION
|
|||
|
|
|||
|
;8 1 2
|
|||
|
;7 3
|
|||
|
;6 5 4
|
|||
|
;A10 SHOULD BE 1-8!
|
|||
|
DEC A10
|
|||
|
ANDI 07,A10 ;IN CASE A BLADE STRUCK HULK
|
|||
|
SLL 5,A10
|
|||
|
|
|||
|
MOVI RNGXL,A0
|
|||
|
ADD A10,A0
|
|||
|
MOVE *A0,A0,L
|
|||
|
MOVE A0,A6 ;XVEL
|
|||
|
|
|||
|
MOVI RNGYL,A0
|
|||
|
ADD A10,A0
|
|||
|
MOVE *A0,A0,L
|
|||
|
MOVE A0,A7 ;YVEL
|
|||
|
|
|||
|
MOVE *A8(OPAL),A10
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE A2,A1
|
|||
|
MOVE A3,A0
|
|||
|
|
|||
|
CMPI CLSPLYR|TYPPRSM,A9
|
|||
|
JREQ GR1
|
|||
|
CMPI CLSPLYR|TYPPLBL|SUBSPRY,A9
|
|||
|
JRNE R1
|
|||
|
;PIECES OR BLOODY DEATH DECISION HERE!
|
|||
|
GR1 MOVB @PCTOT,A2
|
|||
|
CMPI 018H,A2 ;19
|
|||
|
JRLO ADDPCS
|
|||
|
|
|||
|
R1: DEC A11
|
|||
|
SLL 5,A11 ;A11=HULKS FACE DIR
|
|||
|
ADDI LIST,A11
|
|||
|
MOVE *A11,A9,L
|
|||
|
|
|||
|
MOVI 199,A3 ;259
|
|||
|
MOVI DMAWNZ|M_NOCOLL|M_FLIPV,A4 ;NON-ZERO VALUE
|
|||
|
MOVI VHIT1,A2
|
|||
|
MOVE @HULKTYP,A5
|
|||
|
JRZ ROT
|
|||
|
MOVI VHIT1R,A2
|
|||
|
MOVI CLSNEUT|TYPNEUT,A5
|
|||
|
CALLA BEGINOBJ2
|
|||
|
JRUC ROT2
|
|||
|
ROT
|
|||
|
MOVI CLSNEUT|TYPNEUT,A5
|
|||
|
;SHOULD NOT DELOBJ THEN INSTANTLY BEGINOBJ!!!
|
|||
|
CALLA BEGINOBJ2
|
|||
|
MOVE A10,*A8(OPAL),W
|
|||
|
ROT2 JAUC FRANIM_DIE
|
|||
|
; MOVK 1,A1
|
|||
|
; JSRP FRANIM
|
|||
|
; MOVE A8,A0
|
|||
|
; CALLA DELOBJ
|
|||
|
; DIE
|
|||
|
BIG3A
|
|||
|
; MOVI ZOOM4,A9
|
|||
|
; JRUC BIG33
|
|||
|
BIG3: ;USED FOR ORBS
|
|||
|
MOVI BOOM2,A9
|
|||
|
BIG33 CLR A6
|
|||
|
CLR A7
|
|||
|
CALLA GETANIXY
|
|||
|
JRUC BX2
|
|||
|
BIG2: ;USED FOR FATMAN EXPLOSION
|
|||
|
CLR A6
|
|||
|
CLR A7
|
|||
|
CALLA GETANIXY
|
|||
|
ADDI 0050000H,A2 ;A2=Y OFFSET
|
|||
|
MOVI BOOM2A,A9
|
|||
|
JRUC BX2
|
|||
|
ARMOFF2
|
|||
|
MOVI BOOM2,A9
|
|||
|
JRUC AT3
|
|||
|
ARMOFF
|
|||
|
MOVI BOOM2Z,A9
|
|||
|
AT3 CALLA GETANIXY
|
|||
|
ADDI 01A0000H,A2 ;A2=Y OFFSET
|
|||
|
MOVE A2,A1
|
|||
|
MOVE A3,A0
|
|||
|
MOVI 230,A3 ;259
|
|||
|
JRUC ARMNZ
|
|||
|
BIGSND
|
|||
|
MOVI EXP3HI,A0
|
|||
|
CALLA ONESND
|
|||
|
BIGEXP:
|
|||
|
CLR A6
|
|||
|
CLR A7
|
|||
|
CALLA GETANIXY
|
|||
|
ADDI 01A0000H,A2 ;A2=Y OFFSET
|
|||
|
;BX
|
|||
|
MOVI BOOM2,A9
|
|||
|
BX2
|
|||
|
MOVE A2,A1
|
|||
|
MOVE A3,A0
|
|||
|
MOVI 199,A3 ;259
|
|||
|
ARMNZ
|
|||
|
MOVI DMAWNZ|M_NOCOLL|M_FLIPV,A4 ;NON-ZERO VALUE
|
|||
|
MOVI CLSNEUT|TYPNEUT,A5
|
|||
|
MOVI EXPb1,A2
|
|||
|
|
|||
|
;PUT ON ANOTHER LIST OTHER THAN OBJLST!
|
|||
|
;THE LIST WITH THE HIGHEST PRIORITY
|
|||
|
CALLA BEGINOBJ2
|
|||
|
JAUC FRANIM_DIE
|
|||
|
; MOVK 1,A1
|
|||
|
; JSRP FRANIM
|
|||
|
; MOVE A8,A0
|
|||
|
; CALLA DELOBJ
|
|||
|
; DIE
|
|||
|
;8 1 2
|
|||
|
;7 3
|
|||
|
;6 5 4
|
|||
|
RNGXL:
|
|||
|
.LONG 0,05C00H,05C00H,05C00H,0,-5C00H,-5C00H,-5C00H
|
|||
|
RNGYL:
|
|||
|
.LONG -05000H,-05000H,0,05000H,05000H,05000H,0,-05000H
|
|||
|
LIST .LONG VDIE,HDIER,HDIER,HDIER,VDIED,HDIE,HDIE,HDIE
|
|||
|
|
|||
|
|
|||
|
ARMS .LONG ARM1
|
|||
|
.WORD 20
|
|||
|
.LONG ARM2
|
|||
|
.WORD 4
|
|||
|
.LONG ARM3
|
|||
|
.WORD 4
|
|||
|
.LONG ARM4
|
|||
|
.WORD 4
|
|||
|
.LONG ARM5
|
|||
|
.WORD 4
|
|||
|
.LONG ARM6
|
|||
|
.WORD 5
|
|||
|
.LONG ARM7
|
|||
|
.WORD 5
|
|||
|
.LONG ARM8
|
|||
|
.WORD 5
|
|||
|
.LONG ARM9
|
|||
|
.WORD 5
|
|||
|
.LONG ARM10
|
|||
|
.WORD 9
|
|||
|
.LONG 0
|
|||
|
|
|||
|
ARMS2 .LONG ARM1
|
|||
|
.WORD FLIPBITS|18,(M_FLIPH+M_FLIPV)
|
|||
|
.LONG ARM2
|
|||
|
.WORD 4
|
|||
|
.LONG ARM3
|
|||
|
.WORD 4
|
|||
|
.LONG ARM4
|
|||
|
.WORD 4
|
|||
|
.LONG ARM5
|
|||
|
.WORD 4
|
|||
|
.LONG ARM6
|
|||
|
.WORD 5
|
|||
|
.LONG ARM7
|
|||
|
.WORD 5
|
|||
|
.LONG ARM8
|
|||
|
.WORD 5
|
|||
|
.LONG ARM9
|
|||
|
.WORD 5
|
|||
|
.LONG ARM10
|
|||
|
.WORD 9
|
|||
|
.LONG 0
|
|||
|
|
|||
|
LEGS2 .LONG LEG1
|
|||
|
.WORD FLIPBITS|2,(M_FLIPH+M_FLIPV)
|
|||
|
.LONG LEG2
|
|||
|
.WORD 4
|
|||
|
.LONG LEG3
|
|||
|
.WORD 4
|
|||
|
.LONG LEG4
|
|||
|
.WORD 4
|
|||
|
.LONG LEG5
|
|||
|
.WORD 4
|
|||
|
.LONG LEG6
|
|||
|
.WORD 5
|
|||
|
.LONG LEG7
|
|||
|
.WORD 5
|
|||
|
.LONG LEG8
|
|||
|
.WORD 5
|
|||
|
.LONG LEG9
|
|||
|
.WORD 5
|
|||
|
.LONG LEG10
|
|||
|
.WORD 5
|
|||
|
.LONG LEG11
|
|||
|
.WORD 9
|
|||
|
.LONG 0
|
|||
|
|
|||
|
LEGS .LONG LEG1
|
|||
|
.WORD 28
|
|||
|
.LONG LEG2
|
|||
|
.WORD 4
|
|||
|
.LONG LEG3
|
|||
|
.WORD 4
|
|||
|
.LONG LEG4
|
|||
|
.WORD 4
|
|||
|
.LONG LEG5
|
|||
|
.WORD 5
|
|||
|
.LONG LEG6
|
|||
|
.WORD 5
|
|||
|
.LONG LEG7
|
|||
|
.WORD 5
|
|||
|
.LONG LEG8
|
|||
|
.WORD 5
|
|||
|
.LONG LEG9
|
|||
|
.WORD 5
|
|||
|
.LONG LEG10
|
|||
|
.WORD 5
|
|||
|
.LONG LEG11
|
|||
|
.WORD 9
|
|||
|
.LONG 0
|
|||
|
|
|||
|
HD .LONG HD1
|
|||
|
.WORD 15
|
|||
|
.LONG HD2
|
|||
|
.WORD 4
|
|||
|
.LONG HD3
|
|||
|
.WORD 4
|
|||
|
.LONG HD4
|
|||
|
.WORD 4
|
|||
|
.LONG HD5
|
|||
|
.WORD 5
|
|||
|
.LONG HD6
|
|||
|
.WORD 5
|
|||
|
.LONG HD7
|
|||
|
.WORD 5
|
|||
|
.LONG HD8
|
|||
|
.WORD 4
|
|||
|
.LONG HD9
|
|||
|
.WORD 9
|
|||
|
.LONG 0
|
|||
|
|
|||
|
GLOB .LONG GLOB1
|
|||
|
.WORD 2
|
|||
|
.LONG GLOB2
|
|||
|
.WORD 4
|
|||
|
.LONG GLOB3
|
|||
|
.WORD 4
|
|||
|
.LONG GLOB4
|
|||
|
.WORD 4
|
|||
|
.LONG GLOB5
|
|||
|
.WORD 5
|
|||
|
.LONG GLOB6
|
|||
|
.WORD 9
|
|||
|
.LONG 0
|
|||
|
|
|||
|
PC .LONG PC1
|
|||
|
.WORD 4
|
|||
|
.LONG PC2
|
|||
|
.WORD 4
|
|||
|
.LONG PC3
|
|||
|
.WORD 4
|
|||
|
.LONG PC4
|
|||
|
.WORD 4
|
|||
|
.LONG PC5
|
|||
|
.WORD 4
|
|||
|
.LONG PC6
|
|||
|
.WORD 4
|
|||
|
.LONG PC7
|
|||
|
.WORD 4
|
|||
|
.LONG PC8
|
|||
|
.WORD 9
|
|||
|
.LONG 0
|
|||
|
|
|||
|
PCS2 .LONG PC1
|
|||
|
.WORD FLIPBITS|20,(M_FLIPV+M_FLIPH)
|
|||
|
.LONG PC2
|
|||
|
.WORD 4
|
|||
|
.LONG PC3
|
|||
|
.WORD 4
|
|||
|
.LONG PC4
|
|||
|
.WORD 4
|
|||
|
.LONG PC5
|
|||
|
.WORD 4
|
|||
|
.LONG PC6
|
|||
|
.WORD 4
|
|||
|
.LONG PC7
|
|||
|
.WORD 4
|
|||
|
.LONG PC8
|
|||
|
.WORD 9
|
|||
|
.LONG 0
|
|||
|
ORBPC
|
|||
|
.LONG OPC1
|
|||
|
.WORD FLIPBITS|1,(M_FLIPV)
|
|||
|
.LONG OPC2
|
|||
|
.WORD 4
|
|||
|
.LONG OPC3
|
|||
|
.WORD 4
|
|||
|
.LONG OPC4
|
|||
|
.WORD 4
|
|||
|
.LONG OPC5
|
|||
|
.WORD 4
|
|||
|
.LONG OPC6
|
|||
|
.WORD 4
|
|||
|
.LONG OPC7
|
|||
|
.WORD 4
|
|||
|
.LONG OPC8
|
|||
|
.WORD 4
|
|||
|
.LONG OPC9
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
ORBPC4
|
|||
|
.LONG OPC1
|
|||
|
.WORD 4
|
|||
|
.LONG OPC2
|
|||
|
.WORD 4
|
|||
|
.LONG OPC3
|
|||
|
.WORD 4
|
|||
|
.LONG OPC4
|
|||
|
.WORD 4
|
|||
|
.LONG OPC5
|
|||
|
.WORD 4
|
|||
|
.LONG OPC6
|
|||
|
.WORD 4
|
|||
|
.LONG OPC7
|
|||
|
.WORD 4
|
|||
|
.LONG OPC8
|
|||
|
.WORD 4
|
|||
|
.LONG OPC9
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
ORBPC3
|
|||
|
.LONG OPC1
|
|||
|
.WORD FLIPBITS|59,(M_FLIPH)
|
|||
|
.LONG OPC2
|
|||
|
.WORD 4
|
|||
|
.LONG OPC3
|
|||
|
.WORD 4
|
|||
|
.LONG OPC4
|
|||
|
.WORD 4
|
|||
|
.LONG OPC5
|
|||
|
.WORD 4
|
|||
|
.LONG OPC6
|
|||
|
.WORD 4
|
|||
|
.LONG OPC7
|
|||
|
.WORD 4
|
|||
|
.LONG OPC8
|
|||
|
.WORD 4
|
|||
|
.LONG OPC9
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
ORBPC2
|
|||
|
.LONG OPC1
|
|||
|
.WORD FLIPBITS|19,(M_FLIPH+M_FLIPV)
|
|||
|
.LONG OPC2
|
|||
|
.WORD 4
|
|||
|
.LONG OPC3
|
|||
|
.WORD 4
|
|||
|
.LONG OPC4
|
|||
|
.WORD 4
|
|||
|
.LONG OPC5
|
|||
|
.WORD 4
|
|||
|
.LONG OPC6
|
|||
|
.WORD 4
|
|||
|
.LONG OPC7
|
|||
|
.WORD 4
|
|||
|
.LONG OPC8
|
|||
|
.WORD 4
|
|||
|
.LONG OPC9
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
BLDOTS .LONG BBS1
|
|||
|
.WORD NEWPALET|20
|
|||
|
.LONG nup1
|
|||
|
.LONG BBS2
|
|||
|
.WORD 5
|
|||
|
.LONG BBS3
|
|||
|
.WORD 5
|
|||
|
.LONG BBS4
|
|||
|
.WORD 5
|
|||
|
.LONG BBS5
|
|||
|
.WORD 5
|
|||
|
.LONG 0
|
|||
|
BLOOD:
|
|||
|
;BLOODY CHUNK
|
|||
|
.LONG rblot1
|
|||
|
.WORD NEWPALET|20
|
|||
|
.LONG nup1
|
|||
|
.LONG rblot2
|
|||
|
.WORD 5
|
|||
|
.LONG rblot3
|
|||
|
.WORD 5
|
|||
|
.LONG rblot4
|
|||
|
.WORD 5
|
|||
|
.LONG rblot5
|
|||
|
.WORD 5
|
|||
|
.LONG rblot6
|
|||
|
.WORD 5
|
|||
|
.LONG rblot7
|
|||
|
.WORD 5
|
|||
|
.LONG rblot8
|
|||
|
.WORD 4
|
|||
|
.LONG rblot9
|
|||
|
.WORD 4
|
|||
|
.LONG rblot10
|
|||
|
.WORD 5
|
|||
|
.LONG 0
|
|||
|
BLOOD2:
|
|||
|
;BLOODY CHUNK
|
|||
|
.LONG rblot1
|
|||
|
.WORD NEWPALET|40
|
|||
|
.LONG nup1
|
|||
|
.LONG rblot2
|
|||
|
.WORD 5
|
|||
|
.LONG rblot3
|
|||
|
.WORD 6
|
|||
|
.LONG rblot4
|
|||
|
.WORD 6
|
|||
|
.LONG rblot5
|
|||
|
.WORD 5
|
|||
|
.LONG rblot6
|
|||
|
.WORD 5
|
|||
|
.LONG rblot7
|
|||
|
.WORD 5
|
|||
|
.LONG rblot8
|
|||
|
.WORD 4
|
|||
|
.LONG rblot9
|
|||
|
.WORD 4
|
|||
|
.LONG rblot10
|
|||
|
.WORD 5
|
|||
|
.LONG 0
|
|||
|
OVALBLD:
|
|||
|
;OVAL BLOOD EXPLOSION
|
|||
|
.LONG bldclt1
|
|||
|
.WORD NEWPALET|1
|
|||
|
.LONG nup1
|
|||
|
.LONG bldclt2
|
|||
|
.WORD 6
|
|||
|
.LONG bldclt3
|
|||
|
.WORD 6
|
|||
|
.LONG bldclt4
|
|||
|
.WORD 6
|
|||
|
.LONG bldclt5
|
|||
|
.WORD 6
|
|||
|
.LONG bldclt6
|
|||
|
.WORD 6
|
|||
|
.LONG bldclt7
|
|||
|
.WORD 6
|
|||
|
.LONG bldclt8
|
|||
|
.WORD 7
|
|||
|
.LONG 0
|
|||
|
|
|||
|
PARMS2 .LONG PARM1
|
|||
|
.WORD FLIPBITS|18,(M_FLIPH+M_FLIPV)
|
|||
|
.LONG PARM2
|
|||
|
.WORD 5
|
|||
|
.LONG PARM3
|
|||
|
.WORD 5
|
|||
|
.LONG PARM4
|
|||
|
.WORD 5
|
|||
|
.LONG PARM5
|
|||
|
.WORD 5
|
|||
|
.LONG PARM6
|
|||
|
.WORD 6
|
|||
|
.LONG PARM7
|
|||
|
.WORD 6
|
|||
|
.LONG PARM8
|
|||
|
.WORD 6
|
|||
|
.LONG PARM9
|
|||
|
.WORD 6
|
|||
|
.LONG PARM10
|
|||
|
.WORD 9
|
|||
|
.LONG 0
|
|||
|
|
|||
|
PLEGS2 .LONG PLEG1
|
|||
|
.WORD FLIPBITS|2,(M_FLIPH+M_FLIPV)
|
|||
|
.LONG PLEG2
|
|||
|
.WORD 5
|
|||
|
.LONG PLEG3
|
|||
|
.WORD 5
|
|||
|
.LONG PLEG4
|
|||
|
.WORD 5
|
|||
|
.LONG PLEG5
|
|||
|
.WORD 5
|
|||
|
.LONG PLEG6
|
|||
|
.WORD 6
|
|||
|
.LONG PLEG7
|
|||
|
.WORD 6
|
|||
|
.LONG PLEG8
|
|||
|
.WORD 6
|
|||
|
.LONG PLEG9
|
|||
|
.WORD 6
|
|||
|
.LONG PLEG10
|
|||
|
.WORD 6
|
|||
|
.LONG PLEG11
|
|||
|
.WORD 9
|
|||
|
.LONG 0
|
|||
|
|
|||
|
PLEGS .LONG PLEG1
|
|||
|
.WORD 28
|
|||
|
.LONG PLEG2
|
|||
|
.WORD 5
|
|||
|
.LONG PLEG3
|
|||
|
.WORD 5
|
|||
|
.LONG PLEG4
|
|||
|
.WORD 5
|
|||
|
.LONG PLEG5
|
|||
|
.WORD 6
|
|||
|
.LONG PLEG6
|
|||
|
.WORD 6
|
|||
|
.LONG PLEG7
|
|||
|
.WORD 6
|
|||
|
.LONG PLEG8
|
|||
|
.WORD 6
|
|||
|
.LONG PLEG9
|
|||
|
.WORD 6
|
|||
|
.LONG PLEG10
|
|||
|
.WORD 6
|
|||
|
.LONG PLEG11
|
|||
|
.WORD 9
|
|||
|
.LONG 0
|
|||
|
|
|||
|
PHEAD
|
|||
|
.LONG PHEAD1
|
|||
|
.WORD 25
|
|||
|
.LONG PHEAD2
|
|||
|
.WORD 9
|
|||
|
.LONG PHEAD3
|
|||
|
.WORD 9
|
|||
|
.LONG PHEAD4
|
|||
|
.WORD 9
|
|||
|
.LONG PHEAD5
|
|||
|
.WORD 10
|
|||
|
.LONG PHEAD6
|
|||
|
.WORD 11
|
|||
|
.LONG PHEAD7
|
|||
|
.WORD 10
|
|||
|
.LONG PHEAD8
|
|||
|
.WORD 9
|
|||
|
.LONG PHEAD9
|
|||
|
.WORD 8
|
|||
|
.LONG PHEAD10
|
|||
|
.WORD 8
|
|||
|
.LONG PHEAD11
|
|||
|
.WORD 8
|
|||
|
.LONG 0
|
|||
|
RLST1
|
|||
|
.LONG YTRS1
|
|||
|
.WORD 5
|
|||
|
.LONG YTRS2
|
|||
|
.WORD 5
|
|||
|
.LONG YTRS3
|
|||
|
.WORD 5
|
|||
|
.LONG YTRS4
|
|||
|
.WORD 5
|
|||
|
.LONG YTRS5
|
|||
|
.WORD 5
|
|||
|
.LONG YTRS6
|
|||
|
.WORD 5
|
|||
|
.LONG YTRS7
|
|||
|
.WORD 5
|
|||
|
.LONG YTRS8
|
|||
|
.WORD 5
|
|||
|
.LONG YTRS9
|
|||
|
.WORD 5
|
|||
|
.LONG YTRS10
|
|||
|
.WORD 5
|
|||
|
.LONG 0
|
|||
|
RLST2
|
|||
|
.LONG YPC1
|
|||
|
.WORD FLIPBITS|1,(M_FLIPV)
|
|||
|
.LONG YPC2
|
|||
|
.WORD 3
|
|||
|
.LONG YPC3
|
|||
|
.WORD 3
|
|||
|
.LONG YPC4
|
|||
|
.WORD 3
|
|||
|
.LONG YPC5
|
|||
|
.WORD 3
|
|||
|
.LONG YPC6
|
|||
|
.WORD 3
|
|||
|
.LONG YPC7
|
|||
|
.WORD 3
|
|||
|
.LONG YPC8
|
|||
|
.WORD 3
|
|||
|
.LONG YPC9
|
|||
|
.WORD 3
|
|||
|
.LONG 0
|
|||
|
RLST3
|
|||
|
.LONG YPC1
|
|||
|
.WORD FLIPBITS|21,(M_FLIPH)
|
|||
|
.LONG YPC2
|
|||
|
.WORD 4
|
|||
|
.LONG YPC3
|
|||
|
.WORD 4
|
|||
|
.LONG YPC4
|
|||
|
.WORD 4
|
|||
|
.LONG YPC5
|
|||
|
.WORD 4
|
|||
|
.LONG YPC6
|
|||
|
.WORD 4
|
|||
|
.LONG YPC7
|
|||
|
.WORD 4
|
|||
|
.LONG YPC8
|
|||
|
.WORD 4
|
|||
|
.LONG YPC9
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
RLST4
|
|||
|
.LONG YP1
|
|||
|
.WORD FLIPBITS|18,(M_FLIPH)
|
|||
|
.LONG YP2
|
|||
|
.WORD 2
|
|||
|
.LONG YP3
|
|||
|
.WORD 2
|
|||
|
.LONG YP4
|
|||
|
.WORD 3
|
|||
|
.LONG YP5
|
|||
|
.WORD 3
|
|||
|
.LONG YP6
|
|||
|
.WORD 3
|
|||
|
.LONG YP7
|
|||
|
.WORD 3
|
|||
|
.LONG YP8
|
|||
|
.WORD 3
|
|||
|
.LONG YP9
|
|||
|
.WORD 3
|
|||
|
.LONG YP10
|
|||
|
.WORD 2
|
|||
|
.LONG 0
|
|||
|
RLST5
|
|||
|
.LONG YP1
|
|||
|
.WORD FLIPBITS|1,(M_FLIPV)
|
|||
|
.LONG YP2
|
|||
|
.WORD 3
|
|||
|
.LONG YP3
|
|||
|
.WORD 3
|
|||
|
.LONG YP4
|
|||
|
.WORD 4
|
|||
|
.LONG YP5
|
|||
|
.WORD 4
|
|||
|
.LONG YP6
|
|||
|
.WORD 4
|
|||
|
.LONG YP7
|
|||
|
.WORD 4
|
|||
|
.LONG YP8
|
|||
|
.WORD 3
|
|||
|
.LONG YP9
|
|||
|
.WORD 3
|
|||
|
.LONG YP10
|
|||
|
.WORD 3
|
|||
|
.LONG 0
|
|||
|
ADPCS4: ;ORB DEATH
|
|||
|
;IN:
|
|||
|
;A8=PNTR TO OBJECT TO BLOW UP
|
|||
|
;A0=PROPER X,A1=Y
|
|||
|
;PLACE INTO PCINFO TABLE FOR UPDATING BY THE PC DRIVER (PIECES) PROCESS
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE A2,A1
|
|||
|
MOVE A3,A0
|
|||
|
;A0=PROPER X,A1=Y
|
|||
|
;A6,A7=X,Y VEL FOR THIS PC
|
|||
|
CLR A6
|
|||
|
CLR A7
|
|||
|
|
|||
|
MOVI OPC1,A2
|
|||
|
MOVI 200,A3
|
|||
|
MOVI DMAWNZ|M_NOCOLL|M_FLIPV,A4 ;NON-ZERO VALUE
|
|||
|
MOVI CLSNEUT|TYPNEUT,A5
|
|||
|
CALLA BEGIN_OBJ2
|
|||
|
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI ORBPC,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
MOVB @PCTOT,A2
|
|||
|
CMPI 20,A2
|
|||
|
JRGE OTOT2A
|
|||
|
MOVB @NXT,A3
|
|||
|
DEC A3
|
|||
|
MOVB A3,@NXT
|
|||
|
ANDI 03H,A3
|
|||
|
SLL 5,A3
|
|||
|
ADDI OIFPCS,A3
|
|||
|
MOVE *A3,A3,L
|
|||
|
JUMP A3
|
|||
|
OIFPCS .LONG OTOT7,OTOT5,OTOT3,OTOT2
|
|||
|
OTOT5
|
|||
|
MOVB @PCTOT,A2
|
|||
|
ADDI 06,A2
|
|||
|
MOVB A2,@PCTOT
|
|||
|
JRUC OPTOT5
|
|||
|
OTOT3
|
|||
|
MOVB @PCTOT,A2
|
|||
|
CMPI 10,A2
|
|||
|
JRLT OTOT7A
|
|||
|
ADDI 04,A2
|
|||
|
MOVB A2,@PCTOT
|
|||
|
JRUC OPTOT3
|
|||
|
OTOT2
|
|||
|
MOVB @PCTOT,A2
|
|||
|
CMPI 10,A2
|
|||
|
JRLT OTOT7
|
|||
|
OTOT2A
|
|||
|
ADDI 02,A2
|
|||
|
MOVB A2,@PCTOT
|
|||
|
JRUC OPTOT2
|
|||
|
OTOT7:
|
|||
|
MOVB @PCTOT,A2
|
|||
|
OTOT7A:
|
|||
|
ADDI 08,A2
|
|||
|
MOVB A2,@PCTOT
|
|||
|
CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI ORBPC2,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI ORBPC3,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
OPTOT5 CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
|
|||
|
; ; MOVE A10,A10
|
|||
|
; JREQ Y1
|
|||
|
;CHANGE TO PLAYER 2 PAL IF NEEDED!
|
|||
|
;CHANGE TO NUP2 PAL
|
|||
|
; MOVI nup2,A0
|
|||
|
; CALLA GETFPAL ;GET A COLOR MAP ASSIGNMENT
|
|||
|
; MOVE A0,*A8(OPAL),W ;STORE THE NEW PALETTE
|
|||
|
|
|||
|
;Y1
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI ORBPC,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
|
|||
|
; MOVE A10,A10
|
|||
|
; JREQ Y2
|
|||
|
;CHANGE TO PLAYER 2 PAL IF NEEDED!
|
|||
|
;CHANGE TO NUP2 PAL
|
|||
|
; MOVI nup2,A0
|
|||
|
; CALLA GETFPAL ;GET A COLOR MAP ASSIGNMENT
|
|||
|
; MOVE A0,*A8(OPAL),W ;STORE THE NEW PALETTE
|
|||
|
|
|||
|
;Y2
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI ORBPC3,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
OPTOT3 CALLR NEWV2
|
|||
|
CALLA BOBJ2A
|
|||
|
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI ORBPC4,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI ORBPC2,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
|
|||
|
OPTOT2 CALLR NEWV2
|
|||
|
CALLA BOBJ2A
|
|||
|
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI ORBPC,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
DIE
|
|||
|
EYEBL0
|
|||
|
SLEEP 19
|
|||
|
EYEBL
|
|||
|
MOVI -08000H,B0
|
|||
|
MOVI 08000H,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,A6
|
|||
|
MOVI -07000H,B0
|
|||
|
MOVI 07000H,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,A7
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE A2,A1
|
|||
|
ADDI 0200000H,A1
|
|||
|
MOVE A3,A0
|
|||
|
;A0=PROPER X,A1=Y
|
|||
|
JAUC BLOE2
|
|||
|
CHNKS2 SLEEP 1
|
|||
|
TWOCHNKS
|
|||
|
SLEEP 30
|
|||
|
;USED FOR PLAYER SPIN DEATH!
|
|||
|
;A8=PLAYER PNTR
|
|||
|
MOVI -02000H,B0
|
|||
|
MOVI 02000H,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,A6
|
|||
|
MOVI -02000H,B0
|
|||
|
MOVI 02000H,B1
|
|||
|
CALLA RANGRAND
|
|||
|
MOVE A0,A7
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE A2,A1
|
|||
|
ADDI 02A0000H,A1
|
|||
|
SUBI 040000H,A3
|
|||
|
MOVE A3,A0
|
|||
|
;A0=PROPER X,A1=Y
|
|||
|
MOVI BLDOTS,A9
|
|||
|
MOVI BBS1,A2 ;(OIMG)
|
|||
|
MOVI 55,A3 ;(OZPOS)
|
|||
|
MOVI DMAWNZ+M_NOCOLL,A4 ;(OFLAGS) NON-ZERO VALUE
|
|||
|
MOVI CLSNEUT|TYPNEUT,A5 ;(OID)
|
|||
|
CALLA BEGIN_OBJ2
|
|||
|
JAUC FRANIM_DIE
|
|||
|
; MOVK 1,A1
|
|||
|
; JSRP FRANIM ;ANIMATE THE SUCKER
|
|||
|
; MOVE A8,A0
|
|||
|
; CALLA DELOBJ
|
|||
|
; CALLA DELPAL
|
|||
|
; DIE
|
|||
|
|
|||
|
ADPCS3: ;PLAYER DEATH
|
|||
|
;IN:
|
|||
|
;A8=PNTR TO OBJECT TO BLOW UP
|
|||
|
|
|||
|
;A0=PROPER X,A1=Y
|
|||
|
;A6,A7=X,Y VEL FOR THIS PC
|
|||
|
;PLACE INTO PCINFO TABLE FOR UPDATING BY THE PC DRIVER (PIECES) PROCESS
|
|||
|
MOVI 500,A0
|
|||
|
CALLA RANDPER
|
|||
|
JRNC EYB
|
|||
|
MOVE @FACEON,A0
|
|||
|
JRNZ EYB
|
|||
|
CREATE 0,EYEBL
|
|||
|
MOVI 500,A0
|
|||
|
CALLA RANDPER
|
|||
|
JRNC AZ
|
|||
|
CREATE 0,EYEBL0
|
|||
|
AZ
|
|||
|
EYB
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE A2,A1
|
|||
|
ADDI 0300000H,A1
|
|||
|
MOVE A3,A0
|
|||
|
;A0=PROPER X,A1=Y
|
|||
|
CLR A6
|
|||
|
CLR A7
|
|||
|
|
|||
|
MOVI PARM1,A2
|
|||
|
MOVI 200,A3
|
|||
|
MOVI DMAWNZ|M_NOCOLL|M_FLIPV,A4 ;NON-ZERO VALUE
|
|||
|
MOVI CLSNEUT|TYPNEUT,A5
|
|||
|
MOVE A8,A9
|
|||
|
CALLA BEGIN_OBJ2
|
|||
|
|
|||
|
CLR A10
|
|||
|
MOVE *A9(OPLINK),A0,L
|
|||
|
MOVB *A0(PNUM),A0
|
|||
|
CMPI 1,A0
|
|||
|
JREQ OKP
|
|||
|
;CHANGE TO PLAYER 2 PAL IF NEEDED!
|
|||
|
;CHANGE TO NUP2 PAL
|
|||
|
MOVK 1,A10
|
|||
|
OKP
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI BLOOD,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
MOVB @NXT,A3
|
|||
|
DEC A3
|
|||
|
MOVB A3,@NXT
|
|||
|
ANDI 03H,A3
|
|||
|
SLL 5,A3
|
|||
|
ADDI PIFPCS,A3
|
|||
|
MOVE *A3,A3,L
|
|||
|
JUMP A3
|
|||
|
;PIFPCS .LONG PTOT5,PTOT5,PTOT5,PTOT5
|
|||
|
PIFPCS .LONG PTOT7,PTOT5,PTOT3,PTOT2
|
|||
|
PTOT5
|
|||
|
MOVB @PCTOT,A2
|
|||
|
ADDI 06,A2
|
|||
|
MOVB A2,@PCTOT
|
|||
|
JRUC PPTOT5
|
|||
|
PTOT3
|
|||
|
MOVB @PCTOT,A2
|
|||
|
CMPI 10,A2
|
|||
|
JRLT PTOT7A
|
|||
|
ADDI 04,A2
|
|||
|
MOVB A2,@PCTOT
|
|||
|
JRUC PPTOT3
|
|||
|
PTOT2
|
|||
|
MOVB @PCTOT,A2
|
|||
|
CMPI 10,A2
|
|||
|
JRLT PTOT7
|
|||
|
ADDI 02,A2
|
|||
|
MOVB A2,@PCTOT
|
|||
|
JRUC PPTOT2
|
|||
|
PTOT7:
|
|||
|
MOVB @PCTOT,A2
|
|||
|
PTOT7A:
|
|||
|
ADDI 08,A2
|
|||
|
MOVB A2,@PCTOT
|
|||
|
CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI BLOOD2,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI BLOOD,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
PPTOT5 CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
|
|||
|
MOVE A10,A10
|
|||
|
JREQ Y1
|
|||
|
;CHANGE TO PLAYER 2 PAL IF NEEDED!
|
|||
|
;CHANGE TO NUP2 PAL
|
|||
|
MOVI nup2,A0
|
|||
|
CALLA GETFPAL ;GET A COLOR MAP ASSIGNMENT
|
|||
|
MOVE A0,*A8(OPAL),W ;STORE THE NEW PALETTE
|
|||
|
|
|||
|
Y1 MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI PLEGS2,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
|
|||
|
MOVE A10,A10
|
|||
|
JREQ Y2
|
|||
|
;CHANGE TO PLAYER 2 PAL IF NEEDED!
|
|||
|
;CHANGE TO NUP2 PAL
|
|||
|
MOVI nup2,A0
|
|||
|
CALLA GETFPAL ;GET A COLOR MAP ASSIGNMENT
|
|||
|
MOVE A0,*A8(OPAL),W ;STORE THE NEW PALETTE
|
|||
|
|
|||
|
Y2 MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI PHEAD,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
PPTOT3 CALLR NEWV2
|
|||
|
CALLA BOBJ2A
|
|||
|
|
|||
|
MOVE A10,A10
|
|||
|
JREQ Y3
|
|||
|
;CHANGE TO PLAYER 2 PAL IF NEEDED!
|
|||
|
;CHANGE TO NUP2 PAL
|
|||
|
MOVI nup2,A0
|
|||
|
CALLA GETFPAL ;GET A COLOR MAP ASSIGNMENT
|
|||
|
MOVE A0,*A8(OPAL),W ;STORE THE NEW PALETTE
|
|||
|
|
|||
|
Y3 MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI PARMS2,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI BLOOD2,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
|
|||
|
PPTOT2 CALLR NEWV2
|
|||
|
CALLA BOBJ2A
|
|||
|
|
|||
|
MOVE A10,A10
|
|||
|
JREQ Y4
|
|||
|
;CHANGE TO PLAYER 2 PAL IF NEEDED!
|
|||
|
;CHANGE TO NUP2 PAL
|
|||
|
MOVI nup2,A0
|
|||
|
CALLA GETFPAL ;GET A COLOR MAP ASSIGNMENT
|
|||
|
MOVE A0,*A8(OPAL),W ;STORE THE NEW PALETTE
|
|||
|
|
|||
|
Y4 MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI PLEGS,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
ADDIE DIE
|
|||
|
;
|
|||
|
;
|
|||
|
ADDRPCS
|
|||
|
;FOR ROBOT EXPLOSION
|
|||
|
;A8=PNTR TO OBJECT TO BLOW UP
|
|||
|
MOVB @PCTOT,A2
|
|||
|
CMPI 040H,A2
|
|||
|
JRHI ADDIE
|
|||
|
MOVE A9,A6
|
|||
|
MOVE A10,A7
|
|||
|
MOVE *A8(OPAL),A10
|
|||
|
CALLA GETANIXY
|
|||
|
; MOVE A8,A0
|
|||
|
; CALLA DELOBJ
|
|||
|
MOVE A2,A1
|
|||
|
MOVE A3,A0
|
|||
|
;A0=PROPER X,A1=Y
|
|||
|
|
|||
|
|
|||
|
ADDI 01A0000H,A1 ;RESET HULK ANI PNTS!
|
|||
|
MOVI YPC1,A2
|
|||
|
MOVI 200,A3
|
|||
|
MOVI DMAWNZ|M_NOCOLL,A4 ;NON-ZERO VALUE
|
|||
|
MOVI CLSNEUT|TYPNEUT,A5
|
|||
|
CALLA BEGIN_OBJ2
|
|||
|
MOVE A10,*A8(OPAL)
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI RLST1,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
MOVB @NXT,A3
|
|||
|
DEC A3
|
|||
|
MOVB A3,@NXT
|
|||
|
ANDI 03H,A3
|
|||
|
SLL 5,A3
|
|||
|
ADDI RIFPCS2,A3
|
|||
|
MOVE *A3,A3,L
|
|||
|
JUMP A3
|
|||
|
RIFPCS2 .LONG RTOT7,RTOT5,RTOT3,RTOT2
|
|||
|
RTOT5
|
|||
|
MOVB @PCTOT,A2
|
|||
|
ADDI 06,A2
|
|||
|
MOVB A2,@PCTOT
|
|||
|
JRUC RGTOT5
|
|||
|
RTOT3
|
|||
|
MOVB @PCTOT,A2
|
|||
|
CMPI 10,A2
|
|||
|
JRLT RTOT7A
|
|||
|
ADDI 04,A2
|
|||
|
MOVB A2,@PCTOT
|
|||
|
JRUC RGTOT3
|
|||
|
RTOT2
|
|||
|
MOVB @PCTOT,A2
|
|||
|
CMPI 10,A2
|
|||
|
JRLT RTOT7
|
|||
|
ADDI 02,A2
|
|||
|
MOVB A2,@PCTOT
|
|||
|
JRUC RGTOT2
|
|||
|
RTOT7:
|
|||
|
MOVB @PCTOT,A2
|
|||
|
RTOT7A:
|
|||
|
ADDI 08,A2
|
|||
|
MOVB A2,@PCTOT
|
|||
|
CALLR NEWV ;GET VELS
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE A10,*A8(OPAL)
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI RLST2,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
CALLR NEWV2
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE A10,*A8(OPAL)
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI RLST3,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
RGTOT5 CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE A10,*A8(OPAL)
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI RLST3,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
CALLR NEWV2
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE A10,*A8(OPAL)
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI RLST2,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
RGTOT3 CALLR NEWV2
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE A10,*A8(OPAL)
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI RLST3,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE A10,*A8(OPAL)
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI RLST4,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
|
|||
|
RGTOT2 CALLR NEWV2
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE A10,*A8(OPAL)
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI RLST5,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
DIE
|
|||
|
|
|||
|
ADDPCS2:
|
|||
|
;FOR SNAKE EXPLOSION
|
|||
|
;A8=PNTR TO OBJECT TO BLOW UP
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE A2,A1
|
|||
|
MOVE A3,A0
|
|||
|
;A0=PROPER X,A1=Y
|
|||
|
CLR A6
|
|||
|
CLR A7
|
|||
|
; MOVE A9,A6
|
|||
|
; MOVE A10,A7
|
|||
|
;A6,A7=X,Y VEL FOR THIS PC
|
|||
|
;PLACE INTO PCINFO TABLE FOR UPDATING BY THE PC DRIVER (PIECES) PROCESS
|
|||
|
; MOVE A6,@TMP1,L
|
|||
|
; MOVE A7,@TMP2,L
|
|||
|
|
|||
|
; ADDI 0160000H,A1 ;RESET HULK ANI PNTS!
|
|||
|
ADDI 01A0000H,A1 ;RESET HULK ANI PNTS!
|
|||
|
MOVI bldclt1,A2
|
|||
|
MOVI 200,A3
|
|||
|
MOVI DMAWNZ|M_NOCOLL,A4 ;NON-ZERO VALUE
|
|||
|
MOVI CLSNEUT|TYPNEUT,A5
|
|||
|
CALLA BEGIN_OBJ2
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI BLOOD,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
MOVB @NXT,A3
|
|||
|
DEC A3
|
|||
|
MOVB A3,@NXT
|
|||
|
ANDI 03H,A3
|
|||
|
SLL 5,A3
|
|||
|
ADDI DIFPCS2,A3
|
|||
|
MOVE *A3,A3,L
|
|||
|
JUMP A3
|
|||
|
DIFPCS2 .LONG STOT7,STOT5,STOT3,STOT2
|
|||
|
STOT5
|
|||
|
MOVB @PCTOT,A2
|
|||
|
ADDI 06,A2
|
|||
|
MOVB A2,@PCTOT
|
|||
|
JRUC SGTOT5
|
|||
|
STOT3
|
|||
|
MOVB @PCTOT,A2
|
|||
|
CMPI 10,A2
|
|||
|
JRLT STOT7A
|
|||
|
ADDI 04,A2
|
|||
|
MOVB A2,@PCTOT
|
|||
|
JRUC SGTOT3
|
|||
|
STOT2
|
|||
|
MOVB @PCTOT,A2
|
|||
|
CMPI 10,A2
|
|||
|
JRLT STOT7
|
|||
|
ADDI 02,A2
|
|||
|
MOVB A2,@PCTOT
|
|||
|
JRUC SGTOT2
|
|||
|
STOT7:
|
|||
|
MOVB @PCTOT,A2
|
|||
|
STOT7A:
|
|||
|
ADDI 08,A2
|
|||
|
MOVB A2,@PCTOT
|
|||
|
CALLR NEWV ;GET VELS
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI BLOOD,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI BLOOD2,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
SGTOT5 CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI BLOOD,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI HD,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
SGTOT3 CALLR NEWV2
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI PC,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI BLOOD,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
|
|||
|
SGTOT2 CALLR NEWV2
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI BLOOD2,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
DIE
|
|||
|
|
|||
|
ADPCS2:
|
|||
|
;FAT GUY CALLS THIS
|
|||
|
;A8=PNTR TO OBJECT TO BLOW UP
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE A2,A1
|
|||
|
SUBI 0140000H,A1
|
|||
|
MOVE A3,A0
|
|||
|
;A0=PROPER X,A1=Y
|
|||
|
CLR A6
|
|||
|
CLR A7
|
|||
|
JRUC ADPCS1A
|
|||
|
ADPCS1:
|
|||
|
;A8=PNTR TO OBJECT TO BLOW UP
|
|||
|
CALLA GETANIXY
|
|||
|
MOVE A2,A1
|
|||
|
ADDI 01A0000H,A1
|
|||
|
MOVE A3,A0
|
|||
|
;A0=PROPER X,A1=Y
|
|||
|
CLR A6
|
|||
|
CLR A7
|
|||
|
JRUC ADPCS1A
|
|||
|
|
|||
|
ADDPCS:
|
|||
|
;A0=PROPER X,A1=Y
|
|||
|
;A6,A7=X,Y VEL FOR THIS PC
|
|||
|
;PLACE INTO PCINFO TABLE FOR UPDATING BY THE PC DRIVER (PIECES) PROCESS
|
|||
|
; MOVE A6,@TMP1,L
|
|||
|
; MOVE A7,@TMP2,L
|
|||
|
ADPCS1A:
|
|||
|
MOVE *A8(OPAL),A10
|
|||
|
MOVE @HULKTYP,A2
|
|||
|
JRZ NOSW
|
|||
|
PUSH A0
|
|||
|
MOVI BLODP,A0
|
|||
|
CALLA GETFPAL
|
|||
|
MOVE A0,A10
|
|||
|
PULL A0
|
|||
|
NOSW
|
|||
|
ADDI 01A0000H,A1 ;RESET HULK ANI PNTS!
|
|||
|
MOVI GLOB1,A2
|
|||
|
MOVI 200,A3
|
|||
|
MOVI DMAWNZ|M_NOCOLL|M_FLIPV,A4 ;NON-ZERO VALUE
|
|||
|
MOVI CLSNEUT|TYPNEUT,A5
|
|||
|
CALLA BEGIN_OBJ2
|
|||
|
MOVE A10,*A8(OPAL)
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI GLOB,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
MOVB @NXT,A3
|
|||
|
DEC A3
|
|||
|
MOVB A3,@NXT
|
|||
|
ANDI 03H,A3
|
|||
|
SLL 5,A3
|
|||
|
ADDI DIFPCS,A3
|
|||
|
MOVE *A3,A3,L
|
|||
|
JUMP A3
|
|||
|
DIFPCS .LONG TOT7,TOT5,TOT5,TOT7
|
|||
|
TOT5
|
|||
|
MOVB @PCTOT,A2
|
|||
|
ADDI 06,A2
|
|||
|
MOVB A2,@PCTOT
|
|||
|
JRUC GTOT5
|
|||
|
TOT7:
|
|||
|
MOVB @PCTOT,A2
|
|||
|
ADDI 08,A2
|
|||
|
MOVB A2,@PCTOT
|
|||
|
CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE A10,*A8(OPAL)
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI ARMS2,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE A10,*A8(OPAL)
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI LEGS,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
GTOT5 CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE A10,*A8(OPAL)
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI LEGS2,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE A10,*A8(OPAL)
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI HD,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
;GTOT3
|
|||
|
CALLR NEWV2
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE A10,*A8(OPAL)
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI PC,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
CALLR NEWV
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE A10,*A8(OPAL)
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI ARMS,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
|
|||
|
;GTOT2
|
|||
|
CALLR NEWV2
|
|||
|
CALLA BOBJ2A
|
|||
|
MOVE A10,*A8(OPAL)
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
MOVE A8,*A0+,L
|
|||
|
MOVK 1,A1
|
|||
|
MOVE A1,*A0+,W ;INIT TICK CNT
|
|||
|
MOVI PCS2,A9
|
|||
|
MOVE A9,*A0+,L
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
DIE
|
|||
|
|
|||
|
NEWV MOVI -0B000H,B0
|
|||
|
MOVI 0B000H,B1
|
|||
|
CALLA RANGRAND
|
|||
|
ADD A6,A0
|
|||
|
MOVE A0,@XVEL,L
|
|||
|
MOVI -0A000H,B0
|
|||
|
MOVI 0A000H,B1
|
|||
|
CALLA RANGRAND
|
|||
|
ADD A7,A0
|
|||
|
MOVE A0,@YVEL,L
|
|||
|
RETS
|
|||
|
|
|||
|
NEWV2 MOVI -0E000H,B0
|
|||
|
MOVI 0E000H,B1
|
|||
|
CALLA RANGRAND
|
|||
|
ADD A6,A0
|
|||
|
MOVE A0,@XVEL,L
|
|||
|
MOVI -0C000H,B0
|
|||
|
MOVI 0C000H,B1
|
|||
|
CALLA RANGRAND
|
|||
|
ADD A7,A0
|
|||
|
MOVE A0,@YVEL,L
|
|||
|
RETS
|
|||
|
PIECES:
|
|||
|
CLR A0
|
|||
|
MOVI PCINFO,A1
|
|||
|
MOVI PCSMAX,A2
|
|||
|
PCL1: MOVE A0,*A1+,L
|
|||
|
MOVE A0,*A1+,W
|
|||
|
MOVE A0,*A1+,L
|
|||
|
DSJS A2,PCL1
|
|||
|
;
|
|||
|
MOVI PCINFO,A0
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
|
|||
|
PCTP: MOVI PCINFO,A3
|
|||
|
PCTP1:
|
|||
|
MOVE *A3+,A8,L
|
|||
|
JREQ DN
|
|||
|
;PC PNTR FOUND
|
|||
|
MOVE *A3,A0,W ;GET SLP TIME
|
|||
|
DEC A0
|
|||
|
MOVE A0,*A3+,W
|
|||
|
JRNE PCOUTA
|
|||
|
;READY FOR ANIMATION ON THIS PIECE
|
|||
|
MOVE *A3,A9,L ;GET FRANIM LIST
|
|||
|
MOVK 4,A1
|
|||
|
JSRP FRANIM ;PIG ON CYCLES!
|
|||
|
JRC YDONE ;GET RID OF PIECE
|
|||
|
MOVE A9,*A3,L
|
|||
|
SUBI 16,A3
|
|||
|
MOVE A0,*A3,W
|
|||
|
|
|||
|
PCOUT:
|
|||
|
ADDI 48,A3
|
|||
|
JRUC PCTP1
|
|||
|
PCOUTA:
|
|||
|
ADDI 32,A3
|
|||
|
JRUC PCTP1
|
|||
|
|
|||
|
YDONE: SUBI 48,A3
|
|||
|
;ONLY NECESSARY IF ONLY PIECE IN LIST?
|
|||
|
CLR A0
|
|||
|
MOVE A0,*A3,L
|
|||
|
MOVE A8,A0
|
|||
|
CALLA DELOBJ
|
|||
|
MOVB @PCTOT,A0
|
|||
|
DEC A0
|
|||
|
MOVB A0,@PCTOT
|
|||
|
JRNN YD
|
|||
|
CLR A0
|
|||
|
MOVB A0,@PCTOT
|
|||
|
YD
|
|||
|
MOVE @LASTPC,A0,L
|
|||
|
SUBI 80,A0
|
|||
|
MOVE A0,@LASTPC,L
|
|||
|
MOVE *A0,A5,L
|
|||
|
JREQ DN ;BR=ONLY 1 PC IN LIST AND IT DIED!
|
|||
|
|
|||
|
MOVE *A0+,A1,L
|
|||
|
MOVE *A0+,A2,W
|
|||
|
MOVE *A0,A5,L
|
|||
|
CLR A4
|
|||
|
SUBI 48,A0
|
|||
|
MOVE A4,*A0,L ;ZERO OUT PREVIOUS LAST ENTRY
|
|||
|
MOVE A1,*A3+,L
|
|||
|
MOVE A2,*A3+,W
|
|||
|
MOVE A5,*A3+,L
|
|||
|
JRUC PCTP1
|
|||
|
|
|||
|
DN: SLEEP 1
|
|||
|
JRUC PCTP
|
|||
|
|
|||
|
HDIE:
|
|||
|
.LONG HIT1
|
|||
|
.WORD FLIPBITS|5,0
|
|||
|
.LONG HIT2
|
|||
|
.WORD 4
|
|||
|
.LONG HIT3
|
|||
|
.WORD 3
|
|||
|
.LONG HIT4
|
|||
|
.WORD 3
|
|||
|
.LONG HIT5
|
|||
|
.WORD 3
|
|||
|
.LONG SPLOTCH5
|
|||
|
.WORD 3
|
|||
|
.LONG SPLOTCH6
|
|||
|
.WORD 3
|
|||
|
.LONG SPLOTCH7
|
|||
|
.WORD 3
|
|||
|
.LONG SPLOTCH8
|
|||
|
.WORD 3
|
|||
|
.LONG 0
|
|||
|
HDIER:
|
|||
|
.LONG HIT1
|
|||
|
.WORD FLIPBITS|5,(M_FLIPH)
|
|||
|
.LONG HIT2
|
|||
|
.WORD 4
|
|||
|
.LONG HIT3
|
|||
|
.WORD 3
|
|||
|
.LONG HIT4
|
|||
|
.WORD 3
|
|||
|
.LONG HIT5
|
|||
|
.WORD 3
|
|||
|
.LONG SPLOTCH5
|
|||
|
.WORD 3
|
|||
|
.LONG SPLOTCH6
|
|||
|
.WORD 3
|
|||
|
.LONG SPLOTCH7
|
|||
|
.WORD 3
|
|||
|
.LONG SPLOTCH8
|
|||
|
.WORD 3
|
|||
|
.LONG 0
|
|||
|
VDIE:
|
|||
|
.LONG VHIT1
|
|||
|
.WORD FLIPBITS|5,0
|
|||
|
.LONG VHIT2
|
|||
|
.WORD 4
|
|||
|
.LONG VHIT3
|
|||
|
.WORD 3
|
|||
|
.LONG VHIT4
|
|||
|
.WORD 3
|
|||
|
.LONG VHIT5
|
|||
|
.WORD 3
|
|||
|
.LONG SPLOTCH5
|
|||
|
.WORD 3
|
|||
|
.LONG SPLOTCH6
|
|||
|
.WORD 3
|
|||
|
.LONG SPLOTCH7
|
|||
|
.WORD 3
|
|||
|
.LONG SPLOTCH8
|
|||
|
.WORD 3
|
|||
|
.LONG 0
|
|||
|
VDIED:
|
|||
|
.LONG VHIT1
|
|||
|
.WORD FLIPBITS|5,0
|
|||
|
.LONG VHIT2
|
|||
|
.WORD 4
|
|||
|
.LONG VHIT3
|
|||
|
.WORD 3
|
|||
|
.LONG VHIT4
|
|||
|
.WORD 3
|
|||
|
.LONG VHIT5
|
|||
|
.WORD 3
|
|||
|
.LONG SPLOTCH5
|
|||
|
.WORD 3
|
|||
|
.LONG SPLOTCH6
|
|||
|
.WORD 3
|
|||
|
.LONG SPLOTCH7
|
|||
|
.WORD 3
|
|||
|
.LONG SPLOTCH8
|
|||
|
.WORD 3
|
|||
|
.LONG 0
|
|||
|
|
|||
|
|
|||
|
RED_CARPETX:
|
|||
|
.LONG [0,0F8H],[098H,0200H],[0,0F8H],[088H,0F8H],[088H,0F8H]
|
|||
|
RED_CARPETY:
|
|||
|
.LONG [048H,0B8H],[048H,0B8H],[048H,0B8H],[044H,0FFH],[0,0C8H]
|
|||
|
|
|||
|
TABLEX:
|
|||
|
;RIGHT FROM LEFT DOORWAY
|
|||
|
.LONG [068H-18H,028H],[068H-18H,048H],[068H-18H,068H]
|
|||
|
.LONG [068H-18H,088H]
|
|||
|
|
|||
|
.LONG [05AH-18H,0A8H],[054H-18H,0C8H]
|
|||
|
.LONG [060H-18H,0E8H],[07AH-18H,0FCH]
|
|||
|
|
|||
|
.LONG [0B0H-18H,028H],[0B0H-18H,048H],[0B0H-18H,068H]
|
|||
|
.LONG [0B0H-18H,088H]
|
|||
|
|
|||
|
.LONG [0BEH-18H,0A8H],[0C4H-18H,0C8H]
|
|||
|
.LONG [0B8H-18H,0E8H],[09EH-18H,0FCH]
|
|||
|
TABLEX1:
|
|||
|
;DOWN FROM TOP DOORWAY
|
|||
|
.LONG [020H-0H,0A0H+04H],[035H-0H,0A0H+04H],[04AH-0H,0A0H+04H]
|
|||
|
.LONG [05FH-0H,098H+04H]
|
|||
|
|
|||
|
.LONG [078H-0H,08EH+04H],[095H-0H,08EH+04H]
|
|||
|
.LONG [0AAH-0H,09CH+04H],[0B7H-0H,0B3H+04H]
|
|||
|
|
|||
|
.LONG [020H-0H,0EAH+04H],[035H-0H,0EAH+04H],[04AH-0H,0EAH+04H]
|
|||
|
.LONG [05FH-0H,0F2H+04H]
|
|||
|
|
|||
|
.LONG [078H-0H,0FCH+04H],[095H-0H,0FCH+04H]
|
|||
|
.LONG [0AAH-0H,0F4H+04H],[0B7H-0H,0DDH+04H]
|
|||
|
|
|||
|
TABLEX3:
|
|||
|
;UP FROM BOTTOM
|
|||
|
.LONG [0C0H+10H,0A0H+04H],[0ABH+10H,0A0H+04H],[096H+10H,0A0H+04H]
|
|||
|
.LONG [081H+10H,098H+04H]
|
|||
|
|
|||
|
.LONG [068H+10H,08EH+04H],[04BH+10H,08EH+04H]
|
|||
|
.LONG [036H+10H,09CH+04H],[029H+10H,0B3H+04H]
|
|||
|
|
|||
|
.LONG [0C0H+10H,0EAH+04H],[0ABH+10H,0EAH+04H],[096H+10H,0EAH+04H]
|
|||
|
.LONG [081H+10H,0F2H+04H]
|
|||
|
|
|||
|
.LONG [068H+10H,0FCH+04H],[04BH+10H,0FCH+04H]
|
|||
|
.LONG [036H+10H,0F4H+04H],[029H+10H,0DDH+04H]
|
|||
|
;TABLEX2:
|
|||
|
;LEFT FROM RIGHT DOORWAY
|
|||
|
; .LONG [068H-18H,0158H],[068H-18H,0138H],[068H-18H,0118H]
|
|||
|
; .LONG [068H-18H,0F8H]
|
|||
|
|
|||
|
; .LONG [05AH-18H,0D8H],[054H-18H,0B8H]
|
|||
|
; .LONG [060H-18H,098H],[07AH-18H,08CH]
|
|||
|
|
|||
|
; .LONG [0B0H-18H,0158H],[0B0H-18H,0138H],[0B0H-18H,0118H]
|
|||
|
; .LONG [0B0H-18H,0F8H]
|
|||
|
|
|||
|
; .LONG [0BEH-18H,0D8H],[0C4H-18H,0B8H]
|
|||
|
; .LONG [0B8H-18H,098H],[09EH-18H,08CH]
|
|||
|
|
|||
|
;TRANSLATE:
|
|||
|
; .WORD 3,7,5,1,4,6,2,8
|
|||
|
;
|
|||
|
;8 1 2
|
|||
|
;7 3
|
|||
|
;6 5 4
|
|||
|
;
|
|||
|
WALK_LIST:
|
|||
|
.LONG T_PWK_UP,T_PWK_UPRGT,T_PWK_RGT,T_PWK_DNRGT,T_PWK_DN
|
|||
|
.LONG T_PWK_DNLFT,T_PWK_LFT,T_PWK_UPLFT
|
|||
|
WALK_LISTM:
|
|||
|
.LONG TM_PWK_UP,TM_PWK_UPRGT,TM_PWK_RGT,TM_PWK_DNRGT,TM_PWK_DN
|
|||
|
.LONG TM_PWK_DNLFT,TM_PWK_LFT,TM_PWK_UPLFT
|
|||
|
WALK_LISTF:
|
|||
|
.LONG TF_PWK_UP,TF_PWK_UPRGT,TF_PWK_RGT,TF_PWK_DNRGT,TF_PWK_DN
|
|||
|
.LONG TF_PWK_DNLFT,TF_PWK_LFT,TF_PWK_UPLFT
|
|||
|
|
|||
|
WALK_LISTA:
|
|||
|
.LONG T2_PWK_UP,T2_PWK_UPRGT,T2_PWK_RGT,T2_PWK_DNRGT,T2_PWK_DN
|
|||
|
.LONG T2_PWK_DNLFT,T2_PWK_LFT,T2_PWK_UPLFT
|
|||
|
WALK_LISTMA:
|
|||
|
.LONG T2M_PWK_UP,T2M_PWK_UPRGT,T2M_PWK_RGT,T2M_PWK_DNRGT,T2M_PWK_DN
|
|||
|
.LONG T2M_PWK_DNLFT,T2M_PWK_LFT,T2M_PWK_UPLFT
|
|||
|
WALK_LISTFA:
|
|||
|
.LONG T2F_PWK_UP,T2F_PWK_UPRGT,T2F_PWK_RGT,T2F_PWK_DNRGT,T2F_PWK_DN
|
|||
|
.LONG T2F_PWK_DNLFT,T2F_PWK_LFT,T2F_PWK_UPLFT
|
|||
|
|
|||
|
;
|
|||
|
;HULK ANIMATIONS TABLE 2
|
|||
|
;
|
|||
|
SPINFRMS:
|
|||
|
.LONG gb12w2a,gb10w3a,gb9w4a,gb8w3a,gb6w5a,gb8w3a,gb9w4a,gb10w3a
|
|||
|
SPINFRMS2:
|
|||
|
.LONG SNG12A,SNG10A,SNG9A,SNG8A,SNG6A,SNG8A,SNG9A,SNG10A
|
|||
|
SPINFLGS:
|
|||
|
.WORD DMAWNZ,DMAWNZ+M_FLIPH,DMAWNZ+M_FLIPH,DMAWNZ+M_FLIPH,DMAWNZ
|
|||
|
.WORD DMAWNZ,DMAWNZ,DMAWNZ
|
|||
|
|
|||
|
;
|
|||
|
;GRUNT ANIMATION TABLES
|
|||
|
;
|
|||
|
T_PWK_UP:
|
|||
|
.LONG gb12w1a
|
|||
|
.WORD FLIPBITS|05,0
|
|||
|
.LONG gb12w2a
|
|||
|
.WORD 05
|
|||
|
.LONG gb12w3a
|
|||
|
.WORD 05
|
|||
|
.LONG gb12w4a
|
|||
|
.WORD 05
|
|||
|
.LONG gb12w5a
|
|||
|
.WORD 05
|
|||
|
.LONG gb12w6a
|
|||
|
.WORD 05
|
|||
|
.LONG gb12w7a
|
|||
|
.WORD 05
|
|||
|
.LONG 0
|
|||
|
T_PWK_DN:
|
|||
|
.LONG gb6w1a
|
|||
|
.WORD FLIPBITS|05,0
|
|||
|
.LONG gb6w2a
|
|||
|
.WORD 05
|
|||
|
.LONG gb6w3a
|
|||
|
.WORD 05
|
|||
|
.LONG gb6w4a
|
|||
|
.WORD 05
|
|||
|
.LONG gb6w5a
|
|||
|
.WORD 05
|
|||
|
.LONG gb6w6a
|
|||
|
.WORD 05
|
|||
|
.LONG gb6w7a
|
|||
|
.WORD 05
|
|||
|
.LONG 0
|
|||
|
T_PWK_RGT:
|
|||
|
.LONG gb9w1a
|
|||
|
.WORD FLIPBITS|05,(M_FLIPH)
|
|||
|
.LONG gb9w2a
|
|||
|
.WORD 05
|
|||
|
.LONG gb9w3a
|
|||
|
.WORD 05
|
|||
|
.LONG gb9w4a
|
|||
|
.WORD 05
|
|||
|
.LONG gb9w5a
|
|||
|
.WORD 05
|
|||
|
.LONG gb9w6a
|
|||
|
.WORD 05
|
|||
|
.LONG gb9w7a
|
|||
|
.WORD 05
|
|||
|
.LONG 0
|
|||
|
T_PWK_LFT:
|
|||
|
.LONG gb9w1a
|
|||
|
.WORD FLIPBITS|05,0
|
|||
|
.LONG gb9w2a
|
|||
|
.WORD 05
|
|||
|
.LONG gb9w3a
|
|||
|
.WORD 05
|
|||
|
.LONG gb9w4a
|
|||
|
.WORD 05
|
|||
|
.LONG gb9w5a
|
|||
|
.WORD 05
|
|||
|
.LONG gb9w6a
|
|||
|
.WORD 05
|
|||
|
.LONG gb9w7a
|
|||
|
.WORD 05
|
|||
|
.LONG 0
|
|||
|
|
|||
|
T_PWK_UPRGT:
|
|||
|
.LONG gb10w1a
|
|||
|
.WORD FLIPBITS|05,(M_FLIPH)
|
|||
|
.LONG gb10w2a
|
|||
|
.WORD 05
|
|||
|
.LONG gb10w3a
|
|||
|
.WORD 05
|
|||
|
.LONG gb10w4a
|
|||
|
.WORD 05
|
|||
|
.LONG gb10w5a
|
|||
|
.WORD 05
|
|||
|
.LONG gb10w6a
|
|||
|
.WORD 05
|
|||
|
.LONG gb10w7a
|
|||
|
.WORD 05
|
|||
|
.LONG 0
|
|||
|
|
|||
|
T_PWK_DNLFT:
|
|||
|
.LONG gb8w1a
|
|||
|
.WORD FLIPBITS|05,0
|
|||
|
.LONG gb8w2a
|
|||
|
.WORD 05
|
|||
|
.LONG gb8w3a
|
|||
|
.WORD 05
|
|||
|
.LONG gb8w4a
|
|||
|
.WORD 05
|
|||
|
.LONG gb8w5a
|
|||
|
.WORD 05
|
|||
|
.LONG gb8w6a
|
|||
|
.WORD 05
|
|||
|
.LONG gb8w7a
|
|||
|
.WORD 05
|
|||
|
.LONG 0
|
|||
|
T_PWK_UPLFT:
|
|||
|
.LONG gb10w1a
|
|||
|
.WORD FLIPBITS|05,0
|
|||
|
.LONG gb10w2a
|
|||
|
.WORD 05
|
|||
|
.LONG gb10w3a
|
|||
|
.WORD 05
|
|||
|
.LONG gb10w4a
|
|||
|
.WORD 05
|
|||
|
.LONG gb10w5a
|
|||
|
.WORD 05
|
|||
|
.LONG gb10w6a
|
|||
|
.WORD 05
|
|||
|
.LONG gb10w7a
|
|||
|
.WORD 05
|
|||
|
.LONG 0
|
|||
|
T_PWK_DNRGT:
|
|||
|
.LONG gb8w1a
|
|||
|
.WORD FLIPBITS|05,(M_FLIPH)
|
|||
|
.LONG gb8w2a
|
|||
|
.WORD 05
|
|||
|
.LONG gb8w3a
|
|||
|
.WORD 05
|
|||
|
.LONG gb8w4a
|
|||
|
.WORD 05
|
|||
|
.LONG gb8w5a
|
|||
|
.WORD 05
|
|||
|
.LONG gb8w6a
|
|||
|
.WORD 05
|
|||
|
.LONG gb8w7a
|
|||
|
.WORD 05
|
|||
|
.LONG 0
|
|||
|
|
|||
|
|
|||
|
|
|||
|
;MEDIUM
|
|||
|
TM_PWK_UP:
|
|||
|
.LONG gb12w1a
|
|||
|
.WORD FLIPBITS|04,0
|
|||
|
.LONG gb12w2a
|
|||
|
.WORD 04
|
|||
|
.LONG gb12w3a
|
|||
|
.WORD 04
|
|||
|
.LONG gb12w4a
|
|||
|
.WORD 04
|
|||
|
.LONG gb12w5a
|
|||
|
.WORD 04
|
|||
|
.LONG gb12w6a
|
|||
|
.WORD 04
|
|||
|
.LONG gb12w7a
|
|||
|
.WORD 04
|
|||
|
.LONG 0
|
|||
|
TM_PWK_DN:
|
|||
|
.LONG gb6w1a
|
|||
|
.WORD FLIPBITS|04,0
|
|||
|
.LONG gb6w2a
|
|||
|
.WORD 04
|
|||
|
.LONG gb6w3a
|
|||
|
.WORD 04
|
|||
|
.LONG gb6w4a
|
|||
|
.WORD 04
|
|||
|
.LONG gb6w5a
|
|||
|
.WORD 04
|
|||
|
.LONG gb6w6a
|
|||
|
.WORD 04
|
|||
|
.LONG gb6w7a
|
|||
|
.WORD 04
|
|||
|
.LONG 0
|
|||
|
TM_PWK_RGT:
|
|||
|
.LONG gb9w1a
|
|||
|
.WORD FLIPBITS|04,(M_FLIPH)
|
|||
|
.LONG gb9w2a
|
|||
|
.WORD 04
|
|||
|
.LONG gb9w3a
|
|||
|
.WORD 04
|
|||
|
.LONG gb9w4a
|
|||
|
.WORD 04
|
|||
|
.LONG gb9w5a
|
|||
|
.WORD 04
|
|||
|
.LONG gb9w6a
|
|||
|
.WORD 04
|
|||
|
.LONG gb9w7a
|
|||
|
.WORD 04
|
|||
|
.LONG 0
|
|||
|
TM_PWK_LFT:
|
|||
|
.LONG gb9w1a
|
|||
|
.WORD FLIPBITS|04,0
|
|||
|
.LONG gb9w2a
|
|||
|
.WORD 04
|
|||
|
.LONG gb9w3a
|
|||
|
.WORD 04
|
|||
|
.LONG gb9w4a
|
|||
|
.WORD 04
|
|||
|
.LONG gb9w5a
|
|||
|
.WORD 04
|
|||
|
.LONG gb9w6a
|
|||
|
.WORD 04
|
|||
|
.LONG gb9w7a
|
|||
|
.WORD 04
|
|||
|
.LONG 0
|
|||
|
|
|||
|
TM_PWK_UPRGT:
|
|||
|
.LONG gb10w1a
|
|||
|
.WORD FLIPBITS|04,(M_FLIPH)
|
|||
|
.LONG gb10w2a
|
|||
|
.WORD 04
|
|||
|
.LONG gb10w3a
|
|||
|
.WORD 04
|
|||
|
.LONG gb10w4a
|
|||
|
.WORD 04
|
|||
|
.LONG gb10w5a
|
|||
|
.WORD 04
|
|||
|
.LONG gb10w6a
|
|||
|
.WORD 04
|
|||
|
.LONG gb10w7a
|
|||
|
.WORD 04
|
|||
|
.LONG 0
|
|||
|
|
|||
|
TM_PWK_DNLFT:
|
|||
|
.LONG gb8w1a
|
|||
|
.WORD FLIPBITS|04,0
|
|||
|
.LONG gb8w2a
|
|||
|
.WORD 04
|
|||
|
.LONG gb8w3a
|
|||
|
.WORD 04
|
|||
|
.LONG gb8w4a
|
|||
|
.WORD 04
|
|||
|
.LONG gb8w5a
|
|||
|
.WORD 04
|
|||
|
.LONG gb8w6a
|
|||
|
.WORD 04
|
|||
|
.LONG gb8w7a
|
|||
|
.WORD 04
|
|||
|
.LONG 0
|
|||
|
TM_PWK_UPLFT:
|
|||
|
.LONG gb10w1a
|
|||
|
.WORD FLIPBITS|04,0
|
|||
|
.LONG gb10w2a
|
|||
|
.WORD 04
|
|||
|
.LONG gb10w3a
|
|||
|
.WORD 04
|
|||
|
.LONG gb10w4a
|
|||
|
.WORD 04
|
|||
|
.LONG gb10w5a
|
|||
|
.WORD 04
|
|||
|
.LONG gb10w6a
|
|||
|
.WORD 04
|
|||
|
.LONG gb10w7a
|
|||
|
.WORD 04
|
|||
|
.LONG 0
|
|||
|
TM_PWK_DNRGT:
|
|||
|
.LONG gb8w1a
|
|||
|
.WORD FLIPBITS|04,(M_FLIPH)
|
|||
|
.LONG gb8w2a
|
|||
|
.WORD 04
|
|||
|
.LONG gb8w3a
|
|||
|
.WORD 04
|
|||
|
.LONG gb8w4a
|
|||
|
.WORD 04
|
|||
|
.LONG gb8w5a
|
|||
|
.WORD 04
|
|||
|
.LONG gb8w6a
|
|||
|
.WORD 04
|
|||
|
.LONG gb8w7a
|
|||
|
.WORD 04
|
|||
|
.LONG 0
|
|||
|
; FAST
|
|||
|
TF_PWK_UP:
|
|||
|
.LONG gb12w1a
|
|||
|
.WORD FLIPBITS|03,0
|
|||
|
.LONG gb12w2a
|
|||
|
.WORD 03
|
|||
|
.LONG gb12w3a
|
|||
|
.WORD 03
|
|||
|
.LONG gb12w4a
|
|||
|
.WORD 03
|
|||
|
.LONG gb12w5a
|
|||
|
.WORD 03
|
|||
|
.LONG gb12w6a
|
|||
|
.WORD 03
|
|||
|
.LONG gb12w7a
|
|||
|
.WORD 03
|
|||
|
.LONG 0
|
|||
|
TF_PWK_DN:
|
|||
|
.LONG gb6w1a
|
|||
|
.WORD FLIPBITS|03,0
|
|||
|
.LONG gb6w2a
|
|||
|
.WORD 03
|
|||
|
.LONG gb6w3a
|
|||
|
.WORD 03
|
|||
|
.LONG gb6w4a
|
|||
|
.WORD 03
|
|||
|
.LONG gb6w5a
|
|||
|
.WORD 03
|
|||
|
.LONG gb6w6a
|
|||
|
.WORD 03
|
|||
|
.LONG gb6w7a
|
|||
|
.WORD 03
|
|||
|
.LONG 0
|
|||
|
TF_PWK_RGT:
|
|||
|
.LONG gb9w1a
|
|||
|
.WORD FLIPBITS|03,(M_FLIPH)
|
|||
|
.LONG gb9w2a
|
|||
|
.WORD 03
|
|||
|
.LONG gb9w3a
|
|||
|
.WORD 03
|
|||
|
.LONG gb9w4a
|
|||
|
.WORD 03
|
|||
|
.LONG gb9w5a
|
|||
|
.WORD 03
|
|||
|
.LONG gb9w6a
|
|||
|
.WORD 03
|
|||
|
.LONG gb9w7a
|
|||
|
.WORD 03
|
|||
|
.LONG 0
|
|||
|
TF_PWK_LFT:
|
|||
|
.LONG gb9w1a
|
|||
|
.WORD FLIPBITS|03,0
|
|||
|
.LONG gb9w2a
|
|||
|
.WORD 03
|
|||
|
.LONG gb9w3a
|
|||
|
.WORD 03
|
|||
|
.LONG gb9w4a
|
|||
|
.WORD 03
|
|||
|
.LONG gb9w5a
|
|||
|
.WORD 03
|
|||
|
.LONG gb9w6a
|
|||
|
.WORD 03
|
|||
|
.LONG gb9w7a
|
|||
|
.WORD 03
|
|||
|
.LONG 0
|
|||
|
|
|||
|
TF_PWK_UPRGT:
|
|||
|
.LONG gb10w1a
|
|||
|
.WORD FLIPBITS|03,(M_FLIPH)
|
|||
|
.LONG gb10w2a
|
|||
|
.WORD 03
|
|||
|
.LONG gb10w3a
|
|||
|
.WORD 03
|
|||
|
.LONG gb10w4a
|
|||
|
.WORD 03
|
|||
|
.LONG gb10w5a
|
|||
|
.WORD 03
|
|||
|
.LONG gb10w6a
|
|||
|
.WORD 03
|
|||
|
.LONG gb10w7a
|
|||
|
.WORD 03
|
|||
|
.LONG 0
|
|||
|
|
|||
|
TF_PWK_DNLFT:
|
|||
|
.LONG gb8w1a
|
|||
|
.WORD FLIPBITS|03,0
|
|||
|
.LONG gb8w2a
|
|||
|
.WORD 03
|
|||
|
.LONG gb8w3a
|
|||
|
.WORD 03
|
|||
|
.LONG gb8w4a
|
|||
|
.WORD 03
|
|||
|
.LONG gb8w5a
|
|||
|
.WORD 03
|
|||
|
.LONG gb8w6a
|
|||
|
.WORD 03
|
|||
|
.LONG gb8w7a
|
|||
|
.WORD 03
|
|||
|
.LONG 0
|
|||
|
TF_PWK_UPLFT:
|
|||
|
.LONG gb10w1a
|
|||
|
.WORD FLIPBITS|03,0
|
|||
|
.LONG gb10w2a
|
|||
|
.WORD 03
|
|||
|
.LONG gb10w3a
|
|||
|
.WORD 03
|
|||
|
.LONG gb10w4a
|
|||
|
.WORD 03
|
|||
|
.LONG gb10w5a
|
|||
|
.WORD 03
|
|||
|
.LONG gb10w6a
|
|||
|
.WORD 03
|
|||
|
.LONG gb10w7a
|
|||
|
.WORD 03
|
|||
|
.LONG 0
|
|||
|
TF_PWK_DNRGT:
|
|||
|
.LONG gb8w1a
|
|||
|
.WORD FLIPBITS|03,(M_FLIPH)
|
|||
|
.LONG gb8w2a
|
|||
|
.WORD 03
|
|||
|
.LONG gb8w3a
|
|||
|
.WORD 03
|
|||
|
.LONG gb8w4a
|
|||
|
.WORD 03
|
|||
|
.LONG gb8w5a
|
|||
|
.WORD 03
|
|||
|
.LONG gb8w6a
|
|||
|
.WORD 03
|
|||
|
.LONG gb8w7a
|
|||
|
.WORD 03
|
|||
|
.LONG 0
|
|||
|
;SNAKE GRUNT TABLES
|
|||
|
T2_PWK_UP:
|
|||
|
.LONG SNG12A
|
|||
|
.WORD FLIPBITS|06,0
|
|||
|
.LONG SNG12B
|
|||
|
.WORD 06
|
|||
|
.LONG SNG12C
|
|||
|
.WORD 06
|
|||
|
.LONG SNG12D
|
|||
|
.WORD 06
|
|||
|
.LONG SNG12E
|
|||
|
.WORD 06
|
|||
|
.LONG SNG12F
|
|||
|
.WORD 06
|
|||
|
.LONG SNG12G
|
|||
|
.WORD 06
|
|||
|
.LONG 0
|
|||
|
T2_PWK_DN:
|
|||
|
.LONG SNG6A
|
|||
|
.WORD FLIPBITS|06,0
|
|||
|
.LONG SNG6B
|
|||
|
.WORD 06
|
|||
|
.LONG SNG6C
|
|||
|
.WORD 06
|
|||
|
.LONG SNG6D
|
|||
|
.WORD 06
|
|||
|
.LONG SNG6E
|
|||
|
.WORD 06
|
|||
|
.LONG SNG6F
|
|||
|
.WORD 06
|
|||
|
.LONG SNG6G
|
|||
|
.WORD 06
|
|||
|
.LONG 0
|
|||
|
T2_PWK_RGT:
|
|||
|
.LONG SNG9A
|
|||
|
.WORD FLIPBITS|06,(M_FLIPH)
|
|||
|
.LONG SNG9B
|
|||
|
.WORD 06
|
|||
|
.LONG SNG9C
|
|||
|
.WORD 06
|
|||
|
.LONG SNG9D
|
|||
|
.WORD 06
|
|||
|
.LONG SNG9E
|
|||
|
.WORD 06
|
|||
|
.LONG SNG9F
|
|||
|
.WORD 06
|
|||
|
.LONG SNG9G
|
|||
|
.WORD 06
|
|||
|
.LONG 0
|
|||
|
T2_PWK_LFT:
|
|||
|
.LONG SNG9A
|
|||
|
.WORD FLIPBITS|06,0
|
|||
|
.LONG SNG9B
|
|||
|
.WORD 06
|
|||
|
.LONG SNG9C
|
|||
|
.WORD 06
|
|||
|
.LONG SNG9D
|
|||
|
.WORD 06
|
|||
|
.LONG SNG9E
|
|||
|
.WORD 06
|
|||
|
.LONG SNG9F
|
|||
|
.WORD 06
|
|||
|
.LONG SNG9G
|
|||
|
.WORD 06
|
|||
|
.LONG 0
|
|||
|
|
|||
|
T2_PWK_UPRGT:
|
|||
|
.LONG SNG10A
|
|||
|
.WORD FLIPBITS|06,(M_FLIPH)
|
|||
|
.LONG SNG10B
|
|||
|
.WORD 06
|
|||
|
.LONG SNG10C
|
|||
|
.WORD 06
|
|||
|
.LONG SNG10D
|
|||
|
.WORD 06
|
|||
|
.LONG SNG10E
|
|||
|
.WORD 06
|
|||
|
.LONG SNG10F
|
|||
|
.WORD 06
|
|||
|
.LONG SNG10G
|
|||
|
.WORD 06
|
|||
|
.LONG 0
|
|||
|
|
|||
|
T2_PWK_DNLFT:
|
|||
|
.LONG SNG8A
|
|||
|
.WORD FLIPBITS|06,0
|
|||
|
.LONG SNG8B
|
|||
|
.WORD 06
|
|||
|
.LONG SNG8C
|
|||
|
.WORD 06
|
|||
|
.LONG SNG8D
|
|||
|
.WORD 06
|
|||
|
.LONG SNG8E
|
|||
|
.WORD 06
|
|||
|
.LONG SNG8F
|
|||
|
.WORD 06
|
|||
|
.LONG SNG8G
|
|||
|
.WORD 06
|
|||
|
.LONG 0
|
|||
|
T2_PWK_UPLFT:
|
|||
|
.LONG SNG10A
|
|||
|
.WORD FLIPBITS|06,0
|
|||
|
.LONG SNG10B
|
|||
|
.WORD 06
|
|||
|
.LONG SNG10C
|
|||
|
.WORD 06
|
|||
|
.LONG SNG10D
|
|||
|
.WORD 06
|
|||
|
.LONG SNG10E
|
|||
|
.WORD 06
|
|||
|
.LONG SNG10F
|
|||
|
.WORD 06
|
|||
|
.LONG SNG10G
|
|||
|
.WORD 06
|
|||
|
.LONG 0
|
|||
|
T2_PWK_DNRGT:
|
|||
|
.LONG SNG8A
|
|||
|
.WORD FLIPBITS|06,(M_FLIPH)
|
|||
|
.LONG SNG8B
|
|||
|
.WORD 06
|
|||
|
.LONG SNG8C
|
|||
|
.WORD 06
|
|||
|
.LONG SNG8D
|
|||
|
.WORD 06
|
|||
|
.LONG SNG8E
|
|||
|
.WORD 06
|
|||
|
.LONG SNG8F
|
|||
|
.WORD 06
|
|||
|
.LONG SNG8G
|
|||
|
.WORD 06
|
|||
|
.LONG 0
|
|||
|
|
|||
|
|
|||
|
;MEDIUM
|
|||
|
T2M_PWK_UP:
|
|||
|
.LONG SNG12A
|
|||
|
.WORD FLIPBITS|05,0
|
|||
|
.LONG SNG12B
|
|||
|
.WORD 05
|
|||
|
.LONG SNG12C
|
|||
|
.WORD 05
|
|||
|
.LONG SNG12D
|
|||
|
.WORD 05
|
|||
|
.LONG SNG12E
|
|||
|
.WORD 05
|
|||
|
.LONG SNG12F
|
|||
|
.WORD 05
|
|||
|
.LONG SNG12G
|
|||
|
.WORD 05
|
|||
|
.LONG 0
|
|||
|
T2M_PWK_DN:
|
|||
|
.LONG SNG6A
|
|||
|
.WORD FLIPBITS|05,0
|
|||
|
.LONG SNG6B
|
|||
|
.WORD 05
|
|||
|
.LONG SNG6C
|
|||
|
.WORD 05
|
|||
|
.LONG SNG6D
|
|||
|
.WORD 05
|
|||
|
.LONG SNG6E
|
|||
|
.WORD 05
|
|||
|
.LONG SNG6F
|
|||
|
.WORD 05
|
|||
|
.LONG SNG6G
|
|||
|
.WORD 05
|
|||
|
.LONG 0
|
|||
|
T2M_PWK_RGT:
|
|||
|
.LONG SNG9A
|
|||
|
.WORD FLIPBITS|05,(M_FLIPH)
|
|||
|
.LONG SNG9B
|
|||
|
.WORD 05
|
|||
|
.LONG SNG9C
|
|||
|
.WORD 05
|
|||
|
.LONG SNG9D
|
|||
|
.WORD 05
|
|||
|
.LONG SNG9E
|
|||
|
.WORD 05
|
|||
|
.LONG SNG9F
|
|||
|
.WORD 05
|
|||
|
.LONG SNG9G
|
|||
|
.WORD 05
|
|||
|
.LONG 0
|
|||
|
T2M_PWK_LFT:
|
|||
|
.LONG SNG9A
|
|||
|
.WORD FLIPBITS|05,0
|
|||
|
.LONG SNG9B
|
|||
|
.WORD 05
|
|||
|
.LONG SNG9C
|
|||
|
.WORD 05
|
|||
|
.LONG SNG9D
|
|||
|
.WORD 05
|
|||
|
.LONG SNG9E
|
|||
|
.WORD 05
|
|||
|
.LONG SNG9F
|
|||
|
.WORD 05
|
|||
|
.LONG SNG9G
|
|||
|
.WORD 05
|
|||
|
.LONG 0
|
|||
|
|
|||
|
T2M_PWK_UPRGT:
|
|||
|
.LONG SNG10A
|
|||
|
.WORD FLIPBITS|05,(M_FLIPH)
|
|||
|
.LONG SNG10B
|
|||
|
.WORD 05
|
|||
|
.LONG SNG10C
|
|||
|
.WORD 05
|
|||
|
.LONG SNG10D
|
|||
|
.WORD 05
|
|||
|
.LONG SNG10E
|
|||
|
.WORD 05
|
|||
|
.LONG SNG10F
|
|||
|
.WORD 05
|
|||
|
.LONG SNG10G
|
|||
|
.WORD 05
|
|||
|
.LONG 0
|
|||
|
|
|||
|
T2M_PWK_DNLFT:
|
|||
|
.LONG SNG8A
|
|||
|
.WORD FLIPBITS|05,0
|
|||
|
.LONG SNG8B
|
|||
|
.WORD 05
|
|||
|
.LONG SNG8C
|
|||
|
.WORD 05
|
|||
|
.LONG SNG8D
|
|||
|
.WORD 05
|
|||
|
.LONG SNG8E
|
|||
|
.WORD 05
|
|||
|
.LONG SNG8F
|
|||
|
.WORD 05
|
|||
|
.LONG SNG8G
|
|||
|
.WORD 05
|
|||
|
.LONG 0
|
|||
|
T2M_PWK_UPLFT:
|
|||
|
.LONG SNG10A
|
|||
|
.WORD FLIPBITS|05,0
|
|||
|
.LONG SNG10B
|
|||
|
.WORD 05
|
|||
|
.LONG SNG10C
|
|||
|
.WORD 05
|
|||
|
.LONG SNG10D
|
|||
|
.WORD 05
|
|||
|
.LONG SNG10E
|
|||
|
.WORD 05
|
|||
|
.LONG SNG10F
|
|||
|
.WORD 05
|
|||
|
.LONG SNG10G
|
|||
|
.WORD 05
|
|||
|
.LONG 0
|
|||
|
T2M_PWK_DNRGT:
|
|||
|
.LONG SNG8A
|
|||
|
.WORD FLIPBITS|05,(M_FLIPH)
|
|||
|
.LONG SNG8B
|
|||
|
.WORD 05
|
|||
|
.LONG SNG8C
|
|||
|
.WORD 05
|
|||
|
.LONG SNG8D
|
|||
|
.WORD 05
|
|||
|
.LONG SNG8E
|
|||
|
.WORD 05
|
|||
|
.LONG SNG8F
|
|||
|
.WORD 05
|
|||
|
.LONG SNG8G
|
|||
|
.WORD 05
|
|||
|
.LONG 0
|
|||
|
; FAST
|
|||
|
T2F_PWK_UP:
|
|||
|
.LONG SNG12A
|
|||
|
.WORD FLIPBITS|04,0
|
|||
|
.LONG SNG12B
|
|||
|
.WORD 04
|
|||
|
.LONG SNG12C
|
|||
|
.WORD 04
|
|||
|
.LONG SNG12D
|
|||
|
.WORD 04
|
|||
|
.LONG SNG12E
|
|||
|
.WORD 04
|
|||
|
.LONG SNG12F
|
|||
|
.WORD 04
|
|||
|
.LONG SNG12G
|
|||
|
.WORD 04
|
|||
|
.LONG 0
|
|||
|
T2F_PWK_DN:
|
|||
|
.LONG SNG6A
|
|||
|
.WORD FLIPBITS|04,0
|
|||
|
.LONG SNG6B
|
|||
|
.WORD 04
|
|||
|
.LONG SNG6C
|
|||
|
.WORD 04
|
|||
|
.LONG SNG6D
|
|||
|
.WORD 04
|
|||
|
.LONG SNG6E
|
|||
|
.WORD 04
|
|||
|
.LONG SNG6F
|
|||
|
.WORD 04
|
|||
|
.LONG SNG6G
|
|||
|
.WORD 04
|
|||
|
.LONG 0
|
|||
|
T2F_PWK_RGT:
|
|||
|
.LONG SNG9A
|
|||
|
.WORD FLIPBITS|04,(M_FLIPH)
|
|||
|
.LONG SNG9B
|
|||
|
.WORD 04
|
|||
|
.LONG SNG9C
|
|||
|
.WORD 04
|
|||
|
.LONG SNG9D
|
|||
|
.WORD 04
|
|||
|
.LONG SNG9E
|
|||
|
.WORD 04
|
|||
|
.LONG SNG9F
|
|||
|
.WORD 04
|
|||
|
.LONG SNG9G
|
|||
|
.WORD 04
|
|||
|
.LONG 0
|
|||
|
T2F_PWK_LFT:
|
|||
|
.LONG SNG9A
|
|||
|
.WORD FLIPBITS|04,0
|
|||
|
.LONG SNG9B
|
|||
|
.WORD 04
|
|||
|
.LONG SNG9C
|
|||
|
.WORD 04
|
|||
|
.LONG SNG9D
|
|||
|
.WORD 04
|
|||
|
.LONG SNG9E
|
|||
|
.WORD 04
|
|||
|
.LONG SNG9F
|
|||
|
.WORD 04
|
|||
|
.LONG SNG9G
|
|||
|
.WORD 04
|
|||
|
.LONG 0
|
|||
|
|
|||
|
T2F_PWK_UPRGT:
|
|||
|
.LONG SNG10A
|
|||
|
.WORD FLIPBITS|04,(M_FLIPH)
|
|||
|
.LONG SNG10B
|
|||
|
.WORD 04
|
|||
|
.LONG SNG10C
|
|||
|
.WORD 04
|
|||
|
.LONG SNG10D
|
|||
|
.WORD 04
|
|||
|
.LONG SNG10E
|
|||
|
.WORD 04
|
|||
|
.LONG SNG10F
|
|||
|
.WORD 04
|
|||
|
.LONG SNG10G
|
|||
|
.WORD 04
|
|||
|
.LONG 0
|
|||
|
T2F_PWK_DNLFT:
|
|||
|
.LONG SNG8A
|
|||
|
.WORD FLIPBITS|04,0
|
|||
|
.LONG SNG8B
|
|||
|
.WORD 04
|
|||
|
.LONG SNG8C
|
|||
|
.WORD 04
|
|||
|
.LONG SNG8D
|
|||
|
.WORD 04
|
|||
|
.LONG SNG8E
|
|||
|
.WORD 04
|
|||
|
.LONG SNG8F
|
|||
|
.WORD 04
|
|||
|
.LONG SNG8G
|
|||
|
.WORD 04
|
|||
|
.LONG 0
|
|||
|
T2F_PWK_UPLFT:
|
|||
|
.LONG SNG10A
|
|||
|
.WORD FLIPBITS|04,0
|
|||
|
.LONG SNG10B
|
|||
|
.WORD 04
|
|||
|
.LONG SNG10C
|
|||
|
.WORD 04
|
|||
|
.LONG SNG10D
|
|||
|
.WORD 04
|
|||
|
.LONG SNG10E
|
|||
|
.WORD 04
|
|||
|
.LONG SNG10F
|
|||
|
.WORD 04
|
|||
|
.LONG SNG10G
|
|||
|
.WORD 04
|
|||
|
.LONG 0
|
|||
|
T2F_PWK_DNRGT:
|
|||
|
.LONG SNG8A
|
|||
|
.WORD FLIPBITS|04,(M_FLIPH)
|
|||
|
.LONG SNG8B
|
|||
|
.WORD 04
|
|||
|
.LONG SNG8C
|
|||
|
.WORD 04
|
|||
|
.LONG SNG8D
|
|||
|
.WORD 04
|
|||
|
.LONG SNG8E
|
|||
|
.WORD 04
|
|||
|
.LONG SNG8F
|
|||
|
.WORD 04
|
|||
|
.LONG SNG8G
|
|||
|
.WORD 04
|
|||
|
.LONG 0
|
|||
|
|
|||
|
BAT8O .LONG SWING1
|
|||
|
.WORD FLIPBITS|4,0
|
|||
|
.LONG SWING2
|
|||
|
.WORD 4
|
|||
|
.LONG SWING3
|
|||
|
.WORD 4
|
|||
|
.LONG SWING4
|
|||
|
.WORD 4
|
|||
|
.LONG SWING3
|
|||
|
.WORD 4
|
|||
|
.LONG SWING2
|
|||
|
.WORD 4
|
|||
|
.LONG SWING1
|
|||
|
.WORD 4
|
|||
|
.LONG SWING5
|
|||
|
.WORD 4
|
|||
|
.LONG SWING6
|
|||
|
.WORD 4
|
|||
|
.LONG SWING7
|
|||
|
.WORD 4
|
|||
|
.LONG SWING6
|
|||
|
.WORD 4
|
|||
|
.LONG SWING5
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
|
|||
|
BAT8OS .LONG S8ATKA
|
|||
|
.WORD FLIPBITS|4,0
|
|||
|
.LONG S8ATKB
|
|||
|
.WORD 4
|
|||
|
.LONG S8ATKC
|
|||
|
.WORD 4
|
|||
|
.LONG S8ATKB
|
|||
|
.WORD 4
|
|||
|
.LONG S8ATKA
|
|||
|
.WORD 4
|
|||
|
.LONG S8ATKB
|
|||
|
.WORD 4
|
|||
|
.LONG S8ATKC
|
|||
|
.WORD 4
|
|||
|
.LONG S8ATKB
|
|||
|
.WORD 4
|
|||
|
.LONG S8ATKA
|
|||
|
.WORD 4
|
|||
|
.LONG S8ATKB
|
|||
|
.WORD 4
|
|||
|
.LONG S8ATKC
|
|||
|
.WORD 4
|
|||
|
.LONG S8ATKB
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
|
|||
|
BAT4O .LONG SWING1
|
|||
|
.WORD FLIPBITS|4,(M_FLIPH)
|
|||
|
.LONG SWING2
|
|||
|
.WORD 4
|
|||
|
.LONG SWING3
|
|||
|
.WORD 4
|
|||
|
.LONG SWING4
|
|||
|
.WORD 4
|
|||
|
.LONG SWING3
|
|||
|
.WORD 4
|
|||
|
.LONG SWING2
|
|||
|
.WORD 4
|
|||
|
.LONG SWING1
|
|||
|
.WORD 4
|
|||
|
.LONG SWING5
|
|||
|
.WORD 4
|
|||
|
.LONG SWING6
|
|||
|
.WORD 4
|
|||
|
.LONG SWING7
|
|||
|
.WORD 4
|
|||
|
.LONG SWING6
|
|||
|
.WORD 4
|
|||
|
.LONG SWING5
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
|
|||
|
BAT4OS .LONG S8ATKA
|
|||
|
.WORD FLIPBITS|6,(M_FLIPH)
|
|||
|
.LONG S8ATKB
|
|||
|
.WORD 4
|
|||
|
.LONG S8ATKC
|
|||
|
.WORD 4
|
|||
|
.LONG S8ATKB
|
|||
|
.WORD 4
|
|||
|
.LONG S8ATKA
|
|||
|
.WORD 6
|
|||
|
.LONG S8ATKB
|
|||
|
.WORD 4
|
|||
|
.LONG S8ATKC
|
|||
|
.WORD 4
|
|||
|
.LONG S8ATKB
|
|||
|
.WORD 4
|
|||
|
.LONG S8ATKA
|
|||
|
.WORD 6
|
|||
|
.LONG S8ATKB
|
|||
|
.WORD 4
|
|||
|
.LONG S8ATKC
|
|||
|
.WORD 4
|
|||
|
.LONG S8ATKB
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
|
|||
|
|
|||
|
|
|||
|
BAT10O .LONG BAT2
|
|||
|
.WORD FLIPBITS|4,0
|
|||
|
.LONG BAT3
|
|||
|
.WORD 4
|
|||
|
.LONG BAT4
|
|||
|
.WORD 4
|
|||
|
.LONG BAT5
|
|||
|
.WORD 4
|
|||
|
.LONG BAT6
|
|||
|
.WORD 4
|
|||
|
.LONG BAT5
|
|||
|
.WORD 4
|
|||
|
.LONG BAT4
|
|||
|
.WORD 4
|
|||
|
.LONG BAT3
|
|||
|
.WORD 4
|
|||
|
.LONG BAT2
|
|||
|
.WORD 4
|
|||
|
.LONG BAT8
|
|||
|
.WORD 4
|
|||
|
.LONG BAT2
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
BAT10OS .LONG S10ATKA
|
|||
|
.WORD FLIPBITS|4,0
|
|||
|
.LONG S10ATKB
|
|||
|
.WORD 4
|
|||
|
.LONG S10ATKC
|
|||
|
.WORD 4
|
|||
|
.LONG S10ATKD
|
|||
|
.WORD 4
|
|||
|
.LONG S10ATKE
|
|||
|
.WORD 6
|
|||
|
.LONG S10ATKD
|
|||
|
.WORD 4
|
|||
|
.LONG S10ATKC
|
|||
|
.WORD 4
|
|||
|
.LONG S10ATKB
|
|||
|
.WORD 4
|
|||
|
.LONG S10ATKA
|
|||
|
.WORD 4
|
|||
|
.LONG S10ATKB
|
|||
|
.WORD 4
|
|||
|
.LONG S10ATKC
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
|
|||
|
BAT2O .LONG BAT2
|
|||
|
.WORD FLIPBITS|4,(M_FLIPH)
|
|||
|
.LONG BAT3
|
|||
|
.WORD 4
|
|||
|
.LONG BAT4
|
|||
|
.WORD 4
|
|||
|
.LONG BAT5
|
|||
|
.WORD 4
|
|||
|
.LONG BAT6
|
|||
|
.WORD 4
|
|||
|
.LONG BAT5
|
|||
|
.WORD 4
|
|||
|
.LONG BAT4
|
|||
|
.WORD 4
|
|||
|
.LONG BAT3
|
|||
|
.WORD 4
|
|||
|
.LONG BAT2
|
|||
|
.WORD 4
|
|||
|
.LONG BAT8
|
|||
|
.WORD 4
|
|||
|
.LONG BAT2
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
BAT2OS .LONG S10ATKA
|
|||
|
.WORD FLIPBITS|4,(M_FLIPH)
|
|||
|
.LONG S10ATKB
|
|||
|
.WORD 4
|
|||
|
.LONG S10ATKC
|
|||
|
.WORD 4
|
|||
|
.LONG S10ATKD
|
|||
|
.WORD 4
|
|||
|
.LONG S10ATKE
|
|||
|
.WORD 4
|
|||
|
.LONG S10ATKD
|
|||
|
.WORD 4
|
|||
|
.LONG S10ATKC
|
|||
|
.WORD 4
|
|||
|
.LONG S10ATKB
|
|||
|
.WORD 4
|
|||
|
.LONG S10ATKA
|
|||
|
.WORD 4
|
|||
|
.LONG S10ATKB
|
|||
|
.WORD 4
|
|||
|
.LONG S10ATKC
|
|||
|
.WORD 4
|
|||
|
.LONG 0
|
|||
|
|
|||
|
|
|||
|
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
|
|||
|
|
|||
|
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
|
|||
|
BOOM2Z:
|
|||
|
.LONG EXPb1
|
|||
|
.WORD 2
|
|||
|
.LONG EXPb2
|
|||
|
.WORD 2
|
|||
|
.LONG EXPb3
|
|||
|
.WORD 2
|
|||
|
.LONG EXPb4
|
|||
|
.WORD 2
|
|||
|
.LONG EXPb5
|
|||
|
.WORD 2
|
|||
|
.LONG EXPb6
|
|||
|
.WORD 2
|
|||
|
.LONG EXPb7
|
|||
|
.WORD 3
|
|||
|
.LONG EXPb8
|
|||
|
.WORD 3
|
|||
|
.LONG EXPb9
|
|||
|
.WORD 3
|
|||
|
.LONG 0
|
|||
|
BOOM2A:
|
|||
|
.LONG EXPb1
|
|||
|
.WORD 4
|
|||
|
.LONG EXPb2
|
|||
|
.WORD 3
|
|||
|
.LONG EXPb3
|
|||
|
.WORD NEWPALET|4
|
|||
|
.LONG BULLET
|
|||
|
.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
|
|||
|
BOOM3:
|
|||
|
.LONG EXPb1
|
|||
|
.WORD NEWPALET|4
|
|||
|
.LONG BULLET
|
|||
|
.LONG EXPb2
|
|||
|
.WORD 4
|
|||
|
.LONG EXPb3
|
|||
|
.WORD 5
|
|||
|
.LONG EXPb4
|
|||
|
.WORD 5
|
|||
|
.LONG EXPb5
|
|||
|
.WORD 5
|
|||
|
.LONG EXPb6
|
|||
|
.WORD 5
|
|||
|
.LONG EXPb7
|
|||
|
.WORD 5
|
|||
|
.LONG EXPb8
|
|||
|
.WORD 5
|
|||
|
.LONG EXPb9
|
|||
|
.WORD 5
|
|||
|
.LONG 0
|
|||
|
|
|||
|
.END
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|