6279 lines
110 KiB
NASM
6279 lines
110 KiB
NASM
.FILE 'NEWHULK.ASM'
|
||
.TITLE 'TOTAL CARNAGE GAME PROGRAM'
|
||
.WIDTH 132
|
||
.OPTION B,D,L,T
|
||
.MNOLIST
|
||
|
||
;
|
||
; INITIATED: NOV 6,1990
|
||
; 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\gsp.inc"
|
||
.INCLUDE "\VIDEO\SYS\MACROS.HDR" ;MACROS DEFINITIONS
|
||
.INCLUDE "IMGTBL.GLO"
|
||
.INCLUDE "GAME.EQU"
|
||
.INCLUDE "FINGRNT.TBL"
|
||
|
||
;
|
||
;SOUNDS EXTERNAL
|
||
;
|
||
.REF EXP2,GRNTSHT,EXP4,ALTEXP1,EXP1L,TORCH,GUYDI,HELP
|
||
;
|
||
;SYMBOLS EXTERNALLY DEFINED
|
||
;
|
||
.REF INST_WARP
|
||
.REF HSTGS_LOST,JEPCYC,AOF,RNDRNG0
|
||
.REF SETC2,STRT_G,STRT_D,CRSRAM,ICONS_DN,HZSPD
|
||
.REF TARGET
|
||
.REF START_SKIP,SEND_ICON
|
||
.REF WAVE_RAM,EHALT,GETANIX,GETFPAL,PLYROBJS,PLYRPRCS,OUT_FLG
|
||
.REF P1DATA,P2DATA,RANDPER,FRANIM,RANGRAND,HALT,SCRADD2,PCTOT
|
||
.REF ENEMY_RECT,RANDOM,TAKEEL,SCRTST,XBOOM2,WAVE,DOLORD,ENDWV
|
||
.REF CHUNK_OBJ,PCNT,START_PJ2,FLASHME,ONARRW
|
||
.REF PUSHME,DO_PUNISH,HSTGSET,OBJON,OBJOFF,FAKET,EXPCNT,BTR60A
|
||
.REF ONE_FND,FND_CNT,MAXFND,WAITTNT,GOBACK,CLNPAL
|
||
;
|
||
;SYMBOLS DEFINED IN THIS FILE
|
||
;
|
||
.DEF ENRECT13,ENRECT14,SPAWN_RUNNR,ERECT13,LHLPS
|
||
.DEF ERECT11,ENRECT11,CRT_AHMD,SPAWN_FND,SPAWN_SKIPR,ENRECT12
|
||
.DEF SEND_GROUP,SPAWN_HULKS,BAT_PLYR,KILL_HULK,KILL_H1,FRANIM_DIE
|
||
.DEF ERECT1,MAXHULK,HULK_CNT,ENRECT1,EN_CURRENT,ERECT2,HULK_DN
|
||
.DEF ERECT3,ENRECT3,ENRECT4,ERECT4,SENDH_TOP,SENDH_GROUP,INTO
|
||
.DEF DO_DIFF2,SPINFLGS,BOOM3,KILL_HULKZ,ERECT5,ENRECT5,JUMPER
|
||
.DEF ERECT7,ERECT8,BLSTS,ERECT10,ENRECT10,SPAWN_AHMD,ERECT12,SHULK
|
||
.DEF SOLDR,SOLDRD,SOLDRDL,INTO12,MAXAHMD,AHMD_CNT,SITLST,ANI_STEEL
|
||
.DEF JUMPXY,JUMPXY2,GET_WVADDR,BOOM2,PBLSTS
|
||
.DEF KILL_AHMDZ,KILL_AHMD,I_FLM,HTYPE
|
||
.DEF SKIPR_DN,SKIPR_CNT,MAXSKPR,SHSTG
|
||
******************JARV PATCH
|
||
.DEF DOIT
|
||
*******************************************
|
||
;
|
||
;UNINITIALIZED RAM DEFINITIONS
|
||
;
|
||
.BSS HULK_DN,16
|
||
.BSS AHMD_CNT,16 ;TOTAL AHMEDS ON SCREEN
|
||
.BSS MAXHULK,16
|
||
.BSS MAXAHMD,16
|
||
.BSS JUMPER,16
|
||
.BSS JUMPXY,16
|
||
.BSS JUMPXY2,16
|
||
.BSS EN_CURRENT,32 ;COLLISION RECTANGLES
|
||
.BSS SITLST,32 ;FOR AHMED SITTING SPOTS
|
||
.BSS HTYPE,16
|
||
; .BSS KILLER,32
|
||
.BSS MAXSKPR,16
|
||
.BSS SKIPR_CNT,16
|
||
.BSS SKIPR_DN,16
|
||
.BSS SNDCNT,16
|
||
.BSS HULK_CNT,16 ;TOTAL HULKS ON SCREEN
|
||
;
|
||
;EQUATES FOR THIS FILE
|
||
;
|
||
XX .EQU 241
|
||
YY .EQU 202
|
||
|
||
MAXLEVEL .EQU 10
|
||
HSPEED .EQU 08000H
|
||
HITAHMD .EQU 25*30 ;BTR60 TURRET
|
||
|
||
;
|
||
;STRUCTURES
|
||
;
|
||
;
|
||
;HSTG DATA STRUCTURE
|
||
;
|
||
;CYCLES .EQU PDATA ;ANIMATION CYCLES BEFORE TURN
|
||
;OLDDIR .EQU PDATA+16 ;OLD DIR BEFORE TURN
|
||
;
|
||
|
||
;HULK DATA STRUCTURE
|
||
;
|
||
HAGE .EQU PDATA ;OBJECT AGE
|
||
DIR .EQU PDATA+16 ;OBJECT DIRECTION
|
||
DIS .EQU PDATA+32 ;OBJECT DISTANCE COUNT
|
||
;MYPLYR .EQU PDATA+48 ;UHW PLAYER 1 OR 2 FIRED ME=1 OR 2
|
||
KPAGE .EQU PDATA+48 ;UHW
|
||
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 ;UHL
|
||
SKPLYR .EQU PDATA+224 ;UHW PLAYER # TO PURSUE 0 OR 1
|
||
OSCILLATE .EQU PDATA+240 ;UHW
|
||
ABSRB .EQU PDATA+256 ;UHW
|
||
;ABSRB IS DEFINED IN FIEND.ASM AND IT MUST STAY HERE
|
||
BOXCK .EQU PDATA+272 ;UHW CNTR FOR TIMING BOX CHECKS
|
||
BNCING .EQU PDATA+288 ;UHW FLAG 0=NO,1=YES BNCING OFF
|
||
JUMPF .EQU PDATA+304 ;UHW FLAG 1=DWN,2=LFT,3=RGT
|
||
HULKTYP .EQU PDATA+320 ;UHW 0=NORM W/GUN,1=DEMON W/AXE
|
||
STCNT .EQU PDATA+336 ;UHW SHOOT AT PLAYER CNTR
|
||
BULPRC .EQU PDATA+352 ;UHL BULLET PROCESS FIRING BULLS!
|
||
GOCRNR .EQU PDATA+384 ;UHL [Y,X] OF CORNER FOR AHMD
|
||
CFLAGS .EQU PDATA+416 ;UHW CONTROL FLAGS FOR OBJECT
|
||
NOFLMS .EQU PDATA+432 ;UHW
|
||
BNCCNT .EQU PDATA+448 ;UHW BOUNCE OFF RECT CNT
|
||
IBAT .EQU PDATA+464 ;UHW BAT FLAG 0=OFF, 1=ON
|
||
;
|
||
|
||
.TEXT
|
||
|
||
ANI_STEEL
|
||
;A8=STEEL DOOR IMAGE FROM BACKGROUND UPDATER
|
||
;ANIMATE, THEN KILL OFF ONCE IT IS OFF SCREEN
|
||
CLR A0
|
||
MOVE A0,*A13(PDATA) ;GRUNTS SPAWNED FROM THIS TRAP DOOR
|
||
SLEEP 4*60
|
||
ANIST
|
||
MOVI 20,B0
|
||
MOVI 2*60,B1
|
||
CALLA RANGRAND
|
||
CALLA PRCSLP
|
||
|
||
MOVE @WORLDTLY,A0,L
|
||
ADDI [250,0],A0
|
||
MOVE *A8(OYVAL),A1,L
|
||
CMP A0,A1
|
||
JRC ANI_S2
|
||
;FALLS IN HERE IF PIT IS DOWN BELOW SCREEN
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
ANI_S2
|
||
;CHECK TO SEE IF I CAN GENERATE A GRUNT
|
||
;IF SO, OPEN DOOR AND SEND X # OF GRUNTS OUT
|
||
;SEND GRUNT AT PROPER DIRECTION
|
||
MOVE @HULK_CNT,A2 ;MOVE BYTE (# HULKS ON SCRN) TO A2
|
||
MOVE @MAXHULK,A3
|
||
SUBK 7,A3
|
||
CMP A3,A2 ;HULKS MAXED OUT?
|
||
JRGT ANIST
|
||
MOVE *A13(PDATA),A0
|
||
CMPI 75,A0
|
||
JRGT ANIST
|
||
MOVI PITDR2,A1 ;HALFWAY
|
||
MOVE *A8(OFLAGS),A4
|
||
CALLA ANI
|
||
SLEEPK 2
|
||
MOVE A8,A0
|
||
CALLA OBJOFF ;OPEN ALL THE WAY
|
||
MOVE @PCNT,A9
|
||
ANDI 07H,A9
|
||
INC A9
|
||
ANS3 SLEEPK 1
|
||
MOVE @HALT,A0
|
||
JRNZ ANS3
|
||
;TURN ON GRUNT AND SEND HIM OUT!
|
||
MJP CREATE HULKPID,JUMPOUT
|
||
MOVE @HTYPE,A1
|
||
MOVE A1,*A0(HULKTYP)
|
||
MOVE *A13(PDATA),A0
|
||
INC A0
|
||
MOVE A0,*A13(PDATA) ;HULKS RELEASED FROM THIS PIT!
|
||
MOVK 1,B0
|
||
MOVK 23,B1
|
||
CALLA RANGRAND
|
||
CALLA PRCSLP
|
||
DSJS A9,MJP
|
||
SLEEPK 15
|
||
MOVE A8,A0
|
||
CALLA OBJON ;HALFWAY
|
||
SLEEPK 2
|
||
MOVI PITDR1,A1
|
||
MOVE *A8(OFLAGS),A4
|
||
CALLA ANI ;CLOSED
|
||
JRUC ANIST
|
||
|
||
SOLDRD:
|
||
;A8=SOLDIER FROM BACKGROUND TABLE
|
||
;A HULK CREATED FROM BACKGROUND MODULE
|
||
;PAUSE, COME ALIVE AND JUMP STRAIGHT DOWN TOWARD PLAYER
|
||
CALLR GETPSK
|
||
CLR A0
|
||
MOVE A0,*A13(HULKTYP) ;REGULAR SOLDIER FROM BGND
|
||
MOVE A0,*A13(BULPRC),L
|
||
MOVI ZEROS,A9
|
||
MOVI DGSTND1,A1
|
||
CALLR SOLD
|
||
JRZ NOSP0
|
||
;ODD Y LINE, PAUSE A MOMENT
|
||
MOVI 0FFH,A0
|
||
MOVE A0,*A13(IBAT)
|
||
MOVI 200,B0
|
||
MOVI 450,B1
|
||
CALLA RANGRAND
|
||
CALLA PRCSLP
|
||
NOSP0
|
||
CLR A0
|
||
MOVE A0,*A13(IBAT)
|
||
MOVK 5,A0
|
||
MOVK 1,A11
|
||
NOSP00 MOVE A0,*A13(DIR)
|
||
MOVE A0,*A13(BOXCK)
|
||
MOVK 3,A1
|
||
MOVE A1,*A13(LEVEL),W
|
||
CALLR DO_DIFF
|
||
MOVE *A13(DIR),A0
|
||
CALLR INTO
|
||
CALLR GET_RUN ;GET FIRST FRANIM PNTR FOR
|
||
MOVE A11,*A13(JUMPF) ;STRAIGHT DOWN FLAG
|
||
JRUC BIN
|
||
|
||
SOLDRDL:
|
||
;A8=SOLDIER FROM BACKGROUND TABLE
|
||
;A HULK CREATED FROM BACKGROUND MODULE
|
||
;PAUSE, COME ALIVE AND JUMPD DOWN TO LEFT AND RUN TOWARD PLAYER
|
||
CALLR GETPSK
|
||
CLR A0
|
||
MOVE A0,*A13(HULKTYP) ;REGULAR SOLDIER FROM BGND
|
||
MOVE A0,*A13(BULPRC),L
|
||
MOVI ZEROS,A9
|
||
MOVI DSWINGa,A1
|
||
CALLR SOLD
|
||
JRZ NOSP1
|
||
;ODD Y LINE, PAUSE A MOMENT
|
||
MOVI 0FFH,A0
|
||
MOVE A0,*A13(IBAT)
|
||
MOVI 250,B0
|
||
MOVI 400,B1
|
||
CALLA RANGRAND
|
||
CALLA PRCSLP
|
||
NOSP1 CLR A0
|
||
MOVE A0,*A13(IBAT)
|
||
MOVK 7,A0
|
||
MOVK 3,A11
|
||
JRUC NOSP00
|
||
|
||
SHULK
|
||
;A9=[Y,X] SPOT TO SPAWN FROM
|
||
;A10=DIRECTION OF GROW FROM SLIME
|
||
;A10=0=UPLFT
|
||
;A10=1=UPRGT
|
||
;A10=2=BTMLFT
|
||
;A10=3=BTMRGT
|
||
CALLR GETPSK
|
||
CLR A0
|
||
MOVE A0,*A13(BULPRC),L
|
||
MOVK 1,A0 ;DEMON
|
||
MOVE A0,*A13(HULKTYP) ;REGULAR SOLDIER FROM BGND
|
||
MOVE A0,*A13(BOXCK)
|
||
MOVK 3,A1
|
||
MOVE A1,*A13(LEVEL),W
|
||
MOVK 1,A0
|
||
MOVE A0,*A13(DIS) ;TIME BEFORE WE GET NEW VELOCITIES
|
||
MOVE A9,A1
|
||
MOVX A9,A0
|
||
SLL 16,A0
|
||
SLL 6,A10
|
||
ADDI GRWINFO,A10
|
||
MOVE *A10+,A9,L
|
||
MOVE *A10,A10
|
||
MOVE A10,*A13(DIR)
|
||
;A0,A1 ARE SET UP
|
||
;A9=FRANIM GROW FROM SLIME
|
||
|
||
MOVI gb6w5a,A2 ;DEMON START
|
||
MOVI 159,A3
|
||
MOVI DMAWNZ,A4 ;NON-ZERO VALUE
|
||
MOVI CLSENMY|TYPGRW,A5
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2
|
||
MOVI GRNTB,A0
|
||
CALLA GETFPAL ;GET A COLOR MAP ASSIGNMENT
|
||
MOVE A0,*A8(OPAL),W ;STORE THE NEW PALETTE
|
||
;GROW UP FROM SLIME
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVI CLSENMY|TYPHULK,A5
|
||
MOVE A5,*A8(OID)
|
||
;THEN START WITH A VELOCITY!
|
||
CALLR OKVA
|
||
MOVK 6,A3
|
||
MOVE A3,*A13(DIS)
|
||
JRUC LUP_ST
|
||
|
||
GRWINFO .LONG GR10,8,GR2,2,GR8,6,GR5,4
|
||
|
||
SOLDR:
|
||
;A8=SOLDIER FROM BACKGROUND TABLE
|
||
;A HULK CREATED FROM BACKGROUND MODULE
|
||
;PAUSE, COME ALIVE AND RUN TOWARD PLAYER
|
||
;NOW POINT THIS HULK AT CURRENT POSITION OF PLAYER
|
||
CALLR GETPSK
|
||
CLR A0
|
||
MOVE A0,*A13(BULPRC),L
|
||
MOVE A0,*A13(HULKTYP) ;REGULAR SOLDIER FROM BGND
|
||
MOVI ZEROS,A9
|
||
MOVI DGSTND1,A1
|
||
CALLR SOLD
|
||
JRZ NOSP
|
||
;ODD Y LINE, PAUSE A MOMENT
|
||
MOVI 0FFH,A0
|
||
MOVE A0,*A13(IBAT)
|
||
MOVI 200,B0
|
||
MOVI 900,B1
|
||
CALLA RANGRAND
|
||
CALLA PRCSLP
|
||
CLR A0
|
||
MOVE A0,*A13(IBAT)
|
||
NOSP
|
||
MOVK 5,A0
|
||
MOVE A0,*A13(DIR)
|
||
MOVE A0,*A13(BOXCK)
|
||
MOVK 2,A1
|
||
MOVE A1,*A13(LEVEL),W
|
||
MOVK 1,A0
|
||
MOVE A0,*A13(DIS) ;TIME BEFORE WE GET NEW VELOCITIES
|
||
CALLR DO_DIFF
|
||
JRUC LUP_ST
|
||
|
||
LHLPS
|
||
MOVI HELP,A0
|
||
CALLA ONESND
|
||
SLEEP 40
|
||
MOVI HELP,A0
|
||
CALLA ONESND
|
||
SLEEP 40
|
||
MOVI HELP,A0
|
||
CALLA ONESND
|
||
SLEEP 40
|
||
MOVI HELP,A0
|
||
CALLA ONESND
|
||
DIE
|
||
|
||
SPAWN_RUNNR
|
||
;SEND HOSTAGES DOWN SCREEN
|
||
MOVE @HALT,A0
|
||
JRNZ SPRET
|
||
MOVI 150,A0
|
||
CALLA RANDPER
|
||
JRNC SPRET
|
||
MOVI JEEPID,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA EXISTP
|
||
JRNZ SPRET ;BR=JEEP OUT!
|
||
|
||
CREATE 0,LHLPS
|
||
MOVI RUNNRS,A2
|
||
CALLR GET_WVADDR
|
||
MOVE *A0(16),A1,W ;DEC WAVE RAM CNT FOR THIS HSTG GROUP
|
||
DEC A1
|
||
MOVE A1,*A0(16),W
|
||
; MOVE *A0(32),A0 ;GET HSTG RANGE PNTR
|
||
; SLL 5,A0
|
||
|
||
MOVE @ENEMY_RECT,A0,L
|
||
SPR MOVE *A0(16),A1
|
||
CMPI 5,A1
|
||
JRZ GOTSPT
|
||
ADDI 6*16,A0
|
||
JRUC SPR
|
||
GOTSPT
|
||
;A9=[Y,X] OF SPOT TO START FROM
|
||
MOVE *A0(64),A1
|
||
MOVE *A0(32),A9
|
||
SUB A9,A1
|
||
SRL 1,A1
|
||
ADD A1,A9 ;X IS SET UP
|
||
MOVE *A0(80),A1
|
||
MOVE *A0(48),A2
|
||
SUB A2,A1
|
||
SRL 1,A1
|
||
ADD A1,A2 ;Y IS SET UP
|
||
SLL 16,A2
|
||
SUBI [20,0],A2
|
||
MOVY A2,A9
|
||
CREATE FUTUREPID,SENDRUN
|
||
SPRET RETS
|
||
SENDRUN
|
||
MOVK 3,A8
|
||
RUN1 SLEEPK 30
|
||
CALLR SENDH_GROUP
|
||
DSJ A8,RUN1
|
||
DIE
|
||
; .WORD 0,5,595-XX2+25,4356-YY2-36,605-XX2+25,4351-YY2-20
|
||
|
||
;SEND HOSTAGES DOWN SCREEN
|
||
SENDH_TOP:
|
||
;SEND FIRST GROUP OF HOSTAGES DOWN AT PLAYER
|
||
; MOVK 2,A8
|
||
SEND1
|
||
SLEEP >35
|
||
MOVE @WORLDTLY,A0,L
|
||
SUBI [50,0],A0
|
||
MOVE @WORLDTLX,A9,L
|
||
SRL 16,A9
|
||
ADDI 160,A9
|
||
MOVY A0,A9
|
||
CALLR SENDH_GROUP
|
||
; DSJ A8,SEND1
|
||
DIE
|
||
SENDH_GROUP:
|
||
;SEND GROUP OF HULKS FROM SPECIFIC SPOT
|
||
;A9=[Y,X] OF SPOT TO START FROM
|
||
;8 1 2
|
||
;7 3
|
||
;6 5 4
|
||
CALLA RANDOM
|
||
ANDI 07H,A0
|
||
ADDK 2,A0 ;1
|
||
MOVE A0,A5
|
||
;A11=0 TO SPREAD THEM OUT A BIT
|
||
SG1H
|
||
CREATE FUTUREPID,AHSTG ;START ONE HSTG
|
||
DSJS A5,SG1H
|
||
RETS
|
||
|
||
HSLST .LONG HSTGDWN,HSTGDWNA,HSTGDWNA2,HSTGDWN2
|
||
|
||
AHSTG:
|
||
;A9=[Y,X] SPOT TO SPAWN FROM
|
||
;A11=1 IF FIXED AREA FOR RELEASE
|
||
;8 1 2
|
||
;7 3
|
||
;6 5 4
|
||
;THIS HSTG WAS SPAWNED FROM SEND_GROUP
|
||
CLR B0
|
||
MOVK 19,B1
|
||
CALLA RANGRAND
|
||
SLL 16,A0
|
||
ADD A9,A0
|
||
MOVE A0,A1
|
||
CLR B0
|
||
MOVI 60,B1
|
||
CALLA RANGRAND
|
||
MOVX A9,A2
|
||
ADD A0,A2
|
||
SLL 16,A2
|
||
MOVE A2,A0
|
||
;A0,A1 ARE SET UP
|
||
MOVI GRL1,A2 ;DOES NOT MATTER
|
||
MOVI 159,A3
|
||
MOVI DMAWNZ,A4 ;NON-ZERO VALUE
|
||
MOVI CLSNEUT|TYPHSTG|SUBRUN,A5
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2
|
||
|
||
CALLA RANDOM
|
||
ANDI 03H,A0
|
||
SLL 5,A0
|
||
ADDI HSLST,A0
|
||
MOVE *A0,A9,L
|
||
|
||
MOVI 0B000H,B0
|
||
MOVI 14000H,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,*A8(OYVEL),L
|
||
MOVE A9,A10
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVE A10,A9
|
||
;GET ME ON SCRN
|
||
HTOP
|
||
;GO THROUGH ANIMATION LIST
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
CALLA SCRTST
|
||
JRNZ KILOFF
|
||
MOVE A10,A9
|
||
JRUC HTOP
|
||
|
||
KILOFF MOVE A8,A0
|
||
CALLA DELOBJ
|
||
;TOTAL MISSED HOSTAGES HERE FOR RACKUP
|
||
MOVE @HSTGS_LOST,A0
|
||
INC A0
|
||
MOVE A0,@HSTGS_LOST
|
||
DIE
|
||
|
||
CRT_AHMD:
|
||
;AHMED FLAME THROWER DUDE SPAWNED FROM A CRATE
|
||
;AAHMED:
|
||
;A9=[Y,X] SPOT TO SPAWN FROM
|
||
;A10=DIRECTION
|
||
;8 1 2
|
||
;7 3
|
||
;6 5 4
|
||
MOVK 3,A10
|
||
MOVE *A8(OFLAGS),A0 ;A8=CRATE
|
||
BTST B_FLIPH,A0
|
||
JRZ FND1
|
||
MOVK 7,A10 ;A10=DIR
|
||
FND1 MOVE *A8(OXPOS),A0,L
|
||
; ADDK 15,A0
|
||
MOVE *A8(OYVAL),A9,L
|
||
SUBI [20,0],A9
|
||
MOVX A0,A9
|
||
MOVK 4,A1 ;LEVEL FOR CRATE AHMEDS
|
||
CALLR START_AHMD
|
||
MOVK 25,A3 ;20
|
||
MOVE A3,*A13(DIS) ;CHANGE BASED ON HULKS SPEED?
|
||
CLR A0
|
||
MOVE A0,*A13(CFLAGS)
|
||
MOVE A0,*A13(GOCRNR),L
|
||
JRUC CRATE_IN
|
||
|
||
SPAWN_FND:
|
||
;SPAWN FIEND
|
||
MOVE @FND_CNT,A2 ;MOVE BYTE (# FNDS ON SCRN) TO A2
|
||
MOVE @MAXFND,A3
|
||
CMP A3,A2 ;FNDS MAXED OUT?
|
||
JRGT HULK_OUT
|
||
CALLR FIXEDA
|
||
CMPI 5,A10
|
||
JRNZ SPF
|
||
ADDI [-25,42],A9
|
||
;A8=CHOSEN RECTANGLE INFO
|
||
;A9=[Y,X] OF SPOT TO START FROM
|
||
;A10=DIRECTION
|
||
SPF CREATE FNDPID,ONE_FND ;START ONE FND
|
||
RETS
|
||
SPAWN_AHMD:
|
||
;SPAWN AHMED IS CALLED FROM 'WAVE OVERLORD' CODE WHICH DISPERSES
|
||
;BAD GUYS THROUGHOUT A WAVE
|
||
MOVE @AHMD_CNT,A2 ;MOVE BYTE (# HULKS ON SCRN) TO A2
|
||
MOVE @MAXAHMD,A3
|
||
CMP A3,A2 ;HULKS MAXED OUT?
|
||
JRGT HULK_OUT
|
||
;SELECT RECTANGLE FROM CURRENT LIST
|
||
;GET RANDOM [Y,X] WITHIN CHOSEN RECTANGLE INTO A9
|
||
;GET DIRECTION FOR THAT RECTANGLE INTO A10
|
||
;JUMP INTO SEND_GROUP CODE
|
||
CALLR FIXEDA
|
||
;A8=CHOSEN RECTANGLE INFO
|
||
;A9=[Y,X] OF SPOT TO START FROM
|
||
;A10=DIRECTION
|
||
CREATE AHMDPID,AAHMED ;START ONE AHMED
|
||
RETS
|
||
|
||
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
|
||
MOVE @MAXHULK,A3
|
||
CMP A3,A2 ;HULKS MAXED OUT?
|
||
JRGT HULK_OUT
|
||
;SELECT RECTANGLE FROM CURRENT LIST
|
||
;GET RANDOM [Y,X] WITHIN CHOSEN RECTANGLE INTO A9
|
||
;GET DIRECTION FOR THAT RECTANGLE INTO A10
|
||
;JUMP INTO SEND_GROUP CODE
|
||
CALLA RANDOM
|
||
ANDI 07H,A0
|
||
; MOVI 0,A0
|
||
SLL 5,A0
|
||
ADDI INTOL,A0
|
||
MOVE *A0,A0,L
|
||
MOVE @ENEMY_RECT,A8,L
|
||
ADD A0,A8
|
||
MOVE *A8+,A0,W
|
||
SLL 5,A0
|
||
ADDI JLST,A0
|
||
MOVE *A0,A0,L
|
||
JUMP A0
|
||
SPAWN_SKIPR:
|
||
MOVE @SKIPR_DN,A0
|
||
JRNZ HULK_OUT
|
||
MOVE @SKIPR_CNT,A2 ;MOVE BYTE (# HULKS ON SCRN) TO A2
|
||
MOVE @MAXSKPR,A3
|
||
CMP A3,A2 ;HULKS MAXED OUT?
|
||
JRGT HULK_OUT
|
||
;SELECT RECTANGLE FROM CURRENT LIST
|
||
;GET RANDOM [Y,X] WITHIN CHOSEN RECTANGLE INTO A9
|
||
;GET DIRECTION FOR THAT RECTANGLE INTO A10
|
||
;JUMP INTO SEND_GROUP CODE
|
||
CALLA RANDOM
|
||
ANDI 03H,A0
|
||
SLL 5,A0
|
||
ADDI INTOL,A0
|
||
MOVE *A0,A0,L
|
||
MOVE @ENEMY_RECT,A8,L
|
||
ADD A0,A8
|
||
MOVE *A8+,A0,W
|
||
SLL 5,A0
|
||
ADDI JLST2,A0
|
||
MOVE *A0,A0,L
|
||
JUMP A0
|
||
INTOL .LONG 0,60H,0C0H,120H,180H,1E0H,240H,2A0H
|
||
HULK_OUT:
|
||
RETS
|
||
|
||
JLST .LONG FIXED,FLTL,FLTR,FLTT,FLTB,FIXED2,JUMPD,JUMPR
|
||
JLST2 .LONG SFIXED,FLTL,FLTR,SFLTT,FLTB,FIXED2,JUMPD,JUMPR
|
||
;8 1 2
|
||
;7 3
|
||
;6 5 4
|
||
;RECTANGLE TYPE,DIRECTION ENEMY WILL MOVE,RECT [X,Y],[X,Y]
|
||
;TYPE=0 FOR FIXED RECTANGLE,1=FLOATING LFT RECT,2=FLOATING RGT,3=FLOATING TOP
|
||
;4=FLOATING BOTM,5=FIXED WITHOUT LOTS OF RANGE,6=FROM TOP ROOF,7=FROM RIGHT
|
||
;ROOF
|
||
ERECT1
|
||
.WORD 0,7,645-XX,1225-YY,650-XX,1268-YY ;FOR SPAWNING
|
||
.WORD 0,7,645-XX,1225-YY,650-XX,1268-YY
|
||
.WORD 0,7,645-XX,1225-YY,650-XX,1268-YY
|
||
.WORD 0,7,645-XX,1000-YY,650-XX,1110-YY
|
||
.WORD 0,7,645-XX,1000-YY,650-XX,1110-YY
|
||
.WORD 0,3,200-XX,1000-YY,205-XX,1025-YY
|
||
.WORD 0,3,200-XX,1000-YY,205-XX,1025-YY
|
||
.WORD 0,3,200-XX,1000-YY,205-XX,1025-YY
|
||
ERECT2 .WORD 0,3,200-XX,779-YY,205-XX,789-YY ;FOR SPAWNING
|
||
.WORD 0,7,645-XX,779-YY,663-XX,780-YY
|
||
.WORD 5,7,600-XX,535-YY,640-XX,555-YY ;HUT
|
||
.WORD 5,7,600-XX,535-YY,640-XX,555-YY
|
||
.WORD 5,7,600-XX,665-YY,640-XX,670-YY ;HUT SPAWN
|
||
.WORD 3,5,150,-60,210,-45 ;FLOATING IN FROM TOP
|
||
.WORD 3,5,150,-60,210,-45 ;FLOATING IN FROM TOP
|
||
.WORD 3,5,150,-60,210,-45 ;FLOATING IN FROM TOP
|
||
ERECT3 .WORD 0,3,368-XX,327-YY,383-XX,342-YY ;FOR REACTOR AREA
|
||
.WORD 0,3,368-XX,327-YY,383-XX,342-YY ;FOR REACTOR AREA
|
||
.WORD 0,1,463-XX,443-YY,483-XX,453-YY
|
||
.WORD 0,1,463-XX,443-YY,483-XX,453-YY
|
||
.WORD 0,7,611-XX,318-YY,631-XX,336-YY
|
||
.WORD 0,7,611-XX,318-YY,631-XX,336-YY
|
||
.WORD 0,4,277-XX,395-YY,299-XX,405-YY ;BOTM OF REACTOR
|
||
.WORD 6,5,415-XX,145-YY,425-XX,155-YY ;FROM ROOF
|
||
ERECT4
|
||
.WORD 7,7,0380H,325-YY,0390H,340-YY ;FROM ROOF
|
||
.WORD 7,7,0380H,325-YY,0390H,340-YY ;FROM ROOF
|
||
.WORD 0,1,895-XX,463-YY,910-XX,469-YY
|
||
.WORD 0,1,895-XX,463-YY,910-XX,469-YY
|
||
.WORD 0,3,690-XX,335-YY,705-XX,350-YY
|
||
.WORD 0,3,690-XX,335-YY,705-XX,350-YY
|
||
.WORD 6,5,880-XX,145-YY,970-XX,165-YY ;ROOF
|
||
.WORD 6,5,880-XX,145-YY,970-XX,165-YY
|
||
ERECT5 .WORD 0,3,369-XX,2564-YY,384-XX,2579-YY ;SECRET PATH #1 LOWER
|
||
.WORD 0,3,369-XX,2564-YY,384-XX,2579-YY ;SECRET PATH #1 LOWER
|
||
.WORD 0,7,457-XX,2335-YY,466-XX,2410-YY
|
||
.WORD 0,7,457-XX,2335-YY,466-XX,2410-YY
|
||
.WORD 0,7,457-XX,2335-YY,466-XX,2410-YY
|
||
.WORD 3,5,110,-60,170,-45 ;FLOATING IN FROM TOP
|
||
.WORD 3,5,110,-60,170,-45 ;FLOATING IN FROM TOP
|
||
.WORD 3,5,110,-60,170,-45 ;FLOATING IN FROM TOP
|
||
ERECT6 .WORD 7,7,640-XX,1824-YY,665-XX,1850-YY ;SECRET PATH #1 MIDDLE
|
||
.WORD 7,7,640-XX,1824-YY,665-XX,1850-YY
|
||
.WORD 7,7,640-XX,1824-YY,665-XX,1850-YY
|
||
.WORD 7,7,640-XX,1824-YY,665-XX,1850-YY
|
||
.WORD 3,5,110,-60,170,-45
|
||
.WORD 3,5,110,-60,170,-45
|
||
.WORD 3,5,110,-60,170,-45
|
||
.WORD 3,5,110,-60,170,-45
|
||
ERECT7 ;ROADWAY AREA
|
||
.WORD 1,3,-50,70,-35,110
|
||
.WORD 1,3,-50,70,-35,110
|
||
.WORD 2,7,410,70,430,110
|
||
.WORD 2,7,410,70,430,110
|
||
.WORD 2,7,410,70,430,110
|
||
.WORD 3,5,80,-60,270,-45
|
||
.WORD 3,5,80,-60,270,-45
|
||
.WORD 3,5,80,-60,270,-45
|
||
ERECT8 ;TOP OF SECRET AREA #1
|
||
.WORD 0,1,463-XX,443-YY,483-XX,453-YY
|
||
.WORD 0,7,605-XX,358-YY,620-XX,372-YY
|
||
.WORD 0,7,605-XX,358-YY,620-XX,372-YY
|
||
.WORD 0,3,220-XX,358-YY,232-XX,372-YY
|
||
.WORD 0,3,220-XX,358-YY,232-XX,372-YY
|
||
.WORD 6,5,291-XX,145-YY,326-XX,165-YY ;ROOF
|
||
.WORD 6,5,491-XX,145-YY,530-XX,165-YY
|
||
.WORD 6,5,491-XX,145-YY,530-XX,165-YY
|
||
|
||
|
||
XX2 .EQU 241-13 ;FOR LOWER DESERT MODULE
|
||
YY2 .EQU 202+48H
|
||
ERECT10 ;1ST LOCKDOWN IN DESERT
|
||
.WORD 0,1,621-XX2+22,4610-YY2+52,631-XX2+22,4625-YY2+52
|
||
.WORD 0,3,447-XX2-50,4438-YY2+43,457-XX2-50,4455-YY2+43
|
||
.WORD 0,7,839-XX2+25,4438-YY2+43,849-XX2+25,4453-YY2+43
|
||
.WORD 0,5,595-XX2+25,4356-YY2-36,605-XX2+25,4351-YY2-20
|
||
.WORD 0,1,621-XX2+22,4610-YY2+52,631-XX2+22,4625-YY2+52
|
||
.WORD 0,3,447-XX2-50,4438-YY2+43,457-XX2-50,4455-YY2+43
|
||
.WORD 0,7,839-XX2+25,4438-YY2+43,849-XX2+25,4453-YY2+43
|
||
.WORD 0,5,595-XX2+25,4356-YY2-36,605-XX2+25,4351-YY2-20
|
||
ERECT11 ;PATH A AND B AFTER FIRST LOCKDOWN
|
||
;ALSO USED FOR WAVE 13 FAST GUYS COMING DOWN AND WAVE 16
|
||
.WORD 3,5,190,-60,250,-45 ;110! 250 ;FLOATING IN FROM TOP
|
||
.WORD 3,5,190,-60,250,-45 ;FLOATING IN FROM TOP
|
||
.WORD 3,5,190,-60,250,-45 ;FLOATING IN FROM TOP
|
||
.WORD 3,5,190,-60,250,-45 ;FLOATING IN FROM TOP
|
||
.WORD 3,5,190,-60,250,-45 ;FLOATING IN FROM TOP
|
||
.WORD 3,5,190,-60,250,-45 ;FLOATING IN FROM TOP
|
||
.WORD 3,5,190,-60,250,-45 ;FLOATING IN FROM TOP
|
||
.WORD 3,5,190,-60,250,-45 ;FLOATING IN FROM TOP
|
||
ERECT12 ;2ND DESERT LOCKDOWN WITH HUT ON LEFT
|
||
.WORD 0,1,403-XX2+22,3185-YY2+52,413-XX2+22,3200-YY2+52
|
||
.WORD 0,1,403-XX2+22,3185-YY2+52,413-XX2+22,3200-YY2+52
|
||
.WORD 0,7,642-XX2+25,3019-YY2+43,648-XX2+25,3035-YY2+43
|
||
.WORD 0,5,417-XX2+25,2935-YY2-36,427-XX2+25,2930-YY2-20
|
||
.WORD 0,3,325-XX2-50,2985-YY2+43,335-XX2-50,2997-YY2+43
|
||
.WORD 0,3,325-XX2-50,2985-YY2+43,335-XX2-50,2997-YY2+43
|
||
.WORD 0,7,642-XX2+25,3019-YY2+43,648-XX2+25,3035-YY2+43
|
||
.WORD 0,5,417-XX2+25,2935-YY2-36,427-XX2+25,2930-YY2-20
|
||
ERECT13 ;1ST AIRPORT LOCKDOWN
|
||
.WORD 0,1,0D32H,1118H,0D4CH,1120H
|
||
.WORD 0,3,0C61H,1070H,0C6BH,10A0H
|
||
.WORD 0,5,0D3FH,0FECH,0D42H,0FF6H
|
||
.WORD 0,7,0E10H,1088H,0E20H,108CH
|
||
.WORD 0,1,0D32H,1118H,0D4CH,1120H
|
||
.WORD 0,3,0C61H,1070H,0C6BH,10A0H
|
||
.WORD 0,5,0D3FH,0FECH,0D42H,0FF6H
|
||
.WORD 0,7,0E10H,1088H,0E20H,108CH
|
||
|
||
ENRECT1 .WORD 240-XX,948-YY,378-XX,983-YY+10,4 ;DIR TO TURN TOWARD
|
||
;FOR HULK COLLISIONS WITH BOX
|
||
.WORD 501-XX-20,948-YY,620-XX,983-YY+10,6
|
||
.WORD 0
|
||
ENRECT3 .WORD 280-XX,304-YY,367-XX,381-YY,3 ;REACTOR AREA
|
||
.WORD 0
|
||
ENRECT4 .WORD 836-XX,210-YY,1064-XX,300-YY,6 ;ELEVATOR DOWN AREA
|
||
.WORD 0
|
||
ENRECT5 .WORD 268-XX,2525-YY,365-XX,2617-YY,3 ;SECRET PATH LOWER AREA
|
||
.WORD 518-XX,2324-YY,609-XX,2471-YY,7 ;
|
||
.WORD 541-XX,2152-YY,640-XX,2223-YY,7 ;NEAR BOXES
|
||
ENRECT6 .WORD 546-XX,1792-YY,656-XX,1999-YY,7 ;SECRET PATH UPPER AREA
|
||
.WORD 251-XX,1611-YY,352-XX,1703-YY,4
|
||
.WORD 518-XX,1635-YY,627-XX,1701-YY,6
|
||
.WORD 0
|
||
|
||
ENRECT10 ;START OF DESERT
|
||
;PIT ON LEFT AT START OF DESERT
|
||
.WORD 09EH,126DH-3AH-20,122H,131CH-3AH,3 ;9E=CE
|
||
.WORD 122H,127FH-3AH-20,145H,1314H-3AH,3
|
||
.WORD 146H,128DH-3AH-20,155H,1310H-3AH,3
|
||
.WORD 155H,12A6H-3AH-20,168H,1308H-3AH,3
|
||
.WORD 168H,12C8H-3AH-20,17CH,12F0H-3AH,3
|
||
;MOUND ON RIGHT
|
||
.WORD 675-XX2-20,4849+11-YY2-20,870-XX2,4917+32-YY2-16,7
|
||
;FIRST BARBED WIRE LINE
|
||
.WORD 226+6-XX2-20,4600+17-YY2-20,603+25-XX2,4635+27-YY2,1
|
||
.WORD 733+6-XX2-20,4600+17-YY2-20,1028+25-XX2,4635+27-YY2,1
|
||
.WORD 0
|
||
ENRECT11 ;START OF SCROLL PATHB AND PATHA!
|
||
.WORD 758+6-XX2-30,4370+20-YY2-35,864+25-45-XX2+15,4407+25-YY2+10,7 ;WALL TOPRGT
|
||
.WORD 590+3-XX2-30,3891+20-YY2-35,776+20-XX2+15,3869+61+25-YY2+10,2 ;MID SCRN WAL
|
||
.WORD 586+3-XX2-30,3669+20-YY2-35,682+20-XX2+15,3647+61+25-YY2+10,7 ;MID TURT WAL
|
||
.WORD 372+3-XX2-30,3255+20-YY2-35,1044+25-XX2+15,3263+61+25-YY2+10,6 ;LONG WALL
|
||
.WORD 490+3-XX2-30,3891+20-YY2-35,656+20-XX2+15,3869+61+25-YY2+10,6 ;MID SCRN WAL LFT SIDE
|
||
.WORD 0
|
||
ENRECT12 ;2ND DESERT LOCKDOWN AT HUT
|
||
.WORD 248-XX2,2964-YY2,338+28-XX2,3099+32-YY2,4 ;HUT AT LK DWN
|
||
.WORD 0
|
||
ENRECT13 ;NEAR HUT 2 DISHES
|
||
;SCROLLING UP INTO NEW DESERT AREA FOR HULKS NEAR BIG HUTS
|
||
.WORD 139H,5ECH-16,205H,692H+20,3 ;SQR HUT
|
||
.WORD 0
|
||
ENRECT14 ;FROM TRIPLE GUNNERS UP
|
||
;SCROLLING UP INTO NEW DESERT AREA FOR PLAYERS NEAR BIG HUTS
|
||
.WORD 97H,368H,35FH,395H,5 ;TRIPLE WALL
|
||
.WORD 9H,227H+30,18CH,268H,3 ;LOWER CLIFF
|
||
.WORD 100H,198H,2C5H,1E4H,6 ;UPPER CLIFF
|
||
.WORD 0
|
||
FLTL
|
||
FLTR
|
||
FLTB
|
||
; RETS
|
||
SFLTT
|
||
CALLR POSITN
|
||
JRUC SPAWN_GROUPS
|
||
FLTT
|
||
;.WORD 3,5,150,-10,250,0 ;FLOATING IN FROM TOP
|
||
;FLOATING RECT AT TOP
|
||
CLR A11
|
||
MOVE A11,@JUMPER
|
||
CALLR POSITN
|
||
JRUC SPAWN_GROUP
|
||
POSITN
|
||
MOVE *A8+,A10,W ;DIRECTION
|
||
MOVE @WORLDTLX+16,A3
|
||
MOVE *A8+,A0,W
|
||
ADD A3,A0
|
||
MOVE A0,B0
|
||
MOVE *A8+,A2
|
||
MOVE *A8+,A0
|
||
ADD A3,A0
|
||
MOVE A0,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,A9
|
||
MOVE A2,B0
|
||
MOVE *A8,A0
|
||
MOVE A0,B1
|
||
CALLA RANGRAND
|
||
MOVE @WORLDTLY+16,A3
|
||
ADD A3,A0
|
||
SLL 16,A0
|
||
MOVY A0,A9
|
||
;A8=CHOSEN RECTANGLE INFO
|
||
;A9=[Y,X] OF SPOT TO START FROM
|
||
;A10=DIRECTION
|
||
RETS
|
||
FIXED2
|
||
MOVK 1,A11 ;NOT LOTS OF RANGE
|
||
JRUC FIXA
|
||
JUMPR
|
||
;JUMP DOWN FROM RIGHT WALL
|
||
MOVK 3,A0 ;A0=3=JUMP DOWN FROM RGT WALL
|
||
JRUC FIXAB
|
||
JUMPD MOVK 1,A0 ;A0=1=JUMP DOWN FROM ROOF
|
||
JRUC FIXAB
|
||
|
||
FIXEDA
|
||
MOVE @HCOUNT,A0
|
||
ANDI 03H,A0
|
||
SLL 5,A0
|
||
ADDI INTOL,A0
|
||
MOVE *A0,A0,L
|
||
MOVE @ENEMY_RECT,A8,L
|
||
ADD A0,A8
|
||
MOVE *A8+,A0,W
|
||
;FIXED RECTANGLE FOR ALL AHMEDS/FNDS
|
||
CLR A11
|
||
MOVE *A8+,A10,W ;DIRECTION
|
||
MOVE *A8+,A0,W
|
||
MOVE A0,B0
|
||
MOVE *A8+,A2
|
||
MOVE *A8+,A0
|
||
MOVE A0,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,A9
|
||
MOVE A2,B0
|
||
MOVE *A8,A0
|
||
MOVE A0,B1
|
||
CALLA RANGRAND
|
||
SLL 16,A0
|
||
MOVY A0,A9
|
||
;A8=CHOSEN RECTANGLE INFO
|
||
;A9=[Y,X] OF SPOT TO START FROM
|
||
;A10=DIRECTION
|
||
RETS
|
||
SFIXED
|
||
CALLR POSITN2
|
||
JRUC SPAWN_GROUPS ;SKIPPER
|
||
FIXED
|
||
;FIXED RECTANGLE
|
||
CLR A11
|
||
FIXA CLR A0
|
||
FIXAB MOVE A0,@JUMPER
|
||
CALLR POSITN2
|
||
JRUC SPAWN_GROUP
|
||
POSITN2 MOVE *A8+,A10,W ;DIRECTION
|
||
MOVE *A8+,A0,W
|
||
MOVE A0,B0
|
||
MOVE *A8+,A2
|
||
MOVE *A8+,A0
|
||
MOVE A0,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,A9
|
||
MOVE A2,B0
|
||
MOVE *A8,A0
|
||
MOVE A0,B1
|
||
CALLA RANGRAND
|
||
SLL 16,A0
|
||
MOVY A0,A9
|
||
;A8=CHOSEN RECTANGLE INFO
|
||
;A9=[Y,X] OF SPOT TO START FROM
|
||
;A10=DIRECTION
|
||
RETS
|
||
|
||
SEND_GROUP:
|
||
;SEND GROUP OF HULKS FROM SPECIFIC SPOT
|
||
;A9=[Y,X] OF SPOT TO START FROM
|
||
;A10=DIRECTION
|
||
;8 1 2
|
||
;7 3
|
||
;6 5 4
|
||
MOVE @HULK_DN,A0
|
||
JRNZ ROUT
|
||
CLR A11
|
||
SPAWN_GROUP:
|
||
;@JUMPER=0 FOR NORM, 1=FROM ROOFTOP
|
||
MOVI 100,A0 ;140
|
||
CALLA RANDPER
|
||
JRC GANG
|
||
REGG ANDI 03H,A0
|
||
ADDK 1,A0
|
||
MOVE A0,A8
|
||
SG1
|
||
CREATE HULKPID,AHULK ;START ONE HULK
|
||
MOVE @HTYPE,A1
|
||
MOVE A1,*A0(HULKTYP)
|
||
DSJS A8,SG1
|
||
ROUT
|
||
RETS
|
||
SPAWN_GROUPS:
|
||
;FOR SKIPPERS
|
||
MOVI 260,A0 ;140
|
||
CALLA RANDPER
|
||
JRC SKGANG
|
||
MOVE @RAND,A0
|
||
ANDI 03H,A0
|
||
ADDK 1,A0
|
||
MOVE A0,A8
|
||
G2 CREATE HULKPID,ASKIPR
|
||
DSJS A8,G2
|
||
RETS
|
||
SKGANG:
|
||
MOVI SKIPR,A2
|
||
CALLR GET_WVADDR
|
||
MOVE *A0(16),A0 ;GET HULKS LEFT TO RELEASE THIS WAVE!
|
||
CMPI 16,A0 ;MIN HULKS BEFORE GANG
|
||
JRLT SNH1 ;RELEASE ALL OF THEM!
|
||
MOVK 7,B0 ;5 ;# OF HULKS IN A GANG
|
||
MOVK 14,B1 ;13
|
||
CALLA RANGRAND
|
||
SNH1: PUSH A0
|
||
CREATE HULKPID,GSKIPR
|
||
PULL A0
|
||
DSJ A0,SNH1
|
||
RETS
|
||
|
||
GANG:
|
||
;@JUMPER=0 FOR NORM, 1=FROM ROOFTOP
|
||
MOVE A11,A11
|
||
JRNZ REGG
|
||
;BTST FOR SEVERAL WAVES HERE!
|
||
; MOVE @WAVE,A2
|
||
; CMPI 1,A2
|
||
; JRZ REGG
|
||
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 GNH1 ;RELEASE ALL OF THEM!
|
||
MOVK 7,B0 ;5 ;# OF HULKS IN A GANG
|
||
MOVK 15,B1 ;13
|
||
CALLA RANGRAND
|
||
GNH1: PUSH A0
|
||
CREATE HULKPID,GHULK
|
||
MOVE @HTYPE,A1
|
||
MOVE A1,*A0(HULKTYP)
|
||
PULL A0
|
||
DSJ A0,GNH1
|
||
RETS
|
||
|
||
GHULK:
|
||
;GHULK PUTS X # OF HULKS BEHIND SPOT IN GANG FORMATION!
|
||
;A9=[Y,X] SPOT TO SPAWN FROM
|
||
;A10=DIRECTION
|
||
CALLR SETUP_HULK
|
||
MOVE A10,*A13(DIR)
|
||
MOVK 30,A1
|
||
MOVE A1,*A13(DIS)
|
||
MOVE A10,A0
|
||
SLL 5,A0
|
||
ADDI GHXT,A0
|
||
MOVE *A0,A4,L
|
||
MOVE *A4+,A2,W
|
||
MOVE A2,B0
|
||
MOVE *A4+,A2,W
|
||
MOVE A2,B1
|
||
CALLA RANGRAND
|
||
SLL 16,A0
|
||
ADD A9,A0
|
||
MOVE A0,A1
|
||
MOVE *A4+,A2,W
|
||
MOVE A2,B0
|
||
MOVE *A4+,A2,W
|
||
MOVE A2,B1
|
||
CALLA RANGRAND
|
||
MOVX A9,A2
|
||
ADD A0,A2
|
||
SLL 16,A2
|
||
MOVE A2,A0
|
||
SLL 5,A10
|
||
ADDI GHXTF,A10
|
||
MOVE *A10,A9,L
|
||
;A0,A1 ARE SET UP
|
||
|
||
MOVE *A13(HULKTYP),A3
|
||
SLL 5,A3
|
||
ADDI HULTP,A3
|
||
MOVE *A3,A2,L
|
||
|
||
|
||
MOVI 159,A3
|
||
MOVI DMAWNZ,A4 ;NON-ZERO VALUE
|
||
MOVI CLSENMY|TYPGRW,A5
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2
|
||
|
||
MOVK 1,B0 ;CLR B0
|
||
MOVK 6,B1 ;5
|
||
CALLA RANGRAND
|
||
DEC A0
|
||
MOVE A0,*A13(LEVEL)
|
||
MOVE *A13(CFLAGS),A0 ;INDICATE GANG MEMBER FOR RUN IN
|
||
ORI 012H,A0 ;10
|
||
MOVE A0,*A13(CFLAGS)
|
||
JRUC OKZ0
|
||
|
||
HULTP .LONG DUM2,BOY1,AHMED10
|
||
|
||
GHXT .LONG 0,GBTML,GBTML,GLFTL,GTOPL,GTOPL,GTOPL,GRGTL,GRGTL
|
||
GHXTF .LONG 0,GR10,GR2,GR5,GR5,GR8,GR8,GR8,GR10
|
||
DGHXTF .LONG 0,DGR10,DGR2,DGR5,DGR5,DGR8,DGR8,DGR8,DGR10
|
||
GTOPL .WORD -30,-15,-10,65 ;Y,Y,X,X
|
||
GBTML .WORD -5,50,-15,55
|
||
GLFTL .WORD -30,11,0,25
|
||
GRGTL .WORD -30,11,5,30
|
||
SKGLFTL .WORD -45,-5,0,25
|
||
SKGRGTL .WORD -45,-5,5,30
|
||
|
||
FLD1 .LONG DBAT1,gb6w5a,AHMED10 ;ADETH81B
|
||
FLD2 .LONG DHXTF,HXTF,DHXTFA
|
||
|
||
HXT .LONG 0,BTML,BTML,LFTL,TOPL,TOPL,TOPL,RGTL,RGTL
|
||
SHXT .LONG 0,BTML,BTML,SLFTL,TOPL,TOPL,TOPL,SRGTL,SRGTL
|
||
;DEMON GRUNT
|
||
HXTF .LONG 0,BTMLF,BTMLF,LFTLF,TOPLF,TOPLF,TOPLF,RGTLF,RGTLF ;AXE
|
||
;SOLDIER
|
||
DHXTF .LONG 0,DBTMLF,DBTMLF,DLFTLF,DTOPLF,DTOPLF,DTOPLF,DRGTLF,DRGTLF
|
||
;AHMED GRUNT
|
||
DHXTFA .LONG 0,DBTMLFA,DBTMLFA,DLFTLFA,DTOPLFA,DTOPLFA,DTOPLFA,DRGTLFA,DRGTLFA
|
||
;[Y],[X] OF PLACEMENT
|
||
BTML .LONG 0,0,[-15,0],[24,0],[-15,0],[48,0],[-5,0],[00,0],[-5,0],[72,0]
|
||
LFTL .LONG 0,0,[-10,0],[25,0],[14,0],[5,0],[-34,0],[5,0],[-10,0],[-5,0]
|
||
TOPL .LONG 0,0,[-20,0],[22,0],[-20,0],[44,0],[-30,0],[0,0],[-30,0],[66,0]
|
||
RGTL .LONG 0,0,[-19,0],[20,0],[-2,0],[20,0],[-36,0],[32,0],[15,0],[32,0]
|
||
;SKIPPERS
|
||
SLFTL .LONG 0,0,[-10,0],[25,0],[0,0],[5,0],[-30,0],[5,0],[-10,0],[-5,0]
|
||
SRGTL .LONG 0,0,[-19,0],[20,0],[-2,0],[20,0],[-30,0],[32,0],[0,0],[32,0]
|
||
|
||
FRMHUT .LONG 0,0,[0,0],[10,0],[0,0],[30,0],[0,0],[50,0],[0,0],[70,0]
|
||
|
||
|
||
BTMLF .LONG 0,GR10,GR10,GR2,GR2
|
||
LFTLF .LONG 0,GR2,GR5,GR2,GR5
|
||
TOPLF .LONG 0,GR5,GR5,GR5,GR5
|
||
RGTLF .LONG 0,GR10,GR8,GR10,GR8
|
||
|
||
;REGULAR GRUNT
|
||
DBTMLF .LONG 0,DGR10,DGR10,DGR2,DGR2
|
||
DLFTLF .LONG 0,DGR2,DGR5,DGR2,DGR5
|
||
DTOPLF .LONG 0,DGR5,DGR5,DGR5,DGR5
|
||
DRGTLF .LONG 0,DGR10,DGR8,DGR10,DGR8
|
||
|
||
;AHMED GRUNT
|
||
DBTMLFA .LONG 0,DGR10A,DGR10A,DGR2A,DGR2A
|
||
DLFTLFA .LONG 0,DGR2A,DGR5A,DGR2A,DGR5A
|
||
DTOPLFA .LONG 0,DGR5A,DGR5A,DGR5A,DGR5A
|
||
DRGTLFA .LONG 0,DGR10A,DGR8A,DGR10A,DGR8A
|
||
|
||
JUMPOUT
|
||
;A8=STEEL DOOR IMG
|
||
MOVE @PCNT,A1
|
||
ANDI 03H,A1
|
||
ADDK 2,A1
|
||
MOVE A1,*A13(LEVEL),W
|
||
CALLR DO_DIFF
|
||
CLR A0
|
||
MOVE A0,*A13(BULPRC),L ;BULLET FIRING PROCESS
|
||
CALLR GETPSK
|
||
MOVE *A8(OFLAGS),A0
|
||
BTST B_FLIPH,A0
|
||
JRNZ FLFT
|
||
;FROM RIGHT TO LEFT JUMPER OUT OF PIT
|
||
MOVE *A8(OXVAL),A0,L ;POSITION GRUNT UNDER PIT
|
||
ADDI [22,0],A0
|
||
MOVE @PCNT,A1
|
||
ANDI 07H,A1
|
||
SLL 16,A1
|
||
ADD A1,A0
|
||
MOVK 7,A4
|
||
MOVI -0B800H,A11 ;12
|
||
MOVI DMAWNZ,A5 ;NON-ZERO VALUE
|
||
JRUC JALL
|
||
FLFT
|
||
;JUMP UP AND OUT FROM LEFT TO RIGHT
|
||
MOVE *A8(OXVAL),A0,L ;POSITION GRUNT UNDER PIT
|
||
ADDI [5,0],A0
|
||
MOVE @PCNT,A1
|
||
ANDI 07H,A1
|
||
SLL 16,A1
|
||
ADD A1,A0
|
||
MOVK 3,A4
|
||
MOVI 0B800H,A11 ;12
|
||
MOVI DMAWNZ|M_FLIPH,A5 ;NON-ZERO VALUE
|
||
JALL
|
||
MOVE *A8(OYVAL),A1,L
|
||
MOVE @HULK_CNT,A2
|
||
ANDI 07H,A2
|
||
SLL 16,A2
|
||
ADD A2,A1
|
||
ADDI [3,0],A1 ;6
|
||
|
||
MOVE A4,*A13(SK_DIR)
|
||
MOVE A4,*A13(DIR)
|
||
|
||
MOVE *A13(HULKTYP),A3
|
||
SLL 5,A3
|
||
ADDI FLD1,A3
|
||
MOVE *A3,A2,L ;GET IMG TO TURN ON
|
||
|
||
MOVI 30,A3 ;UNDER PIT WALLS
|
||
MOVE A5,A4
|
||
MOVI CLSENMY|TYPGRW,A5
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2
|
||
;OBJECT ON, NOW JUMP HIM OUT
|
||
;READY FOR JUMP FROM RIGHT
|
||
;CHANGE VELOCITY HERE
|
||
CREATE 0,DOYVP ;FOR PIT JUMPERS
|
||
MOVI JRDWNP,A9 ;DEMON
|
||
MOVI JRDWN2,A10 ;NEXT PHASE
|
||
MOVE *A13(HULKTYP),A1
|
||
JRNZ RTAG4X
|
||
MOVI DJRDWNP,A9 ;REGULAR SOLDIER
|
||
MOVI DJRDWN2,A10 ;NEXT PHASE
|
||
RTAG4X
|
||
MOVE A11,*A8(OXVEL),L
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVE A10,A9
|
||
;JUMP/LAND
|
||
;TURN ON COLLISIONS
|
||
MOVI CLSENMY|TYPHULK,A5 ;OR MAYBE IN JUMPING DOWN LOOP!
|
||
MOVE A5,*A8(OID)
|
||
CLR A0
|
||
MOVE A0,*A8(OYVEL),L
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVE *A13(DIR),A0
|
||
CALLR INTO
|
||
CALLR GET_RUN ;GET FIRST FRANIM PNTR FOR
|
||
MOVK 2,A3 ;5
|
||
MOVE A3,*A13(DIS) ;CHANGE BASED ON HULKS SPEED?
|
||
MOVE A3,*A13(BOXCK)
|
||
MOVE *A13(CFLAGS),A0 ;RUNNING OUT/ ANGLE OFF AFTER DIS=0
|
||
ORI 2,A0
|
||
MOVE A0,*A13(CFLAGS)
|
||
JRUC LUP_ST
|
||
|
||
;
|
||
AHULK:
|
||
;A8=1-4 FOR GRUNT # FOR THIS RELEASE
|
||
;A9=[Y,X] SPOT TO SPAWN FROM
|
||
;A10=DIRECTION
|
||
;A11=1 IF FIXED AREA FOR RELEASE
|
||
;@JUMPER=0 FOR NORM, 1=FROM ROOFTOP
|
||
;8 1 2
|
||
;7 3
|
||
;6 5 4
|
||
CALLR SETUP_HULK ;INC CNT, SET DIR, SET DEATH FLAG
|
||
MOVE A10,*A13(DIR)
|
||
|
||
;A8=1-4
|
||
;A11=0 THEN SPREAD OUT
|
||
MOVE A11,A11
|
||
JRZ DOXY
|
||
;FOR STACKING UP IN HUT
|
||
MOVE A10,A0
|
||
SLL 5,A0
|
||
MOVI FRMHUT,A4 ;ADDI HXT2,A0
|
||
JRUC DOX
|
||
DOXY MOVE A10,A0
|
||
SLL 5,A0
|
||
ADDI HXT,A0
|
||
MOVE *A0,A4,L
|
||
;BTML .LONG 0,0,[08,0],[10,0],[08,0],[30,0],[08,0],[50,0],[17,0],[20,0]
|
||
;[Y,X] OF PLACEMENT
|
||
;A4=THIS
|
||
;A8=1-4
|
||
DOX SLL 6,A8
|
||
ADD A8,A4
|
||
MOVE *A4+,A1,L ;GET Y FIRST
|
||
ADD A9,A1
|
||
SLL 16,A9
|
||
MOVE *A4,A0,L
|
||
ADD A9,A0
|
||
SLL 5,A10
|
||
;BTMLF .LONG 0,GR10,GR10,GR2,GR2
|
||
|
||
MOVE *A13(HULKTYP),A3
|
||
SLL 5,A3
|
||
MOVI FLD1,A2
|
||
ADD A3,A2
|
||
MOVE *A2,A2,L
|
||
ADDI FLD2,A3
|
||
MOVE *A3,A3,L
|
||
ADD A3,A10
|
||
|
||
RTAG3 MOVE *A10,A10,L
|
||
SRL 1,A8
|
||
ADD A8,A10
|
||
MOVE *A10,A9,L
|
||
;NEED A0=[X,0000],A1=[Y,0000]
|
||
|
||
|
||
;A0,A1 ARE SET UP
|
||
;A9=FRANIM GROW FROM SLIME
|
||
MOVI 159,A3
|
||
MOVI DMAWNZ,A4 ;NON-ZERO VALUE
|
||
MOVI CLSENMY|TYPGRW,A5
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2
|
||
|
||
MOVE *A13(CFLAGS),A0 ;RUNNING OUT
|
||
ORI 2,A0
|
||
MOVE A0,*A13(CFLAGS)
|
||
OKZ0
|
||
MOVE @JUMPER,A11
|
||
JRZ NOJMP
|
||
MOVI 300,A0
|
||
MOVE A0,*A8(OZPOS)
|
||
MOVK 5,A0
|
||
MOVE A0,*A13(LEVEL)
|
||
MOVE A11,*A13(JUMPF)
|
||
CALLR SV ;STRTME
|
||
|
||
BIN
|
||
;IN HERE FOR BACKGROUND JUMPER
|
||
|
||
;IF THIS IS A JUMPER DUDE, THEN
|
||
;TURN OFF COLLISIONS
|
||
MOVE *A8(OFLAGS),A0
|
||
ORI M_NOCOLL,A0
|
||
MOVE A0,*A8(OFLAGS)
|
||
STPWLK SLEEPK 1
|
||
;RUN UNTIL TIME TO JUMP
|
||
CKXYTOP MOVE @HALT,A0
|
||
JRNZ STPWLK
|
||
CLR A1
|
||
JSRP FRANIM
|
||
JRNC CKY ;BR=NOT AT END OF SCRIPT YET
|
||
CALLR GET_RUN
|
||
CKY CMPI 1,A11
|
||
JRNZ CKXL
|
||
MOVE *A8(OYPOS),A0
|
||
MOVE @JUMPXY,A1
|
||
CMP A0,A1
|
||
JRGT CKXYTOP
|
||
|
||
;READY FOR JUMP DOWN
|
||
;CHANGE VELOCITY HERE
|
||
CREATE 0,DOYV1
|
||
MOVI JDWN,A9 ;AXE GRUNT
|
||
MOVI JDWN2,A10 ;NEXT PHASE
|
||
MOVE *A13(HULKTYP),A1
|
||
JRNZ RTAG6
|
||
MOVI DJDWN,A9 ;SOLDIER GRUNT
|
||
MOVI DJDWN2,A10 ;NEXT PHASE
|
||
RTAG6 MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVE A10,A9
|
||
; MOVI JDWN2,A9
|
||
JINOUT
|
||
;JUMP/LAND
|
||
;TURN ON COLLISIONS
|
||
MOVE *A8(OFLAGS),A0
|
||
ANDI 0F7FFH,A0
|
||
MOVE A0,*A8(OFLAGS)
|
||
MOVI CLSENMY|TYPHULK,A5
|
||
MOVE A5,*A8(OID)
|
||
MOVI 159,A0
|
||
MOVE A0,*A8(OZPOS)
|
||
CLR A0
|
||
MOVE A0,*A8(OYVEL),L
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
SLEEPK 10
|
||
MOVE *A13(DIR),A0
|
||
CALLR INTO
|
||
CALLR GET_RUN ;GET FIRST FRANIM PNTR FOR
|
||
MOVK 20,A3
|
||
MOVE A3,*A13(DIS) ;CHANGE BASED ON HULKS SPEED?
|
||
JRUC LUP_ST
|
||
|
||
CKXL CMPI 3,A11
|
||
JRNZ CKXR
|
||
MOVE *A8(OXPOS),A0
|
||
MOVE @JUMPXY2,A1
|
||
CMP A0,A1
|
||
JRLT CKXYTOP
|
||
;READY FOR JUMP FROM RIGHT
|
||
;CHANGE VELOCITY HERE
|
||
CREATE 0,DOYV
|
||
MOVI JRDWN,A9 ;DEMON
|
||
MOVI JRDWN2,A10 ;NEXT PHASE
|
||
MOVE *A13(HULKTYP),A1
|
||
JRNZ RTAG4
|
||
; CREATE 0,MYSHAD
|
||
MOVI DJRDWN,A9 ;REGULAR SOLDIER
|
||
MOVI DJRDWN2,A10 ;NEXT PHASE
|
||
RTAG4
|
||
MOVI -8800H,A0 ;12
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVE A10,A9
|
||
JRUC JINOUT
|
||
|
||
DOYV1 ;FROM TOP OF SCRN DOWN
|
||
MOVI -3000H,A0 ;12
|
||
MOVE A0,*A8(OYVEL),L
|
||
SLEEPK 10
|
||
MOVI -1000H,A0 ;12
|
||
MOVE A0,*A8(OYVEL),L
|
||
SLEEPK 3
|
||
MOVI 5000H,A0 ;12
|
||
MOVE A0,*A8(OYVEL),L
|
||
SLEEPK 15
|
||
MOVI 0F000H,A0 ;12
|
||
MOVE A0,*A8(OYVEL),L
|
||
|
||
SLEEPK 015H
|
||
MOVI 016000H,A0 ;12
|
||
MOVE A0,*A8(OYVEL),L
|
||
SLEEPK 0CH
|
||
MOVI 01C000H,A0 ;12
|
||
MOVE A0,*A8(OYVEL),L
|
||
DIE
|
||
DOYV MOVI -8000H,A0 ;FROM RIGHT OF SCRN DOWN
|
||
MOVE A0,*A8(OYVEL),L
|
||
SLEEPK 15
|
||
MOVI -4000H,A0
|
||
MOVE A0,*A8(OYVEL),L
|
||
SLEEPK 15
|
||
MOVI 3000H,A0
|
||
MOVE A0,*A8(OYVEL),L
|
||
SLEEPK 15
|
||
MOVI 0C000H,A0
|
||
MOVE A0,*A8(OYVEL),L
|
||
SLEEPK 15
|
||
|
||
MOVI 15000H,A0
|
||
MOVE A0,*A8(OYVEL),L
|
||
DIE
|
||
|
||
DOYVP MOVI 0FFFE7000H,A0 ;FOR HULK JUMPING UP AND OUT OF PIT
|
||
MOVE A0,*A8(OYVEL),L
|
||
SLEEPK 18
|
||
|
||
MOVI 159,A0
|
||
MOVE A0,*A8(OZPOS)
|
||
SLEEPK 7
|
||
MOVI 0FFFF6000H,A0
|
||
MOVE A0,*A8(OYVEL),L
|
||
SLEEPK 15
|
||
|
||
MOVI 08000H,A0
|
||
MOVE A0,*A8(OYVEL),L
|
||
SLEEPK 7
|
||
MOVI 0F000H,A0
|
||
MOVE A0,*A8(OYVEL),L
|
||
SLEEPK 7
|
||
MOVI 15000H,A0
|
||
MOVE A0,*A8(OYVEL),L
|
||
DIE
|
||
|
||
|
||
CKXR LOCKUP
|
||
|
||
SV
|
||
MOVE *A13(HULKTYP),A1
|
||
SLL 5,A1
|
||
ADDI HPAL,A1
|
||
MOVE *A1,A0,L
|
||
|
||
CALLA GETFPAL ;GET A COLOR MAP ASSIGNMENT
|
||
MOVE A0,*A8(OPAL),W ;STORE THE NEW PALETTE
|
||
OKVA
|
||
CALLR DO_DIFF
|
||
MOVE *A13(DIR),A0
|
||
MOVE A0,*A13(BOXCK)
|
||
CALLR INTO
|
||
JRUC GET_RUN ;CALLR GET_RUN ;GET FIRST FRANIM PNTR FOR
|
||
|
||
HPAL .LONG DGP2,GRNTB,AHMEDP
|
||
|
||
NOJMP
|
||
;CHANGE PAL IF NEEDED
|
||
MOVE *A13(LEVEL),A0
|
||
CMPI 4,A0 ;4
|
||
JRLT OKVX
|
||
|
||
MOVE *A13(HULKTYP),A1
|
||
SLL 5,A1
|
||
ADDI HPAL,A1
|
||
MOVE *A1,A0,L
|
||
CALLA GETFPAL ;GET A COLOR MAP ASSIGNMENT
|
||
MOVE A0,*A8(OPAL),W ;STORE THE NEW PALETTE
|
||
OKVX
|
||
;GROW UP OUT OF SLIME
|
||
; MOVK 1,A0
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVI CLSENMY|TYPHULK,A5
|
||
MOVE A5,*A8(OID)
|
||
;THEN START WITH A VELOCITY!
|
||
CALLR OKVA
|
||
MOVI 38,A3 ;38
|
||
MOVE A3,*A13(DIS) ;CHANGE BASED ON HULKS SPEED?
|
||
MOVE *A8(OYPOS),A0
|
||
MOVE @WORLDTLY,A1,L
|
||
SRL 16,A1
|
||
ADDI 285,A1 ;275
|
||
CMP A0,A1
|
||
JRGT LUP_ST
|
||
;THIS HULK STARTING LOWER THAN BOTTOM OF SCRN!
|
||
;RESET ITS Y LINE
|
||
MOVE A1,*A8(OYPOS)
|
||
LUP_ST: MOVK 2,B0
|
||
MOVI 12,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,*A13(STCNT)
|
||
;
|
||
; LOOP TOP FOR HULKS
|
||
;
|
||
LUP_TOP:
|
||
;TOP OF HULK LOGIC
|
||
MOVE @HALT,A0
|
||
JRZ CONT0 ;IF HALT ON, LOOP BACK TO TOP
|
||
SLEEPK 3
|
||
JRUC LUP_TOP
|
||
CONT0
|
||
;
|
||
; DO HULK MOVEMENT LOGIC A8=CURRENT OBJECT POINTER (HULK IMAGE)
|
||
;
|
||
;FIRST, DO AGE/LEVEL UPDATE
|
||
MOVE *A13(HAGE),A0
|
||
ANDI 03FFH,A0
|
||
DEC A0
|
||
MOVE A0,*A13(HAGE)
|
||
JRNZ NONEW
|
||
MOVE *A13(LEVEL),A0
|
||
CMPI MAXLEVEL,A0
|
||
JREQ NONEW
|
||
INC A0
|
||
MOVE A0,*A13(LEVEL)
|
||
CALLR DO_DIFF
|
||
MOVE *A13(KPAGE),A0
|
||
MOVE A0,*A13(HAGE)
|
||
NONEW
|
||
MOVE *A13(CFLAGS),A0
|
||
BTST 1,A0
|
||
JRNZ NOPROB ;IF JUST RUNNING IN, DON'T CHECK WALLS
|
||
MOVE @EN_CURRENT,A0,L ;CURRENT RECT LIST
|
||
JRZ NOPROB
|
||
CALLR CK_RECT
|
||
JRNC NOPROB
|
||
;THIS GRUNT IS STUCK BNCING BETWEEN WALLS!
|
||
;KILL ME!
|
||
MOVK 1,A11
|
||
JRUC BMPDI
|
||
NOPROB MOVI SETUP_DIR,A10 ;ROUTINE TO CALL
|
||
CALLR CK_SPIN
|
||
MOVE A0,A0
|
||
JRZ NOTSPIN
|
||
CALLA PRCSLP
|
||
JRUC LUP_TOP
|
||
|
||
NOTSPIN
|
||
MOVE *A13(DIS),A0 ;UPDATE DISTANCE COUNT
|
||
DEC A0
|
||
MOVE A0,*A13(DIS) ;STUFF NEW COUNT
|
||
JRNZ DOHULK ;BR=CONTINUE CURRENT DIRECTION
|
||
MOVE A0,*A13(BNCING)
|
||
MOVE *A13(CFLAGS),A0
|
||
BTST 4,A0
|
||
JRZ NGNG ;BR=NOT A GANG MEMBER
|
||
MOVE *A13(CFLAGS),A0
|
||
ANDI 0FFEDH,A0 ;I AM A GANG MEMBER ;FFEF
|
||
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
|
||
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
|
||
|
||
;8 1 2
|
||
;7 3
|
||
;6 5 4
|
||
NEWANGA:
|
||
.LONG 0,ANG1A,ANG1A,ANG3A,ANG5A,ANG5A,ANG7A,ANG7A,ANG1A
|
||
NEWANG: .LONG 0,ANG1,ANG1,ANG3,ANG5,ANG5,ANG7,ANG7,ANG1
|
||
ANG5: .WORD 7,6,4,3
|
||
ANG1: .WORD 7,3,8,2
|
||
ANG3: .WORD 1,5,2,4
|
||
ANG7: .WORD 8,6,1,5
|
||
;
|
||
ANG5A: .WORD 7,3,5,3
|
||
ANG1A: .WORD 7,3,1,7
|
||
ANG3A: .WORD 1,5,5,3
|
||
ANG7A: .WORD 1,5,1,7
|
||
;
|
||
;NOW POINT THIS HULK AT CURRENT POSITION OF PLAYER
|
||
T3: MOVE *A13(BNCING),A0
|
||
JRNZ DOHULK
|
||
MOVE *A13(SK_DIR),A7,W
|
||
;IF NEW SEEK IS <> OLD SEEK, THEN SET STAND FLAG
|
||
CALLR GET_DIS
|
||
CALLR SETUP_DIR
|
||
MOVE *A13(SK_DIR),A0
|
||
CMP A0,A7 ;NEW CMP OLD SEEK
|
||
JREQ DOHULK
|
||
MOVE *A13(HULKTYP),A0
|
||
JRNZ T4
|
||
;MAYBE SHOOT AT PLAYER!
|
||
MOVE *A13(STCNT),A0
|
||
JRZ T4
|
||
DEC A0
|
||
MOVE A0,*A13(STCNT)
|
||
JRNZ T4
|
||
;SHOOT AT PLAYER
|
||
MOVK 2,B0
|
||
MOVI 12,B1
|
||
CALLA RANGRAND
|
||
MOVE A0,*A13(STCNT)
|
||
;DOSHOOT
|
||
;A9=PLAYER 1 OR 2
|
||
;THIS HULK IS ABOUT TO SHOOT
|
||
;START HULK SHOTS
|
||
* ISOBJ - IS AN OBJECT ON THE OBJECT LIST? *
|
||
* A0 = PTR TO OBJECT *
|
||
* RETURNS: *
|
||
* Z BIT SET = NO OBJECT, A0 = 0 *
|
||
* Z BIT CLR = NO OBJECT, A0 = PTR TO OBJECT *
|
||
MOVE A8,A0
|
||
CALLA ISOBJ ;FIX BUG!
|
||
JRZ HDI
|
||
CLR A1
|
||
MOVE A1,*A8(OXVEL),L
|
||
MOVE A1,*A8(OYVEL),L
|
||
MOVE @HULK_CNT,A9
|
||
MOVE @PCNT,A11
|
||
ANDI 03H,A11
|
||
INC A11 ;A11=FRANIM LIST CNT
|
||
MOVE A11,*A13(IBAT)
|
||
ANDI 01H,A9
|
||
SLL 5,A9
|
||
MOVI PLYROBJS,A2
|
||
ADD A9,A2
|
||
MOVE *A2,A0,L
|
||
JRNZ DOS1
|
||
XORI 32,A9
|
||
MOVI PLYROBJS,A2
|
||
ADD A9,A2
|
||
MOVE *A2,A0,L
|
||
DOS1 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 XSUP ;BR=BAT UPWARD
|
||
CMP A4,A1
|
||
JRC XB8O ;BR=8 O'CLOCK SWING NEEDED
|
||
;4 O'CLOCK
|
||
MOVI SHOOT4O,A9 ;SOLDIER
|
||
CLR A10
|
||
JRUC GUNFIRE
|
||
XB8O
|
||
;8
|
||
MOVI SHOOT8O,A9
|
||
MOVK 1,A10
|
||
JRUC GUNFIRE
|
||
XSUP CMP A4,A1
|
||
JRC XB10O
|
||
;2 O'CLOCK
|
||
MOVI SHOOT2O,A9
|
||
MOVK 2,A10
|
||
JRUC GUNFIRE
|
||
XB10O
|
||
MOVI SHOOT10O,A9
|
||
MOVK 3,A10
|
||
|
||
GUNFIRE
|
||
CREATE FLMPID,ABULLET ;HULKPID
|
||
MOVE A0,*A13(BULPRC),L ;KEEP BULLET FIRING PROCESS
|
||
SLL 5,A10 ;DISPLAY INITIAL SHOOTING FRAME
|
||
MOVI GFA,A0
|
||
ADD A10,A0
|
||
MOVE *A0,A1,L
|
||
ADDI GFF,A10
|
||
MOVE *A10,A4,L
|
||
CALLA ANI
|
||
SLEEPK 30
|
||
MOVE A9,A10
|
||
GF MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVE A10,A9
|
||
DSJS A11,GF
|
||
SLEEPK 30
|
||
JRUC BATDN
|
||
|
||
ABULLET
|
||
;A11=# OF BULLETS TO SHOOT/2
|
||
;A10=0=4,1=8,2=2,3=10 = DIRECTIONS
|
||
SLEEPK 30
|
||
SLL 1,A11
|
||
ABU CREATE FLMPID,BULL2 ;HULKPID
|
||
SLEEPK 8
|
||
DSJS A11,ABU
|
||
MOVE *A8(OPLINK),A0,L
|
||
MOVE A11,*A0(BULPRC),L
|
||
HDI DIE
|
||
|
||
GFA .LONG DSWINGa,DSWINGa,DBATa,DBATa
|
||
GFF .LONG DMAWNZ|M_FLIPH,DMAWNZ,DMAWNZ|M_FLIPH,DMAWNZ
|
||
|
||
;A10=0=4,1=8,2=2,3=10 = DIRECTIONS
|
||
;BLIMG .LONG GNTBUL8,GNTBUL8,GNTBUL10,GNTBUL10
|
||
;BLIMG .LONG GNTBUL8,GNTBUL8,GNTBUL10,GNTBUL10
|
||
;BLFLP .LONG DMAWNZ|M_FLIPH,DMAWNZ,DMAWNZ|M_FLIPH,DMAWNZ
|
||
XVL .LONG 018000H,-18000H,018000H,-18000H
|
||
YVL .LONG 0C000H,0C000H,-18000H,-18000H
|
||
XOFSET .LONG [18H,0],[-4,0],[1BH,0],[-2,0]
|
||
YOFSET .LONG [16H,0],[16H,0],[-2,0],[-2,0]
|
||
BULL2
|
||
SLL 5,A10
|
||
|
||
MOVI GFF,A3
|
||
ADD A10,A3
|
||
MOVE *A3,A4,W ;MAYBE LONG
|
||
|
||
MOVI XVL,A3
|
||
ADD A10,A3
|
||
MOVE *A3,A6,L
|
||
MOVI YVL,A3
|
||
ADD A10,A3
|
||
MOVE *A3,A7,L
|
||
MOVE *A8(OXVAL),A0,L
|
||
MOVE *A8(OYVAL),A1,L
|
||
MOVI XOFSET,A3
|
||
MOVI YOFSET,A5
|
||
ADD A10,A3
|
||
MOVE *A3,A3,L
|
||
ADD A3,A0
|
||
ADD A10,A5
|
||
MOVE *A5,A3,L
|
||
ADD A3,A1
|
||
MOVI CNNBLL2,A2
|
||
MOVI CLSENMY|TYPGOO,A5 ;ENMY|TYPSHOT,A5
|
||
MOVI 160,A3 ;133
|
||
CALLA BEGINOBJ2
|
||
|
||
MOVI GRNTSHT,A0
|
||
CALLA ONESND
|
||
JAUC START_PJ2
|
||
|
||
|
||
T4: MOVE *A13(CFLAGS),A0 ;SAYS I AM SPINNING
|
||
ORI 01H,A0
|
||
MOVE A0,*A13(CFLAGS),W
|
||
MOVK 2,A0
|
||
MOVE A0,*A13(OSCILLATE)
|
||
SLEEPK 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
|
||
|
||
DOBAT:
|
||
;A9=PLAYER 1 OR 2
|
||
;THIS HULK IS BATTING
|
||
;START BAT SWING
|
||
MOVE *A13(DIR),A0
|
||
CMPI 1,A0
|
||
JRNZ DBC
|
||
;HULK WAS GOING UP, CHEAT HIM UP A LITTLE CLOSER TO PLAYER
|
||
MOVE *A8(OYPOS),A0
|
||
SUBK 5,A0
|
||
MOVE A0,*A8(OYPOS)
|
||
DBC CALLR PHASE1
|
||
JRC SUP ;BR=BAT UPWARD
|
||
CMP A4,A1
|
||
JRC B8O ;BR=8 O'CLOCK SWING NEEDED
|
||
;4 O'CLOCK
|
||
MOVE *A13(HULKTYP),A0
|
||
SLL 5,A0
|
||
ADDI ABAT,A0
|
||
MOVE *A0,A9,L
|
||
JRUC DOBT
|
||
|
||
ABAT .LONG BAT4OS,BAT4O,BAT4OA
|
||
BBAT .LONG BAT8OS,BAT8O,BAT8OA
|
||
CBAT .LONG BAT2OS,BAT2O,BAT2OA
|
||
DBAT .LONG BAT10OS,BAT10O,BAT10OA
|
||
|
||
B8O
|
||
;8
|
||
MOVE *A13(HULKTYP),A0
|
||
SLL 5,A0
|
||
ADDI BBAT,A0
|
||
MOVE *A0,A9,L
|
||
JRUC DOBT
|
||
SUP CMP A4,A1
|
||
JRC B10O
|
||
;2 O'CLOCK
|
||
MOVE *A13(HULKTYP),A0
|
||
SLL 5,A0
|
||
ADDI CBAT,A0
|
||
MOVE *A0,A9,L
|
||
JRUC DOBT
|
||
B10O
|
||
MOVE *A13(HULKTYP),A0
|
||
SLL 5,A0
|
||
ADDI DBAT,A0
|
||
MOVE *A0,A9,L
|
||
DOBT MOVE A9,A10
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVE A10,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
|
||
BATDN CLR A0
|
||
MOVE A0,*A13(IBAT)
|
||
MOVK 1,A0
|
||
MOVE A0,*A13(DIS)
|
||
MOVE A0,*A13(CFLAGS)
|
||
MOVI ZEROS,A9
|
||
JRUC LUP_TOP
|
||
;
|
||
ZEROS .LONG 0,0
|
||
|
||
|
||
GET_WVADDR:
|
||
;A2=ENEMY TYPE LOOKING FOR
|
||
;IE.HULK,TANK
|
||
;PROBLEM WITH DUPLICATES!
|
||
MOVI WAVE_RAM,A0
|
||
HU1: MOVE *A0,A1,W ;TYPE
|
||
CMP A2,A1
|
||
JREQ YSID
|
||
ADDI 6*16,A0
|
||
JRUC HU1
|
||
YSID: 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 11,10,9,8,7,7,6,6,5,5,4,4,3,3,3,3
|
||
AGTBL: .WORD 160,300,180,220,280,420,500,100,140,250,90,160
|
||
;
|
||
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
|
||
;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 *A13(HULKTYP),A4
|
||
SLL 5,A4
|
||
ADDI HSTND,A4
|
||
MOVE *A4,A4,L
|
||
ADD A4,A0
|
||
|
||
MOVE *A0,A1,L ;NEW OIMG
|
||
SLL 4,A2
|
||
ADDI SPINFLGS,A2
|
||
MOVE *A2,A4,W ;NEW OFLAGS
|
||
JAUC ANI ;CALLA ANI
|
||
; 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
|
||
; MOVE *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
|
||
;
|
||
; MOVE *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!
|
||
; MOVE A2,*A13(SKPLYR)
|
||
;ZCT
|
||
; SLEEPK 1
|
||
; JAUC LUP_TOP
|
||
|
||
SETUP_DIRA:
|
||
MOVE *A13(GOCRNR),A0,L ;[Y,X]
|
||
JRZ SETUP_DIR
|
||
;THIS AHMED WILL SEEK TO A CORNER BEFORE SEEKING PLAYER
|
||
;NEED 32 BIT Y/X [Y,X] IN A0
|
||
JRUC DOGET
|
||
|
||
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
|
||
MOVE *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
|
||
MOVE 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
|
||
DOGET CALLA GETXY ;A8 TO SEEK A0
|
||
INC A0
|
||
MOVE A0,*A13(SK_DIR) ;DIR WE WANT TO BE FACING!
|
||
;
|
||
;NEEDED FOR WHEN BOTH PLAYERS ARE DEAD
|
||
;
|
||
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
|
||
;
|
||
INTO12:
|
||
;A0=DIR FROM 1-12
|
||
SLL 5,A0
|
||
ADDI JTBL12,A0
|
||
MOVE *A0,A0,L
|
||
JUMP A0
|
||
|
||
JTBL12 .LONG LK,IN1,LK,LK,IN3,LK,LK,IN5,LK,LK,IN7,LK,LK
|
||
; 1
|
||
; 12 2
|
||
; 11 3
|
||
; 10 4
|
||
; 9 5
|
||
; 8 6
|
||
; 7
|
||
|
||
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
|
||
|
||
SETUP_HULK:
|
||
;A10=DIRECTION
|
||
;8 1 2
|
||
;7 3
|
||
;6 5 4
|
||
MOVE A10,*A13(SK_DIR)
|
||
CLR A0
|
||
MOVE A0,*A13(BULPRC),L ;BULLET FIRING PROCESS
|
||
|
||
CALLR GETPSK
|
||
|
||
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
|
||
MOVE @WAVE,A0
|
||
CMPI 29,A0
|
||
JRZ GOAGN
|
||
CMPI 22,A0
|
||
JRZ GB
|
||
CMPI 21,A0
|
||
JRZ GB
|
||
CMPI 26,A0
|
||
JRZ GB2
|
||
CMPI 19,A0
|
||
JRZ AWARP
|
||
CMPI 16,A0
|
||
JRZ TRY_RCK
|
||
CMPI 13,A0
|
||
JRZ TAUNT
|
||
CMPI 14,A0
|
||
JRZ SCRLAGN
|
||
CMPI 20,A0
|
||
JRZ BRING60
|
||
CMPI 3,A0
|
||
JRNZ NXC
|
||
CREATE FUTUREPID,ENDWV
|
||
RETS
|
||
AWARP
|
||
;CREATE A INSTANT WARP DISC
|
||
;START SCROLL INTO AIRPORT
|
||
MMTM SP,A8,A9,A10
|
||
CREATE WARPPID,INST_WARP
|
||
MOVI 08000H,A0
|
||
MOVE A0,@HZSPD,L
|
||
CLR A0
|
||
MOVE A0,@CRSRAM,L
|
||
MOVI PATHAIR,A10 ;INDICATES NEW SCROLL WITH SCRL TABLE
|
||
MOVE @WORLDTLX,A8,L
|
||
SRL 16,A8
|
||
ADDI 250,A8 ;A8=0 MEANS NOT CHECKING FOR X TARGET
|
||
CLR A9
|
||
CREATE TARGPID,TARGET ;A9=Y TARGET LINE TO TRIGGER SCROLL
|
||
MOVK 1,A9 ;A9=0 FOR UP, 1 FOR RGT
|
||
CREATE ARWPID,ONARRW ;TURN ON UP ARROW
|
||
CREATE FUTUREPID,AOF ;ARROW OFF AFTER A TIME
|
||
CALLA CLNPAL
|
||
MMFM SP,A8,A9,A10
|
||
RETS
|
||
PATHAIR
|
||
.WORD 3,3D0H,15,1,2,700H,16,1,1,0F8H,3,320H
|
||
.WORD 17,1,1,504H,19,1,0
|
||
GOAGN
|
||
;START SCROLL INTO END OF AIRPORT
|
||
MMTM SP,A8,A9,A10
|
||
CLR A0
|
||
MOVE A0,@CRSRAM,L
|
||
MOVI PATHEND,A10 ;INDICATES NEW SCROLL WITH SCRL TABLE
|
||
MOVE @WORLDTLX,A8,L
|
||
SRL 16,A8
|
||
ADDI 250,A8 ;A8=0 MEANS NOT CHECKING FOR X TARGET
|
||
CLR A9
|
||
CREATE TARGPID,TARGET ;A9=Y TARGET LINE TO TRIGGER SCROLL
|
||
MOVK 1,A9 ;A9=0 FOR UP, 1 FOR RGT
|
||
CREATE ARWPID,ONARRW ;TURN ON UP ARROW
|
||
CREATE FUTUREPID,AOF ;ARROW OFF AFTER A TIME
|
||
CALLA CLNPAL
|
||
MMFM SP,A8,A9,A10
|
||
RETS
|
||
PATHEND .WORD 3,362H,1,290,0
|
||
|
||
SHSTG
|
||
;SEND GROUP OF HOSTAGES DOWN AT PLAYER FROM ELEVATOR IN LOCKDOWN
|
||
MOVK 5,A8
|
||
CREATE 0,LHLPS
|
||
XSEND1
|
||
SLEEPK >1f
|
||
MOVE @WORLDTLY,A0,L
|
||
SUBI [34H,0],A0
|
||
MOVE @WORLDTLX,A9,L
|
||
SRL 16,A9
|
||
ADDI 162,A9
|
||
MOVY A0,A9
|
||
CALLR SENDH_GROUP
|
||
DSJ A8,XSEND1
|
||
DIE
|
||
GB2
|
||
CREATE0 SLOWBK
|
||
RETS
|
||
SLOWBK SLEEP 18*60
|
||
;GO BACK FROM WARP LOCKDOWN #2
|
||
CREATE WARPPID,GOBACK
|
||
;SEND OUT CHASER!
|
||
MOVK 1,A0
|
||
MOVE A0,@ICONS_DN
|
||
DIE
|
||
GB
|
||
;GO BACK FROM WARP LOCKDOWN #2
|
||
CREATE WARPPID,GOBACK
|
||
;SEND OUT CHASER!
|
||
MOVK 1,A0
|
||
MOVE A0,@ICONS_DN
|
||
RETS
|
||
TRY_RCK
|
||
; RETS
|
||
PUSH A10
|
||
MOVK 1,A10 ;FIRST RACKUP
|
||
CREATE 0,WAITTNT
|
||
PULL A10
|
||
RETS
|
||
TAUNT
|
||
PUSH A10
|
||
CLR A10 ;0=FIRST TAUNT
|
||
CREATE 0,WAITTNT
|
||
PULL A10
|
||
RETS
|
||
SCRLAGN
|
||
;START SCROLLING UP INTO DESERT AGAIN
|
||
MMTM SP,A8,A9,A10
|
||
CLR A0
|
||
MOVE A0,@CRSRAM,L
|
||
MOVI PATHC,A10 ;INDICATES NEW SCROLL WITH SCRL TABLE
|
||
MOVE @WORLDTLY,A9,L
|
||
SRL 16,A9
|
||
ADDI 220,A9 ;A9=Y TARGET LINE TO TRIGGER SCROLL
|
||
CLR A8 ;A8=0 MEANS NOT CHECKING FOR X TARGET
|
||
CREATE TARGPID,TARGET
|
||
;TURN ON COLOR CYCLES FOR THIS TOP PART OF DESERT
|
||
CALLA CLNPAL
|
||
CALLA SETC2 ;START LAND MINE COLOR CYCLE
|
||
CALLA STRT_G ;CYCLE GOOB POOL
|
||
CALLA STRT_D ;CYCLE SAT DISH
|
||
CREATE 0,ICON_STOP
|
||
MOVI 012BH,A0
|
||
MOVE A0,@JUMPXY2 ;X JUMP COOR FOR TOP OF DESERT HILLS
|
||
MOVI 021AH,A0 ;Y JUMP FOR TOP OF DESERT
|
||
MOVE A0,@JUMPXY
|
||
MMFM SP,A8,A9,A10
|
||
MOVK 15,A0
|
||
CALLA DOLORD
|
||
CREATE 0,JEPCYC
|
||
; .REF BEACONS
|
||
; CREATE 0,BEACONS ;SHOW AREA AROUND DISHES ETC.
|
||
MOVI TUNE5,A0
|
||
CALLA ONESND
|
||
RETS
|
||
TUNE5 .WORD >F3F0,2,>8008,0 ;AIRPORT TUNE
|
||
ICON_STOP
|
||
MOVK 1,A0
|
||
MOVE A0,@ICONS_DN
|
||
SLEEP 15*60
|
||
CREATE ICONPID,SEND_ICON
|
||
DIE
|
||
|
||
PATHC ;DIR,CNT
|
||
.WORD 1,190H,2,320H,10,1,1,1D8H,7,31FH,9,0B8H,1,10H,11,1,2,2E0H,1,1C0H
|
||
.WORD 12,1,7,2D8H,1,1D0H,2,150H,3,1A0H,9,0C8H,7,188H,13,1,1,348H,8,16BH
|
||
.WORD 1,1FAH,0
|
||
|
||
BRING60
|
||
;WARP LOCKDOWN 1
|
||
;BRING OUT A BTR60
|
||
CREATE FUTUREPID,BTR60A
|
||
RETS
|
||
NXC CMPI 4,A0
|
||
JRNZ NXW
|
||
;WHEN WAVE IS FINISHED, CREATE A PROC TO BLINK ELEVATOR MESSAGE!
|
||
CREATE DROPPID,TAKEEL
|
||
RETS
|
||
NXW CMPI 5,A0
|
||
JRNZ BZ
|
||
CREATE FUTUREPID,CKFORY
|
||
BZ RETS
|
||
CKFORY SLEEP 60
|
||
MOVE @WORLDTLY,A0,L
|
||
CMPI [679H,0],A0
|
||
JRGT CKFORY
|
||
;MIDDLE OF SECRET PATH! START NEW WAVE
|
||
MOVI 0140H,A0 ;FOR JUMPING DOWN HORIZONTALLY
|
||
MOVE A0,@JUMPXY2
|
||
MOVK 6,A0
|
||
CALLA DOLORD
|
||
MOVI ERECT6,A0
|
||
MOVE A0,@ENEMY_RECT,L ;FOR SPAWNING
|
||
DIE
|
||
|
||
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 *A13(HULKTYP),A0
|
||
SLL 5,A0
|
||
ADDI HLISTS,A0
|
||
MOVE *A0,A0,L
|
||
JUMP A0
|
||
|
||
HLISTS .LONG NORM,NORM1,NORM2
|
||
|
||
;FLAME THROWER CARRYING AHMED GRUNT
|
||
NORM2
|
||
MOVE *A13(LEVEL),A0
|
||
CMPI 2,A0 ;3
|
||
JRLT SLOB
|
||
CMPI 5,A0 ;6
|
||
JRLT MEDB
|
||
ADDI WALK_LISTFB,A4
|
||
JRUC SPO
|
||
MEDB ADDI WALK_LISTMB,A4
|
||
JRUC SPO
|
||
SLOB ADDI WALK_LISTB,A4 ;CALCULATE OFFSET IN TABLE
|
||
JRUC SPO
|
||
|
||
|
||
;AXE CARRYING DEMON GRUNT
|
||
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
|
||
|
||
;REGULAR SOLDIER GRUNT
|
||
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
|
||
|
||
HSTND .LONG SPINFRMS2,SPINFRMS,SPINFRMSA
|
||
|
||
|
||
|
||
**************************************************************************
|
||
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
|
||
|
||
KILL_H1
|
||
;A8=HULK IMAGE TO SMART BOMB ALSO KILL AHMED
|
||
;A9=P1DATA OR P2DATA FOR SCORE UPDATE
|
||
;SMART BOMB ENTRY
|
||
;ENTER HERE WITH SMART BOMB
|
||
MOVE *A8(OID),A0,W
|
||
ZEXT A0
|
||
CMPI CLSENMY|TYPAHMD,A0
|
||
JRNZ AHLK
|
||
MOVE @AHMD_CNT,A0
|
||
DEC A0
|
||
MOVE A0,@AHMD_CNT
|
||
JRUC ALO
|
||
AHLK
|
||
MOVE *A8(OPLINK),A0,L
|
||
CLR A1
|
||
MOVE A1,*A0(PROCID) ;SEPT 20
|
||
MOVE @HULK_CNT,A0
|
||
DEC A0
|
||
MOVE A0,@HULK_CNT
|
||
JRNN ALO
|
||
; LOCKUP
|
||
; EINT
|
||
CLR A0
|
||
MOVE A0,@HULK_CNT
|
||
ALO CREATE 0,HSMRT ;BULLETS DIR WILL BE IN A10
|
||
;HULK_EXP WHEN IT WAKES UP
|
||
MOVI CLSDEAD,A0
|
||
MOVE A0,*A8(OID)
|
||
MOVE *A8(OPLINK),A0,L
|
||
MOVE *A0(BULPRC),A0,L
|
||
JRZ KJ1
|
||
CALLA PEXIST
|
||
JRZ KJ1
|
||
CALLA KILL ;KILLS BULLET PROCESS
|
||
KJ1 MOVE *A8(OPLINK),A0,L
|
||
CALLA KILL ;KILL GRUNT PROC
|
||
CLR A0
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVE A0,*A8(OYVEL),L
|
||
RETS
|
||
HSMRT
|
||
MOVE A9,A2
|
||
;A2=P1DATA OR P2DATA
|
||
MOVI HLKPT,A1 ;AMOUNT OF SCORE
|
||
CALLA SCRADD2 ;DO IT!
|
||
MOVE *A8(OYPOS),A2
|
||
ADDI 35,A2 ;A2=Y OFFSET ;30
|
||
MOVE A2,*A8(OYPOS)
|
||
MOVI 300,A0 ;200
|
||
MOVE A0,*A8(OZPOS)
|
||
MOVE @EXPCNT,A0 ;EXPS CAUSED BY SMART BOMB
|
||
CMPI 25,A0
|
||
JRNC HSO
|
||
INC A0
|
||
MOVE A0,@EXPCNT
|
||
MOVI XBOOM2,A9 ;BOOM3 CHANGES PALETTE TO EXPLOSION!
|
||
JAUC FRANIM_DIE
|
||
HSO MOVE A8,A0 ;TO MANY EXPS CAUSE SCRN GLITCH
|
||
CALLA DELOBJ
|
||
DIE
|
||
BAT_PLYR:
|
||
;STOP HULK FROM MOVING
|
||
;DECIDE WHICH OF FOUR SWING ANGLES TO USE
|
||
;TELL MAIN LOGIC THIS HULK IS SWINGING
|
||
MMTM SP,A1,A7
|
||
MOVE *A0(OPLINK),A0,L
|
||
MOVE *A0(PNUM),A9
|
||
MOVE *A8(OPLINK),A0,L
|
||
MOVE *A0(IBAT),A7
|
||
JRNZ FROMST
|
||
MOVI DOBAT,A7
|
||
MOVI HULKPID,A1
|
||
MOVE A1,*A0(IBAT)
|
||
CALLA XFERPROC
|
||
BPO MMFM SP,A1,A7
|
||
RETS
|
||
FROMST
|
||
;THIS GRUNT JUST STANDING AROUND!
|
||
MOVK 1,A1
|
||
MOVE A1,*A0(PTIME)
|
||
JRUC BPO
|
||
|
||
|
||
KILL_HULKZ:
|
||
;A8=HULK IMG PNTR, A0=KILLER IMG PNTR
|
||
MMTM SP,A1,A2
|
||
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
|
||
MOVI HULK_EXPZ,A7
|
||
JRUC ABC
|
||
KILL_HULK:
|
||
;A8=HULK IMG PNTR, A0=KILLER IMG PNTR
|
||
MMTM SP,A1,A2
|
||
; MOVE A0,@KILLER,L
|
||
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
|
||
MOVI HULK_EXP,A7
|
||
ABC
|
||
MOVI HULKPID,A1
|
||
CALLA XFERPROC
|
||
|
||
|
||
MOVE *A0(BULPRC),A0,L
|
||
JRZ KJ2
|
||
MOVE *A0(PROCID),A1
|
||
|
||
.IF DEBUG
|
||
CMPI FLMPID,A1
|
||
JRZ PAS
|
||
LOCKUP
|
||
EINT
|
||
PAS
|
||
.ENDIF
|
||
|
||
CALLA KILL ;KILLS BULLET PROCESS
|
||
KJ2
|
||
|
||
MOVI P1DATA,A2 ;PLAYER 1 SCORE SELECT
|
||
MOVE *A10(MYPLYR),A0 ;GET PLAYER #
|
||
CMPI 1,A0
|
||
JREQ CGA
|
||
CMPI 2,A0
|
||
JRNZ BMPDI0
|
||
MOVI P2DATA,A2
|
||
CGA
|
||
MOVI HLKPT,A1 ;AMOUNT OF SCORE
|
||
CALLA SCRADD2 ;DO IT!
|
||
BMPDI0
|
||
MOVK 1,A0
|
||
MOVE A0,@OUT_FLG
|
||
MOVI 199,A0 ;259
|
||
MOVE A0,*A8(OZPOS)
|
||
MOVE *A8(OFLAGS),A1
|
||
ORI M_NOCOLL,A1
|
||
MOVE A1,*A8(OFLAGS)
|
||
MOVI CLSDEAD,A0
|
||
MOVE A0,*A8(OID)
|
||
MOVI ALTEXP1,A0
|
||
MOVE @PCNT,A1
|
||
BTST 0,A1
|
||
JRZ DSA
|
||
MOVI EXP1L,A0
|
||
DSA CALLA ONESND
|
||
MMFM SP,A1,A2
|
||
RETS
|
||
|
||
HULK_EXPZ:
|
||
;A10=PROCESS OF BULLET/BLADE THAT HIT THIS HULK
|
||
;A11=HULKS DIR
|
||
;A9=KILLERS OID
|
||
MOVI P1DATA,A2 ;PLAYER 1 SCORE SELECT
|
||
MOVE *A10(PNUM),A0 ;GET PLAYER #
|
||
MOVI CLSPLYR|TYPPLBL|SUBNOSTP,A9
|
||
HULK_EXP:
|
||
;A10=PROCESS OF BULLET/BLADE THAT HIT THIS HULK
|
||
;A11=HULKS DIR
|
||
;A9=KILLERS OID
|
||
BMPDI
|
||
MOVE *A10(BLTDIR),A10 ;=BLTDIR!!! CAREFUL!!
|
||
CLR A0
|
||
MOVE A0,*A13(PROCID) ;SEPT 20
|
||
MOVE @HULK_CNT,A3
|
||
DEC A3
|
||
MOVE A3,@HULK_CNT
|
||
JRNN NOBUG
|
||
; LOCKUP
|
||
; EINT
|
||
CLR A0
|
||
MOVE A0,@HULK_CNT
|
||
NOBUG MOVE *A8(OPLINK),A0,L
|
||
MOVE *A0(HULKTYP),A0
|
||
CMPI 2,A0
|
||
JRZ AHMDDIE
|
||
;NOT AN AHMED GRUNT
|
||
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,A1
|
||
ADD A10,A1
|
||
MOVE *A1,A6,L
|
||
MOVE A6,*A8(OXVEL),L
|
||
|
||
MOVI RNGYL,A1
|
||
ADD A10,A1
|
||
MOVE *A1,A10,L
|
||
MOVE A10,*A8(OYVEL),L
|
||
CMPI CLSPLYR|TYPPLBL|SUBSPRY,A9
|
||
JRNE R1
|
||
;PIECES OR BLOODY DEATH DECISION HERE!
|
||
GR1 MOVE @PCTOT,A2
|
||
CMPI 010H,A2 ;19
|
||
JRLO ADDPCS
|
||
R1: DEC A11
|
||
ANDI 07H,A11
|
||
SLL 5,A11 ;A11=HULKS FACE DIR
|
||
SLL 5,A0 ;A0=HULKTYP
|
||
ADDI DLTS,A0
|
||
MOVE *A0,A0,L
|
||
ADD A0,A11
|
||
MOVE *A11,A9,L
|
||
JAUC FRANIM_DIE
|
||
|
||
DLTS .LONG DDLIST,DLIST,DLISTA
|
||
DCLTS .LONG DBLSTS,BLSTS,ALSTS
|
||
|
||
ADDPCS
|
||
|
||
MOVE *A13(HULKTYP),A1
|
||
SLL 5,A1
|
||
ADDI DCLTS,A1
|
||
MOVE *A1,A11,L
|
||
|
||
MOVE A6,A9
|
||
;A10=Y VEL
|
||
SLL 2,A9
|
||
SLL 2,A10
|
||
CREATE FUTUREPID,CHUNK_OBJ
|
||
MOVE *A8(OPAL),A1,W
|
||
MOVE A1,*A0(PDATA),W ;TELLS CHUNKS TO USE THIS PAL
|
||
SLEEPK 1
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
|
||
BIGEXP:
|
||
CLR A0
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVE A0,*A8(OYVEL),L
|
||
CALLA GETANIXY
|
||
ADDI 01F0000H,A2 ;A2=Y OFFSET
|
||
SUBI 0C0000H,A3 ;A2=Y OFFSET
|
||
MOVI BOOM2,A9
|
||
MOVE A2,*A8(OYVAL),L
|
||
MOVE A3,*A8(OXVAL),L
|
||
|
||
FRANIM_DIE
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVE A8,A0
|
||
CALLA DELOBJ
|
||
DIE
|
||
|
||
|
||
KILL_AHMDZ:
|
||
;A8=AHMD IMG PNTR, A0=KILLER IMG PNTR
|
||
MMTM SP,A1,A2,A3,A4,A7,A9,A10
|
||
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
|
||
JRUC AABC
|
||
KILL_AHMD:
|
||
;A8=HULK IMG PNTR, A0=KILLER IMG PNTR
|
||
MMTM SP,A1,A2,A3,A4,A7,A9,A10
|
||
MOVI 03F3FH,A9 ;COLOR TO FLASH
|
||
MOVI HITAHMD,A3
|
||
CALLA DO_PUNISH
|
||
JALT PUSHME ;PUSHME IN FIEND.ASM
|
||
MOVE *A0(OPLINK),A10,L
|
||
;WILL BE BOGUS IF SOMETHING OTHER THAN A BULLET STRUCK HULK!
|
||
MOVE *A8(OPLINK),A0,L
|
||
;CHECK FOR TOTAL HITS HERE
|
||
MOVE *A0(DIR),A11 ;HULKS DIR
|
||
;KILL AHMED
|
||
;YEAH, KILL AHMD
|
||
;YES I WILL DIE
|
||
AABC MOVI AHMD_EXP,A7
|
||
MOVI AHMDPID,A1
|
||
CALLA XFERPROC
|
||
CALLR KIL_FLM
|
||
MOVK 1,A0
|
||
MOVE A0,@OUT_FLG
|
||
MOVI 199,A0 ;259
|
||
MOVE A0,*A8(OZPOS)
|
||
MOVE *A8(OFLAGS),A1
|
||
ORI M_NOCOLL,A1
|
||
MOVE A1,*A8(OFLAGS)
|
||
MOVI CLSDEAD,A0
|
||
MOVE A0,*A8(OID)
|
||
MOVI GUYDI,A0
|
||
CALLA ONESND
|
||
MMFM SP,A1,A2,A3,A4,A7,A9,A10
|
||
RETS
|
||
|
||
AHMD_EXP:
|
||
;A10=PROCESS OF BULLET/BLADE THAT HIT THIS AHMD
|
||
;A11=AHMD DIR
|
||
;USED TO BE A9=KILLERS OID
|
||
MOVI P1DATA,A2 ;PLAYER 1 SCORE SELECT
|
||
MOVE *A10(MYPLYR),A0 ;GET PLAYER #
|
||
DEC A0
|
||
JREQ ACGA
|
||
CMPI 1,A0
|
||
JRNZ BMPDA
|
||
MOVI P2DATA,A2
|
||
ACGA
|
||
MOVI AHMDPT,A1 ;AMOUNT OF SCORE
|
||
CALLA SCRADD2 ;DO IT!
|
||
BMPDA
|
||
MOVE *A10(BLTDIR),A10 ;=BLTDIR!!! CAREFUL!!
|
||
MOVE @AHMD_CNT,A3 ;DELETE A BNCR FROM CNT
|
||
DEC A3
|
||
MOVE A3,@AHMD_CNT
|
||
;8 1 2
|
||
;7 3
|
||
;6 5 4
|
||
;A10 SHOULD BE 1-8!
|
||
AHMDDIE ;GRUNT AHMED COMES IN HERE
|
||
DEC A10
|
||
ANDI 07,A10 ;IN CASE A BLADE STRUCK HULK
|
||
SLL 5,A10
|
||
|
||
MOVI RNGXL,A0
|
||
ADD A10,A0
|
||
MOVE *A0,A6,L
|
||
MOVE A6,*A8(OXVEL),L
|
||
|
||
MOVI RNGYL,A0
|
||
ADD A10,A0
|
||
MOVE *A0,A10,L
|
||
MOVE A10,*A8(OYVEL),L
|
||
DEC A11
|
||
ANDI 07H,A11
|
||
SLL 5,A11 ;A11=HULKS FACE DIR
|
||
; MOVE *A8(OPLINK),A0,L
|
||
|
||
ADDI DLISTA,A11
|
||
MOVE *A11,A9,L
|
||
JAUC FRANIM_DIE
|
||
|
||
;8 1 2
|
||
;7 3
|
||
;6 5 4
|
||
RNGXL:
|
||
.LONG 0,05C00H*1,05C00H*1,05C00H*1,0,-5C00H*1,-5C00H*1,-5C00H*1
|
||
RNGYL:
|
||
.LONG -05000H*1,-05000H*1,0,05000H*1,05000H*1,05000H*1,0,-05000H*1
|
||
;RNGXLA:
|
||
; .LONG 0,05C00H*3,05C00H*3,05C00H*3,0,-5C00H*3,-5C00H*3,-5C00H*3
|
||
;RNGYLA:
|
||
; .LONG -05000H*3,-05000H*3,0,05000H*3,05000H*3,05000H*3,0,-05000H*3
|
||
DLIST .LONG VDIE,HDIER,HDIER,HDIER,VDIE,HDIE,HDIE,HDIE
|
||
DDLIST .LONG DVDIE,DHDIER,DHDIER,DHDIER,DVDIE,DHDIE,DHDIE,DHDIE
|
||
;AHMED DIE LIST
|
||
DLISTA .LONG AHDIE,AHDIER,AVDIE2,AVDIE2,AVDIE,AVDIE,AVDIE,AHDIE
|
||
|
||
|
||
;FOR AHMED GRUNT
|
||
AHDIE:
|
||
.LONG ADETH101
|
||
.WORD FLIPBITS|5,0
|
||
.LONG ADETH102
|
||
.WORD 5
|
||
.LONG ADETH103
|
||
.WORD 5
|
||
.LONG ADETH104
|
||
.WORD 5
|
||
.LONG ADETH84
|
||
.WORD 3
|
||
.LONG ADETH85
|
||
.WORD 3
|
||
.LONG ADETH86
|
||
.WORD 3
|
||
.LONG ADETH86
|
||
.WORD 3
|
||
.LONG 0
|
||
|
||
AHDIER:
|
||
.LONG ADETH101
|
||
.WORD FLIPBITS|5,(M_FLIPH)
|
||
.LONG ADETH102
|
||
.WORD 5
|
||
.LONG ADETH103
|
||
.WORD 5
|
||
.LONG ADETH104
|
||
.WORD 5
|
||
.LONG ADETH84
|
||
.WORD 3
|
||
.LONG ADETH85
|
||
.WORD 3
|
||
.LONG ADETH86
|
||
.WORD 3
|
||
.LONG ADETH86
|
||
.WORD 3
|
||
.LONG 0
|
||
|
||
AVDIE:
|
||
.LONG ADETH81
|
||
.WORD FLIPBITS|5,0
|
||
.LONG AHDETH82
|
||
.WORD 5
|
||
.LONG ADETH82
|
||
.WORD 5
|
||
.LONG ADETH83
|
||
.WORD 5
|
||
.LONG ADETH84
|
||
.WORD 3
|
||
.LONG ADETH85
|
||
.WORD 3
|
||
.LONG ADETH86
|
||
.WORD 3
|
||
.LONG ADETH87
|
||
.WORD 3
|
||
.LONG 0
|
||
|
||
AVDIE2:
|
||
.LONG ADETH81
|
||
.WORD FLIPBITS|5,(M_FLIPH)
|
||
.LONG AHDETH82
|
||
.WORD 5
|
||
.LONG ADETH82
|
||
.WORD 5
|
||
.LONG ADETH83
|
||
.WORD 5
|
||
.LONG ADETH84
|
||
.WORD 3
|
||
.LONG ADETH85
|
||
.WORD 3
|
||
.LONG ADETH86
|
||
.WORD 3
|
||
.LONG ADETH87
|
||
.WORD 3
|
||
.LONG 0
|
||
|
||
;FOR DEMON GRUNT
|
||
HDIE:
|
||
.LONG HIT1
|
||
.WORD FLIPBITS|4,0
|
||
.LONG HIT2
|
||
.WORD 4
|
||
.LONG HIT3
|
||
.WORD 3
|
||
.LONG HIT4
|
||
.WORD 3
|
||
.LONG HIT5
|
||
.WORD 3
|
||
.LONG HIT6
|
||
.WORD 3
|
||
.LONG HIT7
|
||
.WORD 3
|
||
.LONG HIT8
|
||
.WORD 3
|
||
.LONG 0
|
||
HDIER:
|
||
.LONG HIT1
|
||
.WORD FLIPBITS|4,(M_FLIPH)
|
||
.LONG HIT2
|
||
.WORD 4
|
||
.LONG HIT3
|
||
.WORD 3
|
||
.LONG HIT4
|
||
.WORD 3
|
||
.LONG HIT5
|
||
.WORD 3
|
||
.LONG HIT6
|
||
.WORD 3
|
||
.LONG HIT7
|
||
.WORD 3
|
||
.LONG HIT8
|
||
.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 HIT6
|
||
.WORD 3
|
||
.LONG HIT7
|
||
.WORD 3
|
||
.LONG HIT8
|
||
.WORD 3
|
||
.LONG 0
|
||
|
||
;FOR SOLDIER GRUNT
|
||
DHDIE:
|
||
.LONG DHIT1
|
||
.WORD FLIPBITS|4,0
|
||
.LONG DHIT2
|
||
.WORD 4
|
||
.LONG DHIT3
|
||
.WORD 3
|
||
.LONG DHIT4
|
||
.WORD 3
|
||
.LONG DHIT5
|
||
.WORD 3
|
||
.LONG DHIT6
|
||
.WORD 3
|
||
.LONG DHIT7
|
||
.WORD 3
|
||
.LONG DHIT8
|
||
.WORD 3
|
||
.LONG 0
|
||
DHDIER:
|
||
.LONG DHIT1
|
||
.WORD FLIPBITS|4,(M_FLIPH)
|
||
.LONG DHIT2
|
||
.WORD 4
|
||
.LONG DHIT3
|
||
.WORD 3
|
||
.LONG DHIT4
|
||
.WORD 3
|
||
.LONG DHIT5
|
||
.WORD 3
|
||
.LONG DHIT6
|
||
.WORD 3
|
||
.LONG DHIT7
|
||
.WORD 3
|
||
.LONG DHIT8
|
||
.WORD 3
|
||
.LONG 0
|
||
DVDIE:
|
||
.LONG DVHIT1
|
||
.WORD FLIPBITS|5,0
|
||
.LONG DVHIT2
|
||
.WORD 4
|
||
.LONG DVHIT3
|
||
.WORD 3
|
||
.LONG DVHIT4
|
||
.WORD 3
|
||
.LONG DVHIT5
|
||
.WORD 3
|
||
.LONG DHIT6
|
||
.WORD 3
|
||
.LONG DHIT7
|
||
.WORD 3
|
||
.LONG DHIT8
|
||
.WORD 3
|
||
.LONG 0
|
||
|
||
|
||
;
|
||
;8 1 2
|
||
;7 3
|
||
;6 5 4
|
||
;
|
||
|
||
;FOR FLAME THROWER CARRYING AHMED GRUNT
|
||
WALK_LISTB:
|
||
.LONG T3_PWK_UP,T3_PWK_UPRGT,T3_PWK_RGT,T3_PWK_DNRGT,T3_PWK_DN
|
||
.LONG T3_PWK_DNLFT,T3_PWK_LFT,T3_PWK_UPLFT
|
||
WALK_LISTMB:
|
||
.LONG T3M_PWK_UP,T3M_PWK_UPRGT,T3M_PWK_RGT,T3M_PWK_DNRGT,T3M_PWK_DN
|
||
.LONG T3M_PWK_DNLFT,T3M_PWK_LFT,T3M_PWK_UPLFT
|
||
WALK_LISTFB:
|
||
.LONG T3F_PWK_UP,T3F_PWK_UPRGT,T3F_PWK_RGT,T3F_PWK_DNRGT,T3F_PWK_DN
|
||
.LONG T3F_PWK_DNLFT,T3F_PWK_LFT,T3F_PWK_UPLFT
|
||
|
||
|
||
;FOR AXE CARRYING DEMON GRUNT
|
||
WALK_LISTA:
|
||
.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_LISTMA:
|
||
.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_LISTFA:
|
||
.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
|
||
|
||
;FOR DESERT SOLDIER
|
||
WALK_LIST:
|
||
.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_LISTM:
|
||
.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_LISTF:
|
||
.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: ;AXE DEMON GRUNT
|
||
.LONG gb12w2a,gb10w3a,gb9w4a,gb8w3a,gb6w5a,gb8w3a,gb9w4a,gb10w3a
|
||
SPINFRMS2: ;REGULAR SOLDIER GRUNT
|
||
.LONG Dgb12w2a,Dgb10w3a,Dgb9w4a,Dgb8w3a,Dgb6w5a,Dgb8w3a,Dgb9w4a,Dgb10w3a
|
||
SPINFRMSA: ;FLAME THROWING AHMED GRUNT
|
||
.LONG AHMED12b,AHMED10e,AHMED9a,AHMED8f,AHMED6a,AHMED8f,AHMED9a,AHMED10e
|
||
SPINFLGS:
|
||
.WORD DMAWNZ,DMAWNZ+M_FLIPH,DMAWNZ+M_FLIPH,DMAWNZ+M_FLIPH,DMAWNZ
|
||
.WORD DMAWNZ,DMAWNZ,DMAWNZ
|
||
|
||
;
|
||
;GRUNT ANIMATION TABLES
|
||
;
|
||
|
||
;FLAME THROWER CARRYING AHMED GRUNT
|
||
T3_PWK_UP:
|
||
.LONG AHMED12a
|
||
.WORD FLIPBITS|07,0
|
||
.LONG AHMED12b
|
||
.WORD 07
|
||
.LONG AHMED12c
|
||
.WORD 07
|
||
.LONG AHMED12d
|
||
.WORD 07
|
||
.LONG AHMED12e
|
||
.WORD 07
|
||
.LONG AHMED12f
|
||
.WORD 07
|
||
.LONG 0
|
||
T3_PWK_DN:
|
||
.LONG AHMED6a
|
||
.WORD FLIPBITS|06,0
|
||
.LONG AHMED6b
|
||
.WORD 06
|
||
.LONG AHMED6c
|
||
.WORD 06
|
||
.LONG AHMED6d
|
||
.WORD 06
|
||
.LONG AHMED6e
|
||
.WORD 06
|
||
.LONG AHMED6f
|
||
.WORD 06
|
||
.LONG 0
|
||
T3_PWK_RGT:
|
||
.LONG AHMED9a
|
||
.WORD FLIPBITS|07,(M_FLIPH)
|
||
.LONG AHMED9b
|
||
.WORD 07
|
||
.LONG AHMED9c
|
||
.WORD 07
|
||
.LONG AHMED9d
|
||
.WORD 07
|
||
.LONG AHMED9e
|
||
.WORD 07
|
||
.LONG AHMED9f
|
||
.WORD 07
|
||
.LONG 0
|
||
T3_PWK_LFT:
|
||
.LONG AHMED9a
|
||
.WORD FLIPBITS|07,0
|
||
.LONG AHMED9b
|
||
.WORD 07
|
||
.LONG AHMED9c
|
||
.WORD 07
|
||
.LONG AHMED9d
|
||
.WORD 07
|
||
.LONG AHMED9e
|
||
.WORD 07
|
||
.LONG AHMED9f
|
||
.WORD 07
|
||
.LONG 0
|
||
|
||
T3_PWK_UPRGT:
|
||
.LONG AHMED10a
|
||
.WORD FLIPBITS|07,(M_FLIPH)
|
||
.LONG AHMED10b
|
||
.WORD 07
|
||
.LONG AHMED10c
|
||
.WORD 07
|
||
.LONG AHMED10d
|
||
.WORD 07
|
||
.LONG AHMED10e
|
||
.WORD 07
|
||
.LONG AHMED10f
|
||
.WORD 07
|
||
.LONG 0
|
||
|
||
T3_PWK_DNLFT:
|
||
.LONG AHMED8a
|
||
.WORD FLIPBITS|07,0
|
||
.LONG AHMED8b
|
||
.WORD 07
|
||
.LONG AHMED8c
|
||
.WORD 07
|
||
.LONG AHMED8d
|
||
.WORD 07
|
||
.LONG AHMED8e
|
||
.WORD 07
|
||
.LONG AHMED8f
|
||
.WORD 07
|
||
.LONG 0
|
||
T3_PWK_UPLFT:
|
||
.LONG AHMED10a
|
||
.WORD FLIPBITS|07,0
|
||
.LONG AHMED10b
|
||
.WORD 07
|
||
.LONG AHMED10c
|
||
.WORD 07
|
||
.LONG AHMED10d
|
||
.WORD 07
|
||
.LONG AHMED10e
|
||
.WORD 07
|
||
.LONG AHMED10f
|
||
.WORD 07
|
||
.LONG 0
|
||
T3_PWK_DNRGT:
|
||
.LONG AHMED8a
|
||
.WORD FLIPBITS|07,(M_FLIPH)
|
||
.LONG AHMED8b
|
||
.WORD 07
|
||
.LONG AHMED8c
|
||
.WORD 07
|
||
.LONG AHMED8d
|
||
.WORD 07
|
||
.LONG AHMED8e
|
||
.WORD 07
|
||
.LONG AHMED8f
|
||
.WORD 07
|
||
.LONG 0
|
||
|
||
|
||
|
||
;MEDIUM (4)
|
||
T3M_PWK_UP:
|
||
.LONG AHMED12a
|
||
.WORD FLIPBITS|04,0
|
||
.LONG AHMED12b
|
||
.WORD 04
|
||
.LONG AHMED12c
|
||
.WORD 04
|
||
.LONG AHMED12d
|
||
.WORD 04
|
||
.LONG AHMED12e
|
||
.WORD 04
|
||
.LONG AHMED12f
|
||
.WORD 04
|
||
.LONG 0
|
||
T3M_PWK_DN:
|
||
.LONG AHMED6a
|
||
.WORD FLIPBITS|06,0
|
||
.LONG AHMED6b
|
||
.WORD 06
|
||
.LONG AHMED6c
|
||
.WORD 06
|
||
.LONG AHMED6d
|
||
.WORD 06
|
||
.LONG AHMED6e
|
||
.WORD 06
|
||
.LONG AHMED6f
|
||
.WORD 06
|
||
.LONG 0
|
||
T3M_PWK_RGT:
|
||
.LONG AHMED9a
|
||
.WORD FLIPBITS|04,(M_FLIPH)
|
||
.LONG AHMED9b
|
||
.WORD 04
|
||
.LONG AHMED9c
|
||
.WORD 04
|
||
.LONG AHMED9d
|
||
.WORD 04
|
||
.LONG AHMED9e
|
||
.WORD 04
|
||
.LONG AHMED9f
|
||
.WORD 04
|
||
.LONG 0
|
||
T3M_PWK_LFT:
|
||
.LONG AHMED9a
|
||
.WORD FLIPBITS|04,0
|
||
.LONG AHMED9b
|
||
.WORD 04
|
||
.LONG AHMED9c
|
||
.WORD 04
|
||
.LONG AHMED9d
|
||
.WORD 04
|
||
.LONG AHMED9e
|
||
.WORD 04
|
||
.LONG AHMED9f
|
||
.WORD 04
|
||
.LONG 0
|
||
|
||
T3M_PWK_UPRGT:
|
||
.LONG AHMED10a
|
||
.WORD FLIPBITS|04,(M_FLIPH)
|
||
.LONG AHMED10b
|
||
.WORD 04
|
||
.LONG AHMED10c
|
||
.WORD 04
|
||
.LONG AHMED10d
|
||
.WORD 04
|
||
.LONG AHMED10e
|
||
.WORD 04
|
||
.LONG AHMED10f
|
||
.WORD 04
|
||
.LONG 0
|
||
|
||
T3M_PWK_DNLFT:
|
||
.LONG AHMED8a
|
||
.WORD FLIPBITS|04,0
|
||
.LONG AHMED8b
|
||
.WORD 04
|
||
.LONG AHMED8c
|
||
.WORD 04
|
||
.LONG AHMED8d
|
||
.WORD 04
|
||
.LONG AHMED8e
|
||
.WORD 04
|
||
.LONG AHMED8f
|
||
.WORD 04
|
||
.LONG 0
|
||
T3M_PWK_UPLFT:
|
||
.LONG AHMED10a
|
||
.WORD FLIPBITS|04,0
|
||
.LONG AHMED10b
|
||
.WORD 04
|
||
.LONG AHMED10c
|
||
.WORD 04
|
||
.LONG AHMED10d
|
||
.WORD 04
|
||
.LONG AHMED10e
|
||
.WORD 04
|
||
.LONG AHMED10f
|
||
.WORD 04
|
||
.LONG 0
|
||
T3M_PWK_DNRGT:
|
||
.LONG AHMED8a
|
||
.WORD FLIPBITS|04,(M_FLIPH)
|
||
.LONG AHMED8b
|
||
.WORD 04
|
||
.LONG AHMED8c
|
||
.WORD 04
|
||
.LONG AHMED8d
|
||
.WORD 04
|
||
.LONG AHMED8e
|
||
.WORD 04
|
||
.LONG AHMED8f
|
||
.WORD 04
|
||
.LONG 0
|
||
|
||
; FAST (3)
|
||
T3F_PWK_UP:
|
||
.LONG AHMED12a
|
||
.WORD FLIPBITS|03,0
|
||
.LONG AHMED12b
|
||
.WORD 03
|
||
.LONG AHMED12c
|
||
.WORD 03
|
||
.LONG AHMED12d
|
||
.WORD 03
|
||
.LONG AHMED12e
|
||
.WORD 03
|
||
.LONG AHMED12f
|
||
.WORD 03
|
||
.LONG 0
|
||
T3F_PWK_DN:
|
||
.LONG AHMED6a
|
||
.WORD FLIPBITS|06,0
|
||
.LONG AHMED6b
|
||
.WORD 06
|
||
.LONG AHMED6c
|
||
.WORD 06
|
||
.LONG AHMED6d
|
||
.WORD 06
|
||
.LONG AHMED6e
|
||
.WORD 06
|
||
.LONG AHMED6f
|
||
.WORD 06
|
||
.LONG 0
|
||
T3F_PWK_RGT:
|
||
.LONG AHMED9a
|
||
.WORD FLIPBITS|03,(M_FLIPH)
|
||
.LONG AHMED9b
|
||
.WORD 03
|
||
.LONG AHMED9c
|
||
.WORD 03
|
||
.LONG AHMED9d
|
||
.WORD 03
|
||
.LONG AHMED9e
|
||
.WORD 03
|
||
.LONG AHMED9f
|
||
.WORD 03
|
||
.LONG 0
|
||
T3F_PWK_LFT:
|
||
.LONG AHMED9a
|
||
.WORD FLIPBITS|03,0
|
||
.LONG AHMED9b
|
||
.WORD 03
|
||
.LONG AHMED9c
|
||
.WORD 03
|
||
.LONG AHMED9d
|
||
.WORD 03
|
||
.LONG AHMED9e
|
||
.WORD 03
|
||
.LONG AHMED9f
|
||
.WORD 03
|
||
.LONG 0
|
||
|
||
T3F_PWK_UPRGT:
|
||
.LONG AHMED10a
|
||
.WORD FLIPBITS|03,(M_FLIPH)
|
||
.LONG AHMED10b
|
||
.WORD 03
|
||
.LONG AHMED10c
|
||
.WORD 03
|
||
.LONG AHMED10d
|
||
.WORD 03
|
||
.LONG AHMED10e
|
||
.WORD 03
|
||
.LONG AHMED10f
|
||
.WORD 03
|
||
.LONG 0
|
||
|
||
T3F_PWK_DNLFT:
|
||
.LONG AHMED8a
|
||
.WORD FLIPBITS|03,0
|
||
.LONG AHMED8b
|
||
.WORD 03
|
||
.LONG AHMED8c
|
||
.WORD 03
|
||
.LONG AHMED8d
|
||
.WORD 03
|
||
.LONG AHMED8e
|
||
.WORD 03
|
||
.LONG AHMED8f
|
||
.WORD 03
|
||
.LONG 0
|
||
T3F_PWK_UPLFT:
|
||
.LONG AHMED10a
|
||
.WORD FLIPBITS|03,0
|
||
.LONG AHMED10b
|
||
.WORD 03
|
||
.LONG AHMED10c
|
||
.WORD 03
|
||
.LONG AHMED10d
|
||
.WORD 03
|
||
.LONG AHMED10e
|
||
.WORD 03
|
||
.LONG AHMED10f
|
||
.WORD 03
|
||
.LONG 0
|
||
T3F_PWK_DNRGT:
|
||
.LONG AHMED8a
|
||
.WORD FLIPBITS|03,(M_FLIPH)
|
||
.LONG AHMED8b
|
||
.WORD 03
|
||
.LONG AHMED8c
|
||
.WORD 03
|
||
.LONG AHMED8d
|
||
.WORD 03
|
||
.LONG AHMED8e
|
||
.WORD 03
|
||
.LONG AHMED8f
|
||
.WORD 03
|
||
.LONG 0
|
||
|
||
|
||
;AXE CARRYING DEMON GRUNT
|
||
T_PWK_UP:
|
||
.LONG gb12w1a
|
||
.WORD FLIPBITS|07,0
|
||
.LONG gb12w2a
|
||
.WORD 07
|
||
.LONG gb12w3a
|
||
.WORD 07
|
||
.LONG gb12w4a
|
||
.WORD 07
|
||
.LONG gb12w5a
|
||
.WORD 07
|
||
.LONG gb12w6a
|
||
.WORD 07
|
||
.LONG 0
|
||
T_PWK_DN:
|
||
.LONG gb6w1a
|
||
.WORD FLIPBITS|06,0
|
||
.LONG gb6w2a
|
||
.WORD 06
|
||
.LONG gb6w3a
|
||
.WORD 06
|
||
.LONG gb6w4a
|
||
.WORD 06
|
||
.LONG gb6w5a
|
||
.WORD 06
|
||
.LONG gb6w6a
|
||
.WORD 06
|
||
.LONG 0
|
||
T_PWK_RGT:
|
||
.LONG gb9w1a
|
||
.WORD FLIPBITS|07,(M_FLIPH)
|
||
.LONG gb9w2a
|
||
.WORD 07
|
||
.LONG gb9w3a
|
||
.WORD 07
|
||
.LONG gb9w4a
|
||
.WORD 07
|
||
.LONG gb9w5a
|
||
.WORD 07
|
||
.LONG gb9w6a
|
||
.WORD 07
|
||
.LONG 0
|
||
T_PWK_LFT:
|
||
.LONG gb9w1a
|
||
.WORD FLIPBITS|07,0
|
||
.LONG gb9w2a
|
||
.WORD 07
|
||
.LONG gb9w3a
|
||
.WORD 07
|
||
.LONG gb9w4a
|
||
.WORD 07
|
||
.LONG gb9w5a
|
||
.WORD 07
|
||
.LONG gb9w6a
|
||
.WORD 07
|
||
.LONG 0
|
||
|
||
T_PWK_UPRGT:
|
||
.LONG gb10w1a
|
||
.WORD FLIPBITS|07,(M_FLIPH)
|
||
.LONG gb10w2a
|
||
.WORD 07
|
||
.LONG gb10w3a
|
||
.WORD 07
|
||
.LONG gb10w4a
|
||
.WORD 07
|
||
.LONG gb10w5a
|
||
.WORD 07
|
||
.LONG gb10w6a
|
||
.WORD 07
|
||
.LONG 0
|
||
|
||
T_PWK_DNLFT:
|
||
.LONG gb8w1a
|
||
.WORD FLIPBITS|07,0
|
||
.LONG gb8w2a
|
||
.WORD 07
|
||
.LONG gb8w3a
|
||
.WORD 07
|
||
.LONG gb8w4a
|
||
.WORD 07
|
||
.LONG gb8w5a
|
||
.WORD 07
|
||
.LONG gb8w6a
|
||
.WORD 07
|
||
.LONG 0
|
||
T_PWK_UPLFT:
|
||
.LONG gb10w1a
|
||
.WORD FLIPBITS|07,0
|
||
.LONG gb10w2a
|
||
.WORD 07
|
||
.LONG gb10w3a
|
||
.WORD 07
|
||
.LONG gb10w4a
|
||
.WORD 07
|
||
.LONG gb10w5a
|
||
.WORD 07
|
||
.LONG gb10w6a
|
||
.WORD 07
|
||
.LONG 0
|
||
T_PWK_DNRGT:
|
||
.LONG gb8w1a
|
||
.WORD FLIPBITS|07,(M_FLIPH)
|
||
.LONG gb8w2a
|
||
.WORD 07
|
||
.LONG gb8w3a
|
||
.WORD 07
|
||
.LONG gb8w4a
|
||
.WORD 07
|
||
.LONG gb8w5a
|
||
.WORD 07
|
||
.LONG gb8w6a
|
||
.WORD 07
|
||
.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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 0
|
||
|
||
|
||
;REGULAR SOLDIER GRUNT
|
||
T2_PWK_UP:
|
||
.LONG Dgb12w1a
|
||
.WORD FLIPBITS|07,0
|
||
.LONG Dgb12w2a
|
||
.WORD 07
|
||
.LONG Dgb12w3a
|
||
.WORD 07
|
||
.LONG Dgb12w4a
|
||
.WORD 07
|
||
.LONG Dgb12w5a
|
||
.WORD 07
|
||
.LONG Dgb12w6a
|
||
.WORD 07
|
||
.LONG 0
|
||
T2_PWK_DN:
|
||
.LONG Dgb6w1a
|
||
.WORD FLIPBITS|06,0
|
||
.LONG Dgb6w2a
|
||
.WORD 06
|
||
.LONG Dgb6w3a
|
||
.WORD 06
|
||
.LONG Dgb6w4a
|
||
.WORD 06
|
||
.LONG Dgb6w5a
|
||
.WORD 06
|
||
.LONG Dgb6w6a
|
||
.WORD 06
|
||
.LONG 0
|
||
T2_PWK_RGT:
|
||
.LONG Dgb9w1a
|
||
.WORD FLIPBITS|07,(M_FLIPH)
|
||
.LONG Dgb9w2a
|
||
.WORD 07
|
||
.LONG Dgb9w3a
|
||
.WORD 07
|
||
.LONG Dgb9w4a
|
||
.WORD 07
|
||
.LONG Dgb9w5a
|
||
.WORD 07
|
||
.LONG Dgb9w6a
|
||
.WORD 07
|
||
.LONG 0
|
||
T2_PWK_LFT:
|
||
.LONG Dgb9w1a
|
||
.WORD FLIPBITS|07,0
|
||
.LONG Dgb9w2a
|
||
.WORD 07
|
||
.LONG Dgb9w3a
|
||
.WORD 07
|
||
.LONG Dgb9w4a
|
||
.WORD 07
|
||
.LONG Dgb9w5a
|
||
.WORD 07
|
||
.LONG Dgb9w6a
|
||
.WORD 07
|
||
.LONG 0
|
||
|
||
T2_PWK_UPRGT:
|
||
.LONG Dgb10w1a
|
||
.WORD FLIPBITS|07,(M_FLIPH)
|
||
.LONG Dgb10w2a
|
||
.WORD 07
|
||
.LONG Dgb10w3a
|
||
.WORD 07
|
||
.LONG Dgb10w4a
|
||
.WORD 07
|
||
.LONG Dgb10w5a
|
||
.WORD 07
|
||
.LONG Dgb10w6a
|
||
.WORD 07
|
||
.LONG 0
|
||
|
||
T2_PWK_DNLFT:
|
||
.LONG Dgb8w1a
|
||
.WORD FLIPBITS|07,0
|
||
.LONG Dgb8w2a
|
||
.WORD 07
|
||
.LONG Dgb8w3a
|
||
.WORD 07
|
||
.LONG Dgb8w4a
|
||
.WORD 07
|
||
.LONG Dgb8w5a
|
||
.WORD 07
|
||
.LONG Dgb8w6a
|
||
.WORD 07
|
||
.LONG 0
|
||
T2_PWK_UPLFT:
|
||
.LONG Dgb10w1a
|
||
.WORD FLIPBITS|07,0
|
||
.LONG Dgb10w2a
|
||
.WORD 07
|
||
.LONG Dgb10w3a
|
||
.WORD 07
|
||
.LONG Dgb10w4a
|
||
.WORD 07
|
||
.LONG Dgb10w5a
|
||
.WORD 07
|
||
.LONG Dgb10w6a
|
||
.WORD 07
|
||
.LONG 0
|
||
T2_PWK_DNRGT:
|
||
.LONG Dgb8w1a
|
||
.WORD FLIPBITS|07,(M_FLIPH)
|
||
.LONG Dgb8w2a
|
||
.WORD 07
|
||
.LONG Dgb8w3a
|
||
.WORD 07
|
||
.LONG Dgb8w4a
|
||
.WORD 07
|
||
.LONG Dgb8w5a
|
||
.WORD 07
|
||
.LONG Dgb8w6a
|
||
.WORD 07
|
||
.LONG 0
|
||
|
||
|
||
|
||
;MEDIUM
|
||
T2M_PWK_UP:
|
||
.LONG Dgb12w1a
|
||
.WORD FLIPBITS|04,0
|
||
.LONG Dgb12w2a
|
||
.WORD 04
|
||
.LONG Dgb12w3a
|
||
.WORD 04
|
||
.LONG Dgb12w4a
|
||
.WORD 04
|
||
.LONG Dgb12w5a
|
||
.WORD 04
|
||
.LONG Dgb12w6a
|
||
.WORD 04
|
||
.LONG 0
|
||
T2M_PWK_DN:
|
||
.LONG Dgb6w1a
|
||
.WORD FLIPBITS|04,0
|
||
.LONG Dgb6w2a
|
||
.WORD 04
|
||
.LONG Dgb6w3a
|
||
.WORD 04
|
||
.LONG Dgb6w4a
|
||
.WORD 04
|
||
.LONG Dgb6w5a
|
||
.WORD 04
|
||
.LONG Dgb6w6a
|
||
.WORD 04
|
||
.LONG 0
|
||
T2M_PWK_RGT:
|
||
.LONG Dgb9w1a
|
||
.WORD FLIPBITS|04,(M_FLIPH)
|
||
.LONG Dgb9w2a
|
||
.WORD 04
|
||
.LONG Dgb9w3a
|
||
.WORD 04
|
||
.LONG Dgb9w4a
|
||
.WORD 04
|
||
.LONG Dgb9w5a
|
||
.WORD 04
|
||
.LONG Dgb9w6a
|
||
.WORD 04
|
||
.LONG 0
|
||
T2M_PWK_LFT:
|
||
.LONG Dgb9w1a
|
||
.WORD FLIPBITS|04,0
|
||
.LONG Dgb9w2a
|
||
.WORD 04
|
||
.LONG Dgb9w3a
|
||
.WORD 04
|
||
.LONG Dgb9w4a
|
||
.WORD 04
|
||
.LONG Dgb9w5a
|
||
.WORD 04
|
||
.LONG Dgb9w6a
|
||
.WORD 04
|
||
.LONG 0
|
||
|
||
T2M_PWK_UPRGT:
|
||
.LONG Dgb10w1a
|
||
.WORD FLIPBITS|04,(M_FLIPH)
|
||
.LONG Dgb10w2a
|
||
.WORD 04
|
||
.LONG Dgb10w3a
|
||
.WORD 04
|
||
.LONG Dgb10w4a
|
||
.WORD 04
|
||
.LONG Dgb10w5a
|
||
.WORD 04
|
||
.LONG Dgb10w6a
|
||
.WORD 04
|
||
.LONG 0
|
||
|
||
T2M_PWK_DNLFT:
|
||
.LONG Dgb8w1a
|
||
.WORD FLIPBITS|04,0
|
||
.LONG Dgb8w2a
|
||
.WORD 04
|
||
.LONG Dgb8w3a
|
||
.WORD 04
|
||
.LONG Dgb8w4a
|
||
.WORD 04
|
||
.LONG Dgb8w5a
|
||
.WORD 04
|
||
.LONG Dgb8w6a
|
||
.WORD 04
|
||
.LONG 0
|
||
T2M_PWK_UPLFT:
|
||
.LONG Dgb10w1a
|
||
.WORD FLIPBITS|04,0
|
||
.LONG Dgb10w2a
|
||
.WORD 04
|
||
.LONG Dgb10w3a
|
||
.WORD 04
|
||
.LONG Dgb10w4a
|
||
.WORD 04
|
||
.LONG Dgb10w5a
|
||
.WORD 04
|
||
.LONG Dgb10w6a
|
||
.WORD 04
|
||
.LONG 0
|
||
T2M_PWK_DNRGT:
|
||
.LONG Dgb8w1a
|
||
.WORD FLIPBITS|04,(M_FLIPH)
|
||
.LONG Dgb8w2a
|
||
.WORD 04
|
||
.LONG Dgb8w3a
|
||
.WORD 04
|
||
.LONG Dgb8w4a
|
||
.WORD 04
|
||
.LONG Dgb8w5a
|
||
.WORD 04
|
||
.LONG Dgb8w6a
|
||
.WORD 04
|
||
.LONG 0
|
||
; FAST
|
||
T2F_PWK_UP:
|
||
.LONG Dgb12w1a
|
||
.WORD FLIPBITS|03,0
|
||
.LONG Dgb12w2a
|
||
.WORD 03
|
||
.LONG Dgb12w3a
|
||
.WORD 03
|
||
.LONG Dgb12w4a
|
||
.WORD 03
|
||
.LONG Dgb12w5a
|
||
.WORD 03
|
||
.LONG Dgb12w6a
|
||
.WORD 03
|
||
.LONG 0
|
||
T2F_PWK_DN:
|
||
.LONG Dgb6w1a
|
||
.WORD FLIPBITS|03,0
|
||
.LONG Dgb6w2a
|
||
.WORD 03
|
||
.LONG Dgb6w3a
|
||
.WORD 03
|
||
.LONG Dgb6w4a
|
||
.WORD 03
|
||
.LONG Dgb6w5a
|
||
.WORD 03
|
||
.LONG Dgb6w6a
|
||
.WORD 03
|
||
.LONG 0
|
||
T2F_PWK_RGT:
|
||
.LONG Dgb9w1a
|
||
.WORD FLIPBITS|03,(M_FLIPH)
|
||
.LONG Dgb9w2a
|
||
.WORD 03
|
||
.LONG Dgb9w3a
|
||
.WORD 03
|
||
.LONG Dgb9w4a
|
||
.WORD 03
|
||
.LONG Dgb9w5a
|
||
.WORD 03
|
||
.LONG Dgb9w6a
|
||
.WORD 03
|
||
.LONG 0
|
||
T2F_PWK_LFT:
|
||
.LONG Dgb9w1a
|
||
.WORD FLIPBITS|03,0
|
||
.LONG Dgb9w2a
|
||
.WORD 03
|
||
.LONG Dgb9w3a
|
||
.WORD 03
|
||
.LONG Dgb9w4a
|
||
.WORD 03
|
||
.LONG Dgb9w5a
|
||
.WORD 03
|
||
.LONG Dgb9w6a
|
||
.WORD 03
|
||
.LONG 0
|
||
|
||
T2F_PWK_UPRGT:
|
||
.LONG Dgb10w1a
|
||
.WORD FLIPBITS|03,(M_FLIPH)
|
||
.LONG Dgb10w2a
|
||
.WORD 03
|
||
.LONG Dgb10w3a
|
||
.WORD 03
|
||
.LONG Dgb10w4a
|
||
.WORD 03
|
||
.LONG Dgb10w5a
|
||
.WORD 03
|
||
.LONG Dgb10w6a
|
||
.WORD 03
|
||
.LONG 0
|
||
|
||
T2F_PWK_DNLFT:
|
||
.LONG Dgb8w1a
|
||
.WORD FLIPBITS|03,0
|
||
.LONG Dgb8w2a
|
||
.WORD 03
|
||
.LONG Dgb8w3a
|
||
.WORD 03
|
||
.LONG Dgb8w4a
|
||
.WORD 03
|
||
.LONG Dgb8w5a
|
||
.WORD 03
|
||
.LONG Dgb8w6a
|
||
.WORD 03
|
||
.LONG 0
|
||
T2F_PWK_UPLFT:
|
||
.LONG Dgb10w1a
|
||
.WORD FLIPBITS|03,0
|
||
.LONG Dgb10w2a
|
||
.WORD 03
|
||
.LONG Dgb10w3a
|
||
.WORD 03
|
||
.LONG Dgb10w4a
|
||
.WORD 03
|
||
.LONG Dgb10w5a
|
||
.WORD 03
|
||
.LONG Dgb10w6a
|
||
.WORD 03
|
||
.LONG 0
|
||
T2F_PWK_DNRGT:
|
||
.LONG Dgb8w1a
|
||
.WORD FLIPBITS|03,(M_FLIPH)
|
||
.LONG Dgb8w2a
|
||
.WORD 03
|
||
.LONG Dgb8w3a
|
||
.WORD 03
|
||
.LONG Dgb8w4a
|
||
.WORD 03
|
||
.LONG Dgb8w5a
|
||
.WORD 03
|
||
.LONG Dgb8w6a
|
||
.WORD 03
|
||
.LONG 0
|
||
|
||
|
||
|
||
;FLAME THROWER CARRYING AHMED GRUNT WHEN HE PUNCHES
|
||
BAT8OA
|
||
.LONG AHMED8HIT1
|
||
.WORD FLIPBITS|4,0
|
||
.LONG AHMED8HIT2
|
||
.WORD 4
|
||
.LONG AHMED8HIT3
|
||
.WORD 4
|
||
.LONG AHMED8HIT2
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
BAT4OA
|
||
.LONG AHMED8HIT1
|
||
.WORD FLIPBITS|4,(M_FLIPH)
|
||
.LONG AHMED8HIT2
|
||
.WORD 4
|
||
.LONG AHMED8HIT3
|
||
.WORD 4
|
||
.LONG AHMED8HIT2
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
BAT10OA
|
||
.LONG AHMED10HIT1
|
||
.WORD FLIPBITS|4,0
|
||
.LONG AHMED10HIT2
|
||
.WORD 4
|
||
.LONG AHMED10HIT3
|
||
.WORD 4
|
||
.LONG AHMED10HIT2
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
BAT2OA
|
||
.LONG AHMED10HIT1
|
||
.WORD FLIPBITS|4,(M_FLIPH)
|
||
.LONG AHMED10HIT2
|
||
.WORD 4
|
||
.LONG AHMED10HIT3
|
||
.WORD 4
|
||
.LONG AHMED10HIT2
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
|
||
;AXE SWINGING GRUNT
|
||
BAT8O ;.LONG GSTND2
|
||
; .WORD FLIPBITS|4,0
|
||
.LONG SWING1
|
||
.WORD FLIPBITS|4,0
|
||
.LONG SWING2
|
||
.WORD 4
|
||
.LONG SWING3
|
||
.WORD 4
|
||
.LONG SWING4
|
||
.WORD 4
|
||
.LONG SWING5
|
||
.WORD 4
|
||
.LONG SWING6
|
||
.WORD 4
|
||
.LONG SWING5
|
||
.WORD 4
|
||
.LONG SWING4
|
||
.WORD 4
|
||
.LONG SWING3
|
||
.WORD 4
|
||
.LONG SWING2
|
||
.WORD 4
|
||
.LONG SWING1
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
|
||
BAT4O ; .LONG GSTND2
|
||
; .WORD FLIPBITS|4,(M_FLIPH)
|
||
.LONG SWING1
|
||
.WORD FLIPBITS|4,(M_FLIPH)
|
||
.LONG SWING2
|
||
.WORD 4
|
||
.LONG SWING3
|
||
.WORD 4
|
||
.LONG SWING4
|
||
.WORD 4
|
||
.LONG SWING5
|
||
.WORD 4
|
||
.LONG SWING6
|
||
.WORD 4
|
||
.LONG SWING5
|
||
.WORD 4
|
||
.LONG SWING4
|
||
.WORD 4
|
||
.LONG SWING3
|
||
.WORD 4
|
||
.LONG SWING2
|
||
.WORD 4
|
||
.LONG SWING1
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
|
||
|
||
BAT10O
|
||
; .LONG GSTND4
|
||
; .WORD FLIPBITS|4,0
|
||
.LONG BAT1
|
||
.WORD FLIPBITS|4,0
|
||
.LONG BAT2
|
||
.WORD 4
|
||
.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 BAT1
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
BAT2O ; .LONG GSTND4
|
||
.LONG BAT1
|
||
.WORD FLIPBITS|4,(M_FLIPH)
|
||
.LONG BAT2
|
||
.WORD 4
|
||
.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 BAT1
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
|
||
;REGULAR SOLDIER SWING
|
||
BAT8OS ;.LONG GSTND2
|
||
; .WORD FLIPBITS|4,0
|
||
.LONG DSWING1
|
||
.WORD FLIPBITS|4,0
|
||
.LONG DSWING2
|
||
.WORD 4
|
||
.LONG DSWING3
|
||
.WORD 4
|
||
.LONG DSWING4
|
||
.WORD 4
|
||
.LONG DSWING5
|
||
.WORD 4
|
||
.LONG DSWING6
|
||
.WORD 4
|
||
.LONG DSWING5
|
||
.WORD 4
|
||
.LONG DSWING4
|
||
.WORD 4
|
||
.LONG DSWING3
|
||
.WORD 4
|
||
.LONG DSWING2
|
||
.WORD 4
|
||
.LONG DSWING1
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
|
||
BAT4OS ; .LONG GSTND2
|
||
; .WORD FLIPBITS|4,(M_FLIPH)
|
||
.LONG DSWING1
|
||
.WORD FLIPBITS|4,(M_FLIPH)
|
||
.LONG DSWING2
|
||
.WORD 4
|
||
.LONG DSWING3
|
||
.WORD 4
|
||
.LONG DSWING4
|
||
.WORD 4
|
||
.LONG DSWING5
|
||
.WORD 4
|
||
.LONG DSWING6
|
||
.WORD 4
|
||
.LONG DSWING5
|
||
.WORD 4
|
||
.LONG DSWING4
|
||
.WORD 4
|
||
.LONG DSWING3
|
||
.WORD 4
|
||
.LONG DSWING2
|
||
.WORD 4
|
||
.LONG DSWING1
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
|
||
|
||
BAT10OS
|
||
; .LONG GSTND4
|
||
; .WORD FLIPBITS|4,0
|
||
.LONG DBAT1
|
||
.WORD FLIPBITS|5,0
|
||
.LONG DBAT2
|
||
.WORD 5
|
||
.LONG DBAT3
|
||
.WORD 5
|
||
.LONG DBAT4
|
||
.WORD 5
|
||
.LONG DBAT5
|
||
.WORD 5
|
||
; .LONG BAT6
|
||
; .WORD 4
|
||
; .LONG BAT5
|
||
; .WORD 4
|
||
.LONG DBAT4
|
||
.WORD 5
|
||
.LONG DBAT3
|
||
.WORD 5
|
||
.LONG DBAT2
|
||
.WORD 5
|
||
.LONG DBAT1
|
||
.WORD 5
|
||
.LONG 0
|
||
|
||
BAT2OS ; .LONG GSTND4
|
||
.LONG DBAT1
|
||
.WORD FLIPBITS|5,(M_FLIPH)
|
||
.LONG DBAT2
|
||
.WORD 5
|
||
.LONG DBAT3
|
||
.WORD 5
|
||
.LONG DBAT4
|
||
.WORD 5
|
||
.LONG DBAT5
|
||
.WORD 5
|
||
; .LONG BAT6
|
||
; .WORD 4
|
||
; .LONG BAT5
|
||
; .WORD 4
|
||
.LONG DBAT4
|
||
.WORD 5
|
||
.LONG DBAT3
|
||
.WORD 5
|
||
.LONG DBAT2
|
||
.WORD 5
|
||
.LONG DBAT1
|
||
.WORD 5
|
||
.LONG 0
|
||
|
||
|
||
BOOM2:
|
||
.LONG EXPL1
|
||
.WORD NEWPALET|3
|
||
.LONG EORNGPAL ;EXPP
|
||
.LONG EXPL2
|
||
.WORD 3
|
||
.LONG EXPL3
|
||
.WORD 3
|
||
.LONG EXPL4
|
||
.WORD 3
|
||
.LONG EXPL5
|
||
.WORD 3
|
||
.LONG EXPL6
|
||
.WORD 3
|
||
.LONG EXPL7
|
||
.WORD 3
|
||
.LONG EXPL8
|
||
.WORD 3
|
||
.LONG EXPL9
|
||
.WORD 3
|
||
.LONG EXPL10
|
||
.WORD 3
|
||
.LONG EXPL11
|
||
.WORD 3
|
||
.LONG EXPL12
|
||
.WORD 3
|
||
.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
|
||
|
||
;SOLDIER GRUNT SHOOTING
|
||
SHOOT8O
|
||
.LONG DSWINGa
|
||
.WORD FLIPBITS|3,0
|
||
.LONG DSWINGb
|
||
.WORD 4
|
||
.LONG DSWINGa
|
||
.WORD 4
|
||
.LONG DSWINGb
|
||
.WORD 4
|
||
.LONG DSWINGa
|
||
.WORD 1
|
||
.LONG 0
|
||
|
||
SHOOT4O
|
||
.LONG DSWINGa
|
||
.WORD FLIPBITS|3,(M_FLIPH)
|
||
.LONG DSWINGb
|
||
.WORD 4
|
||
.LONG DSWINGa
|
||
.WORD 4
|
||
.LONG DSWINGb
|
||
.WORD 4
|
||
.LONG DSWINGa
|
||
.WORD 1
|
||
.LONG 0
|
||
|
||
SHOOT10O
|
||
.LONG DBATa
|
||
.WORD FLIPBITS|3,0
|
||
.LONG DBATb
|
||
.WORD 4
|
||
.LONG DBATa
|
||
.WORD 4
|
||
.LONG DBATb
|
||
.WORD 4
|
||
.LONG DBATa
|
||
.WORD 1
|
||
.LONG 0
|
||
|
||
SHOOT2O
|
||
.LONG DBATa
|
||
.WORD FLIPBITS|3,(M_FLIPH)
|
||
.LONG DBATb
|
||
.WORD 4
|
||
.LONG DBATa
|
||
.WORD 4
|
||
.LONG DBATb
|
||
.WORD 4
|
||
.LONG DBATa
|
||
.WORD 1
|
||
.LONG 0
|
||
|
||
HSTGDWN:
|
||
.LONG GRL1
|
||
.WORD FLIPBITS|05,0
|
||
.LONG GRL2
|
||
.WORD 05
|
||
.LONG GRL3
|
||
.WORD 05
|
||
.LONG GRL4
|
||
.WORD 05
|
||
.LONG GRL3
|
||
.WORD 05
|
||
.LONG GRL2
|
||
.WORD 05
|
||
.LONG 0
|
||
HSTGDWN2:
|
||
.LONG NSDRRUN1
|
||
.WORD FLIPBITS|05,0
|
||
.LONG NSDRRUN2
|
||
.WORD 05
|
||
.LONG NSDRRUN3
|
||
.WORD 05
|
||
.LONG NSDRRUN4
|
||
.WORD 05
|
||
.LONG NSDRRUN3
|
||
.WORD 05
|
||
.LONG NSDRRUN2
|
||
.WORD 05
|
||
.LONG 0
|
||
HSTGDWNA:
|
||
.LONG BABE1
|
||
.WORD FLIPBITS|05,0
|
||
.LONG BABE2
|
||
.WORD 05
|
||
.LONG BABE3
|
||
.WORD 05
|
||
.LONG BABE4
|
||
.WORD 05
|
||
.LONG 0
|
||
|
||
HSTGDWNA2:
|
||
.LONG PILOT1
|
||
.WORD FLIPBITS|05,0
|
||
.LONG PILOT2
|
||
.WORD 05
|
||
.LONG PILOT3
|
||
.WORD 05
|
||
.LONG PILOT4
|
||
.WORD 05
|
||
.LONG PILOT3
|
||
.WORD 05
|
||
.LONG PILOT2
|
||
.WORD 05
|
||
.LONG 0
|
||
|
||
;AXE CARRYING GRUNT
|
||
JDWN:
|
||
.LONG JUMP2
|
||
.WORD 0AH
|
||
.LONG JUMP3
|
||
.WORD 022H
|
||
.LONG JUMP2
|
||
.WORD 0EH
|
||
.LONG JUMP
|
||
.WORD 016H
|
||
.LONG 0
|
||
JDWN2:
|
||
.LONG JUMP1A
|
||
.WORD 05
|
||
.LONG JUMP1B
|
||
.WORD 05
|
||
.LONG GSTND1
|
||
.WORD 05
|
||
.LONG 0
|
||
JRDWN:
|
||
.LONG HJUMP2
|
||
.WORD 10
|
||
.LONG HJUMP3
|
||
.WORD 01FH
|
||
.LONG HJUMP2
|
||
.WORD 011H
|
||
.LONG HJUMP1
|
||
.WORD 02AH ;1BH
|
||
.LONG 0
|
||
JRDWN2:
|
||
.LONG HJUMP1A
|
||
.WORD 05
|
||
.LONG GSTND3
|
||
.WORD 05
|
||
.LONG 0
|
||
JRDWNP:
|
||
;FOR PIT JUMPERS
|
||
.LONG HJUMP2
|
||
.WORD 12H
|
||
.LONG HJUMP3
|
||
.WORD 0FH
|
||
.LONG HJUMP2
|
||
.WORD 0FH
|
||
.LONG HJUMP1
|
||
.WORD 0FH
|
||
.LONG 0
|
||
DJRDWNP:
|
||
;FOR PIT JUMPERS
|
||
.LONG DHJUMP2
|
||
.WORD 12H
|
||
.LONG DHJUMP3
|
||
.WORD 0FH
|
||
.LONG DHJUMP2
|
||
.WORD 0FH
|
||
.LONG DHJUMP1
|
||
.WORD 0FH
|
||
.LONG 0
|
||
|
||
;REGULAR SOLDIER GRUNT
|
||
DJDWN:
|
||
.LONG DJUMP2
|
||
.WORD 0AH
|
||
.LONG DJUMP3
|
||
.WORD 022H
|
||
.LONG DJUMP2
|
||
.WORD 0EH
|
||
.LONG DJUMP1
|
||
.WORD 016H
|
||
.LONG 0
|
||
DJDWN2:
|
||
.LONG DJUMP1A
|
||
.WORD 05
|
||
.LONG DJUMP1B
|
||
.WORD 05
|
||
.LONG DGSTND1
|
||
.WORD 05
|
||
.LONG 0
|
||
DJRDWN:
|
||
.LONG DHJUMP2
|
||
.WORD 10
|
||
.LONG DHJUMP3
|
||
.WORD 01FH
|
||
.LONG DHJUMP2
|
||
.WORD 011H
|
||
.LONG DHJUMP1
|
||
.WORD 02AH ;1BH
|
||
.LONG 0
|
||
DJRDWN2:
|
||
.LONG DHJUMP1A
|
||
.WORD 05
|
||
.LONG DGSTND3
|
||
.WORD 05
|
||
.LONG 0
|
||
|
||
|
||
;AXE CARRYING GRUNT
|
||
GR10
|
||
.LONG G10GRW1
|
||
.WORD FLIPBITS|3,0
|
||
.LONG G10GRW2
|
||
.WORD 3
|
||
.LONG G10GRW3
|
||
.WORD 3
|
||
.LONG G10GRW4
|
||
.WORD 3
|
||
.LONG G10GRW5
|
||
.WORD 3
|
||
.LONG G10GRW6
|
||
.WORD 3
|
||
.LONG G10GRW7
|
||
.WORD 3
|
||
.LONG G10GRW8
|
||
.WORD 3
|
||
.LONG G10GRW9
|
||
.WORD 3
|
||
.LONG G10GRW10
|
||
.WORD 3
|
||
.LONG G10GRW11
|
||
.WORD 3
|
||
.LONG GSTND4
|
||
.WORD 12
|
||
.LONG 0
|
||
GR8
|
||
.LONG G8GRW1
|
||
.WORD FLIPBITS|3,0
|
||
.LONG G8GRW2
|
||
.WORD 3
|
||
.LONG G8GRW3
|
||
.WORD 3
|
||
.LONG G8GRW4
|
||
.WORD 3
|
||
.LONG G8GRW5
|
||
.WORD 3
|
||
.LONG G8GRW6
|
||
.WORD 3
|
||
.LONG G8GRW7
|
||
.WORD 3
|
||
.LONG G8GRW8
|
||
.WORD 3
|
||
.LONG G8GRW9
|
||
.WORD 3
|
||
.LONG G8GRW10
|
||
.WORD 3
|
||
.LONG G8GRW11
|
||
.WORD 3
|
||
.LONG GSTND2
|
||
.WORD 12
|
||
.LONG 0
|
||
GR5
|
||
.LONG G8GRW1
|
||
.WORD FLIPBITS|3,M_FLIPH
|
||
.LONG G8GRW2
|
||
.WORD 3
|
||
.LONG G8GRW3
|
||
.WORD 3
|
||
.LONG G8GRW4
|
||
.WORD 3
|
||
.LONG G8GRW5
|
||
.WORD 3
|
||
.LONG G8GRW6
|
||
.WORD 3
|
||
.LONG G8GRW7
|
||
.WORD 3
|
||
.LONG G8GRW8
|
||
.WORD 3
|
||
.LONG G8GRW9
|
||
.WORD 3
|
||
.LONG G8GRW10
|
||
.WORD 3
|
||
.LONG G8GRW11
|
||
.WORD 3
|
||
.LONG GSTND2
|
||
.WORD 12
|
||
.LONG 0
|
||
GR2
|
||
.LONG G10GRW1
|
||
.WORD FLIPBITS|3,M_FLIPH
|
||
.LONG G10GRW2
|
||
.WORD 3
|
||
.LONG G10GRW3
|
||
.WORD 3
|
||
.LONG G10GRW4
|
||
.WORD 3
|
||
.LONG G10GRW5
|
||
.WORD 3
|
||
.LONG G10GRW6
|
||
.WORD 3
|
||
.LONG G10GRW7
|
||
.WORD 3
|
||
.LONG G10GRW8
|
||
.WORD 3
|
||
.LONG G10GRW9
|
||
.WORD 3
|
||
.LONG G10GRW10
|
||
.WORD 3
|
||
.LONG G10GRW11
|
||
.WORD 3
|
||
.LONG GSTND4
|
||
.WORD 12
|
||
.LONG 0
|
||
|
||
|
||
;REGULAR SOLDIER GRUNT GROW
|
||
DGR10
|
||
.LONG Dgb10w3a ;G10GRW1
|
||
.WORD FLIPBITS|3,0
|
||
.LONG 0
|
||
DGR8
|
||
.LONG Dgb8w3a ;G8GRW1
|
||
.WORD FLIPBITS|3,0
|
||
.LONG 0
|
||
DGR5
|
||
.LONG Dgb8w3a ;G8GRW1
|
||
.WORD FLIPBITS|3,M_FLIPH
|
||
.LONG 0
|
||
DGR2
|
||
.LONG Dgb10w3a ;G10GRW1
|
||
.WORD FLIPBITS|3,M_FLIPH
|
||
.LONG 0
|
||
|
||
|
||
;AHMED GRUNT GROW
|
||
DGR10A
|
||
.LONG AHMED10a ;G10GRW1
|
||
.WORD FLIPBITS|3,0
|
||
.LONG 0
|
||
DGR8A
|
||
.LONG AHMED8a ;G8GRW1
|
||
.WORD FLIPBITS|3,0
|
||
.LONG 0
|
||
DGR5A
|
||
.LONG AHMED8a ;G8GRW1
|
||
.WORD FLIPBITS|3,M_FLIPH
|
||
.LONG 0
|
||
DGR2A
|
||
.LONG AHMED10a ;G10GRW1
|
||
.WORD FLIPBITS|3,M_FLIPH
|
||
.LONG 0
|
||
|
||
|
||
|
||
;AXE CARRYING GRUNT
|
||
ARMUP .LONG GNTARM7
|
||
.WORD FLIPBITS|3,0
|
||
.LONG GNTARM6
|
||
.WORD 4
|
||
.LONG GNTARM5
|
||
.WORD 4
|
||
.LONG GNTARM4
|
||
.WORD 4
|
||
.LONG GNTARM3
|
||
.WORD 4
|
||
.LONG GNTARM2
|
||
.WORD 4
|
||
.LONG GNTARM1
|
||
.WORD 4
|
||
.LONG GNTARM1
|
||
.WORD FLIPBITS|3,(M_FLIPH)
|
||
.LONG GNTARM2
|
||
.WORD 4
|
||
.LONG GNTARM3
|
||
.WORD 4
|
||
.LONG GNTARM4
|
||
.WORD 4
|
||
.LONG GNTARM5
|
||
.WORD 4
|
||
.LONG GNTARM6
|
||
.WORD 4
|
||
.LONG GNTARM7
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
LEGUP .LONG GRNTLG7
|
||
.WORD FLIPBITS|3,0
|
||
.LONG GRNTLG6
|
||
.WORD 5
|
||
.LONG GRNTLG5
|
||
.WORD 5
|
||
.LONG GRNTLG4
|
||
.WORD 5
|
||
.LONG GRNTLG3
|
||
.WORD 5
|
||
.LONG GRNTLG2
|
||
.WORD 5
|
||
.LONG GRNTLG1
|
||
.WORD 5
|
||
.LONG GRNTLG1
|
||
.WORD FLIPBITS|5,(M_FLIPH)
|
||
.LONG GRNTLG2
|
||
.WORD 5
|
||
.LONG GRNTLG3
|
||
.WORD 5
|
||
.LONG GRNTLG4
|
||
.WORD 4
|
||
.LONG GRNTLG5
|
||
.WORD 4
|
||
.LONG GRNTLG6
|
||
.WORD 4
|
||
.LONG GRNTLG7
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
FLSHA .LONG FLSHA6
|
||
.WORD FLIPBITS|3,0
|
||
.LONG FLSHA5
|
||
.WORD 4
|
||
.LONG FLSHA4
|
||
.WORD 4
|
||
.LONG FLSHA3
|
||
.WORD 4
|
||
.LONG FLSHA2
|
||
.WORD 4
|
||
.LONG FLSHA1
|
||
.WORD 4
|
||
.LONG FLSHA1
|
||
.WORD FLIPBITS|3,(M_FLIPH)
|
||
.LONG FLSHA2
|
||
.WORD 4
|
||
.LONG FLSHA3
|
||
.WORD 4
|
||
.LONG FLSHA4
|
||
.WORD 4
|
||
.LONG FLSHA5
|
||
.WORD 4
|
||
.LONG FLSHA6
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
FLSHB .LONG FLSHB6
|
||
.WORD 4
|
||
.LONG FLSHB5
|
||
.WORD 4
|
||
.LONG FLSHB4
|
||
.WORD 4
|
||
.LONG FLSHB3
|
||
.WORD 5
|
||
.LONG FLSHB2
|
||
.WORD 5
|
||
.LONG FLSHB1
|
||
.WORD 5
|
||
.LONG FLSHB2
|
||
.WORD 5
|
||
.LONG FLSHB3
|
||
.WORD 4
|
||
.LONG FLSHB4
|
||
.WORD 4
|
||
.LONG FLSHB5
|
||
.WORD 4
|
||
.LONG FLSHB6
|
||
.WORD 4
|
||
.LONG 0
|
||
ARMUPZ .LONG GNTARM7
|
||
.WORD FLIPBITS|18,0
|
||
.LONG GNTARM6
|
||
.WORD 4
|
||
.LONG GNTARM5
|
||
.WORD 4
|
||
.LONG GNTARM4
|
||
.WORD 4
|
||
.LONG GNTARM3
|
||
.WORD 4
|
||
.LONG GNTARM2
|
||
.WORD 4
|
||
.LONG GNTARM1
|
||
.WORD 4
|
||
.LONG GNTARM1
|
||
.WORD FLIPBITS|3,(M_FLIPH)
|
||
.LONG GNTARM2
|
||
.WORD 4
|
||
.LONG GNTARM3
|
||
.WORD 4
|
||
.LONG GNTARM4
|
||
.WORD 4
|
||
.LONG GNTARM5
|
||
.WORD 4
|
||
.LONG GNTARM6
|
||
.WORD 4
|
||
.LONG GNTARM7
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
LEGUPZ .LONG GRNTLG7
|
||
.WORD FLIPBITS|23,0
|
||
.LONG GRNTLG6
|
||
.WORD 4
|
||
.LONG GRNTLG5
|
||
.WORD 4
|
||
.LONG GRNTLG4
|
||
.WORD 4
|
||
.LONG GRNTLG3
|
||
.WORD 4
|
||
.LONG GRNTLG2
|
||
.WORD 4
|
||
.LONG GRNTLG1
|
||
.WORD 4
|
||
.LONG GRNTLG1
|
||
.WORD FLIPBITS|3,(M_FLIPH)
|
||
.LONG GRNTLG2
|
||
.WORD 4
|
||
.LONG GRNTLG3
|
||
.WORD 4
|
||
.LONG GRNTLG4
|
||
.WORD 4
|
||
.LONG GRNTLG5
|
||
.WORD 4
|
||
.LONG GRNTLG6
|
||
.WORD 4
|
||
.LONG GRNTLG7
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
FLSHAZ .LONG FLSHA6
|
||
.WORD FLIPBITS|10,0
|
||
.LONG FLSHA5
|
||
.WORD 4
|
||
.LONG FLSHA4
|
||
.WORD 4
|
||
.LONG FLSHA3
|
||
.WORD 4
|
||
.LONG FLSHA2
|
||
.WORD 4
|
||
.LONG FLSHA1
|
||
.WORD 4
|
||
.LONG FLSHA1
|
||
.WORD FLIPBITS|3,(M_FLIPH)
|
||
.LONG FLSHA2
|
||
.WORD 4
|
||
.LONG FLSHA3
|
||
.WORD 4
|
||
.LONG FLSHA4
|
||
.WORD 4
|
||
.LONG FLSHA5
|
||
.WORD 4
|
||
.LONG FLSHA6
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
FLSHBZ .LONG FLSHB6
|
||
.WORD 16
|
||
.LONG FLSHB5
|
||
.WORD 4
|
||
.LONG FLSHB4
|
||
.WORD 4
|
||
.LONG FLSHB3
|
||
.WORD 4
|
||
.LONG FLSHB2
|
||
.WORD 4
|
||
.LONG FLSHB1
|
||
.WORD 5
|
||
.LONG FLSHB2
|
||
.WORD 4
|
||
.LONG FLSHB3
|
||
.WORD 4
|
||
.LONG FLSHB4
|
||
.WORD 4
|
||
.LONG FLSHB5
|
||
.WORD 4
|
||
.LONG FLSHB6
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
BLSTS .LONG FLSHA1,ARMUP,LEGUP,FLSHA,FLSHB,ARMUPZ,LEGUPZ,FLSHAZ,FLSHBZ,0
|
||
;AHMED LIST
|
||
ALSTS .LONG FLSHA1,ARMUP,LEGUP,FLSHA,FLSHB,ARMUPZ,LEGUPZ,FLSHAZ,FLSHBZ,0
|
||
PBLSTS .LONG BOY3,ARMUP,LEGUP,FLSHA,FLSHB,ARMUPZ,LEGUPZ,FLSHAZ,FLSHBZ,0
|
||
|
||
|
||
;SOLDIER GRUNT
|
||
DARMUP .LONG DGNTARM7
|
||
.WORD FLIPBITS|3,0
|
||
.LONG DGNTARM6
|
||
.WORD 4
|
||
.LONG DGNTARM5
|
||
.WORD 4
|
||
.LONG DGNTARM4
|
||
.WORD 4
|
||
.LONG DGNTARM3
|
||
.WORD 4
|
||
.LONG DGNTARM2
|
||
.WORD 4
|
||
.LONG DGNTARM1
|
||
.WORD 4
|
||
.LONG DGNTARM1
|
||
.WORD FLIPBITS|3,(M_FLIPH)
|
||
.LONG DGNTARM2
|
||
.WORD 4
|
||
.LONG DGNTARM3
|
||
.WORD 4
|
||
.LONG DGNTARM4
|
||
.WORD 4
|
||
.LONG DGNTARM5
|
||
.WORD 4
|
||
.LONG DGNTARM6
|
||
.WORD 4
|
||
.LONG DGNTARM7
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
DLEGUP .LONG DGRNTLG7
|
||
.WORD FLIPBITS|3,0
|
||
.LONG DGRNTLG6
|
||
.WORD 5
|
||
.LONG DGRNTLG5
|
||
.WORD 5
|
||
.LONG DGRNTLG4
|
||
.WORD 5
|
||
.LONG DGRNTLG3
|
||
.WORD 5
|
||
.LONG DGRNTLG2
|
||
.WORD 5
|
||
.LONG DGRNTLG1
|
||
.WORD 5
|
||
.LONG DGRNTLG1
|
||
.WORD FLIPBITS|5,(M_FLIPH)
|
||
.LONG DGRNTLG2
|
||
.WORD 5
|
||
.LONG DGRNTLG3
|
||
.WORD 5
|
||
.LONG DGRNTLG4
|
||
.WORD 4
|
||
.LONG DGRNTLG5
|
||
.WORD 4
|
||
.LONG DGRNTLG6
|
||
.WORD 4
|
||
.LONG DGRNTLG7
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
DFLSHA .LONG DFLSHA6
|
||
.WORD FLIPBITS|3,0
|
||
.LONG DFLSHA5
|
||
.WORD 4
|
||
.LONG DFLSHA4
|
||
.WORD 4
|
||
.LONG DFLSHA3
|
||
.WORD 4
|
||
.LONG DFLSHA2
|
||
.WORD 4
|
||
.LONG DFLSHA1
|
||
.WORD 4
|
||
.LONG DFLSHA1
|
||
.WORD FLIPBITS|3,(M_FLIPH)
|
||
.LONG DFLSHA2
|
||
.WORD 4
|
||
.LONG DFLSHA3
|
||
.WORD 4
|
||
.LONG DFLSHA4
|
||
.WORD 4
|
||
.LONG DFLSHA5
|
||
.WORD 4
|
||
.LONG DFLSHA6
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
DFLSHB .LONG DFLSHB6
|
||
.WORD 4
|
||
.LONG DFLSHB5
|
||
.WORD 4
|
||
.LONG DFLSHB4
|
||
.WORD 4
|
||
.LONG DFLSHB3
|
||
.WORD 5
|
||
.LONG DFLSHB2
|
||
.WORD 5
|
||
.LONG DFLSHB1
|
||
.WORD 5
|
||
.LONG DFLSHB2
|
||
.WORD 5
|
||
.LONG DFLSHB3
|
||
.WORD 4
|
||
.LONG DFLSHB4
|
||
.WORD 4
|
||
.LONG DFLSHB5
|
||
.WORD 4
|
||
.LONG DFLSHB6
|
||
.WORD 4
|
||
.LONG 0
|
||
DARMUPZ .LONG DGNTARM7
|
||
.WORD FLIPBITS|18,0
|
||
.LONG DGNTARM6
|
||
.WORD 4
|
||
.LONG DGNTARM5
|
||
.WORD 4
|
||
.LONG DGNTARM4
|
||
.WORD 4
|
||
.LONG DGNTARM3
|
||
.WORD 4
|
||
.LONG DGNTARM2
|
||
.WORD 4
|
||
.LONG DGNTARM1
|
||
.WORD 4
|
||
.LONG DGNTARM1
|
||
.WORD FLIPBITS|3,(M_FLIPH)
|
||
.LONG DGNTARM2
|
||
.WORD 4
|
||
.LONG DGNTARM3
|
||
.WORD 4
|
||
.LONG DGNTARM4
|
||
.WORD 4
|
||
.LONG DGNTARM5
|
||
.WORD 4
|
||
.LONG DGNTARM6
|
||
.WORD 4
|
||
.LONG DGNTARM7
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
DLEGUPZ .LONG DGRNTLG7
|
||
.WORD FLIPBITS|23,0
|
||
.LONG DGRNTLG6
|
||
.WORD 4
|
||
.LONG DGRNTLG5
|
||
.WORD 4
|
||
.LONG DGRNTLG4
|
||
.WORD 4
|
||
.LONG DGRNTLG3
|
||
.WORD 4
|
||
.LONG DGRNTLG2
|
||
.WORD 4
|
||
.LONG DGRNTLG1
|
||
.WORD 4
|
||
.LONG DGRNTLG1
|
||
.WORD FLIPBITS|3,(M_FLIPH)
|
||
.LONG DGRNTLG2
|
||
.WORD 4
|
||
.LONG DGRNTLG3
|
||
.WORD 4
|
||
.LONG DGRNTLG4
|
||
.WORD 4
|
||
.LONG DGRNTLG5
|
||
.WORD 4
|
||
.LONG DGRNTLG6
|
||
.WORD 4
|
||
.LONG DGRNTLG7
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
DFLSHAZ .LONG DFLSHA6
|
||
.WORD FLIPBITS|10,0
|
||
.LONG DFLSHA5
|
||
.WORD 4
|
||
.LONG DFLSHA4
|
||
.WORD 4
|
||
.LONG DFLSHA3
|
||
.WORD 4
|
||
.LONG DFLSHA2
|
||
.WORD 4
|
||
.LONG DFLSHA1
|
||
.WORD 4
|
||
.LONG DFLSHA1
|
||
.WORD FLIPBITS|3,(M_FLIPH)
|
||
.LONG DFLSHA2
|
||
.WORD 4
|
||
.LONG DFLSHA3
|
||
.WORD 4
|
||
.LONG DFLSHA4
|
||
.WORD 4
|
||
.LONG DFLSHA5
|
||
.WORD 4
|
||
.LONG DFLSHA6
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
DFLSHBZ .LONG DFLSHB6
|
||
.WORD 16
|
||
.LONG DFLSHB5
|
||
.WORD 4
|
||
.LONG DFLSHB4
|
||
.WORD 4
|
||
.LONG DFLSHB3
|
||
.WORD 4
|
||
.LONG DFLSHB2
|
||
.WORD 4
|
||
.LONG DFLSHB1
|
||
.WORD 5
|
||
.LONG DFLSHB2
|
||
.WORD 4
|
||
.LONG DFLSHB3
|
||
.WORD 4
|
||
.LONG DFLSHB4
|
||
.WORD 4
|
||
.LONG DFLSHB5
|
||
.WORD 4
|
||
.LONG DFLSHB6
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
DBLSTS .LONG DFLSHA1,DARMUP,DLEGUP,DFLSHA,DFLSHB,DARMUPZ,DLEGUPZ
|
||
.LONG DFLSHAZ,DFLSHBZ,0
|
||
|
||
GETPSK
|
||
;UPDATE HULK COUNT
|
||
MOVE @HULK_CNT,A0
|
||
INC A0
|
||
MOVE A0,@HULK_CNT
|
||
;CHOOSE PLAYER TO SEEK
|
||
ANDI 01,A0
|
||
MOVE A0,*A13(SKPLYR)
|
||
MOVE A0,A1
|
||
SLL 5,A1
|
||
ADDI PLYROBJS,A1
|
||
MOVE *A1,A1,L
|
||
MOVE *A1(OXPOS),A1
|
||
JRNZ RZY ;BR=OKAY TO SEEK THIS PLAYER
|
||
;PLAYER I AM SEEKING IS IN DIE MODE
|
||
XORI 1,A0
|
||
MOVE A0,*A13(SKPLYR)
|
||
RZY
|
||
CLR A0
|
||
MOVE A0,*A13(CFLAGS),W
|
||
MOVE A0,*A13(IBAT) ;NO BATTING AT START!
|
||
MOVE A0,*A13(BNCCNT) ;NOBNCCNT AT START
|
||
MOVE A0,*A13(BNCING)
|
||
|
||
|
||
CLR B0
|
||
MOVK 10,B1
|
||
CALLA RANGRAND ;TIE THIS IN WITH DIFFICULTY!
|
||
SLL 4,A0
|
||
ADDI AGTBL,A0
|
||
MOVE *A0,A0
|
||
MOVE A0,*A13(HAGE)
|
||
MOVE A0,*A13(KPAGE)
|
||
RETS
|
||
SOLD
|
||
MOVE A13,*A8(OPLINK),L
|
||
MOVE *A8(OFLAGS),A4
|
||
MOVE *A8(OXPOS),A0
|
||
ADDK 16,A0
|
||
MOVE A0,*A8(OXPOS)
|
||
MOVE *A8(OYPOS),A10
|
||
SUBK 9,A10
|
||
MOVE A10,*A8(OYPOS)
|
||
CALLA ANI
|
||
BTST 0,A10
|
||
RETS
|
||
|
||
|
||
*****************************************************************************
|
||
I_FLM
|
||
;FROM COLLISION ROUTINE, TELL THIS AHMED TO FLAME - I AM TOUCHING A PLAYER
|
||
;A8=AHMD IMG PNTR, A0=KILLER IMG PNTR
|
||
;A9=0 OR 1
|
||
MMTM SP,A1,A7
|
||
MOVE *A0(OPLINK),A0,L
|
||
MOVE *A0(PNUM),A9
|
||
MOVE *A8(OPLINK),A0,L
|
||
MOVE *A0(IBAT),A7
|
||
;2=FLAMING,1=PUNCHING
|
||
JRZ WLK0
|
||
;THIS AHMED IS CURRENTLY FLAMING!
|
||
;KILL OFF FLAME PROC
|
||
;DELOBJ FLAME IMG
|
||
MMTM SP,A0,A8
|
||
CALLR KIL_FLM
|
||
MMFM SP,A0,A8
|
||
WLK0
|
||
CLR A1
|
||
MOVE A1,*A0(GOCRNR),L
|
||
MOVE A1,*A0(CFLAGS)
|
||
MOVK 1,A1
|
||
MOVE A1,*A0(IBAT)
|
||
MOVI DOPNCH,A7
|
||
MOVI AHMDPID,A1
|
||
CALLA XFERPROC
|
||
MMFM SP,A1,A7
|
||
RETS
|
||
KIL_FLM
|
||
;CLEAN UP FLAME FROM AHMED DUDE
|
||
MOVE *A0(BULPRC),A0,L
|
||
JRZ WLK ;BR=HE WAS LINING UP TO FLAME ME!
|
||
CLR A1
|
||
MOVE A1,*A0(BULPRC),L
|
||
MOVE *A0(PDATA+64),A1,L
|
||
MOVE *A0(PDATA+128),A2,L
|
||
MOVE *A0(PDATA+192),A3,L
|
||
CALLA PEXIST
|
||
JRZ WLK
|
||
MOVE *A0(PROCID),A4
|
||
CMPI FLMPID,A4
|
||
JRNZ WLK
|
||
CALLA KILL ;KILLS BULLET PROCESS
|
||
MOVE A1,A0 ;KILL FLAME
|
||
CALLA DELOBJ
|
||
MOVE A2,A0 ;KILL FLAME
|
||
CALLA DELOBJ
|
||
MOVE A3,A0 ;KILL FLAME
|
||
CALLA DELOBJ
|
||
WLK RETS
|
||
|
||
DOPNCH:
|
||
;A9=PLAYER 1 OR 2
|
||
;THIS AHMED IS PUNCHING
|
||
;START PUNCH
|
||
|
||
CALLR PHASE1
|
||
JRC PSUP ;BR=BAT UPWARD
|
||
CMP A4,A1
|
||
JRC PB8O ;BR=8 O'CLOCK SWING NEEDED
|
||
;4 O'CLOCK
|
||
MOVI BAT4OA,A9
|
||
JRUC DOPN
|
||
PB8O
|
||
;8
|
||
MOVI BAT8OA,A9 ;AHMED PUNCH
|
||
JRUC DOPN
|
||
|
||
PSUP CMP A4,A1
|
||
JRC PB10O
|
||
;2 O'CLOCK
|
||
MOVI BAT2OA,A9
|
||
JRUC DOPN
|
||
PB10O
|
||
MOVI BAT10OA,A9
|
||
DOPN
|
||
MOVE A9,A10
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVE A10,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
PNCHDN
|
||
CLR A0
|
||
MOVE A0,*A13(IBAT)
|
||
MOVK 1,A0
|
||
MOVE A0,*A13(DIS)
|
||
MOVE A0,*A13(CFLAGS)
|
||
MOVI ZEROS,A9
|
||
JRUC ALUP_TOP
|
||
|
||
|
||
AAHMED:
|
||
;A9=[Y,X] SPOT TO SPAWN FROM
|
||
;A10=DIRECTION
|
||
;8 1 2
|
||
;7 3
|
||
;6 5 4
|
||
MOVI AHMD,A2
|
||
CALLR GET_WVADDR
|
||
|
||
MOVE *A0(16),A1,W ;DEC WAVE RAM CNT FOR THIS HULK
|
||
DEC A1
|
||
MOVE A1,*A0(16),W
|
||
|
||
MOVE *A0(32),A1,W ;GET DIFFICULTY LEVEL
|
||
|
||
CALLR START_AHMD
|
||
|
||
MOVE *A13(CFLAGS),A0 ;RUNNING OUT
|
||
ORI 2,A0
|
||
MOVE A0,*A13(CFLAGS)
|
||
|
||
MOVK 4,A3 ;20
|
||
MOVE A3,*A13(DIS) ;CHANGE BASED ON HULKS SPEED?
|
||
|
||
CRATE_IN
|
||
;ENTRY POINT FOR CRATE AHMED DUDE
|
||
;NOW START WITH A VELOCITY!
|
||
CALLR OKVA
|
||
|
||
MOVE *A8(OYPOS),A0
|
||
MOVE @WORLDTLY,A1,L
|
||
SRL 16,A1
|
||
ADDI 255,A1 ;275
|
||
CMP A0,A1
|
||
JRGT ALUP_TOP
|
||
;THIS HULK STARTING LOWER THAN BOTTOM OF SCRN!
|
||
;RESET ITS Y LINE
|
||
MOVE A1,*A8(OYPOS)
|
||
;
|
||
; LOOP TOP FOR AHMED FLAME THROWER GRUNT
|
||
;
|
||
ALUP_TOP:
|
||
;TOP OF HULK LOGIC
|
||
MOVE @HALT,A0
|
||
JRZ ACONT1 ;IF HALT ON, LOOP BACK TO TOP
|
||
SLEEPK 3
|
||
JRUC ALUP_TOP
|
||
ACONT1
|
||
MOVE *A13(CFLAGS),A0
|
||
BTST 2,A0
|
||
JRZ AC2
|
||
;SEEKING SIT SPOT, AM I THERE?
|
||
MOVE *A13(GOCRNR),A0,L
|
||
MOVE *A8(OYVAL),A1,L
|
||
SUB A0,A1
|
||
ABS A1
|
||
CMPI [10,0],A1
|
||
JRNC AC2
|
||
ANDI 0FFFFH,A0
|
||
MOVE *A8(OXPOS),A1
|
||
SUB A0,A1
|
||
ABS A1
|
||
CMPI 15H,A1
|
||
JRNC AC2
|
||
;YES A HIT!
|
||
;PAUSE HERE FOR X TIME
|
||
;ALWAYS POINT TOWARD PLAYER I WILL SEEK!
|
||
CALLR SETUP_DIR
|
||
CLR A0
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVE A0,*A8(OYVEL),L
|
||
MOVE A0,*A13(GOCRNR),L
|
||
MOVE A0,*A13(CFLAGS)
|
||
GTO
|
||
MOVE *A13(DIR),A0
|
||
MOVE *A13(SK_DIR),A1
|
||
CMP A0,A1
|
||
JRZ GTOO
|
||
CALLR WAY
|
||
SLEEPK 5
|
||
JRUC GTO
|
||
GTOO
|
||
MOVK 1,B0 ;AHMED STAYS IN CORNER
|
||
MOVI 60*6,B1
|
||
CALLA RANGRAND
|
||
CALLA PRCSLP
|
||
MOVI ZEROS,A9
|
||
AC2 MOVE *A13(NOFLMS),A0
|
||
JRZ AC3
|
||
DEC A0
|
||
MOVE A0,*A13(NOFLMS)
|
||
JRNZ NOFL
|
||
AC3
|
||
MOVE *A13(SKPLYR),A1
|
||
SLL 5,A1
|
||
ADDI PLYROBJS,A1
|
||
MOVE *A1,A1,L
|
||
MOVE *A1(OXPOS),A2
|
||
MOVE *A8(OXPOS),A3
|
||
SUB A2,A3
|
||
ABS A3
|
||
CMPI 80,A3
|
||
JRNC NOFL
|
||
MOVE *A1(OYPOS),A2
|
||
MOVE *A8(OYPOS),A3
|
||
SUB A2,A3
|
||
ABS A3
|
||
CMPI 04CH,A3
|
||
JRNC NOFL
|
||
MOVE *A13(SKPLYR),A9
|
||
;A9=PLAYER 0 OR 1
|
||
;THIS AHMED IS FLAMING AT
|
||
INC A9
|
||
MOVK 2,A0 ;2=FLAMING,1=PUNCHING
|
||
MOVE A0,*A13(IBAT)
|
||
CALLR PHASE1
|
||
|
||
JRC FSUP ;BR=BAT UPWARD
|
||
CMP A4,A1
|
||
JRC FB8O ;BR=8 O'CLOCK SWING NEEDED
|
||
;4 O'CLOCK
|
||
MOVI AHMED8,A1
|
||
MOVE *A8(OFLAGS),A4
|
||
ORI M_FLIPH,A4
|
||
CALLA ANI
|
||
SLEEPK 10
|
||
MOVI DMAWNZ|M_PIXSCAN|M_FLIPH,A4
|
||
MOVE *A8(OXVAL),A0,L
|
||
ADDI [13H,0],A0
|
||
MOVE *A8(OYVAL),A1,L
|
||
SUBI [12H,0],A1
|
||
MOVK 2,A9
|
||
JRUC FBATDN
|
||
|
||
FB8O
|
||
MOVI AHMED8,A1
|
||
MOVE *A8(OFLAGS),A4
|
||
ANDI 0FFEFH,A4
|
||
CALLA ANI
|
||
SLEEPK 10
|
||
MOVI DMAWNZ|M_PIXSCAN,A4
|
||
MOVE *A8(OXVAL),A0,L
|
||
ADDI [10H,0],A0
|
||
MOVE *A8(OYVAL),A1,L
|
||
SUBI [12H,0],A1
|
||
MOVK 3,A9
|
||
JRUC FBATDN
|
||
|
||
FSUP CMP A4,A1
|
||
JRC FB10O
|
||
;2 O'CLOCK
|
||
MOVI AHMED10,A1
|
||
MOVE *A8(OFLAGS),A4
|
||
ANDI 0FFEFH,A4 ;NO HZ FLIP BIT SET
|
||
ORI M_FLIPH,A4
|
||
CALLA ANI
|
||
SLEEPK 10
|
||
MOVI DMAWNZ|M_PIXSCAN|M_FLIPH|M_FLIPV,A4
|
||
MOVE *A8(OXVAL),A0,L
|
||
ADDI [019H,0],A0
|
||
MOVE *A8(OYVAL),A1,L
|
||
ADDI [03CH,0],A1
|
||
MOVK 1,A9
|
||
JRUC FBATDN
|
||
FB10O
|
||
MOVI AHMED10,A1
|
||
MOVE *A8(OFLAGS),A4
|
||
ANDI 0FFEFH,A4 ;NO HZ FLIP BIT SET
|
||
CALLA ANI
|
||
SLEEPK 10
|
||
MOVI DMAWNZ|M_PIXSCAN|M_FLIPV,A4
|
||
MOVE *A8(OXVAL),A0,L
|
||
ADDI [0EH,0],A0
|
||
MOVE *A8(OYVAL),A1,L
|
||
ADDI [03CH,0],A1
|
||
CLR A9
|
||
FBATDN
|
||
;A0,A1 ARE SET UP
|
||
MOVI 160,A3
|
||
MOVI AHMEDBLST1,A2
|
||
MOVI CLSENMY|TYPLAYR|SUBFLM,A5
|
||
CLR A6
|
||
CLR A7
|
||
MOVE A8,A10
|
||
CALLA BEGINOBJ2
|
||
CREATE FLMPID,FLAMING
|
||
MOVE A0,*A13(BULPRC),L
|
||
MOVE A10,A8
|
||
SLEEP 10FH-120
|
||
CLR A0
|
||
MOVE A0,*A13(IBAT)
|
||
MOVE A0,*A13(GOCRNR),L
|
||
|
||
MOVK 1,A0
|
||
MOVE A0,*A13(DIS)
|
||
MOVE A0,*A13(CFLAGS)
|
||
MOVI ZEROS,A9
|
||
MOVK 1,B0
|
||
MOVI 60,B1 ;120
|
||
CALLA RANGRAND
|
||
; MOVI 1,A0 ;80,A0
|
||
MOVE A0,*A13(NOFLMS)
|
||
JRUC ALUP_TOP
|
||
|
||
NOFL
|
||
;CHECK FOR COLLISIONS WITH RECTANGLES ON THIS SCREEN
|
||
MOVE @EN_CURRENT,A0,L ;CURRENT RECT LIST
|
||
JRZ NOBOXS
|
||
CALLR CK_RECT
|
||
NOBOXS MOVI SETUP_DIRA,A10 ;ROUTINE TO CALL
|
||
CALLR CK_SPIN
|
||
MOVE A0,A0
|
||
JRZ NOTSPINA
|
||
CALLA PRCSLP
|
||
JRUC ALUP_TOP
|
||
|
||
|
||
FLAMING
|
||
;MAYBE ALIGN WITH THIS (A10) AHMED GUY AS I FLAME
|
||
;A10 IS FLAME THROWER AHMED PNTR
|
||
MOVI TORCH,A0
|
||
CALLA ONESND
|
||
MOVE A9,*A13(PDATA)
|
||
MOVK 2,A0
|
||
MOVE A0,*A13(PDATA+32)
|
||
MOVE A8,*A13(PDATA+64),L ;STUB PC BASE
|
||
MOVI BLASTA,A0
|
||
MOVE A0,*A13(PDATA+96),L
|
||
MOVE *A8(OXVAL),A0,L
|
||
MOVE *A8(OYVAL),A1,L
|
||
MOVE *A8(OFLAGS),A4
|
||
MOVI AHMEDBLST1,A2
|
||
MOVI 160,A3
|
||
MOVI CLSENMY|TYPLAYR|SUBFLM,A5
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2
|
||
MOVE A8,*A13(PDATA+128),L
|
||
MOVI BLASTA2,A0
|
||
MOVE A0,*A13(PDATA+160),L
|
||
MOVE *A8(OXVAL),A0,L
|
||
MOVE *A8(OYVAL),A1,L
|
||
MOVE *A8(OFLAGS),A4
|
||
MOVI AHMEDBLST1,A2
|
||
MOVI 160,A3
|
||
MOVI CLSENMY|TYPLAYR|SUBFLM,A5
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2
|
||
MOVE A8,*A13(PDATA+192),L
|
||
MOVI BLASTA3,A0
|
||
MOVE A0,*A13(PDATA+224),L
|
||
DSF0
|
||
MOVE *A13(PDATA+64),A8,L
|
||
MOVE *A13(PDATA+96),A9,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,*A13(PDATA+96),L
|
||
MOVE *A13(PDATA+128),A8,L
|
||
MOVE *A13(PDATA+160),A9,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,*A13(PDATA+160),L
|
||
MOVE *A13(PDATA+192),A8,L
|
||
MOVE *A13(PDATA+224),A9,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,*A13(PDATA+224),L
|
||
JRC NXTF
|
||
;A0=SLP TIME
|
||
MOVE A0,A11
|
||
DSF CALLR ALIGNF
|
||
SLEEPK 1
|
||
DSJS A11,DSF
|
||
JRUC DSF0
|
||
|
||
|
||
NXTF
|
||
MOVI BLASTB,A9
|
||
MOVE A9,*A13(PDATA+96),L
|
||
MOVI BLASTB2,A9
|
||
MOVE A9,*A13(PDATA+160),L
|
||
MOVI BLASTB3,A9
|
||
MOVE A9,*A13(PDATA+224),L
|
||
NXTFA
|
||
MOVE *A13(PDATA+64),A8,L
|
||
MOVE *A13(PDATA+96),A9,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,*A13(PDATA+96),L
|
||
MOVE *A13(PDATA+128),A8,L
|
||
MOVE *A13(PDATA+160),A9,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,*A13(PDATA+160),L
|
||
MOVE *A13(PDATA+192),A8,L
|
||
MOVE *A13(PDATA+224),A9,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,*A13(PDATA+224),L
|
||
JRC NXTF1
|
||
MOVE A0,A11
|
||
DSF2 CALLR ALIGNF
|
||
SLEEPK 1
|
||
DSJS A11,DSF2
|
||
JRUC NXTFA
|
||
NXTF1 MOVE *A13(PDATA+32),A0
|
||
DEC A0
|
||
MOVE A0,*A13(PDATA+32)
|
||
JRNZ NXTF
|
||
|
||
MOVI BLASTC,A9
|
||
MOVE A9,*A13(PDATA+96),L
|
||
MOVI BLASTC2,A9
|
||
MOVE A9,*A13(PDATA+160),L
|
||
MOVI BLASTC3,A9
|
||
MOVE A9,*A13(PDATA+224),L
|
||
DSF4
|
||
; MOVK 4,A1
|
||
; JSRP FRANIM
|
||
MOVE *A13(PDATA+64),A8,L
|
||
MOVE *A13(PDATA+96),A9,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,*A13(PDATA+96),L
|
||
MOVE *A13(PDATA+128),A8,L
|
||
MOVE *A13(PDATA+160),A9,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,*A13(PDATA+160),L
|
||
MOVE *A13(PDATA+192),A8,L
|
||
MOVE *A13(PDATA+224),A9,L
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
MOVE A9,*A13(PDATA+224),L
|
||
JRC NXTF2
|
||
MOVE A0,A11
|
||
DSF3 CALLR ALIGNF
|
||
SLEEPK 1
|
||
DSJS A11,DSF3
|
||
JRUC DSF4
|
||
|
||
NXTF2
|
||
MOVE *A13(PDATA+64),A0,L
|
||
CALLA DELOBJ
|
||
MOVE *A13(PDATA+128),A0,L
|
||
CALLA DELOBJ
|
||
MOVE *A13(PDATA+192),A0,L
|
||
CALLA DELOBJ
|
||
****************JARV PATCH
|
||
MOVE @WAVE,A0
|
||
CMPI 16,A0 ;ORCUS WAVE USES FLAMES
|
||
JAEQ SUCIDE
|
||
******************************
|
||
MOVE *A10(OPLINK),A10,L
|
||
CLR A0
|
||
MOVE A0,*A10(BULPRC),L
|
||
DIE
|
||
|
||
|
||
**********************JARV PATCH
|
||
DOIT
|
||
MOVI 160,A3
|
||
MOVI AHMEDBLST1,A2
|
||
MOVI CLSENMY|TYPLAYR|SUBFLM,A5
|
||
CLR A6
|
||
CLR A7
|
||
MOVE A8,A10
|
||
CALLA BEGINOBJ2
|
||
CREATE HULKPID,FLAMING
|
||
******************WAITING FOR FLMPID ID***********
|
||
; CREATE FLMPID,FLAMING
|
||
DIE
|
||
*************************************
|
||
|
||
ALIGNF
|
||
; MOVE A8,A0
|
||
MOVE *A13(PDATA+64),A0,L
|
||
MOVE A10,A8
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA),A6
|
||
SLL 5,A6
|
||
ADDI FIREYX,A6
|
||
MOVE *A6,A6,L
|
||
ADD A6,A2
|
||
SLL 16,A6
|
||
ADD A6,A3
|
||
;A2=Y,A3=X
|
||
MOVE *A0(OFLAGS),A4,W
|
||
CALLA GANISAG ;ADJUSTS TORSO
|
||
; MOVE A0,A8
|
||
MOVE *A13(PDATA+128),A0,L
|
||
MOVE A10,A8
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA),A6
|
||
SLL 5,A6
|
||
ADDI FIREYX,A6
|
||
MOVE *A6,A6,L
|
||
ADD A6,A2
|
||
SLL 16,A6
|
||
ADD A6,A3
|
||
;A2=Y,A3=X
|
||
MOVE *A0(OFLAGS),A4,W
|
||
CALLA GANISAG ;ADJUSTS TORSO
|
||
; MOVE A0,A8
|
||
MOVE *A13(PDATA+192),A0,L
|
||
MOVE A10,A8
|
||
CALLA GETANIXY
|
||
MOVE *A13(PDATA),A6
|
||
SLL 5,A6
|
||
ADDI FIREYX,A6
|
||
MOVE *A6,A6,L
|
||
ADD A6,A2
|
||
SLL 16,A6
|
||
ADD A6,A3
|
||
;A2=Y,A3=X
|
||
MOVE *A0(OFLAGS),A4,W
|
||
CALLA GANISAG ;ADJUSTS TORSO
|
||
; MOVE A0,A8
|
||
RETS
|
||
|
||
;2=4 OCLOCK
|
||
;3=8 OCLOCK
|
||
************************JARV PATCH
|
||
FIREYX .LONG [52H,0FFF8H],[053H,7],[1,1],[1,-1],[29H,-8],[29H,8]
|
||
;FIREYX .LONG [52H,0FFF8H],[053H,7],[29H,-8],[29H,8]
|
||
***************************************
|
||
|
||
NOTSPINA:
|
||
MOVE *A13(DIS),A0 ;UPDATE DISTANCE COUNT
|
||
DEC A0
|
||
MOVE A0,*A13(DIS) ;STUFF NEW COUNT
|
||
JRNZ DOAHMD ;BR=CONTINUE CURRENT DIRECTION
|
||
MOVE A0,*A13(BNCING)
|
||
MOVE *A13(CFLAGS),A0
|
||
BTST 1,A0
|
||
JRZ T3A
|
||
;THIS AHMD JUST RUNNING IN! GIVE THIS ONE A BOGUS SEEK DIR
|
||
;IF WITHIN WALLS THEN CONT, OTHERWISE RESET DIS CNTR
|
||
MOVE @WORLDTLX,A0,L
|
||
MOVE @SITLST,A2,L
|
||
MOVE @WORLDTLY,A1,L
|
||
MOVE *A13(DIR),A3
|
||
DEC A3
|
||
SLL 6,A3
|
||
ADD A3,A2
|
||
MOVE @HCOUNT,A4 ;HULK_CNT,A4
|
||
ANDI 01,A4
|
||
SLL 5,A4
|
||
ADD A4,A2
|
||
MOVE *A2,A2,L
|
||
ADD A2,A1
|
||
SRL 16,A0
|
||
ADD A2,A0
|
||
MOVX A0,A1
|
||
MOVE A1,*A13(GOCRNR),L
|
||
|
||
MOVE *A13(CFLAGS),A0
|
||
ORI 04,A0 ;INDICATE SEEKING SIT SPOT
|
||
MOVE A0,*A13(CFLAGS)
|
||
|
||
; MOVE *A13(DIR),A3
|
||
; SLL 5,A3
|
||
; ADDI NEWANGA,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 T4A
|
||
;
|
||
;NOW POINT THIS AHMD AT CURRENT POSITION OF PLAYER
|
||
T3A: MOVE *A13(BNCING),A0
|
||
JRNZ DOAHMD
|
||
MOVE *A13(SK_DIR),A7,W
|
||
;IF NEW SEEK IS <> OLD SEEK, THEN SET STAND FLAG
|
||
CALLR GET_DIS
|
||
CALLR SETUP_DIRA
|
||
MOVE *A13(SK_DIR),A0
|
||
CMP A0,A7 ;NEW CMP OLD SEEK
|
||
JREQ DOAHMD
|
||
|
||
T4A: MOVE *A13(CFLAGS),A0 ;SAYS I AM SPINNING
|
||
ORI 01H,A0
|
||
MOVE A0,*A13(CFLAGS),W
|
||
MOVK 2,A0
|
||
MOVE A0,*A13(OSCILLATE)
|
||
SLEEPK 3
|
||
JRUC ALUP_TOP
|
||
DOAHMD:
|
||
CLR A1
|
||
JSRP FRANIM
|
||
JRNC CHA ;BR=NOT AT END OF SCRIPT YET
|
||
CALLR GET_RUN
|
||
CHA
|
||
JRUC ALUP_TOP
|
||
|
||
|
||
START_AHMD
|
||
MOVE A1,*A13(LEVEL),W
|
||
|
||
MOVK 2,A0 ;INDICATES AHMED GRUNT
|
||
MOVE A0,*A13(HULKTYP)
|
||
|
||
CLR A0
|
||
MOVE A0,*A13(BULPRC),L
|
||
MOVE A0,*A13(NOFLMS),L
|
||
MOVE A0,*A13(ABSRB)
|
||
|
||
;A10=DIRECTION
|
||
;8 1 2
|
||
;7 3
|
||
;6 5 4
|
||
MOVE A10,*A13(SK_DIR)
|
||
|
||
;UPDATE AHMD COUNT
|
||
MOVE @AHMD_CNT,A0
|
||
INC A0
|
||
MOVE A0,@AHMD_CNT
|
||
;CHOOSE PLAYER TO SEEK
|
||
ANDI 01,A0
|
||
MOVE A0,*A13(SKPLYR)
|
||
MOVE A0,A1
|
||
SLL 5,A1
|
||
ADDI PLYROBJS,A1
|
||
MOVE *A1,A1,L
|
||
MOVE *A1(OXPOS),A1
|
||
JRNZ PZY ;BR=OKAY TO SEEK THIS PLAYER
|
||
;PLAYER I AM SEEKING IS IN DIE MODE
|
||
XORI 1,A0
|
||
MOVE A0,*A13(SKPLYR)
|
||
PZY
|
||
CLR A0
|
||
MOVE A0,*A13(CFLAGS),W
|
||
MOVE A0,*A13(IBAT) ;NO BATTING AT START!
|
||
|
||
MOVE A10,*A13(DIR)
|
||
MOVE A10,A0
|
||
SLL 5,A0
|
||
ADDI HXT,A0
|
||
MOVE *A0,A4,L
|
||
;BTML .LONG 0,0,[08,0],[10,0],[08,0],[30,0],[08,0],[50,0],[17,0],[20,0]
|
||
;[Y,X] OF PLACEMENT
|
||
;A4=THIS
|
||
;A8=1-4
|
||
MOVK 1,A8
|
||
SLL 6,A8
|
||
ADD A8,A4
|
||
MOVE *A4+,A1,L ;GET Y FIRST
|
||
ADD A9,A1
|
||
SLL 16,A9
|
||
MOVE *A4,A0,L
|
||
ADD A9,A0
|
||
MOVI AHMED10,A2
|
||
;NEED A0=[X,0000],A1=[Y,0000]
|
||
|
||
;A0,A1 ARE SET UP
|
||
MOVI 100,A3 ;TAKE OUT
|
||
MOVE A3,*A13(NOFLMS)
|
||
MOVI 159,A3
|
||
MOVI DMAWNZ,A4 ;NON-ZERO VALUE
|
||
MOVI CLSENMY|TYPAHMD,A5
|
||
CLR A6
|
||
CLR A7
|
||
CALLA BEGINOBJ2
|
||
RETS
|
||
|
||
CK_RECT
|
||
;NOW CHECK RECTANGLES FOR COLLISIONS
|
||
MOVE *A13(BOXCK),A1
|
||
DEC A1
|
||
JRNZ NOREC
|
||
;TIME TO CHECK HULK AGAINST RECTANGLES!
|
||
;BOG CITY
|
||
MOVK 8,A1
|
||
MOVE A1,*A13(BOXCK)
|
||
;MAYBE JUST KILL THIS GUY OFF IF HE HAS COLLIDED WITH RECTANGLES TOO MUCH!
|
||
;FIRST CHECK TO SEE IF THIS WILL PUSH PLAYER INTO BAD RECTANGLE AREA
|
||
;CHECK FOR RECTANGLE COLLISIONS!
|
||
MOVE *A8(OXVAL),A4,L
|
||
MOVE *A8(OYVAL),A6,L
|
||
SRL 16,A4 ;X
|
||
SRL 16,A6 ;Y
|
||
NEXT0 MOVE *A0+,A1,W
|
||
JRZ NOBOX
|
||
CMP A1,A4
|
||
JRLT NEXT ;IF BRNCH RECT LFT EDGE > PLYR X
|
||
MOVE *A0+,A1,W
|
||
CMP A1,A6 ;
|
||
JRLT NEXTA ;IF BRNCH RECT TOP EDGE > PLYR Y
|
||
MOVE *A0+,A1,W
|
||
CMP A1,A4
|
||
JRGT NEXTB ;IF BRNCH RECT RGT EDGE < PLYR X
|
||
MOVE *A0+,A1,W
|
||
CMP A1,A6
|
||
JRLT YESA ;IF BRNCH RECT BOT EDGE < PLYR Y
|
||
ADDK 16,A0
|
||
JRUC NEXT0
|
||
YESA
|
||
;HIT A RECTANGLE
|
||
;WHAT DO I DO?
|
||
MOVE *A0,A0
|
||
MOVE A0,*A13(SK_DIR)
|
||
CLR A0
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVE A0,*A8(OYVEL),L
|
||
MOVE *A13(CFLAGS),A0
|
||
ORI 1,A0
|
||
MOVE A0,*A13(CFLAGS)
|
||
MOVK 32,A1 ;DON'T CHECK FOR AWHILE ;40
|
||
MOVE A1,*A13(BNCING) ;DIS HULK WILL TRAVEL AFTER BNC!
|
||
MOVE A1,*A13(BOXCK) ;TIME BEFORE WE CHECK AGAIN
|
||
MOVE *A13(BNCCNT),A0
|
||
INC A0
|
||
MOVE A0,*A13(BNCCNT)
|
||
CMPI 3,A0
|
||
JRNZ NOBOX
|
||
;GRUNT IS STUCK BNCING OFF RECTANGLES! KILL HIM!
|
||
SETC
|
||
RETS
|
||
|
||
NEXT ADDI 48+16,A0
|
||
JRUC NEXT0
|
||
NEXTA ADDI 32+16,A0
|
||
JRUC NEXT0
|
||
NEXTB ADDK 16+16,A0
|
||
JRUC NEXT0
|
||
|
||
NOREC MOVE A1,*A13(BOXCK)
|
||
NOBOX CLRC
|
||
RETS
|
||
CK_SPIN
|
||
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 18,A0 ;15
|
||
MOVE A0,*A13(DIS)
|
||
MOVE *A13(CFLAGS),A0
|
||
ANDI 0FFFDH,A0
|
||
MOVE A0,*A13(CFLAGS)
|
||
JRUC GOODNEWS
|
||
R0
|
||
MOVE *A13(BNCING),A0
|
||
JRNZ GNW2
|
||
PUSH A1
|
||
CALLR GET_DIS
|
||
CALL A10 ;SETUP_DIR
|
||
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
|
||
MOVK 1,A0
|
||
RETS
|
||
|
||
GNW2
|
||
;A0=DIR TO BNC
|
||
MOVE *A13(DIR),A0
|
||
CALLR INTO
|
||
MOVI 30,A0
|
||
JRUC GNW1
|
||
GNW MOVK 5,A0 ;6
|
||
GNW1 MOVE A0,*A13(DIS)
|
||
GOODNEWS:
|
||
CLR A0
|
||
MOVE A0,*A13(OSCILLATE)
|
||
CALLR GET_RUN ;ZEROS STAND FLAG ALSO
|
||
MOVK 1,A0
|
||
RETS
|
||
|
||
CONT:
|
||
CALLR WAY ;WHICH WAY TO SPIN/THEN ANI STAND VW
|
||
CONT1: MOVK 3,A0
|
||
RETS
|
||
|
||
NOSPN: CLR A0
|
||
RETS
|
||
|
||
BLASTA .LONG AHMEDBLST1
|
||
.WORD 2
|
||
.LONG AHMEDBLST2
|
||
.WORD 2
|
||
.LONG BLST3C
|
||
.WORD 2
|
||
.LONG 0
|
||
BLASTB
|
||
.LONG BLST4C
|
||
.WORD 4
|
||
.LONG BLST5C
|
||
.WORD 4
|
||
.LONG BLST6C
|
||
.WORD 4
|
||
.LONG BLST4C
|
||
.WORD 4
|
||
.LONG BLST5C
|
||
.WORD 4
|
||
.LONG BLST6C
|
||
.WORD 4
|
||
.LONG BLST4C
|
||
.WORD 4
|
||
.LONG BLST5C
|
||
.WORD 4
|
||
.LONG BLST6C
|
||
.WORD 4
|
||
.LONG BLST4C
|
||
.WORD 4
|
||
.LONG BLST5C
|
||
.WORD 4
|
||
.LONG BLST6C
|
||
.WORD 4
|
||
.LONG BLST4C
|
||
.WORD 4
|
||
.LONG BLST5C
|
||
.WORD 4
|
||
.LONG BLST6C
|
||
.WORD 4
|
||
.LONG 0
|
||
BLASTC3
|
||
BLASTC .LONG BLST3C
|
||
.WORD 2
|
||
.LONG AHMEDBLST2
|
||
.WORD 2
|
||
.LONG AHMEDBLST1
|
||
.WORD 2
|
||
.LONG 0
|
||
BLASTA2 .LONG AHMEDBLST1 ;INVISIBLE
|
||
.WORD 2
|
||
.LONG AHMEDBLST2 ;''
|
||
.WORD 2
|
||
.LONG BLST3B
|
||
.WORD 2
|
||
.LONG 0
|
||
BLASTB2
|
||
.LONG BLST4B
|
||
.WORD 4
|
||
.LONG BLST5B
|
||
.WORD 4
|
||
.LONG BLST6B
|
||
.WORD 4
|
||
.LONG BLST4B
|
||
.WORD 4
|
||
.LONG BLST5B
|
||
.WORD 4
|
||
.LONG BLST6B
|
||
.WORD 4
|
||
.LONG BLST4B
|
||
.WORD 4
|
||
.LONG BLST5B
|
||
.WORD 4
|
||
.LONG BLST6B
|
||
.WORD 4
|
||
.LONG BLST4B
|
||
.WORD 4
|
||
.LONG BLST5B
|
||
.WORD 4
|
||
.LONG BLST6B
|
||
.WORD 4
|
||
.LONG BLST4B
|
||
.WORD 4
|
||
.LONG BLST5B
|
||
.WORD 4
|
||
.LONG BLST6B
|
||
.WORD 4
|
||
.LONG 0
|
||
BLASTC2 .LONG BLST3B
|
||
.WORD 2
|
||
.LONG AHMEDBLST2
|
||
.WORD 2
|
||
.LONG AHMEDBLST1
|
||
.WORD 2
|
||
.LONG 0
|
||
BLASTA3 .LONG AHMEDBLST1 ;INVISIBLE
|
||
.WORD 2
|
||
.LONG AHMEDBLST2
|
||
.WORD 2
|
||
.LONG BLST3C ;STILL INV
|
||
.WORD 2
|
||
.LONG 0
|
||
BLASTB3
|
||
.LONG BLST4A
|
||
.WORD 4
|
||
.LONG BLST5A
|
||
.WORD 4
|
||
.LONG BLST6A
|
||
.WORD 4
|
||
.LONG BLST4A
|
||
.WORD 4
|
||
.LONG BLST5A
|
||
.WORD 4
|
||
.LONG BLST6A
|
||
.WORD 4
|
||
.LONG BLST4A
|
||
.WORD 4
|
||
.LONG BLST5A
|
||
.WORD 4
|
||
.LONG BLST6A
|
||
.WORD 4
|
||
.LONG BLST4A
|
||
.WORD 4
|
||
.LONG BLST5A
|
||
.WORD 4
|
||
.LONG BLST6A
|
||
.WORD 4
|
||
.LONG BLST4A
|
||
.WORD 4
|
||
.LONG BLST5A
|
||
.WORD 4
|
||
.LONG BLST6A
|
||
.WORD 4
|
||
.LONG 0
|
||
;BLASTC3
|
||
; .LONG BLST3C
|
||
; .WORD 2
|
||
; .LONG AHMEDBLST2
|
||
; .WORD 2
|
||
; .LONG AHMEDBLST1
|
||
; .WORD 2
|
||
; .LONG 0
|
||
PHASE1
|
||
CLR A1
|
||
MOVE A1,*A8(OXVEL),L
|
||
MOVE A1,*A8(OYVEL),L
|
||
DEC A9
|
||
SLL 5,A9
|
||
ADDI PLYROBJS,A9
|
||
MOVE *A9,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
|
||
RETS
|
||
|
||
GSKIPR:
|
||
;A9=[Y,X] SPOT TO SPAWN FROM
|
||
;A10=DIRECTION
|
||
;8 1 2
|
||
;7 3
|
||
;6 5 4
|
||
MOVK 20,A0
|
||
CALLA RNDRNG0
|
||
CALLA PRCSLP
|
||
MOVE A10,A0
|
||
SLL 5,A0
|
||
ADDI SKGHXT,A0
|
||
MOVE *A0,A4,L
|
||
MOVE *A4+,A2,W
|
||
MOVE A2,B0
|
||
MOVE *A4+,A2,W
|
||
MOVE A2,B1
|
||
CALLA RANGRAND
|
||
SLL 16,A0
|
||
ADD A9,A0
|
||
MOVE A0,A1
|
||
MOVE *A4+,A2,W
|
||
MOVE A2,B0
|
||
MOVE *A4+,A2,W
|
||
MOVE A2,B1
|
||
CALLA RANGRAND
|
||
MOVX A9,A2
|
||
ADD A0,A2
|
||
SLL 16,A2
|
||
MOVE A2,A0
|
||
;NEED A0=[X,0000],A1=[Y,0000]
|
||
;A0,A1 ARE SET UP
|
||
JAUC START_SKIP
|
||
SKGHXT .LONG 0,GBTML,GBTML,SKGLFTL,GTOPL,GTOPL,GTOPL,SKGRGTL,SKGRGTL
|
||
ASKIPR:
|
||
;A8=1-4 FOR GRUNT # FOR THIS RELEASE
|
||
;A9=[Y,X] SPOT TO SPAWN FROM
|
||
;A10=DIRECTION
|
||
;8 1 2
|
||
;7 3
|
||
;6 5 4
|
||
;A8=1-4
|
||
MOVK 20,A0
|
||
CALLA RNDRNG0
|
||
CALLA PRCSLP
|
||
MOVE A10,A0
|
||
SLL 5,A0
|
||
ADDI SHXT,A0
|
||
MOVE *A0,A4,L
|
||
SLL 6,A8
|
||
ADD A8,A4
|
||
MOVE *A4+,A1,L ;GET Y FIRST
|
||
ADD A9,A1
|
||
SLL 16,A9
|
||
MOVE *A4,A0,L
|
||
ADD A9,A0
|
||
;NEED A0=[X,0000],A1=[Y,0000]
|
||
;A0,A1 ARE SET UP
|
||
JAUC START_SKIP
|
||
|
||
.END
|
||
|