3372 lines
78 KiB
NASM
3372 lines
78 KiB
NASM
.MLIB "TROGMACS.LIB"
|
||
.FILE 'TROGSPRG.ASM'
|
||
.TITLE "<<< T R O G -- TROG, WITH THE BOUNCING SPRING SHOE. >>>"
|
||
.WIDTH 132
|
||
.OPTION B,D,L,T
|
||
.MNOLIST
|
||
|
||
**************************************************************************
|
||
* *
|
||
* COPYRIGHT (C) 1990 MIDWAY MANUFACTURING COMPANY, *
|
||
* MANUFACTURERS OF BALLY/MIDWAY AMUSEMENT GAMES. *
|
||
* ALL RIGHTS RESERVED. *
|
||
* *
|
||
**************************************************************************
|
||
|
||
* GET THE SYSTEM STUFF
|
||
.INCLUDE "MPROCEQU.ASM" ;MPROC equates
|
||
.INCLUDE "DISPEQU.ASM" ;Display processor equates
|
||
.INCLUDE "GSPINC.ASM" ;GSP assembler equates
|
||
.INCLUDE "SYSINC.ASM" ;Zunit system equates
|
||
.INCLUDE "IMGTBL.GLO"
|
||
.INCLUDE "TROGEQU.ASM"
|
||
.INCLUDE "STRING.H"
|
||
.INCLUDE "TROGAUDN.ASM"
|
||
.INCLUDE "TROGAEQU.ASM" ;GET THE ANIMATION EQUATES
|
||
.INCLUDE "TROGSPRG.TBL" ;INCLUDE THE IMAGE HEADERS
|
||
|
||
|
||
.DEF TROGSPRG_START, TROGSPRG_PROCESS, TROGBXFER
|
||
.DEF TRBOP0F1, TRBOP0F2, TRBOP0F3, TRBOP0F4, TRBOP0F5
|
||
.DEF TROGWOBBLE_D, TROGSMACK2_SND, TROGSSDEATH_OLD_RET
|
||
.DEF TROG_SHADOW_UPDATE, SMACK_SCREEN, BLOCK_CHECK
|
||
|
||
.REF FINDMOVE, GETCMOVE
|
||
.REF BOUNDRY_CHECK, ANIMATE_DIR, NOTDIR
|
||
.REF FIND_OPEN_CPNT, SMACK_CNT
|
||
.REF PIT_CLOSE, DINO_VEL
|
||
.REF SPRGSPEED, FIND_CLOSE_MPNT, FIND_CLOSE_CPNT
|
||
.REF ONE_MOVE, BONE_BETWEEN, BUMP, BUMPCK
|
||
.REF DINO_FRANIM, VALIDHITX, VALIDHITY, DINOREV, LOAD_DIR
|
||
.REF FREE_MOVE_EGG, TAROUT
|
||
.REF BONED_IN
|
||
.REF FRANIMATE_DIR, SCORE, FIRE_UP_MONKEY_SHIT
|
||
.REF HOUSE_PIT, FIND_CLOSE_EPNT
|
||
.REF TWO_MOVES
|
||
|
||
.REF BGND_TYPE, TRSTP0, TROG_CENTER, CLIP_INTO, ENEMY_START
|
||
.REF TROG_LOOK_COUNT, TROG_SEARCH_DIST
|
||
.REF TROG_NEW_PNT, FIND_MVD, GET_TROG_CPNT, SCORE_TO_PLAYER
|
||
.REF DINO_SPROING, CK_TROG_CENT, TROGUHOH_SND, TROGFIRE_SND
|
||
.REF TROGFIRE_U, TROGFIRE_D, TROGFIRE_LR, TROGINIT, DELETE_TROG
|
||
.REF SPRINGPIT_U, SPRINGPIT_D, SPRINGPIT_LR
|
||
.REF GET_DINO_CPNT, SELECT_DINO, TROG_CNT
|
||
.REF SPRINGDIE_U, SPRINGDIE_D, SPRINGDIE_LR
|
||
.REF SPRINGLAVA_U, SPRINGLAVA_D, SPRINGLAVA_LR
|
||
.REF TROG_VALIDATE_CHASEE, DINOSQUASH_SND, CLEAR_PURSUIT
|
||
.REF EARTHSHAKER, TINIT_TAB, FREEZE_TIME, DINOLOAD, IS_DINO_DEAD_A8
|
||
.REF TROGSQUISH_UU, TROGSQUISH_UD, TROGSQUISH_UL, TROGSQUISH_UR
|
||
.REF TROGSQUISH_DU, TROGSQUISH_DD, TROGSQUISH_DL, TROGSQUISH_DR
|
||
.REF TROGSQUISH_LRU, TROGSQUISH_LRD, TROGSQUISH_LRL, TROGSQUISH_LRR
|
||
.REF TROGSQUISH_LRU, TROGSQUISH_LRD, TROGSQUISH_LRR, TROGSQUISH_LRL
|
||
.REF DINO_MUNCH, POWERUP_DURATION, CK_TREX, BTYPE_CK
|
||
.REF TROGFOOD_U, TROGFOOD_D, TROGFOOD_LR, TROGFOOD_LR
|
||
.REF DINO_PUNCHED, GET_TROG_MPNT, GET_DINO_MPNT, TROG_OOF
|
||
.REF TROG_START_WAIT
|
||
**** .REF TROG_SLOWDOWN, TROG_SPEEDUP
|
||
|
||
.TEXT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROGSPRG_START - START TROG WITH HIS SPRING SHOE. *
|
||
* A5 = [RANDOM # TO ADD, # TO START] *
|
||
* A6 = OID *
|
||
* *
|
||
**************************************************************************
|
||
TROGSPRG_START:
|
||
MMTM SP,A1,A7,A10
|
||
MOVI TROGSPRG_PROCESS,A7
|
||
MOVI TROGPID,A1
|
||
MOVE A6,A10
|
||
CALLA ENEMY_START
|
||
MOVK 3,A1
|
||
MOVE A1,@TROG_LOOK_COUNT,W
|
||
MOVK 4,A1
|
||
MOVE A1,@TROG_SEARCH_DIST,W
|
||
MOVE @SPRGSPEED,A1,W
|
||
CMPI 1800H,A1
|
||
JRHS TROGSPRGSPDOK
|
||
MOVI 1800H,A1 ;LOWEST POSSIBLE SPRING SPEED
|
||
MOVE A1,@SPRGSPEED,W
|
||
TROGSPRGSPDOK:
|
||
MMFM SP,A1,A7,A10
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROGSPRG_PROCESS - CREATE AND CONTROL THE TROG CHARACTER W/SPRINGS *
|
||
* A10 = OID *
|
||
* *
|
||
**************************************************************************
|
||
TROGSPRG_PROCESS:
|
||
CALLA CLRPDATA ;CLEAR OUR DATA AREA
|
||
MOVE A10,*A13(DOID),W ;STORE THIS GUYS OID
|
||
MOVK TTYPE_SPRING,A0
|
||
MOVB A0,*A13(TTYPE)
|
||
MOVI TROGSPRG_ATAB,A0 ;LOAD THE ANIMATION TABLE
|
||
MOVE A0,*A13(DATABLE),L
|
||
MOVE @SPRGSPEED,A1,W ;GET THIS WAVES INITIAL VELOCITY
|
||
ZEXT A1
|
||
MOVE A1,*A13(DSPEED),W ;KEEP THE INITIAL SPEED
|
||
MOVI INITSPEEDUPS,A0 ;INITIAL SPEED UP COUNT
|
||
MOVB A0,*A13(TSPEEDUPS)
|
||
|
||
TROGSS_RANDOM_INIT:
|
||
|
||
*TRANSFER HERE AFTER TROG DEATH
|
||
*ABOVE VARIABLES MUST BE CORRECT
|
||
*ONLY RETURN HERE AFTER THE OLD DINO HAS BEEN DELETED
|
||
* *A13(DINITPOS),L = RE-START POSITION [Y,X] CENTER POINT OF INITIAL FRAME
|
||
* *A13(DINITDIR),W = RE-START DIRECTION
|
||
*REMBER TO RE-INITIALIZE THE Z POSITION AFTER A DEATH.
|
||
TROGSS_DEATH_XFER:
|
||
CLR A0
|
||
MOVB A0,*A13(DPUNCHFLG) ;CLEAR FLAGS
|
||
MOVE A0,*A13(TDINO),L ;CLEAR THE PURSUEE
|
||
MOVB A0,*A13(DVNFLAG)
|
||
MOVB A0,*A13(THITS)
|
||
MOVB A0,*A13(TFREEZE)
|
||
|
||
NOT A0
|
||
MOVB A0,*A13(TPLAYER)
|
||
|
||
CALLR VEL_NORMAL ;SET TROG VELOCITY TO NORMAL
|
||
|
||
MOVB *A13(DDIZZYFLG),A0 ;IS HE DIZZY?
|
||
JRNZ TSSI_DIZZY ;BR = YES, THEN LEAVE FLAG ALONE
|
||
MOVK 1,A0 ;MAKE SURE HE'S NOT MUCKED WITH
|
||
MOVB A0,*A13(DDIZZYFLG)
|
||
|
||
TSSI_DIZZY:
|
||
JSRP TROG_START_WAIT
|
||
|
||
MOVE *A13(DOID),A14,W
|
||
SRL 2,A14
|
||
SLL 30,A14
|
||
SRL 25,A14
|
||
ADDI TINIT_TAB,A14
|
||
MOVE *A14,A14,L ;LOAD THE CORRECT TROG INITIALIZATION
|
||
CALLA GPALOBJSTF ;GET AN OBJECT AND STUFF
|
||
JRZ TROGSS_PROC_DIE ;BR = WE FAILED TO GET AN OBJECT
|
||
|
||
INCM @TROG_CNT,W
|
||
|
||
MOVE A0,A8
|
||
MOVE A13,*A8(OPLINK),L ;LINK THE PROC TO THE OBJ
|
||
MOVE *A13(DOID),*A8(OID),W ;STUFF THE I.D.
|
||
|
||
MOVI TROGSSCOLL,A10 ;ESPECIAL COLLISIONS FOR THIS DUDE
|
||
MOVE A10,*A8(OCVECT),L
|
||
|
||
MOVE *A13(DATABLE),A10,L ;RELOAD THE ANIMATION TABLE
|
||
|
||
CALLR GET_OFFSCRN_YX ;GET A RANDOM OFFSCREEN COORDINATE
|
||
|
||
CALLA TROG_NEW_PNT ;CENTER TROG ON THIS NEW POINT
|
||
MOVK DOWN,A0
|
||
MOVE A0,*A13(DDIR),W ;HE WILL FACE DOWN FOR THIS
|
||
MOVI STANDU,A0 ;STAND IN PLACE
|
||
CALLA DINOLOAD
|
||
MOVK 4,A1
|
||
JSRP FRANIM ;LOAD THE NEW FRAME
|
||
MOVI TROGS,A1
|
||
CALLA INSERT_OBJ_SUPP ;INSERT THIS 'TING
|
||
SLEEPR A0 ;SLEEP THE FRAME TIME
|
||
MOVB @TROG_LOOK_COUNT,A6
|
||
MOVB A6,*A13(TNEXTLOOK)
|
||
TROGSS_FP:
|
||
CALLA FIND_OPEN_CPNT ;FIND A PLACE FOR TROG TO APPEAR
|
||
JRNZ TROGSS_APPEAR ;BR = FOUND A PLACE
|
||
SLOOP 20,TROGSS_FP ;WAIT A LITTLE AND TRY AGAIN
|
||
TROGSS_APPEAR:
|
||
MOVE *A1(MOVEPOS),A3,L
|
||
MOVE A3,*A13(DINITPOS),L
|
||
JSRP BOUNCE_TO
|
||
*
|
||
*PROCESS TRANSFER POINT FOR TROG BOUNCING PROCESS
|
||
* A8 = PTR TO TROG OBJECT
|
||
* *A13(DATABLE),L = PTR TO TROG ANIMATION TABLE
|
||
* *A13(DDIR),W = CURRENT TROG DIRECTION
|
||
* *A13(DOID) = OBJECT I.D. OF THIS TROG MAN
|
||
* *A13(TPLAYER),L = DATA AREA OF PLAYER THAT TROG IS CHASING
|
||
*
|
||
TROGBXFER
|
||
MOVE A13,A12
|
||
ADDI PRCSIZ,A12 ;RESET PROCESS STACK POINTER
|
||
|
||
ANDNIM M_NOCOLL,*A8(OFLAGS),W ;MAKE SURE COLLISIONS ARE ON
|
||
|
||
CLR A0
|
||
MOVB A0,*A13(DPUNCHFLG) ;CLEAR FLAGS
|
||
MOVB A0,*A13(DDIZZYFLG)
|
||
MOVB A0,*A13(TFREEZE)
|
||
MOVE *A13(DOID),*A8(OID),W ;MAKE HIM A NORMAL TROGSTER
|
||
|
||
MOVE *A13(DDIR),A11,W ;GET THE NEW DIRECTION
|
||
MOVE *A13(DATABLE),A10,L ;RESTORE THE ANIMATION TABLE
|
||
CALLA PSTOP
|
||
MOVI TROGWOBBLE_D,A9
|
||
CALLA GET_TROG_CPNT ;THIS IS HIS NEW CENTER
|
||
ADDI [5,0],A1
|
||
CALLA FIND_CLOSE_MPNT ;FIND THE CLOSEST MOVE POINT
|
||
MOVE A3,*A13(TCURMPOS),L ;AND STORE IT AS HIS CURRENT MOVE POS
|
||
CALLR TROG_SHADOW_UPDATE ;UPDATE THE DUDES SHADOW
|
||
|
||
*
|
||
*A11 = CURRENT TROG DIRECTION HERE
|
||
*
|
||
TROGBLP
|
||
MOVE @GAME_STATE,A1,W
|
||
CMPI INGAME,A1 ;ARE WE BONUSING?
|
||
JRNE TROGSS_CONTINUE
|
||
MOVI STANDU,A0
|
||
JSRP FRANIMATE_DIR
|
||
MOVI TROGWOBBLE_D,A9
|
||
JRUC TROGBLP
|
||
TROGSS_CONTINUE:
|
||
CALLR VEL_NORMAL ;RETURN TROG VELOCITY TO NORMAL
|
||
|
||
MOVE *A13(DDIR),A11,W
|
||
CMPI DOWN,A11
|
||
JRNE TROGSS_NEWPNT
|
||
MOVI TROGWOBBLE_D,A9
|
||
MOVI 0802H,A1
|
||
JSRP FRANIM ;ALWAYS ANIMATE THE BREATHER SLOWLY
|
||
TROGSS_NEWPNT:
|
||
*** CALLA FIND_OPEN_CPNT ;GET ANOTHER POINT TO JUMP TO
|
||
CALLR FIND_CPNT ;GET ANOTHER POINT TO JUMP TO
|
||
|
||
JRNZ TROGSS_JUMP_TO_OPEN ;BR = FOUND ONE, JUMP TO IT
|
||
MOVE *A13(TCURMPOS),A3,L ;DIDN'T FIND A NEW ONE, JUMP IN PLACE
|
||
JRUC TROGSS_JUMP_TO
|
||
TROGSS_JUMP_TO_OPEN:
|
||
MOVE *A1(MOVEPOS),A3,L
|
||
TROGSS_JUMP_TO:
|
||
JSRP BOUNCE_TO
|
||
MOVB *A13(TNEXTLOOK),A6
|
||
DEC A6 ;DECREMENT NEXT LOOK COUNTER
|
||
MOVB A6,*A13(TNEXTLOOK)
|
||
JRNN TROGSS_CONTINUE
|
||
|
||
*TIME TO SELECT A DINO TO JUMP ON
|
||
TROGSS_SELECT_DINO:
|
||
CALLA CLEAR_PURSUIT
|
||
CALLA SELECT_DINO
|
||
JRNZ TROGSS_FOUND_DINO
|
||
CLR A4
|
||
MOVE A4,*A13(TDINO),L
|
||
NOT A4
|
||
MOVB A4,*A13(TPLAYER)
|
||
JRUC TROGSS_CONTINUE
|
||
|
||
TROGSS_FOUND_DINO:
|
||
MOVE A4,*A13(TDINO),L
|
||
MOVE *A4(OID),A2,W
|
||
SLL 28,A2
|
||
SRL 28,A2
|
||
MOVB A2,*A13(TPLAYER)
|
||
MOVK 3,A6
|
||
MOVE A6,*A13(TTRAPTIME),W
|
||
TROGSS_POUNCE:
|
||
MOVE *A4(OPLINK),A6,L ;GET THIS DINOS PROCESS LINK
|
||
JRZ TROGSS_CONTINUE ;BR = HE HAS NONE, JUST JUMP MORE
|
||
MOVB *A6(DINVIN),A0 ;HAS THIS DINO HAS GONE INVINCIBLE
|
||
JRNE TROGSS_CONTINUE ;BR = YES
|
||
|
||
SWAP A4,A8
|
||
CALLA GET_DINO_CPNT
|
||
SWAP A4,A8
|
||
|
||
CALLA FIND_CLOSE_CPNT
|
||
|
||
MOVE *A6(DDIR),A5,W
|
||
CMPI UP,A5
|
||
JREQ TROGSS_ABOVE
|
||
CMPI DOWN,A5
|
||
JREQ TROGSS_BELOW
|
||
CMPI RIGHT,A5
|
||
JREQ TROGSS_RIGHT
|
||
ADDI [0,-32],A3
|
||
JRUC TROGSS_TRACK_DINO
|
||
TROGSS_RIGHT:
|
||
ADDI [0,32],A3
|
||
JRUC TROGSS_TRACK_DINO
|
||
TROGSS_BELOW:
|
||
ADDI [32,0],A3
|
||
JRUC TROGSS_TRACK_DINO
|
||
TROGSS_ABOVE:
|
||
ADDI [-32,0],A3
|
||
|
||
TROGSS_TRACK_DINO:
|
||
JSRP BOUNCE_TO
|
||
MOVE *A13(DDIR),A11,W
|
||
MOVE A11,A1 ;AND PUT IT IN THE CORRECT PLACE
|
||
CALLA VEL_NORMAL ;RETURN TROG VELOCITY TO NORMAL
|
||
CALLA BOUNDRY_CHECK
|
||
JRNE TROGSS_OUT_OF_BOUNDS
|
||
|
||
CMPI DOWN,A11
|
||
JRNE TROGSS_TRACK_VALID
|
||
MOVI TROGWOBBLE_D,A9
|
||
MOVI 0402H,A1
|
||
JSRP FRANIM ;ALWAYS ANIMATE THE BREATHER SLOWLY
|
||
|
||
TROGSS_TRACK_VALID:
|
||
CALLA TROG_VALIDATE_CHASEE
|
||
MOVE *A13(TDINO),A4,L
|
||
JRZ TROGSS_SELECT_DINO
|
||
DECM *A13(TTRAPTIME),W
|
||
JRGT TROGSS_POUNCE
|
||
*TIME TO HIT THE DINO RIGHT ON THE NOSE
|
||
SWAP A4,A8
|
||
CALLA GET_DINO_CPNT
|
||
SWAP A4,A8
|
||
CALLA FIND_CLOSE_CPNT
|
||
CALLA CLEAR_PURSUIT
|
||
JRUC TROGSS_TRACK_DINO
|
||
|
||
*
|
||
*TROG HAS GONE OUT OF BOUNDS HERE
|
||
TROGSS_OUT_OF_BOUNDS:
|
||
CALLA SCORE_TO_PLAYER ;SCORE TO THE WORLD, TROG IS DEAD
|
||
|
||
MOVE A8,A0
|
||
CALLA DELSHAD
|
||
|
||
CALLA GET_TROG_CPNT ;GET THE CENTER POINT OF TROGGY
|
||
CALLA FIND_CLOSE_EPNT ;FIND OUT WHERE HE FELL OFF
|
||
MOVE A0,A4
|
||
|
||
CALLA NOTDIR ;APPEAR IN THE REVERSE DIRECTION
|
||
MOVE A11,*A13(DINITDIR),W ;MAKE THIS THE NEW DIRECTION
|
||
|
||
CMPI TYPE_PIT,A5 ;DID WE DIE IN A PIT?
|
||
JREQ TROGSS_PIT_DEATH ;BR = YES SIR
|
||
|
||
CMPI TYPE_VOLCANO,A5
|
||
JREQ TROGSS_VOLCANO
|
||
|
||
TROGSS_CLIFF_DEATH:
|
||
MOVI DEADTROGOID,A0 ;MARK TROG AS DEAD
|
||
MOVE A0,*A8(OID),W
|
||
*CHECK TO SEE IF ANYONE HAD A HOUSE HERE
|
||
MOVE A4,A4
|
||
JRZ TROGSS_OFF_EDGE
|
||
MOVE *A4(EMOVEOBJ),A0,L
|
||
JRZ TROGSS_OFF_EDGE
|
||
*HE DIED IN SOMEONE'S HOUSE HERE
|
||
MOVE A4,A9
|
||
CREATE INDPID,HOUSE_PIT
|
||
MOVI OGPITU,A0
|
||
JSRP FRANIMATE_DIR
|
||
MOVK 1,A1
|
||
JSRP FRANIM ;RUN THE REST OF THE SCRIPT
|
||
JRUC TROGSS_DEATH_DONE
|
||
TROGSS_OFF_EDGE:
|
||
CALLA BTYPE_CK
|
||
JRNZ TSSDEATHLAVA
|
||
|
||
MOVI DEATH_UP,A0 ;DEFAULT ON NORMAL DEATH
|
||
JRUC TSSDEATHLAN
|
||
TSSDEATHLAVA:
|
||
MOVI LAVADIEU,A0
|
||
JRUC TSSDEATHLAN
|
||
TSSDEATHLAN:
|
||
JSRP FRANIMATE_DIR
|
||
JRUC TROGSS_DEATH_DONE
|
||
*
|
||
*ANIMATE PIT DEATH ANIMATION WITH CENTER POINT DRIFT
|
||
*A6 = PIT [Y,X] CENTER POINT
|
||
TROGSS_PIT_DEATH:
|
||
MOVI DEADTROGOID,A0 ;MARK TROG AS DEAD
|
||
MOVE A0,*A8(OID),W
|
||
PUSHP A6
|
||
|
||
MOVI PIT_DEATH_UP,A0
|
||
JSRP FRANIMATE_DIR ;ANIMATE THE FLAIL
|
||
CALLA GETCPNT ;GET TROGS CENTER POINT
|
||
MOVE A1,A2
|
||
PULLP A3
|
||
MOVI 25*4,A4 ;AVERAGE SPIN DURATION
|
||
CALLA SLINEVEL
|
||
MOVE A1,*A8(OXVEL),L
|
||
MOVE A2,*A8(OYVEL),L
|
||
MOVK 1,A1
|
||
JSRP FRANIM ;NOW ANIMATE THE REST
|
||
CALLA PSTOP
|
||
JRUC TROGSS_DEATH_DONE
|
||
|
||
TROGSS_VOLCANO:
|
||
CALLR FIND_CPNT
|
||
MOVE *A1(MOVEPOS),A3,L
|
||
JSRP BOUNCE_TO
|
||
JRUC TROGBLP ;RETURN TO THE ISLAND
|
||
|
||
*
|
||
*MUST HAVE PTR TO EXIT MOVE PUSHED ON THE PROCESS STACK
|
||
*IF = 0 THEN BLOW OFF THEN *A13(DINITPOS),L IS STUFFED
|
||
TROGSS_DEATH_DONE:
|
||
TROGSSDEATH_OLD_RET:
|
||
MOVE *A13(DOID),A10,W ;RESTORE HIS I.D.
|
||
|
||
CALLA DELETE_TROG
|
||
|
||
**** SLEEP 150 ;WAIT A LITTLE BIT BEFORE RE-INIT
|
||
**** JRUC TROGSS_RANDOM_INIT ;FIND A RANDOM START POSITION
|
||
|
||
****TROGSSDEATH_EATEN
|
||
**** MOVE *A13(DOID),A10,W ;RESTORE HIS I.D.
|
||
**** CALLA DELETE_TROG
|
||
**** SLEEPM @POWERUP_DURATION,W
|
||
|
||
****TROGSSDEATH_WTREX
|
||
**** SLEEP 60 ;DEFAULT WAIT
|
||
**** CALLA CK_TREX ;WAIT FOR THE TREX TO GO
|
||
**** JRNZ TROGSSDEATH_WTREX
|
||
**** JRUC TROGSS_RANDOM_INIT ;FIND A RANDOM START POSITION
|
||
|
||
|
||
TROGSS_PROC_DIE:
|
||
DIE
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* BOUNCE_TO - PROCESS SUBROUTINE TO BOUNCE THE SPRING SHOE MAN FROM *
|
||
* HIS CURRENT POINT TO ANOTHER. THE TARGET POINT IS *
|
||
* WHERE HIS FEET WILL LAND. *
|
||
* A3 = TARGET [Y,X] *
|
||
* A8 = PTR TO SPRING SHOE TROG OBJECT *
|
||
* A13 = PTR TO SPRING SHOE TROG PROCESS *
|
||
* NOTE: CALL WITH JSRP *
|
||
* *
|
||
**************************************************************************
|
||
BOUNCE_TO:
|
||
MOVE A3,A1
|
||
CALLA FIND_CLOSE_MPNT
|
||
CALLR BLOCK_CHECK ;SEE IF THIS MOVE IS BLOCKED
|
||
JRNZ BT_GO
|
||
MOVE *A13(TCURMPOS),A1,L ;BOUNCE IN PLACE BOY
|
||
BT_GO
|
||
MOVE A1,A3
|
||
PUSHP A3 ;STORE THE CENTER WE NEED TO HIT
|
||
MOVE A3,A4
|
||
MOVI TROGINIT,A14
|
||
MOVE *A14(INITIMG),A5,L ;GET THE INITIAL IMAGE PTR
|
||
CLR A0
|
||
MOVE *A5(ISIZE),A1,L
|
||
CALLA GETCENT
|
||
SLL 16,A0
|
||
MOVY A0,A1
|
||
SUBXY A1,A4
|
||
MOVE *A5(IANIOFF),A1,L
|
||
ADDXY A1,A4 ;A3 = THE POINT WE NEED TO REACH
|
||
CALLA GETANIXY
|
||
SRL 16,A3
|
||
MOVX A3,A2
|
||
*GET THE RESPECTIVE DISTANCES
|
||
SUBXY A2,A4
|
||
*DETERMINE THE VELOCITIES AT WHICH TROG MUST TRAVEL TO REACH HIS POINT
|
||
*A4 = [Y,X] DISTANCES TO THE POINTS
|
||
BOUNCE_TO_TIME:
|
||
CLR A1
|
||
MOVX A4,A1
|
||
SEXT A1
|
||
ABS A1
|
||
CMPI 16,A1
|
||
JRHS BOUNCE_TO_X_OK
|
||
CLR A1
|
||
MOVX A1,A4
|
||
BOUNCE_TO_X_OK:
|
||
MOVY A4,A2
|
||
SRA 16,A2
|
||
ABS A2
|
||
CMPI 16,A2
|
||
JRHS BOUNCE_TO_Y_OK
|
||
CLR A2
|
||
MOVY A2,A4
|
||
BOUNCE_TO_Y_OK:
|
||
CMP A1,A2
|
||
JRGT BOUNCE_Y_GREATER
|
||
*THE X DISTANCE IS GREATER IN THIS CASE
|
||
MOVE *A13(DVEL),A6,L
|
||
|
||
MOVE A6,A5
|
||
SLL 16,A1
|
||
DIVU A5,A1 ;GET THE TICKS TO DO THIS
|
||
MOVE A1,A5
|
||
JRZ BOUNCE_IN_PLACE ;BR = HE'S NOT GOING ANYWHERE
|
||
CLR A7
|
||
MOVY A4,A7
|
||
DIVS A5,A7 ;GET PROPER Y VELOCITY
|
||
MOVI RIGHT,A11
|
||
CLR A0
|
||
CMPXY A0,A4
|
||
JRXGT BOUNCE_TO_JUMP
|
||
JRXEQ BOUNCE_IN_PLACE
|
||
NEG A6 ;BOUNCE IN A NEGATIVE X DIRECTION
|
||
MOVI LEFT,A11
|
||
JRUC BOUNCE_TO_JUMP
|
||
*THE Y DISTANCE IS GREATER IN THIS CASE
|
||
BOUNCE_Y_GREATER:
|
||
MOVE *A13(DVEL),A7,L
|
||
|
||
MOVE A7,A1 ;USE A5 FOR THE DIVIDE
|
||
MOVE A2,A5
|
||
SLL 16,A5
|
||
DIVU A1,A5 ;GET THE TICKS TO DO THIS IN Y
|
||
JRZ BOUNCE_IN_PLACE ;BR = HE'S NOT GOING ANYWHERE
|
||
MOVX A4,A1
|
||
SEXT A1
|
||
SLL 16,A1
|
||
DIVS A5,A1 ;GET THE X VELOCITY
|
||
MOVE A1,A6
|
||
MOVI DOWN,A11
|
||
CLR A0
|
||
CMPXY A0,A4
|
||
JRYGT BOUNCE_TO_JUMP
|
||
JRYEQ BOUNCE_IN_PLACE
|
||
NEG A7 ;BOUNCING UP
|
||
MOVI UP,A11
|
||
JRUC BOUNCE_TO_JUMP
|
||
*
|
||
*BOUNCE ON THE SAME SPOT
|
||
BOUNCE_IN_PLACE:
|
||
MOVI 20H,A5
|
||
CLR A6
|
||
CLR A7
|
||
MOVE *A13(DDIR),A11,W
|
||
|
||
*DO THE TROG BOUNCE HERE
|
||
*A5 = # OF TICKS THIS BOUNCE WILL LAST
|
||
*A6 = X VELOCITY OF TROG
|
||
*A7 = BASE Y AND Z VELOCITIES OF TROG
|
||
*A11 = ANIMATE TO THIS DIRECTION!
|
||
BOUNCE_TO_JUMP:
|
||
MOVE A7,A4
|
||
CMPI 60H,A5
|
||
JRHS BOUNCE_TO_2
|
||
CMPI 30H,A5
|
||
JRLO BOUNCE_TO_NOW
|
||
|
||
BOUNCE_TO_1:
|
||
MMTM A12,A4,A5,A6,A11
|
||
CLR A4
|
||
MOVI 20H,A5
|
||
CLR A6
|
||
MOVE *A13(DDIR),A11,W
|
||
CALLA GET_TROG_CPNT ;GET TROG'S CENTER POINT
|
||
ADDI [5,0],A1 ;FUDGE FOR THE DOWN DIRECTION
|
||
MOVE *A13(TCURMPOS),A3,L
|
||
JSRP BOUNCE_ANIMATE
|
||
MMFM A12,A4,A5,A6,A11
|
||
JRUC BOUNCE_TO_NOW
|
||
|
||
BOUNCE_TO_2:
|
||
MMTM A12,A4,A5,A6,A11
|
||
CLR A4
|
||
MOVI 20H,A5
|
||
CLR A6
|
||
MOVE *A13(DDIR),A11,W
|
||
CALLA GET_TROG_CPNT ;GET TROG'S CENTER POINT
|
||
ADDI [5,0],A1 ;FUDGE FOR THE DOWN DIRECTION
|
||
JSRP BOUNCE_ANIMATE
|
||
CLR A4
|
||
MOVI 40H,A5
|
||
CLR A6
|
||
MOVE *A13(DDIR),A11,W
|
||
CALLA GET_TROG_CPNT ;GET TROG'S CENTER POINT
|
||
ADDI [5,0],A1 ;FUDGE FOR THE DOWN DIRECTION
|
||
JSRP BOUNCE_ANIMATE
|
||
MMFM A12,A4,A5,A6,A11
|
||
JRUC BOUNCE_TO_NOW
|
||
|
||
BOUNCE_TO_NOW:
|
||
PULLP A1
|
||
JSRP BOUNCE_ANIMATE
|
||
BOUNCE_TO_X:
|
||
RETP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* BOUNCE_ANIMATE - PROCESS SUBROUTINE TO ANIMATE THE JUMP TO THE NEW *
|
||
* SPOT. *
|
||
* A1 = [Y,X] SPOT WE ARE TRYING TO HIT *
|
||
* A4 = BASE Y AND Z VELOCITIES OF TROG *
|
||
* A5 = # OF TICKS THIS BOUNCE WILL LAST *
|
||
* A6 = X VELOCITY OF TROG *
|
||
* A8 = TROG OBJECT *
|
||
* A11 = ANIMATE TO THIS DIRECTION! *
|
||
* A13 = PTR TO TROG PROCESS *
|
||
* *
|
||
**************************************************************************
|
||
BOUNCE_ANIMATE:
|
||
MMTM A12,A9,A10,A11
|
||
PUSHP A1
|
||
CALLA PSTOP
|
||
MOVE *A13(DDIR),A9,W
|
||
MOVE A11,*A13(DDIR),W ;STUFF THE NEW DIRECTION
|
||
SLL 7,A9
|
||
SLL 5,A11
|
||
ADD A11,A9
|
||
ADDI BOUNCE_TABLE,A9
|
||
MOVE *A9,A9,L ;GET THE ANIMATION WE WANT
|
||
|
||
MMTM A12,A4,A5,A6
|
||
CLR A1
|
||
MOVB A1,*A13(DDIZZYFLG) ;DIZZY FLAG CLEAR, HE CAN BE SCREWED
|
||
MOVK 1,A1
|
||
JSRP DINO_FRANIM ;ANIMATE THE SPRING
|
||
MMFM A12,A4,A5,A6
|
||
|
||
*SELECT SOUND BASED ON FLYING TIME
|
||
CMPI 80H,A5
|
||
JRHS BOUNCE_LONG
|
||
CMPI 40H,A5
|
||
JRHS BOUNCE_MEDIUM
|
||
SOUND1 SHORTSPRING_SND
|
||
JRUC BOUNCE_TO_BOING
|
||
BOUNCE_MEDIUM:
|
||
SOUND1 MEDSPRING_SND
|
||
JRUC BOUNCE_TO_BOING
|
||
BOUNCE_LONG:
|
||
SOUND1 LONGSPRING_SND
|
||
JRUC BOUNCE_TO_BOING
|
||
|
||
BOUNCE_TO_BOING:
|
||
MOVE A5,A11
|
||
SRL 1,A11
|
||
PUSHP A11
|
||
|
||
MMTM A12,A4,A6
|
||
MOVK 4,A1
|
||
MOVB A1,*A13(DDIZZYFLG) ;MARK TROG IN THE BOUNCE PHASE
|
||
MOVK 4,A1
|
||
JSRP DINO_FRANIM ;ANIMATE IN THE NEXT FRAME
|
||
MMFM A12,A4,A6
|
||
|
||
MOVE A6,*A8(OXVEL),L
|
||
MOVE A4,*A8(OZVEL),L
|
||
|
||
MOVE *A13(DVEL),A6,L
|
||
|
||
MOVE A6,A5
|
||
DIVU A11,A5
|
||
MOVE A5,A10 ;THIS IS THE DECEL
|
||
NEG A6
|
||
ADD A6,A4
|
||
MOVE A4,*A8(OYVEL),L
|
||
BOUNCE_ASCENT:
|
||
SUB A0,A11
|
||
JSRP BOUNCE_SLEEP
|
||
MOVK 4,A1
|
||
JSRP DINO_FRANIM
|
||
JRNC BOUNCE_ASCENT
|
||
|
||
MOVK 4,A1
|
||
JSRP DINO_FRANIM ;ANIMATE TO THE NEW GUY
|
||
MOVE A11,A11
|
||
JRGT BOUNCE_DESCENT ;BR = EVERYTHING NORMAL
|
||
|
||
*ASCENT WASTED TOO MUCH TIME, MAKE UP FOR IT IN THE DESCENT
|
||
PULLP A0
|
||
ADD A11,A0 ;TAKE OFF WHAT THE ASCENT ABUSED
|
||
PUSHP A0
|
||
JRUC BOUNCE_DESCENT_EARLY
|
||
|
||
BOUNCE_DESCENT:
|
||
MOVE A11,A0
|
||
JSRP BOUNCE_SLEEP ;SLEEP THE REMAINING ASCENT TICKS
|
||
|
||
BOUNCE_DESCENT_EARLY:
|
||
ADDK 32,A9 ;SKIP NULL FRAME
|
||
MOVK 4,A1
|
||
JSRP DINO_FRANIM ;ANIMATE TO THE DESCENT
|
||
PULLP A11
|
||
MOVE A11,A11 ;JUST IN CASE!
|
||
JRLE BOUNCE_LAND
|
||
MOVE A11,A0
|
||
JSRP BOUNCE_SLEEP
|
||
BOUNCE_LAND:
|
||
ADDK 32,A9 ;SKIP LAST NULL FRAME
|
||
CALLA PSTOP
|
||
MOVK 5,A1
|
||
MOVB A1,*A13(DDIZZYFLG) ;TROG IS CLEARED FOR LANDING
|
||
MOVK 1,A1
|
||
JSRP DINO_FRANIM
|
||
CLR A1
|
||
MOVB A1,*A13(DDIZZYFLG) ;TROG IS BACK ON THE GROUND
|
||
PULLP A1
|
||
|
||
CALLA FIND_CLOSE_MPNT ;FIND THE CLOSEST MOVE POINT
|
||
MOVE A3,*A13(TCURMPOS),L ;AND STORE IT AS HIS CURRENT MOVE POS
|
||
|
||
CALLA TROG_NEW_PNT
|
||
CALLR TROG_SHADOW_UPDATE
|
||
MMFM A12,A9,A10,A11
|
||
RETP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* BOUNCE_SLEEP - SPECIAL SLEEP PROCESS FOR BOUNCING TROG, ADDS *
|
||
* Y DECELERATION FACTOR EVERY TICK. *
|
||
* A0 = TICKS TO SLEEP *
|
||
* A8 = TROGS OBJECT *
|
||
* A10 = DECEL FACTOR *
|
||
* A13 = PTR TO TROGS PROCESS *
|
||
* *
|
||
**************************************************************************
|
||
BOUNCE_SLEEP:
|
||
MMTM A12,A9,A11
|
||
MOVE A0,A11
|
||
JRZ BOUNCE_SLEEP_X
|
||
MOVK 5,A9 ;SHADOW UPDATE
|
||
BOUNCE_SLEEP_LP:
|
||
SLEEP 1
|
||
ADDRM A10,*A8(OYVEL),L
|
||
DEC A9
|
||
JRHI BOUNCE_SLEEP_NOSUP
|
||
CALLR TROG_SHADOW_UPDATE
|
||
MOVK 5,A9
|
||
BOUNCE_SLEEP_NOSUP:
|
||
DSJS A11,BOUNCE_SLEEP_LP
|
||
BOUNCE_SLEEP_X:
|
||
MMFM A12,A9,A11
|
||
RETP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG_SHADOW_PROC - PROCESS TO CREATE A SHADOW FOR TROG, IF HE ALREADY *
|
||
* HAS ONE, THEN IT WILL UPDATE IT. *
|
||
* A8 = PTR TO THE TROG OBJECT *
|
||
* *
|
||
**************************************************************************
|
||
TROG_SHADOW_PROC:
|
||
CALLR TROG_SHADOW_UPDATE
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG_SHADOW_UPDATE - ROUTINE TO UPDATE TROG'S SHADOW. IF HE DOES NOT *
|
||
* CURRENTLY HAVE ONE, IT WILL CREATE ONE. *
|
||
* A8 = PTR TO TROG *
|
||
* RETURNS: *
|
||
* Z = UNSUCCESSFUL UPDATE(I.E. SHADOW NO CREATED) *
|
||
* NZ = UPDATE WAS SUCCEFUL *
|
||
* NOTE: TRASHES A14 *
|
||
* *
|
||
**************************************************************************
|
||
TROG_SHADOW_UPDATE:
|
||
MMTM SP,A0,A1,A4,A8,A10
|
||
MOVE *A8(OSHAD),A10,L
|
||
JRNZ TROG_SP_UPDATE
|
||
MOVI TROG_SHAD_INIT,A14
|
||
CALLA GPALOBJSTF
|
||
JRZ TROG_SHADOW_UPDATE_X
|
||
MOVE A0,A10
|
||
CALLR TROG_POSITION_SHADOW
|
||
MOVE A10,*A8(OSHAD),L
|
||
MOVE A10,A0
|
||
CALLA INSOBJ
|
||
JRUC TROG_SP_VEL_ONLY
|
||
*A8 = PTR TO TROG OBJECT
|
||
*A10 = PTR TO SHADOW OBJECT
|
||
TROG_SP_UPDATE:
|
||
CALLR TROG_POSITION_SHADOW
|
||
TROG_SP_VEL_ONLY
|
||
MOVE *A8(OZVEL),*A10(OYVEL),L
|
||
MOVE *A8(OZVEL),*A10(OZVEL),L
|
||
MOVE *A8(OXVEL),*A10(OXVEL),L ;COPY JUST THE VELOCITIES
|
||
CALLR TROG_DFRMGRND ;GET TROG'S DISTANCE FROM THE GROUND
|
||
JRN TROG_SP_1
|
||
CMPI 20,A1
|
||
JRHS TROG_SP_3
|
||
CMPI 10,A1
|
||
JRHS TROG_SP_2
|
||
TROG_SP_1:
|
||
MOVI TRBOSHAD1,A1
|
||
JRUC TROG_SP_IUP
|
||
TROG_SP_2:
|
||
MOVI TRBOSHAD2,A1
|
||
JRUC TROG_SP_IUP
|
||
TROG_SP_3:
|
||
MOVI TRBOSHAD3,A1
|
||
JRUC TROG_SP_IUP
|
||
TROG_SP_IUP:
|
||
MOVE A10,A8
|
||
MOVE *A8(OFLAGS),A4,W
|
||
CALLA ANI
|
||
MOVE A8,A8
|
||
TROG_SHADOW_UPDATE_X:
|
||
MMFM SP,A0,A1,A4,A8,A10
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG_POSITION_SHADOW - ROUTINE TO POSITION THE SHADOW OBJECT BENEATH *
|
||
* TROG, AND ON THE GROUND. *
|
||
* A8 = PTR TO TROG OBJECT *
|
||
* A10 = PTR TO SHADOW OBJECT *
|
||
* *
|
||
**************************************************************************
|
||
TROG_POSITION_SHADOW:
|
||
MMTM SP,A0,A1,A3
|
||
CALLA GET_TROG_CPNT
|
||
ADDK 2,A1 ;SHADOW X FUDGE
|
||
MOVX A1,A3
|
||
MOVE *A8(OZPOS),A1,W
|
||
SUBK 4,A1 ;SHADOW Y FUDGE
|
||
SLL 16,A1
|
||
MOVY A1,A3
|
||
MOVE A8,A0
|
||
MOVE A10,A8
|
||
CALLA OBJ_TO_PNT
|
||
MOVE A0,A8
|
||
MOVE A10,A0
|
||
CALLA SET_TZPOS
|
||
MMFM SP,A0,A1,A3
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG_SHADOW_DEL - PROCESS TO DELETE TROG'S SHADOW *
|
||
* A8 = PTR TO TROG *
|
||
* *
|
||
**************************************************************************
|
||
TROG_SHADOW_DEL:
|
||
MOVE A8,A0
|
||
CALLA DELSHAD
|
||
DIE
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG_DFRMGRND - RETURNS THE DISTANCE FROM THE BOTTOM OF A TROG OBJECT *
|
||
* TO THE "GROUND." ROUTINE GETS ITS Y SIZE FROM *
|
||
* THE TROGINIT IMAGE *
|
||
* A8 = TROG OBJECT BLOCK *
|
||
* RETURN(S) *
|
||
* A1 = DISTANCE FROM GROUND (16 BITS) *
|
||
* STATUS BITS SET ACCORDING TO THE SIGN OF A1 *
|
||
* NOTE: MAX ACCEPTABLE Y = +32K, MIN ACCEPTABLE Y = -32K *
|
||
* TRASHES A14 *
|
||
* *
|
||
**************************************************************************
|
||
TROG_DFRMGRND
|
||
PUSH A2
|
||
MOVE *A8(OYPOS),A1,W
|
||
MOVE @TROGINIT+INITIMG,A14,L
|
||
MOVE *A14(ISIZEY),A2,W
|
||
ADD A1,A2 ;A2 = BOTTOM Y
|
||
MOVE *A8(OZPOS),A1,W
|
||
SUB A2,A1
|
||
PULL A2
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* GET_OFFSCRN_YX - ROUTINE TO GET A RANDOM COORDINATE SOMEWHERE OFF *
|
||
* OF THE SCREEN. *
|
||
* RETURNS: *
|
||
* A1 = [Y,X] POINT *
|
||
* *
|
||
**************************************************************************
|
||
GET_OFFSCRN_YX:
|
||
PUSH A0
|
||
CALLA RANDOM
|
||
JRN GOFFAB
|
||
*GETTING LEFT OR RIGHT SIDE COORD.
|
||
MOVI 256,A0
|
||
CALLA RANDU ;GET A RANDOM Y COORDINATE
|
||
MOVE A0,A1
|
||
SLL 16,A1 ;STORE IT FOR RETURN
|
||
CALLA RANDOM ;PICK LEFT OR RIGHT SIDE
|
||
JRN GOFF_RIGHT ;BR = RIGHT
|
||
MOVI -30,A0
|
||
MOVX A0,A1
|
||
JRUC GOFF_X
|
||
GOFF_RIGHT:
|
||
MOVI 420,A0
|
||
MOVX A0,A1
|
||
JRUC GOFF_X
|
||
*GETTING ABOVE OR BELOW SCREEN COORD.
|
||
GOFFAB:
|
||
MOVI 400,A0
|
||
CALLA RANDU
|
||
MOVE A0,A1
|
||
CALLA RANDOM
|
||
JRN GOFF_BELOW
|
||
MOVI SKYTOPOF-20,A0
|
||
SLL 16,A0
|
||
MOVY A0,A1
|
||
JRUC GOFF_X
|
||
GOFF_BELOW:
|
||
MOVI 280,A0
|
||
SLL 16,A0
|
||
MOVY A0,A1
|
||
GOFF_X:
|
||
PULL A0
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* BLOCK_CHECK - ROUTINE TO SEE IF THE GIVEN MOVE IS BLOCKED. *
|
||
* I.E. THERE EXISTS A ROCK, TREE, TRANSPORTER, ETC. *
|
||
* A0 = PTR TO MOVE *
|
||
* Z = MOVE IS BLOCKED *
|
||
* NZ = NUTTIN' SITTIN' HERE *
|
||
* *
|
||
**************************************************************************
|
||
BLOCK_CHECK
|
||
MMTM SP,A0,A1
|
||
MOVE *A0(MOVECPTR),A0,L ;MUST BE A CENTER POINT
|
||
JRN CB_OK ;BR = NOPE
|
||
MOVB *A0(CMOVEEGG),A1 ;IS THERE SOMETHING HERE?
|
||
INC A1
|
||
JRZ CB_OK ;BR = NOTHING EXISTS
|
||
DEC A1
|
||
CMPI HAUSID,A1
|
||
JREQ CB_X
|
||
CMPI ROCKID,A1
|
||
JREQ CB_X
|
||
CMPI TGENID,A1
|
||
JREQ CB_X
|
||
CB_OK
|
||
CLR A0
|
||
INC A0 ;CLEAR Z BIT TO MARK SPOT O.K.
|
||
CB_X
|
||
MMFM SP,A0,A1
|
||
RETS
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SPRINGDINO - TROG, WITH THE SPRING SHOES, HIT THE DINOSAUR *
|
||
* A0 = PTR TO SPRING SHOE DUDE *
|
||
* A8 = PTR TO DINOSAUR *
|
||
* *
|
||
**************************************************************************
|
||
SPRINGDINO:
|
||
PUSH A1
|
||
|
||
CALLA IS_DINO_DEAD_A8
|
||
JRZ SPRINGDINO_X
|
||
|
||
MMTM SP,A0,A4,A5,A6,A7,A8,A9,A10,A14
|
||
|
||
MOVE *A0(OPLINK),A4,L ;GET TROG'S CONTROL PROCESS
|
||
JRZ SPRINGDINO_BAIL ;BR = NO CONTROLLING PROCESS, BAIL
|
||
MOVE *A8(OPLINK),A5,L ;GET THE DINOS CONTROL PROCESS
|
||
JRZ SPRINGDINO_BAIL ;BR = NO CONTROL
|
||
|
||
MOVE *A0(OID),A1,W
|
||
CMPI DEADTROGOID,A1 ;IS TROG DEAD
|
||
JREQ SPRINGDINO_BAIL ;BR = YES, NOTHING
|
||
|
||
MOVE @FREEZE_TIME,A1,W
|
||
JRZ SD_NORMAL
|
||
|
||
CALLR IN_VICINITY ;FIND OUT IF THESE TWO GUYS ARE CLOSE
|
||
JRNZ SPRINGDINO_BAIL
|
||
JRUC SD_DADVANTAGE
|
||
|
||
SD_NORMAL
|
||
MOVB *A4(DDIZZYFLG),A1
|
||
CMPI 4,A1 ;IS TROG IN FLIGHT?
|
||
**** JREQ SPRINGDINO_BAIL ;BR = YES
|
||
JREQ SD_PUNCH_CK ;BR = YES, JUST CHECK THE PUNCH
|
||
|
||
CALLR IN_VICINITY ;FIND OUT IF THESE TWO GUYS ARE CLOSE
|
||
JRNZ SPRINGDINO_BAIL
|
||
|
||
CMPI 5,A1 ;IS HE LANDING?
|
||
JREQ SPRINGDINO_CKS ;BR = YES
|
||
|
||
SD_DADVANTAGE
|
||
MOVB *A5(DTREXFLG),A1 ;MONSTER MAN?
|
||
JRNZ SPRINGDINO_CHOMP ;BR = YES, CHOMP-O-MATIC
|
||
|
||
SD_PUNCH_CK
|
||
SWAP A0,A8
|
||
MOVE A5,A1
|
||
MOVI GET_DINO_MPNT,A6
|
||
MOVI GET_TROG_MPNT,A7
|
||
CALLA DINO_PUNCHED
|
||
JRNE SPRINGDINO_BAIL
|
||
|
||
CALLA PSTOP ;STOP FIRST
|
||
MOVE A4,A0 ;GET THE PROCESS LINK
|
||
MOVK 1,A1
|
||
MOVB A1,*A0(DDIZZYFLG) ;TROG IS GETTING PUNCHING, HA HA
|
||
CLR A1
|
||
MOVB A1,*A0(DPUNCHFLG) ;AND IS NOT PUNCHING
|
||
ORIM M_NOCOLL,*A8(OFLAGS),W ;TURN COLLISIONS OFF AT THIS POINT
|
||
MOVI TROG_OOF,A7
|
||
MOVE A5,A9 ;PASS THE PTR TO THE DINOSAUR PROCESS
|
||
JRUC SPRINGDINO_XFER
|
||
|
||
*MAKE THE MONSTER FEAST ON THE SPRING DUDE
|
||
SPRINGDINO_CHOMP
|
||
MOVE A0,A6
|
||
MOVE A5,A0 ;LET'S XFER TO THE DINO MUNCHER
|
||
CALLA PSTOP ;FIRST WE MUST STOP
|
||
MOVK 1,A1
|
||
MOVB A1,*A0(DPUNCHFLG) ;YES, HE IS MUNCHING
|
||
CLR A1
|
||
MOVB A1,*A0(DDIZZYFLG) ;NO, HE IS NOT GETTING PUNCHED
|
||
MOVE A1,*A0(PCOMM),W ;CLEAR THE COMMUNICATION LINE
|
||
MOVI DINO_MUNCH,A7
|
||
ORIM M_NOCOLL,*A8(OFLAGS),W ;MAKE SURE DINO COLLISIONS ARE OFF
|
||
MOVE A4,A9 ;PASS TROG'S PROCESS
|
||
MOVE A6,A11 ;SEND THE TROGGY OBJECT
|
||
CALLA XFERPROC_ID ;WAKE UP IN A DAZE
|
||
|
||
MOVE A6,A8 ;TRANSFER TO TROG GETTING EATEN
|
||
CALLA PSTOP ;STOP FIRST
|
||
MOVE A4,A0 ;GET THE PROCESS LINK
|
||
MOVI DEADTROGOID,A1 ;HE'S FREAKIN' DEAD
|
||
MOVE A1,*A8(OID),W
|
||
MOVK 1,A1
|
||
MOVB A1,*A0(DDIZZYFLG) ;TROG IS GETTING MUNCHED, HA HA
|
||
CLR A1
|
||
MOVB A1,*A0(DPUNCHFLG) ;AND IS NOT PUNCHING
|
||
ORIM M_NOCOLL,*A8(OFLAGS),W ;MAKE SURE TROG COLLISIONS ARE OFF
|
||
MOVI SPRINGTROG_EATEN,A7
|
||
MOVE A5,A9 ;PASS THE PTR TO THE DINOSAUR PROCESS
|
||
JRUC SPRINGDINO_XFER
|
||
|
||
|
||
SPRINGDINO_CKS
|
||
MOVB *A5(DTREXFLG),A1
|
||
JRNE SPRINGDINO_BAIL
|
||
|
||
MOVE @FREEZE_TIME,A7,W
|
||
JRNZ SPRINGDINO_BAIL
|
||
|
||
MOVB *A5(DDIZZYFLG),A1 ;IS THIS DINOSAUR DIZZY?
|
||
JRNE SPRINGDINO_BAIL ;BR = YES
|
||
|
||
MOVB *A5(DINVIN),A1 ;IS THIS DINO INVINCIBLE?
|
||
JRNZ SPRINGDINO_BAIL ;BR = YES
|
||
|
||
*
|
||
*SQUISH THE DINO HERE
|
||
*
|
||
MOVE A0,A6 ;STORE THE TROG SPRING OBJECT HERE
|
||
MOVE A5,A0 ;LET'S XFER TO THE SQUASH PROCESS
|
||
CALLA PSTOP ;FIRST WE MUST STOP
|
||
MOVE A6,A9 ;PASS THE TROG OBJECT
|
||
MOVE A4,A10 ;PASS THE TROG PROCESS TO THE SQUASH
|
||
|
||
MOVE *A8(OID),A1,W
|
||
SLL 28,A1
|
||
SRL 28,A1
|
||
ORI DEADDINOOID,A1 ;MAKE THE DINO A DEAD MAN
|
||
MOVE A1,*A8(OID),W
|
||
|
||
ORIM M_NOCOLL,*A8(OFLAGS),W ;MAKE SURE DINO COLLISIONS ARE OFF
|
||
|
||
MOVI DINO_SPROING,A7
|
||
CALLA XFERPROC_ID ;SQUASH THE DINO
|
||
|
||
MOVE A6,A8
|
||
MOVE A4,A0
|
||
MOVI SPRING_SPROING,A7
|
||
JRUC SPRINGDINO_XFER ;AND FINISH
|
||
|
||
SPRINGDINO_XFER:
|
||
CALLA XFERPROC_ID ;TRANSFER CONTROL OF THE PROCESS
|
||
|
||
SPRINGDINO_BAIL: ;BAIL-OUT POINT FOR ERRORS
|
||
MMFM SP,A0,A4,A5,A6,A7,A8,A9,A10,A14
|
||
SPRINGDINO_X:
|
||
PULL A1
|
||
JAUC DUMCRETS
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SPRINGTROG_EATEN - TROG IS TO BE EATEN *
|
||
* A8 = PTR TO TROG *
|
||
* A9 = PTR TO DINO PROCESS *
|
||
* A13 = PTR TO TROG PROCESS *
|
||
* *
|
||
**************************************************************************
|
||
SPRINGTROG_EATEN:
|
||
MOVE *A13(PROCID),A0,W
|
||
PUSHP A0
|
||
MOVI CLUBOUTU,A0
|
||
JSRP FRANIMATE_DIR
|
||
PULLP A0
|
||
MOVE A0,*A13(PROCID),W
|
||
**** JRUC TROGSSDEATH_EATEN
|
||
CALLA DELETE_TROG
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SPRING_SPROING - SPERM ON THE DINOSAURS GRAVE *
|
||
* A8 = PTR TO TROG *
|
||
* A13 = PTR TO TROG SPRING SHOE PROCESS *
|
||
* NOTE: ULTIMATELY TRANSFERS TO TROGBXFER *
|
||
* *
|
||
**************************************************************************
|
||
SPRING_SPROING:
|
||
CLR A0
|
||
MOVB A0,*A13(DVNFLAG)
|
||
CALLR VEL_NORMAL
|
||
CALLA GET_TROG_CPNT ;GET TROG'S CENTER POINT
|
||
ADDI [5,0],A1 ;FUDGE FOR THE DOWN DIRECTION
|
||
CALLA FIND_CLOSE_MPNT ;FIND THE CLOSEST MOVE POINT
|
||
MOVE A3,*A13(TCURMPOS),L ;AND STORE IT AS HIS CURRENT MOVE POS
|
||
MOVE A3,A1
|
||
CALLA TROG_NEW_PNT ;CENTER HIM UP
|
||
MOVK 3,A9
|
||
MOVE A1,A10
|
||
SPSPR_LP:
|
||
CLR A4
|
||
MOVK 12,A5
|
||
CLR A6
|
||
MOVE *A13(DDIR),A11,W
|
||
JSRP BOUNCE_ANIMATE
|
||
SOUND1 DINOSQUASH_SND
|
||
MOVE A10,A1
|
||
DSJ A9,SPSPR_LP
|
||
JRUC TROGBXFER
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SPRINGTAR - TROG BOUNCED INTO A TAR PIT *
|
||
* A0 = PTR TO TROG *
|
||
* A8 = PTR TO TAR PIT *
|
||
* *
|
||
**************************************************************************
|
||
SPRINGTAR:
|
||
MMTM SP,A1,A7
|
||
MOVI SPRINGTAR_SINK,A7 ;USE TAR ROUTINE
|
||
JRUC SPRING_HIT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SPRINGFIRE - TROG BOUNCED INTO A FIRE *
|
||
* A0 = PTR TO TROG *
|
||
* A8 = PTR TO FIRE *
|
||
* *
|
||
**************************************************************************
|
||
SPRINGFIRE:
|
||
MMTM SP,A1,A7
|
||
MOVI SPRINGFIRE_BURN,A7 ;USE FIRE ROUTINE
|
||
JRUC SPRING_HIT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SPRINGPIT - TROG BOUNCED INTO A SMALL PIT *
|
||
* A0 = PTR TO TROG *
|
||
* A8 = PTR TO PIT *
|
||
* *
|
||
**************************************************************************
|
||
SPRINGPIT:
|
||
MMTM SP,A1,A7
|
||
MOVI SPRINGPIT_FALL,A7 ;USE PIT ROUTINE
|
||
JRUC SPRING_HIT
|
||
|
||
|
||
SPRING_HIT:
|
||
MOVE *A0(OID),A1,W
|
||
CMPI DEADTROGOID,A1 ;IS HE DYING?
|
||
JREQ SPRINGHITX ;BR = HE'S ALREADY DEAD, NO MORE
|
||
|
||
CALLA CK_TROG_CENT
|
||
JRNC SPRINGHITX ;BR = HE'S NOT STUCK
|
||
|
||
MOVE *A0(OPLINK),A1,L
|
||
JRZ SPRINGHITX ;BR = NO CONTROLLING PROCESS
|
||
|
||
MMTM SP,A0,A8,A9
|
||
|
||
MOVB *A1(DDIZZYFLG),A9
|
||
JRZ SPRINGHIT_SCK
|
||
CMPI 5,A9
|
||
JRNE SPRINGHIT_BAIL
|
||
|
||
*A7 = ROUTINE TO JUMP TO
|
||
SPRINGHIT_SCK:
|
||
MOVE A8,A9 ;PASS TAR OBJECT FOR YUKS
|
||
MOVE A0,A8 ;PASS THE TROG
|
||
MOVE A1,A0 ;FOR XFERPROC
|
||
**** MOVI INDPID,A1
|
||
CALLA XFERPROC_ID ;TRANSFER CONTROL OF THE PROCESS
|
||
MOVI DEADTROGOID,A1 ;MARK HIM AS DEAD, RIGHT THIS INSTANT
|
||
MOVE A1,*A8(OID),W
|
||
SPRINGHIT_BAIL:
|
||
MMFM SP,A0,A8,A9
|
||
SPRINGHITX:
|
||
MMFM SP,A1,A7
|
||
MOVE A0,A0 ;WITH Z BIT SET TO CONTINUE COLLISION
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SPRINGFLOWER - TROG ON SPRINGS COLLIDES WITH FLOWER *
|
||
* A0 = PTR TO TROG *
|
||
* A8 = PTR TO FLOWER *
|
||
* *
|
||
**************************************************************************
|
||
****SPRINGFLOWER:
|
||
**** MMTM SP,A0,A1,A7,A8,A10,A11
|
||
**** MOVI TROGSPEEDPID,A1
|
||
**** MOVI TROG_SPEEDUP,A7
|
||
**** JRUC SPRING_PLANT_HIT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SPRINGSHROOM - TROG ON SPRINGS COLLIDES WITH MUSHROOM *
|
||
* A0 = PTR TO TROG *
|
||
* A8 = PTR TO FLOWER *
|
||
* *
|
||
**************************************************************************
|
||
****SPRINGSHROOM:
|
||
**** MMTM SP,A0,A1,A7,A8,A10,A11
|
||
**** MOVI TROGSPEEDPID,A1
|
||
**** MOVI TROG_SLOWDOWN,A7
|
||
**** JRUC SPRING_PLANT_HIT
|
||
|
||
*
|
||
*ENTRY FOR PLANT HITS
|
||
* A7 = PROCESS TO CREATE IF COLLISION IS VALID
|
||
* A0 = TROG
|
||
* A8 = PLANT
|
||
*NOTE: A14 IS TRASHED
|
||
****SPRING_PLANT_HIT:
|
||
**** CALLA CK_TROG_CENT ;IS HE CLOSE ENOUGH TO GRAB IT?
|
||
**** JRNC SPRING_PH_FL ;BR = NO
|
||
**** MOVE *A0(OPLINK),A10,L ;GET TROGS CONTROL
|
||
**** JRZ SPRING_PH_FL ;THE TROG IS OUT OF CONTROL
|
||
****
|
||
**** MOVB *A10(DDIZZYFLG),A11
|
||
**** JRZ SPRING_PLANT_SCK
|
||
**** CMPI 5,A11
|
||
**** JRNE SPRING_PH_FL
|
||
****
|
||
****SPRING_PLANT_SCK:
|
||
**** MOVE A8,A11
|
||
**** MOVE A0,A8
|
||
**** CALLA GETPRC ;AND CREATE THE PROCESS
|
||
**** MOVE A11,A8
|
||
**** CALLA FREE_MOVE_EGG ;WIPE OUT THIS THING
|
||
**** CALLA OBJPROC_KILL
|
||
**** MOVI ENEMIES,A1
|
||
**** CALLA DELETE_OBJ_SUPP
|
||
**** SETZ ;END THIS SCAN PLEASE
|
||
**** JRUC SPRING_PH_X
|
||
****SPRING_PH_FL:
|
||
**** CLRZ
|
||
****SPRING_PH_X:
|
||
**** MMFM SP,A0,A1,A7,A8,A10,A11
|
||
**** RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SPRINGTAR_SINK - PROCESS TO MAKE TROG WITH SPRINGS SINK INTO TAR *
|
||
* AND DIE. *
|
||
* A8 = PTR TO TROG OBJECT *
|
||
* A9 = PTR TO TAR OBJECT *
|
||
* *A13(DATABLE),L = PTR TO ANIMATION TABLE *
|
||
* *A13(DDIR),W = CURRENT DIRECTION *
|
||
* *A13(DVEL),L = CURRENT VELOCITY *
|
||
* NOTE: THIS PROCESS ULTIMATELY TRANSFERS TO TROGSSDEATH_OLD_RET *
|
||
* *
|
||
**************************************************************************
|
||
SPRINGTAR_SINK:
|
||
MOVE A9,A0
|
||
MOVE A9,A4 ;STORE HERE DURING LOAD
|
||
MOVI ENEMIES,A1
|
||
CALLA ISSUPP
|
||
JRZ TARNSUPP ;BR = TAR NOT ON SUPP LIST
|
||
CALLA DELSUPP ;TAKE IT OFF FOR COLLISIONS
|
||
JRUC TARNPUSH
|
||
TARNSUPP:
|
||
CLR A9
|
||
TARNPUSH:
|
||
PUSHP A9
|
||
MOVE A8,A5
|
||
MOVE A4,A8
|
||
MOVE *A8(OPLINK),A0,L
|
||
JRZ TAR_POS
|
||
CALLA GETA9
|
||
MOVK 1,A11
|
||
MOVI INDPID,A1
|
||
MOVI ANIMATOR,A7
|
||
CALLA XFERPROC ;TRANSFER TO A LESSER GOD
|
||
TAR_POS:
|
||
CALLA GETANIXY ;LET'S GET A RETURN POINT
|
||
MOVE A5,A8
|
||
SRL 16,A3
|
||
MOVY A2,A3
|
||
MOVE A3,*A13(DINITPOS),L
|
||
CALLA FINDMOVE
|
||
JRNC TROGTAR_SKC ;BR = SKIP THE CENTERING, NOT A MOVE
|
||
MOVE A1,A0
|
||
MOVE *A0(MOVEPOS),A1,L
|
||
SUBI [5,0],A1
|
||
CALLA TROG_NEW_PNT
|
||
|
||
TROGTAR_SKC:
|
||
CALLA SCORE_TO_PLAYER
|
||
|
||
MOVI TARU,A0
|
||
JSRP FRANIMATE_DIR ;ANIMATE THIS GUY
|
||
MOVI 06000H,A2
|
||
JSRP CLIP_INTO
|
||
MOVE A8,A5
|
||
PULLP A8 ;GET TAR POINTER
|
||
MOVE A8,A8 ;IS THERE SOMETHING THERE?
|
||
JRZ SINK_NOTAR ;BR = ALREADY TAKEN CARE OF
|
||
PUSHP A5
|
||
CALLA OBJPROC_KILL ;KILL THE TAR CONTROL
|
||
MOVI TAROUT,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM ;FADE THE TAR FROM EXISTANCE
|
||
PULLP A5
|
||
CALLA FREE_MOVE_EGG
|
||
CALLA DELETE_OBJ
|
||
SINK_NOTAR:
|
||
MOVE A5,A8
|
||
|
||
**** JRUC TROGSSDEATH_OLD_RET
|
||
CALLA DELETE_TROG
|
||
DIE
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SPRINGFIRE_BURN - PROCESS TO MAKE TROG BURN IN THE FIRE. *
|
||
* A8 = PTR TO TROG OBJECT *
|
||
* A9 = PTR TO FIRE OBJECT *
|
||
* A13 = PTR TO TROG SPRING PROCESS *
|
||
* NOTE: THIS PROCESS ULTIMATELY TRANSFERS TO TROGSSDEATH_OLD_RET *
|
||
* *
|
||
**************************************************************************
|
||
SPRINGFIRE_BURN:
|
||
MOVE A9,A0
|
||
MOVE A9,A4 ;STORE HERE DURING LOAD
|
||
MOVI ENEMIES,A1
|
||
CALLA ISSUPP
|
||
JRZ FIRENSUPP ;BR = FIRE NOT ON SUPP LIST
|
||
CALLA DELSUPP ;TAKE IT OFF FOR COLLISIONS
|
||
JRUC FIRENPUSH
|
||
FIRENSUPP:
|
||
CLR A9
|
||
FIRENPUSH:
|
||
PUSHP A9
|
||
FIRENPROC:
|
||
MOVE A8,A5
|
||
MOVE A4,A8
|
||
MOVE *A8(OPLINK),A0,L
|
||
JRZ FIRE_POS
|
||
MOVI FIRE_UP_MONKEY_SHIT,A9
|
||
MOVK 1,A11
|
||
MOVI INDPID,A1
|
||
MOVI ANIMATOR,A7
|
||
CALLA XFERPROC ;TRANSFER TO A LESSER GOD
|
||
FIRE_POS:
|
||
CALLA GETANIXY ;LET'S GET A RETURN POINT
|
||
MOVE A5,A8
|
||
SRL 16,A3
|
||
MOVY A2,A3
|
||
MOVE A3,*A13(DINITPOS),L
|
||
CALLA FINDMOVE
|
||
JRNC TROGFIRE_SKC ;BR = SKIP THE CENTERING, NOT A MOVE
|
||
MOVE A1,A0
|
||
CALLA TROG_CENTER ;CENTER TROG ON THIS POINT
|
||
TROGFIRE_SKC:
|
||
MOVE *A8(OYPOS),A5,W
|
||
SUBK 12,A5
|
||
MOVE A5,*A8(OYPOS),W
|
||
|
||
CALLA SCORE_TO_PLAYER
|
||
|
||
MOVE A8,A0
|
||
CALLA DELSHAD ;DELETE DUDE'S SHADOW
|
||
|
||
MOVI FIREU,A0
|
||
JSRP FRANIMATE_DIR
|
||
|
||
MOVE *A8(OYPOS),A5,W
|
||
ADDK 12,A5
|
||
MOVE A5,*A8(OYPOS),W
|
||
|
||
MOVE A8,A5
|
||
PULLP A8 ;GET FIRE POINTER
|
||
MOVE A8,A8 ;IS THERE SOMETHING THERE?
|
||
JRZ BURN_NOFIRE ;BR = ALREADY TAKEN CARE OF
|
||
|
||
CALLA FREE_MOVE_EGG
|
||
CALLA OBJPROC_KILL ;KILL THE CONTROL
|
||
CALLA DELETE_OBJ
|
||
|
||
BURN_NOFIRE:
|
||
MOVE A5,A8
|
||
|
||
MOVK 1,A1
|
||
JSRP FRANIM ;ANIMATE THE BURN
|
||
|
||
MOVK 3,A4
|
||
MOVB A4,*A13(DDIZZYFLG) ;RETURN BURNT
|
||
|
||
**** JRUC TROGSSDEATH_OLD_RET
|
||
CALLA DELETE_TROG
|
||
DIE
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SPRINGPIT_FALL - PROCESS TO MAKE TROG WITH SPRING SHOE FALL SMALL. *
|
||
* A8 = PTR TO TROG OBJECT *
|
||
* A9 = PTR TO PIT OBJECT *
|
||
* A13 = PTR TO TROG PROCESS *
|
||
* NOTE: THIS PROCESS ULTIMATELY TRANSFERS TO TROGSSDEATH_OLD_RET. *
|
||
* *
|
||
**************************************************************************
|
||
SPRINGPIT_FALL:
|
||
MOVE *A9(OID),A0,W
|
||
CMPI TUNNELOID,A0
|
||
JREQ SPRINGTUNNEL_FALL
|
||
PUSHP A9
|
||
MOVE A8,A5
|
||
MOVE A9,A8
|
||
CALLA OBJPROC_KILL ;KILL THE CONTROL
|
||
CALLA GETANIXY ;LET'S GET A RETURN POINT
|
||
SRL 16,A3
|
||
MOVY A2,A3
|
||
MOVE A3,*A13(DINITPOS),L
|
||
MOVE A5,A8
|
||
CALLA GETCPNT ;GET THE CENTER POINT OF THE TROG
|
||
MOVE A1,A2
|
||
MOVI 38H,A4
|
||
CALLA SLINEVEL
|
||
MMTM A12,A1,A2
|
||
CALLA PSTOP
|
||
|
||
CALLA SCORE_TO_PLAYER
|
||
|
||
MOVE A8,A0
|
||
CALLA DELSHAD ;DELETE DUDE'S SHADOW
|
||
|
||
MOVI OGPITU,A0
|
||
JSRP ANIMATE_DIR
|
||
MMFM A12,A1,A2
|
||
MOVE A1,*A8(OXVEL),L
|
||
MOVE A2,*A8(OYVEL),L
|
||
MOVK 1,A1
|
||
JSRP FRANIM ;ANIMATE THE REST OF THE FALL
|
||
CALLA PSTOP
|
||
CALLA OBJ_OFF ;TURN TROG OFF
|
||
MOVE A8,A5
|
||
PULLP A8 ;GET PIT POINTER
|
||
MOVE A8,A0
|
||
MOVI ENEMIES,A1
|
||
CALLA ISSUPP
|
||
JRZ FALL_NOPIT ;BR = PIT IS GONE, DON'T WORRY HERE
|
||
CALLA DELSUPP ;TAKE IT OFF FOR COLLISIONS
|
||
PITNSUPP:
|
||
CALLA FREE_MOVE_EGG
|
||
PUSHP A5
|
||
MOVI PIT_CLOSE,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
PULLP A5
|
||
CALLA DELETE_OBJ
|
||
FALL_NOPIT:
|
||
MOVE A5,A8
|
||
|
||
**** JRUC TROGSSDEATH_OLD_RET
|
||
CALLA DELETE_TROG
|
||
DIE
|
||
|
||
*
|
||
*SIMPLE TROG FALL W/NO PIT CLOSE
|
||
*A8 = TROG
|
||
*A9 = PIT
|
||
*A13 = TROG PROCESS
|
||
SPRINGTUNNEL_FALL:
|
||
MOVE A8,A5
|
||
MOVE A9,A8
|
||
CALLA GETANIXY ;LET'S GET A RETURN POINT
|
||
SRL 16,A3
|
||
MOVY A2,A3
|
||
MOVE A3,*A13(DINITPOS),L
|
||
MOVE A5,A8
|
||
CALLA GETCPNT ;GET THE CENTER POINT OF TROG
|
||
MOVE A1,A2
|
||
MOVI 38H,A4
|
||
CALLA SLINEVEL
|
||
MMTM A12,A1,A2
|
||
CALLA PSTOP
|
||
|
||
CALLA SCORE_TO_PLAYER
|
||
|
||
MOVE A8,A0
|
||
CALLA DELSHAD ;DELETE DUDE'S SHADOW
|
||
|
||
MOVI OGPITU,A0
|
||
JSRP ANIMATE_DIR
|
||
MMFM A12,A1,A2
|
||
MOVE A1,*A8(OXVEL),L
|
||
MOVE A2,*A8(OYVEL),L
|
||
MOVK 1,A1
|
||
JSRP FRANIM ;ANIMATE THE REST OF THE FALL
|
||
CALLA PSTOP
|
||
CALLA OBJ_OFF ;TURN TROG OFF
|
||
|
||
**** JRUC TROGSSDEATH_OLD_RET
|
||
CALLA DELETE_TROG
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SMACK_SCREEN - MAKE TROG SMACK THE SCREEN BECAUSE HE HAD ON HIS SPRING *
|
||
* SHOES WHILE JUMPING ON A SPEED PLANT *
|
||
* A8 = PTR TO TROG *
|
||
* A13 = PTR TO TROG SPRING SHOE PROCESS *
|
||
* NOTE: ULTIMATELY TRANSFERS TO TROGSSDEATH_OLD_RET *
|
||
* *
|
||
**************************************************************************
|
||
SMACK_SCREEN:
|
||
INCM @SMACK_CNT,W
|
||
CALLA PSTOP
|
||
|
||
MOVI BOUNCE_DD,A9
|
||
|
||
MOVK 1,A0
|
||
MOVB A0,*A13(DVNFLAG) ;NO NEW VELOCITIES
|
||
MOVB A0,*A13(TTRAPPED) ;FLAG THE INITIAL SMACK
|
||
MOVI [4,0],A1
|
||
CALLA DINO_VEL ;HYPER VELOCITY FOR THE SMACK
|
||
|
||
SOUND1 TROGSMACK1_SND
|
||
MOVK 1,A1
|
||
JSRP DINO_FRANIM
|
||
MOVK 1,A1
|
||
JSRP DINO_FRANIM
|
||
MOVK 1,A1
|
||
JSRP DINO_FRANIM
|
||
|
||
MOVE *A13(PROCID),A0,W
|
||
ORI 2000H,A0
|
||
MOVE A0,*A13(PROCID),W
|
||
|
||
MOVE A8,A0
|
||
CALLA DELSHAD ;GET THAT NASTY SPOT OUT
|
||
|
||
PAUSEON
|
||
|
||
**** CLR A0
|
||
**** MOVE A0,@GAMERASE,W ;SHUT DOWN AUTO ERASE FOR THIS
|
||
**** CALLA AUTOEOFF
|
||
**** MOVE @BAKLST,A4,L
|
||
**** PUSHP A4
|
||
**** MOVE A0,@BAKLST,L ;NULL BACKGROUND FOR NOW
|
||
|
||
MOVI 3000H,A0
|
||
MOVE A0,*A8(OZPOS),W ;HIGH ENOUGH Z?
|
||
|
||
CLR A9
|
||
CLR A10
|
||
CLR A11
|
||
MOVE A9,*A13(PTEMP1),L
|
||
MOVE A9,*A13(PTEMP2),L
|
||
MOVE A9,*A13(PTEMP3),L
|
||
MOVE A9,*A13(PTEMP4),L
|
||
|
||
CALLA GETANIXY_PACKED ;GET ALIGNMENT POINT
|
||
MOVE A3,A2
|
||
MOVI [195,200],A3
|
||
CMP A2,A3
|
||
JRNZ SMACKGETVEL
|
||
CLR A1
|
||
CLR A2
|
||
JRUC SMACK_TOIT
|
||
SMACKGETVEL
|
||
MOVK 16,A4
|
||
CALLA SLINEVEL
|
||
SMACK_TOIT:
|
||
*MAKE ALL OBJECTS FIRST, MAKING SURE WE GET THEM ALL
|
||
CALLR SMACKMAKE
|
||
JRZ SMACKESC1
|
||
MOVE A0,A9
|
||
|
||
CALLR SMACKMAKE
|
||
JRZ SMACKESC2
|
||
MOVE A0,A10
|
||
|
||
CALLA GETOBJ
|
||
JRZ SMACKESC3
|
||
MOVE A0,A11
|
||
|
||
CALLR SMACKMAKE
|
||
JRZ SMACKESC4
|
||
MOVE A0,*A13(PTEMP1),L
|
||
|
||
CALLR SMACKMAKE
|
||
JRZ SMACKESC5
|
||
MOVE A0,*A13(PTEMP2),L
|
||
|
||
CALLR SMACKMAKE
|
||
JRZ SMACKESC6
|
||
MOVE A0,*A13(PTEMP3),L
|
||
|
||
CALLA GETOBJ
|
||
JRZ SMACKESC7
|
||
MOVE A0,*A13(PTEMP4),L
|
||
|
||
DISPOFF
|
||
MOVE A1,*A8(OXVEL),L
|
||
MOVE A2,*A8(OYVEL),L
|
||
MOVI SMACK_ATAB,A6
|
||
CALLR SMACK_ANI
|
||
MOVE A9,A0
|
||
CALLA INSOBJ
|
||
MOVE A10,A0
|
||
CALLA INSOBJ
|
||
MOVE *A13(PTEMP1),A0,L
|
||
CALLA INSOBJ
|
||
MOVE *A13(PTEMP2),A0,L
|
||
CALLA INSOBJ
|
||
MOVE *A13(PTEMP3),A0,L
|
||
CALLA INSOBJ
|
||
DISPON
|
||
PUSHP A6
|
||
SLEEPR A7
|
||
|
||
SMACK_ANI_LP:
|
||
PULLP A6
|
||
CALLR SMACK_ANI
|
||
JRZ SMACK_LAST
|
||
PUSHP A6
|
||
SLOOPR A7,SMACK_ANI_LP
|
||
|
||
SMACK_LAST:
|
||
DISPOFF
|
||
CALLR SMACKSTOP
|
||
DISPON
|
||
|
||
MOVE A11,A0
|
||
CALLA COPY_OBJ
|
||
MOVE *A13(PTEMP4),A0,L
|
||
CALLA COPY_OBJ
|
||
|
||
SOUND1 TROGSMACK2_SND
|
||
CREATE INDPIDW,EARTHSHAKER
|
||
CALLR SMACK_ANI
|
||
MOVE A11,A0
|
||
CALLA INSOBJ
|
||
MOVE *A13(PTEMP4),A0,L
|
||
CALLA INSOBJ
|
||
SLEEPR A7
|
||
|
||
CLR A1
|
||
MOVI [6,0],A2
|
||
DISPOFF
|
||
CALLR SMACKVEL
|
||
DISPON
|
||
SLEEP 33
|
||
|
||
*END DELETE ALL AND END SCREEN SMACK
|
||
MOVE *A13(PTEMP4),A0,L
|
||
CALLA DELOBJ
|
||
MOVE *A13(PTEMP3),A0,L
|
||
CALLA DELOBJ
|
||
MOVE *A13(PTEMP2),A0,L
|
||
CALLA DELOBJ
|
||
MOVE *A13(PTEMP1),A0,L
|
||
CALLA DELOBJ
|
||
MOVE A11,A0
|
||
CALLA DELOBJ
|
||
MOVE A10,A0
|
||
CALLA DELOBJ
|
||
MOVE A9,A0
|
||
CALLA DELOBJ
|
||
JRUC SMACKESC1
|
||
|
||
SMACKESC7:
|
||
MOVE *A13(PTEMP3),A0,L
|
||
CALLA FREEOBJ
|
||
SMACKESC6:
|
||
MOVE *A13(PTEMP2),A0,L
|
||
CALLA FREEOBJ
|
||
SMACKESC5:
|
||
MOVE *A13(PTEMP1),A0,L
|
||
CALLA FREEOBJ
|
||
SMACKESC4:
|
||
MOVE A11,A0
|
||
CALLA FREEOBJ
|
||
SMACKESC3:
|
||
MOVE A10,A0
|
||
CALLA FREEOBJ
|
||
SMACKESC2:
|
||
MOVE A9,A0
|
||
CALLA FREEOBJ
|
||
SMACKESC1:
|
||
PAUSEOFF
|
||
MOVE *A13(PROCID),A0,W
|
||
ANDNI 2000H,A0
|
||
MOVE A0,*A13(PROCID),W
|
||
CLR A0
|
||
MOVB A0,*A13(DVNFLAG) ;NO NEW VELOCITIES
|
||
CALLR VEL_NORMAL
|
||
|
||
**** JRUC TROGSSDEATH_OLD_RET
|
||
CALLA DELETE_TROG
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SMACKMAKE - SUBROUTINE TO MAKE A SMACK OBJ *
|
||
* A1 = X VEL *
|
||
* A2 = Y VEL *
|
||
* A4 = OFLAGS *
|
||
* RETURNS *
|
||
* Z = NO DICE *
|
||
* NZ = MADE AND A0 = OBJECT *
|
||
* *
|
||
**************************************************************************
|
||
SMACKMAKE:
|
||
CALLA GETOBJ
|
||
JRZ SMACKESC1
|
||
CALLA COPY_OBJ
|
||
MOVE A1,*A0(OXVEL),L
|
||
MOVE A2,*A0(OYVEL),L
|
||
MOVE A0,A0
|
||
RETS
|
||
|
||
*
|
||
*STOP ALL SMACK OBJECTS
|
||
SMACKSTOP:
|
||
CLR A1
|
||
CLR A2
|
||
*
|
||
*A1 = XVEL
|
||
*A2 = YVEL
|
||
SMACKVEL:
|
||
MOVE A1,*A8(OXVEL),L
|
||
MOVE A2,*A8(OYVEL),L
|
||
MOVE A1,*A9(OXVEL),L
|
||
MOVE A2,*A9(OYVEL),L
|
||
MOVE A1,*A10(OXVEL),L
|
||
MOVE A2,*A10(OYVEL),L
|
||
MOVE A1,*A11(OXVEL),L
|
||
MOVE A2,*A11(OYVEL),L
|
||
MOVE *A13(PTEMP1),A0,L
|
||
MOVE A1,*A0(OXVEL),L
|
||
MOVE A2,*A0(OYVEL),L
|
||
MOVE *A13(PTEMP2),A0,L
|
||
MOVE A1,*A0(OXVEL),L
|
||
MOVE A2,*A0(OYVEL),L
|
||
MOVE *A13(PTEMP3),A0,L
|
||
MOVE A1,*A0(OXVEL),L
|
||
MOVE A2,*A0(OYVEL),L
|
||
MOVE *A13(PTEMP4),A0,L
|
||
MOVE A1,*A0(OXVEL),L
|
||
MOVE A2,*A0(OYVEL),L
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SMACK_ANI - ANIMATE A SMACK FRAME *
|
||
* A6 = PTR TO ANIMATION *
|
||
* A8 - A10 = FIRST FOUR FRAMES *
|
||
* *A13(PTEMP1),L - *A13(PTEMP4),L = FLIPPED FOUR FRAMES *
|
||
* RETURNS: *
|
||
* Z = END OF ANIMATION HIT *
|
||
* NZ = NEW ANIMATION STUFFED (A7 = SLEEP) *
|
||
* *
|
||
**************************************************************************
|
||
SMACK_ANI:
|
||
MMTM SP,A1,A4,A8
|
||
MOVE *A6+,A1,L
|
||
JRZ SMACK_ANI_X
|
||
MOVI DMAWNZ|M_NOPAUSE,A4
|
||
CALLA ANI
|
||
MOVE *A6+,A1,L
|
||
JRZ SMACK_ANI2
|
||
MOVE A9,A8
|
||
CALLA ANI
|
||
MOVE *A6+,A1,L
|
||
JRZ SMACK_ANI2
|
||
MOVE A10,A8
|
||
CALLA ANI
|
||
MOVE *A6+,A1,L
|
||
JRZ SMACK_ANI2
|
||
MOVE A11,A8
|
||
CALLA ANI
|
||
|
||
SMACK_ANI2:
|
||
MOVI DMAWNZ|M_FLIPH|M_NOPAUSE,A4
|
||
MOVE *A6+,A1,L
|
||
JRZ SMACK_ANI_SLP
|
||
MOVE *A13(PTEMP1),A8,L
|
||
CALLA ANI
|
||
MOVE *A6+,A1,L
|
||
JRZ SMACK_ANI_SLP
|
||
MOVE *A13(PTEMP2),A8,L
|
||
CALLA ANI
|
||
MOVE *A6+,A1,L
|
||
JRZ SMACK_ANI_SLP
|
||
MOVE *A13(PTEMP3),A8,L
|
||
CALLA ANI
|
||
MOVE *A6+,A1,L
|
||
JRZ SMACK_ANI_SLP
|
||
MOVE *A13(PTEMP4),A8,L
|
||
CALLA ANI
|
||
SMACK_ANI_SLP:
|
||
MOVE *A6+,A7,W
|
||
SMACK_ANI_X:
|
||
MMFM SP,A1,A4,A8
|
||
RETS
|
||
|
||
SMACK_ATAB:
|
||
.LONG SPRINGSM11a,SPRINGSM11b,SPRINGSM11c,0
|
||
.LONG SPRINGSM11a,SPRINGSM11b,SPRINGSM11c,0
|
||
.WORD 4
|
||
|
||
.LONG SPRINGSM7a,SPRINGSM7b,SPRINGSM7c,0
|
||
.LONG SPRINGSM7a,SPRINGSM7b,SPRINGSM7c,0
|
||
.WORD 4
|
||
|
||
.LONG SPRINGSM5a,SPRINGSM5b,SPRINGSM5c,0
|
||
.LONG SPRINGSM5a,SPRINGSM5b,SPRINGSM5c,0
|
||
.WORD 4
|
||
|
||
.LONG SPRINGSMA3a,SPRINGSMA3b,SPRINGSMA3c,0
|
||
.LONG SPRINGSMA3a,SPRINGSMA3b,SPRINGSMA3c,0
|
||
.WORD 4
|
||
|
||
.LONG 0
|
||
|
||
.LONG SPRINGSMA1a,SPRINGSMA1b,SPRINGSMA1c,SPRINGSMA1d
|
||
.LONG SPRINGSMA1a,SPRINGSMA1b,SPRINGSMA1c,SPRINGSMA1d
|
||
.WORD 40
|
||
|
||
|
||
**** CLR A4
|
||
**** MOVI 60H,A5
|
||
**** CLR A6
|
||
**** MOVE *A13(DDIR),A11,W
|
||
****
|
||
**** MOVK 1,A0
|
||
**** MOVB A0,*A13(DVNFLAG) ;NO NEW VELOCITIES
|
||
****
|
||
**** MOVI [4,0],A1
|
||
**** CALLA DINO_VEL ;HYPER VELOCITY FOR THE SMACK
|
||
****
|
||
**** CALLA GET_TROG_CPNT ;GET TROG'S CENTER POINT
|
||
**** ADDI [5,0],A1 ;FUDGE FOR THE DOWN DIRECTION
|
||
****
|
||
**** SOUND1 TROGFIRE_SND
|
||
**** JSRP BOUNCE_ANIMATE
|
||
****
|
||
**** CLR A0
|
||
**** MOVB A0,*A13(DVNFLAG) ;NO NEW VELOCITIES
|
||
****
|
||
**** CALLR VEL_NORMAL
|
||
****
|
||
**** JRUC TROGBXFER
|
||
|
||
**************************************************************************
|
||
* *
|
||
* VEL_NORMAL - SET THE DUDES VELOCITY TO THE NORMAL IMMEADIATELY *
|
||
* A13 = PTR TO DUDES PROCESS *
|
||
* *
|
||
**************************************************************************
|
||
VEL_NORMAL:
|
||
PUSH A1
|
||
MOVB *A13(DVNFLAG),A1 ;ARE WE ALLOWED TO DO THIS
|
||
JRNE VNX ;BR = NO
|
||
|
||
MOVE *A13(DSPEED),A1,W ;KEEP THE INITIAL SPEED
|
||
ZEXT A1
|
||
SLL 4,A1
|
||
CALLA DINO_VEL ;RESTORE NORMAL VELOCITY
|
||
VNX:
|
||
PULL A1
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* IN_VICINITY - DETERMINE IF TROG AND A DINO ARE IN THE "SAME" PLACE. *
|
||
* A0 = PTR TO TROG *
|
||
* A8 = PTR TO DINOSAUR *
|
||
* RETURNS: *
|
||
* Z = THEY ARE CLOSE TO THE SAME SPOT *
|
||
* NZ = NOT IN THE SAME VICINITY *
|
||
* *
|
||
**************************************************************************
|
||
IN_VICINITY:
|
||
MMTM SP,A0,A1,A2,A3
|
||
MOVE A8,A2
|
||
MOVE A0,A8
|
||
CALLA GET_TROG_CPNT
|
||
MOVE A2,A8
|
||
MOVE A1,A2
|
||
CALLA GET_DINO_CPNT
|
||
CALLA FIND_CLOSE_CPNT
|
||
MOVE A2,A1
|
||
MOVE A3,A2
|
||
CALLA FIND_CLOSE_CPNT
|
||
CMP A2,A3
|
||
MMFM SP,A0,A1,A2,A3
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* FIND_CPNT - FIND A RANDOM CENTER POINT. *
|
||
* RETURNS: *
|
||
* Z = NO CENTER POINTS WERE FOUND, A1 = DESTROYED *
|
||
* NZ = A1 = PTR TO OPEN SPACE *
|
||
* *
|
||
**************************************************************************
|
||
FIND_CPNT:
|
||
MMTM SP,A0,A3,A4,A6,A7
|
||
MOVE @CMOVECNT,A7,W ;GET THE NUMBER OF CENTER MOVES
|
||
JRZ FCPX ;THERE ARE NO CENTER MOVES, whAT?
|
||
MOVE A7,A0
|
||
CALLA RANDU ;FIND A CENTER POINT
|
||
DEC A0 ;MAKE IT ZERO BASED
|
||
CALLA GETCMOVE
|
||
MOVE A0,A1 ;SET OR CLR Z
|
||
FCPX:
|
||
MMFM SP,A0,A3,A4,A6,A7
|
||
RETS
|
||
|
||
|
||
.DATA
|
||
**************************************************************************
|
||
* *
|
||
* DATA TABLES FOR SPRING SHOE MAN *
|
||
* *
|
||
**************************************************************************
|
||
TROGSSCOLL:
|
||
.WORD DINOOID,0FFF0H
|
||
.LONG SPRINGDINO
|
||
.WORD TAROID,0FFF0H
|
||
.LONG SPRINGTAR
|
||
.WORD FIREOID,0FFF0H
|
||
.LONG SPRINGFIRE
|
||
.WORD PITOID,0FFF0H
|
||
.LONG SPRINGPIT
|
||
.WORD TUNNELOID,0FFFFH
|
||
.LONG SPRINGPIT
|
||
**** .WORD FLOWEROID,0FFFFH
|
||
**** .LONG SPRINGFLOWER
|
||
**** .WORD SHROOMOID,0FFFFH
|
||
**** .LONG SPRINGSHROOM
|
||
.WORD 0
|
||
.LONG DUMCRETS ;DO NOTHING
|
||
|
||
****TROGSSINIT
|
||
**** .LONG 0,0
|
||
**** .WORD 0,0
|
||
**** .LONG TRSTP0,[5,10],TROGSSCOLL
|
||
**** .WORD DMAWNZ|M_PIXSCAN,TROGSPRGOID
|
||
|
||
TROG_SHAD_INIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG TRBOSHAD1,0,DUMCOLL
|
||
.WORD DMAWNZ,JUNKOID
|
||
|
||
TROGSPRG_ATAB:
|
||
*WOBBLING IN PLACE FRAMES
|
||
.LONG DUMSCRIPT,0,-10000H,DUMSCRIPT,0,10000H
|
||
.LONG DUMSCRIPT,-10000H,0,DUMSCRIPT,10000H,0
|
||
*TURNING SEQUENCES
|
||
.LONG TROGSSUL,0,0,TROGSSRU,0,0
|
||
.LONG TROGSSDR,0,0,TROGSSLD,0,0
|
||
.LONG TROGSSLU,0,0,TROGSSDR,0,0
|
||
.LONG TROGSSRD,0,0,TROGSSUR,0,0
|
||
*NORMAL DEATH
|
||
.LONG SPRINGDIE_U,0,0,SPRINGDIE_D,0,0
|
||
.LONG SPRINGDIE_LR,0,0,SPRINGDIE_LR,0,0
|
||
*ABOUT FACE SEQUENCES
|
||
.LONG TROGSSABOUT_UL,0,0,TROGSSABOUT_UR,0,0
|
||
.LONG TROGSSABOUT_DL,0,0,TROGSSABOUT_DR,0,0
|
||
.LONG TROGSSABOUT_LU,0,0,TROGSSABOUT_LD,0,0
|
||
.LONG TROGSSABOUT_RU,0,0,TROGSSABOUT_RD,0,0
|
||
*STANDING IN PLACE SEQUENCES
|
||
.LONG TROGSSSTAND_U,0,0,TROGSSSTAND_D,0,0
|
||
.LONG TROGSSSTAND_L,0,0,TROGSSSTAND_R,0,0
|
||
*CHEER SEQUENCES
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
*MAD SEQUENCES
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
*MAD W/SOUND
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
*QUESTION SEQUENCES
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
*BUMP SEQUENCES
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
*PUNCH SEQUENCES
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
*OOF SEQUENCES
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
*PIT DEATH SEQUENCES
|
||
.LONG SPRINGPIT_U,0,0,SPRINGPIT_D,0,0
|
||
.LONG SPRINGPIT_LR,0,0,SPRINGPIT_LR,0,0
|
||
*TROG INTRO
|
||
.LONG DUMSCRIPT,0,0
|
||
*WONDERMENT SEQUENCES
|
||
.LONG DUMSCRIPT,0,0
|
||
*TAR DEATH SEQUENCES
|
||
.LONG TROGSSTAR_U,0,0,TROGSSTAR_D,0,0
|
||
.LONG TROGSSTAR_LR,0,0,TROGSSTAR_LR,0,0
|
||
*FIRE DEATH SEQUENCES
|
||
.LONG TROGFIRE_U,0,0,TROGFIRE_D,0,0
|
||
.LONG TROGFIRE_LR,0,0,TROGFIRE_LR,0,0
|
||
*HEAD SHAKE SEQUENCES
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
*TURN INTO A SKELETON SEQUENCES
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
*KNOCK SEQUENCES
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
*LITTLE PIT DEATH SEQUENCES
|
||
.LONG SPRINGPIT_U,0,0,SPRINGPIT_D,0,0
|
||
.LONG SPRINGPIT_LR,0,0,SPRINGPIT_LR,0,0
|
||
*CLUB OUT SEQUENCES
|
||
.LONG TROGFOOD_U,0,0,TROGFOOD_D,0,0
|
||
.LONG TROGFOOD_LR,0,0,TROGFOOD_LR,0,0
|
||
*SQUISH SEQUENCES
|
||
.LONG TROGSQUISH_UU,0,0,TROGSQUISH_UD,0,0
|
||
.LONG TROGSQUISH_UL,0,0,TROGSQUISH_UR,0,0
|
||
.LONG TROGSQUISH_DU,0,0,TROGSQUISH_DD,0,0
|
||
.LONG TROGSQUISH_DL,0,0,TROGSQUISH_DR,0,0
|
||
.LONG TROGSQUISH_LRU,0,0,TROGSQUISH_LRD,0,0
|
||
.LONG TROGSQUISH_LRL,0,0,TROGSQUISH_LRR,0,0
|
||
.LONG TROGSQUISH_LRU,0,0,TROGSQUISH_LRD,0,0
|
||
.LONG TROGSQUISH_LRR,0,0,TROGSQUISH_LRL,0,0
|
||
*SQUASHED BY THE SPRING SHOE
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
*LOOK BOTH WAYS BEFORE CROSSING
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
*EATING FRAMES
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
*DIGGING INTO GROUND FRAMES
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
*DEATH BY FALLING INTO THE LAVA
|
||
.LONG SPRINGLAVA_U,0,0,SPRINGLAVA_D,0,0
|
||
.LONG SPRINGLAVA_LR,0,0,SPRINGLAVA_LR,0,0
|
||
*TROG FALLS INTO WATER AFTER BEING PUNCHED FROM BEHIND
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
.LONG DUMSCRIPT,0,0,DUMSCRIPT,0,0
|
||
|
||
|
||
TROGWOBBLE_D:
|
||
.LONG TRBOSTP0F1
|
||
.WORD 6
|
||
.LONG TRBOSTP0F2
|
||
.WORD 6
|
||
.LONG TRBOSTP0F1
|
||
.WORD 6
|
||
.LONG TRBOSTP0F3
|
||
.WORD 6
|
||
.LONG TRBOSTP0F1
|
||
.WORD 6
|
||
.LONG TRBOSTP0F4
|
||
.WORD 6|SCRIPT
|
||
.LONG TROGWOBBLE_D
|
||
|
||
TROGWOBBLE_U:
|
||
.LONG TRBOP8F2
|
||
.WORD 1|SCRIPT
|
||
.LONG TROGWOBBLE_U
|
||
|
||
TROGWOBBLE_L:
|
||
.LONG TRBOP4F2
|
||
.WORD 1|FLIPBITS|SCRIPT,M_FLIPH
|
||
.LONG TROGWOBBLE_L
|
||
|
||
TROGWOBBLE_R:
|
||
.LONG TRBOP4F2
|
||
.WORD 1|FLIPBITS|SCRIPT,0
|
||
.LONG TROGWOBBLE_R
|
||
|
||
**************************************************************************
|
||
* *
|
||
* STANDING IN PLACE *
|
||
* *
|
||
**************************************************************************
|
||
TROGSSSTAND_U:
|
||
.LONG TRBOP8F2
|
||
.WORD 1
|
||
.LONG 0
|
||
|
||
TROGSSSTAND_D:
|
||
.LONG TRBOP0F2
|
||
.WORD 1
|
||
.LONG 0
|
||
|
||
TROGSSSTAND_L:
|
||
.LONG TRBOP4F2
|
||
.WORD 1|FLIPBITS,M_FLIPH
|
||
.LONG 0
|
||
|
||
TROGSSSTAND_R:
|
||
.LONG TRBOP4F2
|
||
.WORD 1|FLIPBITS,0
|
||
.LONG 0
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TABLE OF BOUNCING DIRECTION ANIMATIONS *
|
||
* *
|
||
**************************************************************************
|
||
BOUNCE_TABLE:
|
||
.LONG BOUNCE_UU,BOUNCE_UD,BOUNCE_UL,BOUNCE_UR
|
||
.LONG BOUNCE_DU,BOUNCE_DD,BOUNCE_DL,BOUNCE_DR
|
||
.LONG BOUNCE_LU,BOUNCE_LD,BOUNCE_LL,BOUNCE_LR
|
||
.LONG BOUNCE_RU,BOUNCE_RD,BOUNCE_RL,BOUNCE_RR
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG BOUNCING FRAMES *
|
||
* THESE ARE FIVE PART ANIMATIONS: *
|
||
* PART 1 - TAKE OFF SPROING *
|
||
* PART 2 - ASCENT (VELOCITY TAKES EFFECT HERE) *
|
||
* PART 3 - APOGEE (1 FRAME ONLY) *
|
||
* PART 4 - DESCENT (1 FRAME ONLY) *
|
||
* PART 5 - LANDING (VELOCITY ZERO'D HERE) *
|
||
* *
|
||
**************************************************************************
|
||
*FROM UP TO UP
|
||
BOUNCE_UU:
|
||
.LONG TRBOP8F1
|
||
.WORD 10|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F2
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
.LONG TRBOP8F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F4
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F4a
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
BOUNCE_UP:
|
||
.LONG 0
|
||
.LONG TRBOP8F4
|
||
.WORD 1|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD 0
|
||
.LONG 0
|
||
.LONG TRBOP8F5
|
||
.WORD 1|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
.LONG TRBOP8F2
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F1
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
|
||
*FROM UP TO DOWN
|
||
BOUNCE_UD:
|
||
.LONG TRBOP8F1
|
||
.WORD 10|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F2
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
.LONG TRBOP8F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP7
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP6
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP5
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP3
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP2
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP1
|
||
.WORD 2|SPAWNP|SCRIPT,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG BOUNCE_DOWN
|
||
|
||
*FROM UP TO LEFT
|
||
BOUNCE_UL:
|
||
.LONG TRBOP8F1
|
||
.WORD 10|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F2
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
.LONG TRBOP8F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP7
|
||
.WORD 2|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD M_FLIPH
|
||
.LONG TRBOP6
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP5
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4
|
||
.WORD 2|SPAWNP|SCRIPT,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG BOUNCE_LEFT
|
||
|
||
*FROM UP TO RIGHT
|
||
BOUNCE_UR:
|
||
.LONG TRBOP8F1
|
||
.WORD 10|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F2
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
.LONG TRBOP8F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP7
|
||
.WORD 2|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD 0
|
||
.LONG TRBOP6
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP5
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4
|
||
.WORD 2|SPAWNP|SCRIPT,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG BOUNCE_RIGHT
|
||
|
||
*FROM DOWN TO DOWN
|
||
BOUNCE_DD:
|
||
.LONG TRBOP0F1
|
||
.WORD 10|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP0F2
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
.LONG TRBOP0F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP0F4
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP04a
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
BOUNCE_DOWN:
|
||
.LONG 0
|
||
.LONG TRBOP0F4
|
||
.WORD 1|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD 0
|
||
.LONG 0
|
||
.LONG TRBOP0F5
|
||
.WORD 1|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
.LONG TRBOP0F2
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP0F1
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
|
||
*FROM DOWN TO UP
|
||
BOUNCE_DU:
|
||
.LONG TRBOP0F1
|
||
.WORD 10|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP0F2
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
.LONG TRBOP0F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP1
|
||
.WORD 2|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD M_FLIPH
|
||
.LONG TRBOP2
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP3
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP5
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP6
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP7
|
||
.WORD 2|SPAWNP|SCRIPT,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG BOUNCE_UP
|
||
|
||
*FROM DOWN TO LEFT
|
||
BOUNCE_DL:
|
||
.LONG TRBOP0F1
|
||
.WORD 10|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP0F2
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
.LONG TRBOP0F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP1
|
||
.WORD 2|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD M_FLIPH
|
||
.LONG TRBOP2
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP3
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4
|
||
.WORD 2|SPAWNP|SCRIPT,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG BOUNCE_LEFT
|
||
|
||
*FROM DOWN TO RIGHT
|
||
BOUNCE_DR:
|
||
.LONG TRBOP0F1
|
||
.WORD 10|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP0F2
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
.LONG TRBOP0F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP1
|
||
.WORD 2|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD 0
|
||
.LONG TRBOP2
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP3
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4
|
||
.WORD 2|SPAWNP|SCRIPT,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG BOUNCE_LEFT
|
||
|
||
*FROM LEFT TO LEFT
|
||
BOUNCE_LL:
|
||
.LONG TRBOP4F1
|
||
.WORD 10|SPAWNP|FLIPBITS|SCRIPT,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD M_FLIPH
|
||
.LONG BOUNCE_LLRR
|
||
BOUNCE_RR:
|
||
.LONG TRBOP4F1
|
||
.WORD 10|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD 0
|
||
BOUNCE_LLRR
|
||
.LONG TRBOP4F2
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
.LONG TRBOP4F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4a
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
BOUNCE_LEFT:
|
||
BOUNCE_RIGHT:
|
||
.LONG 0
|
||
.LONG TRBOP4F4
|
||
.WORD 1|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
.LONG TRBOP4F5
|
||
.WORD 1|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
.LONG TRBOP4F2
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F1
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
|
||
*FROM LEFT TO UP
|
||
BOUNCE_LU:
|
||
*FROM RIGHT TO UP
|
||
BOUNCE_RU
|
||
.LONG TRBOP4F1
|
||
.WORD 10|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F2
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
.LONG TRBOP4F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP5
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP6
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP7
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F4
|
||
.WORD 2|SPAWNP|FLIPBITS|SCRIPT,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD 0
|
||
.LONG BOUNCE_UP
|
||
|
||
*FROM LEFT TO DOWN
|
||
BOUNCE_LD:
|
||
*FROM RIGHT TO DOWN
|
||
BOUNCE_RD:
|
||
.LONG TRBOP4F1
|
||
.WORD 10|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F2
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
.LONG TRBOP4F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP3
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP2
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP1
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP0F4
|
||
.WORD 2|SPAWNP|FLIPBITS|SCRIPT,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD 0
|
||
.LONG BOUNCE_DOWN
|
||
|
||
*FROM LEFT TO RIGHT
|
||
BOUNCE_LR:
|
||
.LONG TRBOP4F1
|
||
.WORD 10|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F2
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
.LONG TRBOP4F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP5
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP6
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP7
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F4
|
||
.WORD 2|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD 0
|
||
.LONG TRBOP7
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP6
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP5
|
||
.WORD 2|SPAWNP|SCRIPT,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG BOUNCE_RIGHT
|
||
|
||
*FROM RIGHT TO LEFT
|
||
BOUNCE_RL:
|
||
.LONG TRBOP4F1
|
||
.WORD 10|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F2
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
.LONG TRBOP4F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP3
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP2
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP1
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F4
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP1
|
||
.WORD 2|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD M_FLIPH
|
||
.LONG TRBOP2
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP3
|
||
.WORD 2|SPAWNP|SCRIPT,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG BOUNCE_LEFT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG TURNING ON HIS SHOES *
|
||
* *
|
||
**************************************************************************
|
||
*UP FROM LEFT
|
||
TROGSSUL:
|
||
*UP FROM RIGHT
|
||
TROGSSUR:
|
||
.LONG TRBOP4F1
|
||
.WORD 1
|
||
.LONG 0
|
||
.LONG TRBOP4F1
|
||
.WORD 6
|
||
.LONG TRBOP4F2
|
||
.WORD 6|SPAWNP|MAKESOUND,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP4F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4a
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP5
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP6
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP7
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F4
|
||
.WORD 4|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD 0
|
||
.LONG TRBOP8F5
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F2
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
*RIGHT FROM UP
|
||
TROGSSRU:
|
||
.LONG TRBOP8F1
|
||
.WORD 1
|
||
.LONG 0
|
||
.LONG TRBOP8F1
|
||
.WORD 6
|
||
.LONG TRBOP8F2
|
||
.WORD 6|SPAWNP|MAKESOUND,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP8F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F4
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F4a
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP7
|
||
.WORD 4|SPAWNP|FLIPBITS|SCRIPT,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD 0
|
||
.LONG TROGSSRULU
|
||
*LEFT FROM UP
|
||
TROGSSLU:
|
||
.LONG TRBOP8F1
|
||
.WORD 1
|
||
.LONG 0
|
||
.LONG TRBOP8F1
|
||
.WORD 6
|
||
.LONG TRBOP8F2
|
||
.WORD 6|SPAWNP|MAKESOUND,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP8F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F4
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F4a
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP7
|
||
.WORD 4|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD M_FLIPH
|
||
TROGSSRULU:
|
||
.LONG TRBOP6
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP5
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F5
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F2
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
*DOWN FROM RIGHT
|
||
TROGSSDR:
|
||
*DOWN FROM LEFT
|
||
TROGSSDL:
|
||
.LONG TRBOP4F1
|
||
.WORD 1
|
||
.LONG 0
|
||
.LONG TRBOP4F1
|
||
.WORD 6
|
||
.LONG TRBOP4F2
|
||
.WORD 6|SPAWNP|MAKESOUND,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP4F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4a
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP3
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP2
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP1
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP0F4
|
||
.WORD 4|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD 0
|
||
.LONG TRBOP0F5
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP0F2
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
*RIGHT FROM DOWN
|
||
TROGSSRD:
|
||
.LONG TRBOP0F1
|
||
.WORD 1
|
||
.LONG 0
|
||
.LONG TRBOP0F1
|
||
.WORD 6
|
||
.LONG TRBOP0F2
|
||
.WORD 6|SPAWNP|MAKESOUND,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP0F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP0F4
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP04a
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP1
|
||
.WORD 4|SPAWNP|FLIPBITS|SCRIPT,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD 0
|
||
.LONG TROGSSRDLD
|
||
*LEFT FROM DOWN
|
||
TROGSSLD:
|
||
.LONG TRBOP0F1
|
||
.WORD 1
|
||
.LONG 0
|
||
.LONG TRBOP0F1
|
||
.WORD 6
|
||
.LONG TRBOP0F2
|
||
.WORD 6|SPAWNP|MAKESOUND,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP0F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP0F4
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP04a
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP1
|
||
.WORD 4|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD M_FLIPH
|
||
TROGSSRDLD:
|
||
.LONG TRBOP2
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP3
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F5
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F2
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
|
||
|
||
*ABOUT FACE FROM UP VIA RIGHT
|
||
TROGSSABOUT_UR:
|
||
.LONG TRBOP8F1
|
||
.WORD 1
|
||
.LONG 0
|
||
.LONG TRBOP8F1
|
||
.WORD 6
|
||
.LONG TRBOP8F2
|
||
.WORD 6|SPAWNP|MAKESOUND,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP8F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F4
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F4a
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP7
|
||
.WORD 4|SPAWNP|FLIPBITS|SCRIPT,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD 0
|
||
.LONG TROGSSABOUT_U
|
||
*ABOUT FACE FROM UP VIA LEFT
|
||
TROGSSABOUT_UL:
|
||
.LONG TRBOP8F1
|
||
.WORD 1
|
||
.LONG 0
|
||
.LONG TRBOP8F1
|
||
.WORD 6
|
||
.LONG TRBOP8F2
|
||
.WORD 6|SPAWNP|MAKESOUND,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP8F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F4
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F4a
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP7
|
||
.WORD 4|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD M_FLIPH
|
||
|
||
TROGSSABOUT_U:
|
||
.LONG TRBOP6
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP5
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP3
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP2
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP1
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP0F2
|
||
.WORD 4|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD 0
|
||
.LONG 0
|
||
|
||
*ABOUT FACE FROM DOWN VIA RIGHT
|
||
TROGSSABOUT_DR:
|
||
.LONG TRBOP0F1
|
||
.WORD 1
|
||
.LONG 0
|
||
.LONG TRBOP0F1
|
||
.WORD 6
|
||
.LONG TRBOP0F2
|
||
.WORD 6|SPAWNP|MAKESOUND,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP0F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP0F4
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP04a
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP1
|
||
.WORD 4|SPAWNP|FLIPBITS|SCRIPT,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD 0
|
||
.LONG TROGSSABOUT_D
|
||
|
||
*ABOUT FACE FROM DOWN VIA LEFT
|
||
TROGSSABOUT_DL:
|
||
.LONG TRBOP0F1
|
||
.WORD 1
|
||
.LONG 0
|
||
.LONG TRBOP0F1
|
||
.WORD 6
|
||
.LONG TRBOP0F2
|
||
.WORD 6|SPAWNP|MAKESOUND,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP0F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP0F4
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP04a
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP1
|
||
.WORD 4|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD M_FLIPH
|
||
|
||
TROGSSABOUT_D:
|
||
.LONG TRBOP2
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP3
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP5
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP6
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP7
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F2
|
||
.WORD 4|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD 0
|
||
.LONG 0
|
||
|
||
*ABOUT FACE FROM RIGHT VIA UP
|
||
TROGSSABOUT_RU:
|
||
.LONG TRBOP4F1
|
||
.WORD 1
|
||
.LONG 0
|
||
.LONG TRBOP4F1
|
||
.WORD 6
|
||
.LONG TRBOP4F2
|
||
.WORD 6|SPAWNP|MAKESOUND,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP4F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4a
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP5
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP6
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP7
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F4
|
||
.WORD 4|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD 0
|
||
.LONG TRBOP7
|
||
.WORD 4|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD M_FLIPH
|
||
.LONG TRBOP6
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP5
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F5
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F2
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
|
||
*ABOUT FACE FROM LEFT VIA UP
|
||
TROGSSABOUT_LU:
|
||
.LONG TRBOP4F1
|
||
.WORD 1
|
||
.LONG 0
|
||
.LONG TRBOP4F1
|
||
.WORD 6
|
||
.LONG TRBOP4F2
|
||
.WORD 6|SPAWNP|MAKESOUND,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP4F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4a
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP5
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP6
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP7
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP8F4
|
||
.WORD 4|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD 0
|
||
.LONG TRBOP7
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP6
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP5
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F5
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F2
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
|
||
*ABOUTFACE FROM RIGHT VIA DOWN
|
||
TROGSSABOUT_RD:
|
||
.LONG TRBOP4F1
|
||
.WORD 1
|
||
.LONG 0
|
||
.LONG TRBOP4F1
|
||
.WORD 6
|
||
.LONG TRBOP4F2
|
||
.WORD 6|SPAWNP|MAKESOUND,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP4F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4a
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP3
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP2
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP1
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP0F4
|
||
.WORD 4|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD 0
|
||
.LONG TRBOP1
|
||
.WORD 4|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD M_FLIPH
|
||
.LONG TRBOP2
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP3
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F5
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F2
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
|
||
*ABOUTFACE FROM LEFT VIA DOWN
|
||
TROGSSABOUT_LD:
|
||
.LONG TRBOP4F1
|
||
.WORD 1
|
||
.LONG 0
|
||
.LONG TRBOP4F1
|
||
.WORD 6
|
||
.LONG TRBOP4F2
|
||
.WORD 6|SPAWNP|MAKESOUND,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP4F3
|
||
.WORD 6|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F4a
|
||
.WORD 2|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP3
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP2
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP1
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP0F4
|
||
.WORD 4|SPAWNP|FLIPBITS,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.WORD 0
|
||
.LONG TRBOP1
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP2
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP3
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F5
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG TRBOP4F2
|
||
.WORD 4|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_PROC
|
||
.LONG 0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* DEATH BY TAR *
|
||
* *
|
||
**************************************************************************
|
||
*IN TAR FACING UP
|
||
TROGSSTAR_U:
|
||
.LONG TRBOP8F1
|
||
.WORD 12|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_DEL
|
||
.LONG TRBOP8F2
|
||
.WORD 6|MAKESOUND
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP8F3
|
||
.WORD 6
|
||
.LONG TRBOP8F2
|
||
.WORD 6
|
||
.LONG TRBOP8F1
|
||
.WORD 6
|
||
.LONG TRBOP8F2
|
||
.WORD 25
|
||
.LONG TRBOP8F1
|
||
.WORD 12
|
||
.LONG TRBOP8F2
|
||
.WORD 6|MAKESOUND
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP8F3
|
||
.WORD 6
|
||
.LONG TRBOP8F2
|
||
.WORD 6
|
||
.LONG TRBOP8F1
|
||
.WORD 6
|
||
.LONG TRBOP8F2
|
||
.WORD 20
|
||
.LONG TRBOP8F1
|
||
.WORD 12
|
||
.LONG TRBOP8F2
|
||
.WORD 6|MAKESOUND
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP8F3
|
||
.WORD 6
|
||
.LONG TRBOP8F2
|
||
.WORD 6
|
||
.LONG TRBOP8F1
|
||
.WORD 6
|
||
.LONG TRBOP8F2
|
||
.WORD 6|MAKESOUND
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP8F3
|
||
.WORD 6
|
||
.LONG TRBOP8F2
|
||
.WORD 15|MAKESOUND
|
||
.LONG TROGUHOH_SND
|
||
.LONG TRBOP8F2
|
||
.WORD 10
|
||
.LONG 0
|
||
TROGSSTAR_U_LP:
|
||
.LONG TRBOP8F1
|
||
.WORD 3
|
||
.LONG TRBOP8F2
|
||
.WORD 3|MAKESOUND
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP8F3
|
||
.WORD 3
|
||
.LONG TRBOP8F2
|
||
.WORD 3|SCRIPT
|
||
.LONG TROGSSTAR_U_LP
|
||
*
|
||
*IN TAR FACING DOWN
|
||
TROGSSTAR_D:
|
||
.LONG TRBOP0F1
|
||
.WORD 12|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_DEL
|
||
.LONG TRBOP0F2
|
||
.WORD 6|MAKESOUND
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP0F3
|
||
.WORD 6
|
||
.LONG TRBOP0F2
|
||
.WORD 6
|
||
.LONG TRBOP0F1
|
||
.WORD 6
|
||
.LONG TRBOP0F2
|
||
.WORD 25
|
||
.LONG TRBOP0F1
|
||
.WORD 12
|
||
.LONG TRBOP0F2
|
||
.WORD 6|MAKESOUND
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP0F3
|
||
.WORD 6
|
||
.LONG TRBOP0F2
|
||
.WORD 6
|
||
.LONG TRBOP0F1
|
||
.WORD 6
|
||
.LONG TRBOP0F2
|
||
.WORD 20
|
||
.LONG TRBOP0F1
|
||
.WORD 12
|
||
.LONG TRBOP0F2
|
||
.WORD 6|MAKESOUND
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP0F3
|
||
.WORD 6
|
||
.LONG TRBOP0F2
|
||
.WORD 6
|
||
.LONG TRBOP0F1
|
||
.WORD 6
|
||
.LONG TRBOP0F2
|
||
.WORD 6|MAKESOUND
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP0F3
|
||
.WORD 6
|
||
.LONG TRBOP0F2
|
||
.WORD 15|MAKESOUND
|
||
.LONG TROGUHOH_SND
|
||
.LONG TRBOP0F2
|
||
.WORD 10
|
||
.LONG 0
|
||
TROGSSTAR_D_LP:
|
||
.LONG TRBOP0F1
|
||
.WORD 3
|
||
.LONG TRBOP0F2
|
||
.WORD 3|MAKESOUND
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP0F3
|
||
.WORD 3
|
||
.LONG TRBOP0F2
|
||
.WORD 3|SCRIPT
|
||
.LONG TROGSSTAR_D_LP
|
||
|
||
*
|
||
*IN TAR LEFT/RIGHT
|
||
TROGSSTAR_LR:
|
||
.LONG TRBOP4F1
|
||
.WORD 12|SPAWNP,0,0,INDPID
|
||
.LONG TROG_SHADOW_DEL
|
||
.LONG TRBOP4F2
|
||
.WORD 6|MAKESOUND
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP4F3
|
||
.WORD 6
|
||
.LONG TRBOP4F2
|
||
.WORD 6
|
||
.LONG TRBOP4F1
|
||
.WORD 6
|
||
.LONG TRBOP4F2
|
||
.WORD 25
|
||
.LONG TRBOP4F1
|
||
.WORD 12
|
||
.LONG TRBOP4F2
|
||
.WORD 6|MAKESOUND
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP4F3
|
||
.WORD 6
|
||
.LONG TRBOP4F2
|
||
.WORD 6
|
||
.LONG TRBOP4F1
|
||
.WORD 6
|
||
.LONG TRBOP4F2
|
||
.WORD 20
|
||
.LONG TRBOP4F1
|
||
.WORD 12
|
||
.LONG TRBOP4F2
|
||
.WORD 6|MAKESOUND
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP4F3
|
||
.WORD 6
|
||
.LONG TRBOP4F2
|
||
.WORD 6
|
||
.LONG TRBOP4F1
|
||
.WORD 6
|
||
.LONG TRBOP4F2
|
||
.WORD 6|MAKESOUND
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP4F3
|
||
.WORD 6
|
||
.LONG TRBOP4F2
|
||
.WORD 15|MAKESOUND
|
||
.LONG TROGUHOH_SND
|
||
.LONG TRBOP4F2
|
||
.WORD 10
|
||
.LONG 0
|
||
TROGSSTAR_LR_LP:
|
||
.LONG TRBOP4F1
|
||
.WORD 3
|
||
.LONG TRBOP4F2
|
||
.WORD 3|MAKESOUND
|
||
.LONG SHORTSPRING_SND
|
||
.LONG TRBOP4F3
|
||
.WORD 3
|
||
.LONG TRBOP4F2
|
||
.WORD 3|SCRIPT
|
||
.LONG TROGSSTAR_LR_LP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SOUNDS USED THIS MODULE *
|
||
* *
|
||
**************************************************************************
|
||
SHORTSPRING_SND:
|
||
.WORD >F302,>10,>80A0,0 ;SHORT SPRING SOUND
|
||
MEDSPRING_SND:
|
||
.WORD >F302,>10,>80A1,0 ;MEDIUM SPRING SOUND
|
||
LONGSPRING_SND:
|
||
.WORD >F302,>10,>80A2,0 ;LONG SPRING SOUND
|
||
TROGSMACK1_SND:
|
||
.WORD >F050,>5D,>8046,0 ;TROG SPEED PLANT ON SPRINGS
|
||
TROGSMACK2_SND:
|
||
.WORD >F050,>10,>801E,0 ;TROG HIT SCREEN
|
||
|
||
|
||
|