3525 lines
79 KiB
NASM
3525 lines
79 KiB
NASM
.MLIB "TROGMACS.LIB"
|
||
.FILE 'TROGENEM.ASM'
|
||
.TITLE " <<< T R O G -- ENEMY DISPATCH ROUTINE AND TABLES >>>"
|
||
.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 "TROGEQU.ASM"
|
||
.INCLUDE "TROGAEQU.ASM"
|
||
.INCLUDE "trogaudn.asm"
|
||
.INCLUDE "IMGTBL.GLO"
|
||
.INCLUDE "TROGENEM.TBL" ;MODULE SPECIFIC IMAGES PLEASE
|
||
|
||
.DEF MASTERDP, ENEMY_START, TARBAITER, MASTBAIT
|
||
.DEF WAVE1DSP, WAVE3DSP, WAVE4DSP
|
||
.DEF WAVE7DSP, WAVE8DSP, WAVE9DSP, WAVE10DSP, WAVE11DSP, WAVE12DSP
|
||
.DEF WAVE13DSP, WAVE14DSP, WAVE15DSP, WAVE16DSP, WAVE17DSP
|
||
.DEF WAVE18DSP, WAVE19DSP, WAVE20DSP, WAVE21DSP, WAVE22DSP
|
||
.DEF WAVE23DSP, WAVE34DSP, WAVE36DSP, WAVE38DSP, WAVE32DSP
|
||
.DEF WAVE33DSP, WAVE42DSP, WAVE43DSP, WAVE45DSP, WAVE46DSP
|
||
.DEF WAVE47DSP, WAVE48DSP, WAVE49DSP
|
||
|
||
.DEF TAROUT, FIRE_UP_MONKEY_SHIT, PIT_CLOSE, TROG_PIT
|
||
.DEF HOUSE_PIT, VALID_CPNT, OPEN_PIT, LIGHT_MY_FIRE, DENT_GROUND
|
||
.DEF TUNNEL_PIT, FIRE_DOWN, TARBUBBLE_SND, FIRESTART_SND
|
||
.DEF FLAMEOUT6, FLAMEOUT7, FLAMEOUT8, FIREOUT_SND, TROG_PIT_COMM
|
||
**** .DEF TSHIRT_START
|
||
.DEF START_FIRE_LR, SMOKESTAR41, FIRE_ANIMII
|
||
.DEF FLOWERINIT, SHROOMINIT, PINEAPPLEINIT
|
||
.DEF FIREINIT, PITINIT, TARINIT, GETINIT_G
|
||
.DEF PINEAPPLESPIN,FLAMESM2
|
||
.DEF TAR_ANIM1, TAR1a
|
||
.DEF OGPIT11
|
||
|
||
.REF WAVETIME, DISPATCH_TABLE, FIND_OPEN_CPNT, TOMOVE, TROG_START
|
||
.REF OBJ_NEAR_CENT, SEARCH_SAFE , GETMOVE, TWO_MOVES, WHEEL_START
|
||
.REF FIND_CLOSE_CPNT
|
||
.REF INC_PLAYER_TIMERS
|
||
.REF FREE_MOVE_EGG, FIRE_DURATION, BGND_TYPE
|
||
.REF FINDMOVE, HOUSE_PITS, GET_EXIT_ANI, CENTER_CHECK, TUNNEL_CYCLE
|
||
.REF GPLAYNUM, GET_ADJ, GPLAYD, SEND2SCR, TROGSPRG_START
|
||
.REF EXTRA_TROG_START, BAITER_TIME, CK_TREX, PLANT_STALL
|
||
**** .REF OUTTSHIRT
|
||
.REF FIND_FARTHEST_CPNT, TUTOR, POWERUP_DURATION
|
||
.REF CATAPULT_START
|
||
.REF HOUSE_START
|
||
.REF ROCK_START, ROCK_TABLE_1, PALM_TABLE_1, TROGHENG1, ZIG_TABLE_1
|
||
.REF TROGSKULL1, TROGSKULL2, BONUS_WAVE, ZIG_TABLE_2
|
||
.REF HOUSE_TABLE_1, HOUSE_TABLE_2, HOUSE_TABLE_3
|
||
.REF TGEN_START, TGEN_TABLE_1, TGEN_CNT
|
||
.REF TROGSPEED, MAX_TROGSPEED, SPRGSPEED, EGG_DIVISOR
|
||
|
||
.TEXT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* MASTERDP - MASTER DISPATCH PROCESS. *
|
||
* INITIAL DISPATCH: *
|
||
* THESE PROCS ARE DISPATCHED ONE TIME AT WAVE STAR *
|
||
* POSITION DISPATCH: *
|
||
* BASED ON THE CURRENT WORLD POSITION THE *
|
||
* POSITION TABLE IS USED TO DISPATCH THESE PROCS. *
|
||
* TIME DISPATCH: *
|
||
* DISPATCHES FROM THE TIME TABLE BASED ON THE *
|
||
* ELAPSED WAVE TIME. *
|
||
* ENFORCER BAITERS: *
|
||
* A PROCESS IS CREATED THAT LOOPS ON THE ENFORCER *
|
||
* TIME TAB. WHEN THE SPECIFIED ENFORCER TIME *
|
||
* IS REACHED. ONCE THIS STARTS THE PROCESS *
|
||
* LOOPS UNTIL WAVE END. *
|
||
* *
|
||
**************************************************************************
|
||
MASSTIME .EQU 3 ;MASTER DISPATCH SLEEP TIME CONSTANT
|
||
|
||
MASTERDP
|
||
MOVE @DISPATCH_TABLE,A2,L ;GET THE WAVE DISPATCH TABLE
|
||
*MASTER DISPATCH ENTRY FOR ARBITRARY DISPATCH TABLE
|
||
*A2 = PTR TO DISPATCH TABLE
|
||
MASTERG
|
||
MOVI MASTERID,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILALL ;MAKE SURE NO OTHER DISPATCHERS ARE PRESENT
|
||
MASTINIL
|
||
MOVE *A2+,A4,L ;GET THE ROUTINE
|
||
JRZ MASTPT ;BR = DONE WITH INITIAL STUFF
|
||
MOVE *A2+,A5,L
|
||
MOVE *A2+,A6,L
|
||
MMTM SP,A2
|
||
CALL A4 ;DO THE ROUTINE
|
||
MMFM SP,A2
|
||
JRUC MASTINIL
|
||
MASTPT
|
||
MOVE *A2+,A9,L ;GET THE TIME TABLE
|
||
MOVE *A2+,A11,W
|
||
MOVE A11,@BAITER_TIME,W
|
||
CLR A11 ;CLEAR LOCAL TIMER
|
||
MOVE A11,@WAVETIME,L ;CLEAR MASTER WAVE TIMER
|
||
*DISPATCH ACCORDING TO TIME
|
||
MASTDPTM
|
||
MOVE A9,A9
|
||
JRZ MASTBAIT ;BR = NO TIME TABLE, SKIP
|
||
MOVE A9,*A13(PDATA),L
|
||
MOVE A11,A10
|
||
*
|
||
*MASTER DISPATCH LOOP
|
||
MASTDPL:
|
||
MOVE *A9,A1,W
|
||
JRZ MAST_RESET ;BR = CHECK AND INCREMENT TIMER
|
||
**** INC A1 ;END TABLE?
|
||
**** JRZ MASTBAIT ;BR = YES
|
||
**** DEC A1
|
||
ADD A10,A1 ;ADD LOOP TIMER OFFSET TO BASE
|
||
CMP A11,A1
|
||
JRGT MASTTDSP
|
||
ADDK 16,A9
|
||
MOVE *A9+,A4,L ;GET THE ROUTINE
|
||
MOVE *A9+,A5,L
|
||
MOVE *A9+,A6,L
|
||
MMTM SP,A8,A9,A10,A11
|
||
MOVE @TUTOR,A14,W
|
||
JRNZ MAST_SKIP_TIME
|
||
CALL A4 ;DO THE ROUTINE
|
||
MAST_SKIP_TIME
|
||
MMFM SP,A8,A9,A10,A11
|
||
MASTTDSP
|
||
CALLR MASTTINC
|
||
MASTPLAYLP:
|
||
SLEEP MASSTIME
|
||
MOVE @GAME_STATE,A0,W
|
||
CMPI INPLAY,A0
|
||
JRNE MASTPLAYLP ;BR = WAIT, WE ARE NOT PLAYING
|
||
JRUC MASTDPL
|
||
*
|
||
*RESET THE TIME TABLE AND DISPATCH AGAIN
|
||
MAST_RESET
|
||
MOVE @BONUS_WAVE,A0,W ;IS THIS A BONUS WAVE?
|
||
JRNE MASTBAIT ;BR = YES, THEN NO LOOPING
|
||
MOVE *A13(PDATA),A9,L
|
||
MOVE A11,A10
|
||
JRUC MASTTDSP
|
||
|
||
*HANG HERE AND INCREMENT TIMERS
|
||
MASTBAIT
|
||
CALLR MASTTINC
|
||
MASTBAITLP:
|
||
SLEEP MASSTIME
|
||
MOVE @GAME_STATE,A0,W
|
||
CMPI INPLAY,A0
|
||
JRNE MASTBAITLP
|
||
JRUC MASTBAIT
|
||
*
|
||
*MASTTINC - MASTER DISPATCH TIMER INCREMENT SUBROUTINE
|
||
MASTTINC
|
||
ADDK MASSTIME,A11 ;ADD THE MASTER DISPATCH SLEEP TIME
|
||
MOVK MASSTIME,A0
|
||
ADDRM A0,@WAVETIME,L ;TRASHES A14
|
||
ALLPLYR INC_PLAYER_TIMERS
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* ENEMY_START - START THE ENEMY PROCESS(ES) WITH THE GIVEN START *
|
||
* PARAMETERS. *
|
||
* A1 = PID OF PROCESS TO START *
|
||
* A7 = ADDRESS OF PROCESS TO START *
|
||
* A5 = [RANDOM # TO ADD, # TO START] *
|
||
* A8 - A11 = PASS TO PROCESS *
|
||
* *
|
||
**************************************************************************
|
||
ENEMY_START:
|
||
MMTM SP,A0,A5,A6
|
||
MOVY A5,A6
|
||
ZEXT A5
|
||
JRZ ENEMY_CK_RAND
|
||
ENEMY_START_LP:
|
||
CALLA GETPRC
|
||
DSJS A5,ENEMY_START_LP
|
||
ENEMY_CK_RAND:
|
||
SRL 16,A6
|
||
JRZ ENEMY_NO_RAND
|
||
MOVE A6,A0
|
||
CALLA RANDU
|
||
MOVE A0,A5
|
||
ENEMY_START_LP1:
|
||
CALLA GETPRC
|
||
DSJS A5,ENEMY_START_LP1
|
||
ENEMY_NO_RAND:
|
||
MMFM SP,A0,A5,A6
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* ENEMY_CALL - CALL ENEMY ROUTINE(S). *
|
||
* A5 = [RANDOM # TO ADD, # OF TIMES TO CALL] *
|
||
* A7 = ROUTINE TO CALL *
|
||
* *
|
||
**************************************************************************
|
||
ENEMY_CALL:
|
||
MMTM SP,A5,A6
|
||
MOVY A5,A6
|
||
ZEXT A5
|
||
JRZ ENEMY_CALL_RAND
|
||
ENEMY_CALL_LP:
|
||
CALL A7
|
||
DSJS A5,ENEMY_CALL_LP
|
||
ENEMY_CALL_RAND:
|
||
SRL 16,A6
|
||
JRZ ENEMY_CALL_NORAND
|
||
MOVE A6,A0
|
||
CALLA RANDU
|
||
MOVE A0,A5
|
||
ENEMY_CALL_LP1:
|
||
CALL A7
|
||
DSJS A5,ENEMY_CALL_LP1
|
||
ENEMY_CALL_NORAND:
|
||
MMFM SP,A5,A6
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TAR_START - START SOME TAR PITS *
|
||
* A5 = [RANDOM # TO ADD, # TO START] *
|
||
* A6 = OID *
|
||
* *
|
||
**************************************************************************
|
||
TAR_START:
|
||
MMTM SP,A1,A7,A10
|
||
MOVI TARPID,A1
|
||
MOVI TAR_PROCESS,A7
|
||
MOVE A6,A10
|
||
CALLR ENEMY_START
|
||
MMFM SP,A1,A7,A10
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TAR_PROCESS - PROCESS TO CREATE AND ANIMATE A TAR PIT *
|
||
* A10 = OID *
|
||
* *
|
||
**************************************************************************
|
||
TAR_PROCESS:
|
||
SLEEP 60 ; GIVE EVERYBODY A CHANCE TO WAKE UP
|
||
TAR_PROC_AGAIN:
|
||
MOVI 120,B0 ;SOMEWHERE BETWEEN 2 AND 15
|
||
MOVI 900,B1
|
||
CALLA RANGRAND
|
||
SLEEPR A0
|
||
CALLR FIND_COOL_CPNT ; A LITTLE SMARTER
|
||
JRZ TAR_PROC_AGAIN
|
||
|
||
CLR A8
|
||
MOVE A8,*A13(PDATA),L
|
||
MOVI SET_TZPOS,A8
|
||
MOVI TARIN,A9
|
||
CALLR GETTARINIT
|
||
MOVE A14,A11
|
||
JRUC PLANT_PROC_SELECT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG_FIRE_PICK - PICK SOME SPOTS FOR TROG TO PLACE HIS FIRES. *
|
||
* A5 = [RANDOM # TO ADD, # TO START] *
|
||
* *
|
||
**************************************************************************
|
||
TROG_FIRE_PICK:
|
||
MMTM SP,A0,A1,A7
|
||
MOVI FIREPID,A1
|
||
MOVI FIRE_PICK,A7
|
||
CALLR ENEMY_START
|
||
MMFM SP,A0,A1,A7
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* FIRE_PICK - PROCESS TO PICK A SPOT FOR TROG TO PLACE A FIRE HIMSELF. *
|
||
* *
|
||
**************************************************************************
|
||
FIRE_PICK:
|
||
CALLA FIND_OPEN_CPNT ;GET AN OPEN CENTER
|
||
JRNZ FIRE_PICKED ;BR = WE FOUND ONE
|
||
SLOOP 10,FIRE_PICK ;PLEASE TRY YOUR CALL AGAIN, LATER.
|
||
FIRE_PICKED:
|
||
MOVI FIREID,A0
|
||
MOVB A0,*A1(CMOVETROG)
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* LIGHT_MY_FIRE - PROCESS TO START A TROG FIRE ON A GIVEN CENTER POINT *
|
||
* A8 = PTR TO THE TROG OBJECT *
|
||
* A9 = TROG'S CURRENT SLEEP MULTIPLIER *
|
||
* A10 = PTR TO CENTER POINT *
|
||
* A11 = TROG'S CURRENT DIRECTION *
|
||
* *
|
||
**************************************************************************
|
||
LIGHT_MY_FIRE:
|
||
MOVB *A10(CMOVEEGG),A1
|
||
INC A1
|
||
JRNZ FIRE_PROC_DIE ;BR = SPACE IS TAKEN
|
||
|
||
MOVE A9,*A13(PTEMP1),W ;STORE SLEEP MULTIPLIER
|
||
|
||
MOVE A11,A0
|
||
SLL 6,A0
|
||
ADDI TROG_FIRE_TAB,A0
|
||
MOVE *A0+,A14,L
|
||
MOVE *A0,A9,L
|
||
CALLA GPALOBJSTF
|
||
JRZ FIRE_PROC_DIE ;BR = NO OBJECT TO FIRE
|
||
|
||
MOVI FIREID,A3
|
||
MOVB A3,*A10(CMOVEEGG) ;MARK IT TAKEN
|
||
|
||
MOVE A13,*A0(OPLINK),L ;LINK IT HOME
|
||
|
||
CALLA GETANIXY ;GET TROG'S ANIMATION POINT
|
||
SRL 16,A3
|
||
MOVY A2,A3
|
||
MOVE A0,A8 ;NOW LET'S ALIGN THE SMOKE
|
||
CALLA OBJ_TO_PNT
|
||
CALLA SET_ZPOS ;THIS NEEDS OBJECT IN A0
|
||
CALLA INSERT_OBJ ;VIEWABLE
|
||
|
||
MOVK 1,A1
|
||
**** MOVE *A13(PTEMP1),A2,W
|
||
**** SLL 16,A2
|
||
**** MOVY A2,A1 ;GIVE THIS THING THE CORRECT SPEED
|
||
JSRP FRANIM
|
||
|
||
CALLA OBJ_OFF ;OFF UNTIL WE RE ALIGN
|
||
MOVE A10,A0
|
||
CALLA TOMOVE ;ALIGN ON THE CENTER MOVE
|
||
MOVK 4,A1
|
||
JSRP FRANIM ;GET THE FLAME FRAME
|
||
MOVE A0,A7 ;KEEP THE SLEEP TIME
|
||
CALLA OBJ_ON ;TURN IT BACK ON
|
||
MOVE A8,A0
|
||
CALLA SET_MZPOS
|
||
SLEEPR A7
|
||
MOVK 1,A1
|
||
JSRP FRANIM ;BLOW UP IN TROG'S FACE
|
||
MOVI ENEMIES,A1
|
||
CALLA INSERT_SUPP
|
||
MOVI FIRE_ANIM_LP,A9
|
||
MOVI FIREPID,A0
|
||
MOVE A0,*A13(PROCID),W
|
||
ANDNIM M_NOCOLL,*A8(OFLAGS),W ;MAKE SURE COLLISIONS ARE ON
|
||
*
|
||
*A8 = FULLY INSERTED AND ALIGNED FIRE OBJECT, ALSO CENTER MOVE NEEDS
|
||
* TO BE MARKED
|
||
*A9 = ANIMATION SCRIPT THAT YOU LIKE
|
||
FIRE_BURN:
|
||
MOVE @FIRE_DURATION,A11,W ;GET THE BURN TIME
|
||
FIRE_BURN_LP:
|
||
MOVK 4,A1
|
||
JSRP FRANIM ;BURN BABY BURN, DISCO INFERNO!
|
||
SUB A0,A11 ;TAKE AWAY FROM OUR TIME
|
||
JRLE FLAME_OUT ;BR = OUR TIME IS UP
|
||
SLOOPR A0,FIRE_BURN_LP
|
||
|
||
FLAME_OUT:
|
||
MOVI ENEMIES,A1
|
||
CALLA DELETE_SUPP ;THIS IS NO LONGER DANGEROUS
|
||
CALLA FREE_MOVE_EGG ;FREE THE SPOT FOR ANOTHER FIRE
|
||
MOVI FIRE_DOWN,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
CLR A0
|
||
MOVE A0,*A8(OPLINK),L
|
||
CALLA DELETE_OBJ
|
||
FIRE_PROC_DIE:
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG_PIT_PICK - PICK SOME SPOTS FOR TROG TO BASH PITS. *
|
||
* A5 = [RANDOM # TO ADD, # TO START] *
|
||
* *
|
||
**************************************************************************
|
||
TROG_PIT_PICK:
|
||
MMTM SP,A0,A1,A7
|
||
MOVI PITPID,A1
|
||
MOVI PIT_PICK,A7
|
||
CALLR ENEMY_START
|
||
MMFM SP,A0,A1,A7
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* PIT_PICK - PROCESS TO PICK A SPOT FOR TROG TO PLACE A PIT HIMSELF. *
|
||
* *
|
||
**************************************************************************
|
||
PIT_PICK:
|
||
CALLA FIND_COOL_CPNT ;GET AN OPEN CENTER
|
||
JRNZ PIT_PICKED ;BR = GOT ONE
|
||
SLOOP 20,PIT_PICK ;TRY LATER
|
||
PIT_PICKED:
|
||
MOVI PITID,A0
|
||
MOVB A0,*A1(CMOVETROG)
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* OPEN_PIT - PROCESS TO CREATE A PIT ON A GIVEN CENTER POINT. *
|
||
* A9 = PTR TO CENTER POINT *
|
||
* *
|
||
**************************************************************************
|
||
OPEN_PIT:
|
||
MOVB *A9(CMOVEEGG),A1
|
||
INC A1
|
||
JRNZ PLANT_PROC_DIE ;BR = SPACE IS TAKEN
|
||
CLR A8
|
||
MOVE A8,*A13(PDATA),L
|
||
MOVI SET_TZPOS,A8
|
||
MOVE A9,A1
|
||
MOVI PIT_OPEN,A9
|
||
MOVI PITOID,A10
|
||
CALLR GETPITINIT
|
||
MOVE A14,A11
|
||
JRUC PLANT_PROC_SELECT
|
||
|
||
*
|
||
*ENTRYPOINT TO PLOP A PIT ON A CENTER POINT. MAKE SURE THE POINT IS
|
||
*CLEAR OF ANYTHING BEFORE YOU JUMP HERE.
|
||
*A1 = PTR TO CENTER POINT.
|
||
*A10 = PIT OID
|
||
PIT_PLACE:
|
||
MOVE A1,A5
|
||
CALLR GETPITINIT
|
||
|
||
CALLA GPALOBJSTF ;DO THE OBJECT
|
||
JRZ PIT_PROC_DIE
|
||
MOVE A13,*A0(OPLINK),L ;LINK IT UP
|
||
MOVE A10,*A0(OID),W
|
||
MOVE A0,A8
|
||
MOVE A5,A0
|
||
CALLA TOMOVE ;PLACE THE TAR ON THE CENTER MOVE
|
||
MOVI PITID,A0
|
||
MOVB A0,*A5(CMOVEEGG) ;MARK IT TAKEN
|
||
MOVE A8,A0
|
||
CALLA SET_TZPOS
|
||
CALLA INSERT_OBJ
|
||
MOVI PIT_OPEN,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM ;MAKE THE TARPIT GROW
|
||
MOVI ENEMIES,A1
|
||
CALLA INSERT_SUPP ;MAKE US COLLIDABLE
|
||
CLR A0
|
||
MOVE A0,*A8(OPLINK),L
|
||
PIT_PROC_DIE:
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG_PIT - PROCESS TO OPEN PIT, HOLD, THEN CLOSE *
|
||
* A9 = [Y,X] PIT POSITION *
|
||
* *
|
||
**************************************************************************
|
||
TROG_PIT:
|
||
CALLR GETTROGPITINIT
|
||
|
||
CALLA GPALOBJSTF ;DO THE OBJECT
|
||
JRZ TROG_PIT_DIE
|
||
MOVE A13,*A0(OPLINK),L ;LINK IT UP
|
||
MOVE A0,A8
|
||
MOVE A9,A3
|
||
CALLA OBJ_TO_PNT
|
||
CALLA SET_TZPOS
|
||
MOVI ENEMIES,A1
|
||
CALLA INSERT_OBJ_SUPP
|
||
CALLA FINDMOVE
|
||
JRNC TROG_PIT_LOST ;BR = THIS IS NOT A KNOWN MOVE
|
||
MOVE *A1(MOVECPTR),A1,L
|
||
JRN TROG_PIT_LOST ;BR = THIS IS NOT A CENTER POINT
|
||
MOVB *A1(CMOVEEGG),A0 ;MAY WE CONTROL THIS POINT?
|
||
INC A0
|
||
JRNZ TROG_PIT_LOST ;BR = FOR SOME REASON WE CAN'T, OH WELL
|
||
MOVI TROGPITID,A0
|
||
MOVB A0,*A1(CMOVEEGG) ;MARK IT TAKEN
|
||
JRUC TROG_PIT_STORE
|
||
TROG_PIT_LOST:
|
||
CLR A1
|
||
TROG_PIT_STORE:
|
||
MOVE A1,*A13(PTEMP1),L ;STORE FOR UNMARK
|
||
MOVI PIT_OPEN,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM ;MAKE THE TARPIT GROW
|
||
SLEEP 15
|
||
MOVI PIT_CLOSE,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVI ENEMIES,A1
|
||
CALLA DELETE_OBJ_SUPP
|
||
MOVE *A13(PTEMP1),A1,L
|
||
JRZ TROG_PIT_DIE
|
||
CLR A0
|
||
NOT A0
|
||
MOVB A0,*A1(CMOVEEGG) ;MARK IT FREE
|
||
TROG_PIT_DIE:
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG_PIT_COMM - PROCESS TO OPEN PIT, WAIT FOR PCOMM TO BE <> 0 THEN *
|
||
* CLOSE. *
|
||
* A9 = [Y,X] PIT POSITION *
|
||
* A11 = PTR TO TROG PROCESS TRYING TO CREATE THIS. *
|
||
* *
|
||
**************************************************************************
|
||
TROG_PIT_COMM:
|
||
CLR A0
|
||
MOVE A0,*A13(PCOMM),W ;FIRST CLEAR THAT COMM LINE
|
||
|
||
CALLR GETTROGPITINIT
|
||
CALLA GPALOBJSTF ;DO THE OBJECT
|
||
JRNZ TROG_PIT_COMM_OK ;BR = OK, DONE.
|
||
|
||
MOVI COMM_PIT_FAIL,A1
|
||
CALLA SEND_COMM
|
||
JRUC TROG_PIT_COMM_DIE
|
||
|
||
TROG_PIT_COMM_OK:
|
||
MOVE A13,*A0(OPLINK),L ;LINK IT UP
|
||
MOVE A0,A8
|
||
MOVE A9,A3
|
||
CALLA OBJ_TO_PNT
|
||
CALLA SET_TZPOS
|
||
MOVI ENEMIES,A1
|
||
CALLA INSERT_OBJ_SUPP
|
||
CALLA FINDMOVE
|
||
JRNC TROG_PIT_COMM_LOST ;BR = THIS IS NOT A KNOWN MOVE
|
||
MOVE *A1(MOVECPTR),A1,L
|
||
JRN TROG_PIT_COMM_LOST ;BR = THIS IS NOT A CENTER POINT
|
||
MOVB *A1(CMOVEEGG),A0 ;MAY WE CONTROL THIS POINT?
|
||
INC A0
|
||
JRNZ TROG_PIT_COMM_LOST ;BR = FOR SOME REASON WE CAN'T, OH WELL
|
||
MOVI TROGPITID,A0
|
||
MOVB A0,*A1(CMOVEEGG) ;MARK IT TAKEN
|
||
JRUC TROG_PIT_COMM_STORE
|
||
TROG_PIT_COMM_LOST:
|
||
CLR A1
|
||
TROG_PIT_COMM_STORE:
|
||
MOVE A1,*A13(PTEMP1),L ;STORE FOR UNMARK
|
||
MOVI PIT_OPEN,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM ;MAKE THE PIT OPEN UP
|
||
MOVI COMM_PIT_OPEN,A1
|
||
CALLA SEND_COMM
|
||
MOVI COMM_PIT_CLOSE,A2
|
||
MOVI 150,A3
|
||
JSRP COMM_WAIT ;CLOSE WHEN HE WANTS US TO
|
||
MOVI PIT_CLOSE,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVI ENEMIES,A1
|
||
CALLA DELETE_OBJ_SUPP
|
||
MOVE *A13(PTEMP1),A1,L
|
||
JRZ TROG_PIT_COMM_DIE
|
||
CLR A0
|
||
NOT A0
|
||
MOVB A0,*A1(CMOVEEGG) ;MARK IT FREE
|
||
TROG_PIT_COMM_DIE:
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* HOUSE_PIT - PROCESS TO OPEN PIT ON A HOME, HOLD, THEN CLOSE *
|
||
* A9 = PTR TO EXIT MOVE *
|
||
* *
|
||
**************************************************************************
|
||
HOUSE_PIT:
|
||
MOVE A9,A4
|
||
CALLA GET_EXIT_ANI
|
||
JRZ HOUSE_PIT_DIE
|
||
MOVE *A9(EMOVEOBJ),A6,L
|
||
JRZ HOUSE_PIT_DIE
|
||
|
||
CALLR GETPITINIT
|
||
|
||
CALLA GPALOBJSTF ;DO THE OBJECT
|
||
JRZ HOUSE_PIT_DIE
|
||
MOVE A0,A8
|
||
MOVE A13,*A8(OPLINK),L ;LINK IT UP
|
||
MOVE *A6(OZVAL),A1,L
|
||
INC A1
|
||
MOVE A1,*A8(OZVAL),L
|
||
CALLA OBJ_TO_PNT
|
||
|
||
MOVI HOUSE_PITS,A1
|
||
MOVE A3,A0 ;LET'S LOOK FOR ANOTHER PIT
|
||
CALLA ISSUPPANI ;IS THERE ONE?
|
||
JRZ HOUSE_PIT_ONLY ;BR = NO, I'M THE ONLY ONE
|
||
MOVE A8,A9
|
||
MOVE A1,A8
|
||
CALLA OBJPROC_KILL
|
||
MOVI HOUSE_PITS,A1
|
||
CALLA DELETE_OBJ_SUPP ;AND KILL THE OTHER PIT
|
||
MOVE A9,A8
|
||
MOVI HOUSE_PITS,A1
|
||
CALLA INSERT_OBJ_SUPP
|
||
MOVI PIT_FULL,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
SLEEP 60 ;MAKE UP FOR THE MISSED OPENING
|
||
JRUC HOUSE_PIT_DUMP
|
||
HOUSE_PIT_ONLY:
|
||
MOVI HOUSE_PITS,A1
|
||
CALLA INSERT_OBJ_SUPP
|
||
MOVI PIT_OPEN,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM ;MAKE THE TARPIT GROW
|
||
HOUSE_PIT_DUMP:
|
||
SLEEP 15
|
||
MOVI PIT_CLOSE,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVI HOUSE_PITS,A1
|
||
CALLA DELETE_OBJ_SUPP
|
||
CLR A0
|
||
HOUSE_PIT_DIE:
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TUNNEL_PIT - PROCESS TO OPEN A TUNNEL PIT *
|
||
* *
|
||
**************************************************************************
|
||
TUNNEL_PIT:
|
||
CALLA FIND_COOL_CPNT
|
||
JRNZ TUNNEL_PIT_FOUND
|
||
SLOOP 10,TUNNEL_PIT
|
||
TUNNEL_PIT_FOUND:
|
||
MOVE A1,A10
|
||
|
||
CALLR GETPITINIT
|
||
|
||
CALLA GPALOBJSTF
|
||
JRZ TUNNEL_DIE
|
||
MOVI TUNNELID,A6
|
||
MOVB A6,*A10(CMOVEEGG)
|
||
MOVE A0,A8
|
||
MOVE A10,A0
|
||
CALLA TOMOVE ;PLACE THE PIT ON THE CENTER MOVE
|
||
MOVE A8,A0
|
||
CALLA SET_TZPOS
|
||
MOVI TUNNELOID,A0
|
||
MOVE A0,*A8(OID),W
|
||
CALLA INSERT_OBJ
|
||
MOVI PIT_OPEN,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM ;MAKE THE PIT OPEN
|
||
MOVI ENEMIES,A1
|
||
CALLA INSERT_SUPP
|
||
MOVI TUNNELINIT,A14
|
||
CALLA GPALOBJSTF
|
||
JRZ TUNNEL_DIE
|
||
MOVE A0,A8
|
||
MOVE A10,A0
|
||
CALLA TOMOVE ;PLACE THE PIT ON THE CENTER MOVE
|
||
MOVE A8,A0
|
||
CALLA SET_TZPOS
|
||
MOVI ENEMIES,A1
|
||
CALLA INSERT_OBJ_SUPP
|
||
CREATE INDPID,TUNNEL_CYCLE
|
||
TUNNEL_DIE:
|
||
DIE
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* DENT_GROUND - PROCESS TO DENT THE GROUND ON A GIVEN MOVE POINT. *
|
||
* A11 = MOVE POINT TO PLACE DENT. *
|
||
* *
|
||
**************************************************************************
|
||
DENT_GROUND:
|
||
CALLR GETPITINIT
|
||
|
||
CALLA GPALOBJSTF ;DO THE OBJECT
|
||
JRZ DENT_GROUND_DIE
|
||
MOVE A13,*A0(OPLINK),L ;LINK IT UP
|
||
MOVE A0,A8
|
||
MOVE *A11(MOVEPOS),A3,L
|
||
CALLA OBJ_TO_PNT
|
||
CALLA SET_TZPOS
|
||
CALLA INSERT_OBJ
|
||
SLEEP 10 ;KEEP IT UP
|
||
CALLA DELETE_OBJ
|
||
DENT_GROUND_DIE:
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* GETPITINIT - GET THE CORRECT PIT INIT TABLE FOR THE WAVE. *
|
||
* GLOBALS: *
|
||
* BGND_TYPE,W *
|
||
* RETURNS: *
|
||
* A14 = CORRECT PIT INIT TO USE *
|
||
* *
|
||
**************************************************************************
|
||
GETPITINIT:
|
||
MOVI PIT_TAB,A14
|
||
JRUC GETINIT_G
|
||
**************************************************************************
|
||
* *
|
||
* GETTROGPITINIT - GET THE CORRECT PIT INIT TABLE FOR THE TROG APPEAR. *
|
||
* GLOBALS: *
|
||
* BGND_TYPE,W *
|
||
* RETURNS: *
|
||
* A14 = CORRECT PIT INIT TO USE *
|
||
* *
|
||
**************************************************************************
|
||
GETTROGPITINIT:
|
||
MOVI TROGPIT_TAB,A14
|
||
JRUC GETINIT_G
|
||
**************************************************************************
|
||
* *
|
||
* GETTARINIT - GET THE PROPER TARPIT INIT TABLE ACCORDING TO BACKGROUND. *
|
||
* RETURNS: *
|
||
* A14 = TAR INIT TABLE *
|
||
* *
|
||
**************************************************************************
|
||
GETTARINIT
|
||
MOVI TAR_TAB,A14
|
||
GETINIT_G:
|
||
PUSH A0
|
||
MOVE @BGND_TYPE,A0,W
|
||
SLL 5,A0
|
||
ADD A0,A14
|
||
MOVE *A14,A14,L
|
||
PULL A0
|
||
RETS
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* START_POWERUPS - ROUTINE TO START THE POWERUPS. *
|
||
* A5 = [SLEEP TIME BETWEEN POWERUPS, TOTAL OF EACH POWER UP] *
|
||
* A6 = [POWERUP COUNTS, POWERUP FLAGS] *
|
||
* POWERUP FLAGS: *
|
||
* BIT 0 = HORSESHOE *
|
||
* BIT 1 = PINEAPPLE *
|
||
* BIT 2 = ICE CUBE *
|
||
* BIT 4 = CHILI PEPPER *
|
||
* *
|
||
**************************************************************************
|
||
START_POWERUPS
|
||
MMTM SP,A0,A1,A7,A8,A10
|
||
MOVE A5,A8
|
||
MOVE A6,A10
|
||
MOVI POWERUPPID,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA EXISTP
|
||
JRNZ SP_X
|
||
CREATE POWERUPPID,POWERUP_DISPATCH
|
||
SP_X
|
||
MMFM SP,A0,A1,A7,A8,A10
|
||
RETS
|
||
*
|
||
*FLAG EQUATES FOR "START_POWERUPS"
|
||
HSHOE .EQU 1
|
||
PAPPLE .EQU 2
|
||
ICE .EQU 4
|
||
CHILI .EQU 8
|
||
|
||
POWERUPCNT .EQU PDATA
|
||
POWERUPUSED .EQU PDATA+10H
|
||
POWERUPDATA .EQU PDATA+110H
|
||
NPOWERUPS .EQU 4
|
||
|
||
**************************************************************************
|
||
* *
|
||
* POWERUP_DISPATCH - PROCESS TO RANDOMLY SELECT FROM THE AVAILABLE *
|
||
* POWERUPS THIS WAVE AND OUTPUT THEM. *
|
||
* A8 = A5 FROM "START_POWERUPS" *
|
||
* A10 = A6 FROM "START_POWERUPS" *
|
||
* *
|
||
**************************************************************************
|
||
POWERUP_DISPATCH
|
||
CALLA CLRPDATA
|
||
MOVI POWERUP_TAB,A1
|
||
MOVE A13,A2
|
||
ADDI POWERUPDATA,A2
|
||
MOVI NPOWERUPS,A3
|
||
CLR A4
|
||
LD_INIT_LP
|
||
SRL 1,A10
|
||
JRNC LD_INIT_NXT
|
||
MOVE *A1+,*A2+,L ;GET THE ROUTINE
|
||
MOVE *A1+,*A2+,L ;GET THE OID AND PROCID
|
||
INC A4
|
||
LD_INIT_NXT
|
||
DSJ A3,LD_INIT_LP
|
||
MOVE A4,*A13(POWERUPCNT),W
|
||
|
||
CLR A9
|
||
MOVX A8,A9 ;TOTAL OBJECTS TO PUT OUT
|
||
SRL 16,A8 ;SLEEP TIME
|
||
JRUC LD_IMM
|
||
LD_LOOP
|
||
SLEEPR A8 ;MIN TIME BETWEEN OBJECTS
|
||
MOVE @TGEN_CNT,A1,W ;SKIP PAUSE IF WE ARE USING GENERATORS
|
||
JRNZ LD_IMM
|
||
MOVI EGGS,A1
|
||
CALLA CNTSUPP ;ARE THERE EGGS LEFT?
|
||
JRZ LD_LOOP ;BR = NO, JUST WAIT
|
||
LD_IMM
|
||
MOVI FLOWERPID,A0
|
||
MOVI 0FFF0H,A1
|
||
CALLA EXISTP ;IS THERE A POWERUP OUT THERE?
|
||
JRNZ LD_RAND_NXT ;BR = YES, WAIT FOR IT TO CRUISE
|
||
|
||
MOVE *A13(POWERUPCNT),A0,W
|
||
CALLA RANDU ;SELECT AN AVAILABLE POWERUP
|
||
DEC A0
|
||
MOVE A0,A6
|
||
SLL 4,A6
|
||
ADD A13,A6
|
||
ADDI POWERUPUSED,A6
|
||
MOVE *A6,A2,W
|
||
CMP A9,A2 ;HAVE WE USED ALL OF THIS TYPE?
|
||
JRLO LD_OK ;BR = NO
|
||
LD_RAND_NXT
|
||
SLOOP 5,LD_IMM
|
||
|
||
LD_OK
|
||
MOVE A0,A1
|
||
SLL 6,A1
|
||
ADDI POWERUPDATA,A1
|
||
ADD A13,A1
|
||
|
||
MOVE *A1+,A11,L
|
||
MOVE *A1+,A10,W
|
||
MOVE *A1+,A5,W
|
||
|
||
CMPI PINEAPPLE_SPINNER,A11
|
||
JRNE LD_OK_PCK
|
||
CALLA CK_TREX ;SPECIAL CHECK FOR THE PINEAPPLE
|
||
JRNZ LD_RAND_NXT
|
||
|
||
LD_OK_PCK
|
||
**** MOVE A5,A0
|
||
**** CLR A1
|
||
**** NOT A1
|
||
**** CALLA EXISTP
|
||
**** JRNZ LD_RAND_NXT
|
||
|
||
INC A2
|
||
MOVE A2,*A6,W ;SHOW THE NEW COUNT
|
||
|
||
MOVE A5,A1
|
||
|
||
MOVE A11,A7
|
||
CALLA GETPRC
|
||
|
||
SLEEP 4
|
||
|
||
MOVE *A13(POWERUPCNT),A4,W
|
||
MOVE A13,A1
|
||
ADDI POWERUPUSED,A1
|
||
LD_CK_LP
|
||
MOVE *A1+,A0,W ;SEE IF WE'VE EXHAUSTED ALL POWERUPS
|
||
CMP A9,A0
|
||
JRLO LD_LOOP
|
||
DSJS A4,LD_CK_LP
|
||
|
||
LD_HOLD_LP
|
||
SLOOP 300,LD_HOLD_LP ;JUST HANG TO STALL MORE POWERUPS
|
||
DIE
|
||
|
||
POWERUP_TAB
|
||
.LONG HSHOE_TOSS
|
||
.WORD HSHOEOID,HSHOEPID
|
||
.LONG PINEAPPLE_SPINNER
|
||
.WORD PINEAPPLEOID,PINEAPPLEPID
|
||
.LONG ICE_T
|
||
.WORD ICEOID,ICEPID
|
||
.LONG RED_HOT
|
||
.WORD CHILIOID,CHILIPID
|
||
|
||
**************************************************************************
|
||
* *
|
||
* PINEAPPLE_SPINNER *
|
||
* *
|
||
* SPIN THE PINEAPPLE AND GIVE EVERYBODY SOMETHING TO WATCH AND *
|
||
* KILL *
|
||
* *
|
||
* ENTRY *
|
||
* A10 OID TO USE *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
* CALL *
|
||
* CREATE *
|
||
* *
|
||
**************************************************************************
|
||
PINEAPPLE_SPINNER:
|
||
SLEEP 20 ; INSURES WE PICK UP STARTING
|
||
CLR A7
|
||
CALLA FIND_FARTHEST_CPNT
|
||
JRZ PINEAPPLE_SPINNER
|
||
MOVI PAPPLE_TIMEOUT,A8
|
||
MOVE A8,*A13(PDATA),L
|
||
CLR A8
|
||
MOVI PINEAPPLEGROW,A9
|
||
MOVI PINEAPPLEINIT,A11
|
||
JRUC PLANT_PROC_SELECT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* PAPPLE_TIMEOUT - JUMP HERE TO TIME OUT THE PINEAPPLE ICON. *
|
||
* A8 = INSERTED PINEAPPLE OBJECT. *
|
||
* *
|
||
**************************************************************************
|
||
PAPPLE_TIMEOUT
|
||
MOVI PINEAPPLESPIN,A9
|
||
JSRP TIMEOUT_ANI
|
||
MOVI PINEAPPLE_OUT,A9
|
||
POWERUP_ANI_AND_DIE
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
CALLA FREE_MOVE_EGG
|
||
MOVI ENEMIES,A1
|
||
CALLA DELETE_OBJ_SUPP
|
||
JRUC POWERUP_TO
|
||
|
||
**************************************************************************
|
||
* *
|
||
* FLOWER_START - START SOME FLOWERS *
|
||
* A5 = [RANDOM # TO ADD, # TO START] *
|
||
* A6 = OID *
|
||
* *
|
||
**************************************************************************
|
||
FLOWER_START:
|
||
MMTM SP,A1,A7,A10
|
||
MOVI FLOWERPID,A1
|
||
MOVI FLOWER_PROCESS,A7
|
||
MOVE A6,A10
|
||
CALLR ENEMY_START
|
||
MMFM SP,A1,A7,A10
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* FLOWER_PROCESS - PROCESS TO CREATE AND ANIMATE A SPEED FLOWER *
|
||
* A10 = OID *
|
||
* *
|
||
**************************************************************************
|
||
FLOWER_PROCESS:
|
||
CLR A8
|
||
MOVE A8,*A13(PDATA),L
|
||
MOVI FLOWER_ANIM,A9
|
||
MOVI FLOWERINIT,A11
|
||
JRUC PLANT_PROC
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SHROOM_PROCESS - PROCESS TO CREATE AND ANIMATE A MUSHROOM *
|
||
* A10 = OID *
|
||
* *
|
||
**************************************************************************
|
||
SHROOM_PROCESS
|
||
CLR A8
|
||
MOVE A8,*A13(PDATA),L
|
||
MOVI SHROOM_ANIM,A9
|
||
MOVI SHROOMINIT,A11
|
||
JRUC PLANT_PROC
|
||
|
||
**************************************************************************
|
||
* *
|
||
* HSHOE_TOSS - PROCESS TO CREATE AND ANIMATE A HORSESHOE *
|
||
* A10 = OID *
|
||
* *
|
||
**************************************************************************
|
||
HSHOE_TOSS
|
||
MOVI HSHOE_TIMEOUT,A8
|
||
MOVE A8,*A13(PDATA),L
|
||
MOVI SET_TZPOS,A8
|
||
MOVI HSHOE_ANIM,A9
|
||
MOVI HSHOEINIT,A11
|
||
OUT_IMMEADIATE:
|
||
SLEEP 10
|
||
CALLA FIND_OPEN_CPNT
|
||
JRZ OUT_IMMEADIATE
|
||
JRUC PLANT_PROC_SELECT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* HSHOE_TIMEOUT - JUMP HERE TO TIME OUT THE HORSESHOE ICON. *
|
||
* A8 = INSERTED HORSEHOE OBJECT. *
|
||
* *
|
||
**************************************************************************
|
||
HSHOE_TIMEOUT
|
||
MOVI HSHOE_FLASH,A9
|
||
JSRP TIMEOUT_ANI
|
||
MOVI HSHOE_OUT,A9
|
||
JRUC POWERUP_ANI_AND_DIE
|
||
**** MOVK 1,A1
|
||
**** JSRP FRANIM
|
||
**** MOVI ENEMIES,A1
|
||
**** CALLA DELETE_OBJ_SUPP
|
||
**** JRUC POWERUP_TO
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TIMEOUT_ANI - ANIMATION TIMEOUT FOR POWERUPS, SPEEDS ANIMATION OVER *
|
||
* TIME. USES POWERUP_DURATION AS ITS BASIS *
|
||
* A9 = ANIMATION SCRIPT TO TIMEOUT *
|
||
* NOTE: CALL WITH JSRP *
|
||
* TRASHES PTEMP1 *
|
||
* *
|
||
**************************************************************************
|
||
TIMEOUT_ANI
|
||
MMTM A12,A9,A10
|
||
MOVE @POWERUP_DURATION,A10,W ;GET THE NORMAL TIME
|
||
MOVE A9,*A13(PTEMP1),L
|
||
TOA_RELOAD
|
||
MOVE *A13(PTEMP1),A9,L
|
||
MOVE A10,A11
|
||
CMPI 100H,A11
|
||
JRHI TOA_HIGH
|
||
CMPI 20H,A11
|
||
JRHI TOA_OK
|
||
MOVI 20H,A11
|
||
JRUC TOA_OK
|
||
TOA_HIGH
|
||
CLR A11
|
||
TOA_OK
|
||
SLL 16,A11
|
||
TOA_FRAME
|
||
MOVK 4,A1
|
||
MOVY A11,A1 ;SEND IN THE MULTIPLIER
|
||
JSRP FRANIM
|
||
JRC TOA_RELOAD
|
||
SUB A0,A10
|
||
JRLE TOA_DONE
|
||
SLOOPR A0,TOA_FRAME
|
||
TOA_DONE
|
||
MMFM A12,A9,A10
|
||
RETP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* ICE_T - PROCESS TO CREATE AND ANIMATE AN ICE CUBE *
|
||
* A10 = OID *
|
||
* *
|
||
**************************************************************************
|
||
ICE_T
|
||
MOVI ICE_MELT,A8
|
||
MOVE A8,*A13(PDATA),L
|
||
CLR A8
|
||
MOVI ICE_ANIM,A9
|
||
MOVI ICEINIT,A11
|
||
JRUC OUT_IMMEADIATE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* ICE_MELT - JUMP HERE TO TIMEOUT ICE CUBE. *
|
||
* A8 = INSERTED ICE CUBE OBJECT *
|
||
* *
|
||
**************************************************************************
|
||
ICE_MELT
|
||
MOVI ICE_FLASH,A9
|
||
JSRP TIMEOUT_ANI
|
||
MOVI ICE_OUT,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
JRUC DOUBLE_ANI_AND_DIE
|
||
|
||
**** MOVI ENEMIES,A1
|
||
**** CALLA DELETE_SUPP
|
||
**** MOVK 1,A1
|
||
**** JSRP FRANIM
|
||
**** CALLA FREE_MOVE_EGG
|
||
**** CALLA DELETE_OBJ
|
||
**** JRUC POWERUP_TO
|
||
|
||
**************************************************************************
|
||
* *
|
||
* RED_HOT - PROCESS TO CREATE AND ANIMATE THE RED HOT CHILI PEPPER *
|
||
* A10 = OID *
|
||
* *
|
||
**************************************************************************
|
||
RED_HOT
|
||
MOVI RED_COLD,A8
|
||
MOVE A8,*A13(PDATA),L
|
||
CLR A8
|
||
MOVI CHILI_ANIM,A9
|
||
MOVI CHILIINIT,A11
|
||
JRUC OUT_IMMEADIATE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* RED_COLD - JUMP HERE TO TIMEOUT CHILI PEPPER. *
|
||
* A8 = INSERTED CHILI PEPPER OBJECT *
|
||
* *
|
||
**************************************************************************
|
||
RED_COLD
|
||
MOVI CHILI_BURN,A9
|
||
JSRP TIMEOUT_ANI
|
||
MOVI FIRE_DOWN,A9
|
||
|
||
DOUBLE_ANI_AND_DIE
|
||
MOVI ENEMIES,A1
|
||
CALLA DELETE_SUPP
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
CALLA FREE_MOVE_EGG
|
||
CALLA DELETE_OBJ
|
||
|
||
POWERUP_TO
|
||
CLR A0
|
||
MOVE A0,*A8(OPLINK),L
|
||
JAUC PLANT_STALL
|
||
|
||
**************************************************************************
|
||
* *
|
||
* PLANT_PROC - PROCESS TO START A PLANT. WILL SELECT AN OPEN CENTER. *
|
||
* A8 = Z POSITION ROUTINE TO CALL (0 = CALL SET_MZPOS) *
|
||
* A9 = ANIMATION SCRIPT *
|
||
* A10 = OID *
|
||
* A11 = INIT TABLE FOR THIS PLANT *
|
||
* *A13(PDATA),L = JUMP HERE AFTER ALL ANIMATIONS ARE DONE. (0 = NO JUMP) *
|
||
* *
|
||
**************************************************************************
|
||
PLANT_PROC:
|
||
SLEEP 60 ; GIVE EVERYBODY A CHANCE TO WAKE UP
|
||
PLANT_PROC_AGAIN:
|
||
MOVE @BONUS_WAVE,A0,W
|
||
JRZ PP_NORM
|
||
MOVK 5,A0
|
||
JRUC PP_SEARCH
|
||
PP_NORM
|
||
MOVI 120,B0 ; SOMEWHERE BETWEEN 2 AND 15
|
||
MOVI 900,B1
|
||
CALLA RANGRAND
|
||
PP_SEARCH
|
||
SLEEPR A0
|
||
CALLA FIND_OPEN_CPNT
|
||
JRZ PLANT_PROC_AGAIN
|
||
*
|
||
*A1 = PTR TO CENTER MOVE
|
||
*
|
||
PLANT_PROC_SELECT
|
||
MOVE A1,A5
|
||
MOVE A11,A14
|
||
CALLA GPALOBJSTF ;DO THE OBJECT
|
||
JRZ PLANT_PROC_DIE
|
||
|
||
MOVE A8,*A13(PDATA+20H),L
|
||
|
||
MOVE A13,*A0(OPLINK),L ;LINK IT UP
|
||
MOVE A10,*A0(OID),W
|
||
MOVE A0,A8
|
||
MOVE A5,A0
|
||
CALLA TOMOVE ;PLACE THE FLOWER ON THE CENTER MOVE
|
||
|
||
MOVB A10,*A5(CMOVEEGG) ;MARK IT TAKEN
|
||
|
||
MOVE A8,A0
|
||
MOVE *A13(PDATA+20H),A7,L
|
||
JRZ PP_MZSET
|
||
CALL A7
|
||
JRUC PP_INSERT
|
||
PP_MZSET
|
||
CALLA SET_MZPOS
|
||
PP_INSERT
|
||
CALLA INSERT_OBJ
|
||
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVI ENEMIES,A1
|
||
CALLA INSERT_SUPP ;MAKE US COLLIDABLE
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
MOVE *A13(PDATA),A7,L ;SHALL WE JUMP SOMEWHERE?
|
||
JRZ PP_NRMX ;BR = NO
|
||
JUMP A7
|
||
PP_NRMX
|
||
CLR A0
|
||
MOVE A0,*A8(OPLINK),L
|
||
PLANT_PROC_DIE:
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SHROOM_START - START SOME SHROOMS PITS *
|
||
* A5 = [RANDOM # TO ADD, # TO START] *
|
||
* A6 = OID *
|
||
* *
|
||
**************************************************************************
|
||
SHROOM_START:
|
||
MMTM SP,A1,A7,A10
|
||
MOVI SHROOMPID,A1
|
||
MOVI SHROOM_PROCESS,A7
|
||
MOVE A6,A10
|
||
CALLR ENEMY_START
|
||
MMFM SP,A1,A7,A10
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* BAITER PIT ROUTINES *
|
||
* *
|
||
**************************************************************************
|
||
TB_SLEEP .EQU 40 ;TICKS PER LOOP OF TAR BAITER DISPATCH
|
||
MAX_BAITERS .EQU 15 ;MAXIMUM BAITERS ALLOWED AT ONE TIME
|
||
**************************************************************************
|
||
* *
|
||
* TARBAITER - PROCESS TO CREATE TAR PIT BAITERS AS NEEDED *
|
||
* *
|
||
**************************************************************************
|
||
TARBAITER:
|
||
MOVE @BAITER_TIME,A9,W
|
||
JRZ TBDIE
|
||
MOVE @EGG_DIVISOR,A0,W
|
||
JRZ TB_SKIP_INC
|
||
DEC A0
|
||
MOVI 600,A1
|
||
MPYU A0,A1
|
||
ADD A1,A9 ;INCREASE BAITER TIME FOR EVERY PLAYER
|
||
|
||
TB_SKIP_INC
|
||
MOVE @TUTOR,A0,W
|
||
JRNZ TBDIE
|
||
MOVE @BONUS_WAVE,A0,W
|
||
JRNZ TBDIE
|
||
|
||
TB_WAIT_LP
|
||
SLEEP 10
|
||
MOVE @WAVETIME,A0,W
|
||
CMP A9,A0
|
||
JRLS TB_WAIT_LP
|
||
|
||
TB_START_LP
|
||
MOVI TARBAITOID,A10
|
||
CREATE TARBAITPID,BAIT_PROCESS
|
||
CLR A8
|
||
MOVE A9,A11
|
||
JRUC TBSLEEP
|
||
TBLOOP
|
||
MOVI TARBAITPID,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA EXISTP
|
||
JRZ TB_START_LP
|
||
INC A8
|
||
TBSLEEP:
|
||
SLEEP TB_SLEEP
|
||
MOVE A11,A11
|
||
JRZ TBFINAL
|
||
CMPI 1,A8
|
||
JRNE TBREDUCE
|
||
SRL 1,A9
|
||
TBREDUCE
|
||
SUBI TB_SLEEP,A11
|
||
JRGT TBLOOP
|
||
|
||
CMPI TB_SLEEP,A9
|
||
JRLS TB_START_LP
|
||
*
|
||
*HANDLE WAVE SPEED UPS HERE
|
||
*
|
||
SOUND1 TEMPO_UP ;SPEED UP THE SOUNDS
|
||
MOVE @TROGSPEED,A0,W ;CURRENT TROG SPEED
|
||
MOVE @MAX_TROGSPEED,A1,W ;MAX TROG SPEED THIS WAVE
|
||
CMP A1,A0 ;HAVE WE SPED UP ENOUGH
|
||
JRHS TB_START_LP ;BR = YES
|
||
ADDI 100H,A0
|
||
MOVE A0,@TROGSPEED,W ;FUTURE TROGS WILL WALK FASTER
|
||
ADDIM 100H,@SPRGSPEED,W ;SPEED UP SPRING DUDE TOO
|
||
JRUC TB_START_LP
|
||
|
||
TBFINAL
|
||
SLOOP TB_SLEEP,TBLOOP
|
||
|
||
TBDIE
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* BAIT_PROCESS *
|
||
* *
|
||
* PROCESS TO RUN A BAITER PIT -- BRING IT IN AND THEN START *
|
||
* MOVING TOWARDS THE PLAYER *
|
||
* *
|
||
* NOTE : THERE NEEDS TO BE SOME WAY OF SPECIFYING HOW AGGRESSIVE *
|
||
* THE PIT WILL BE -- IN TERMS OF STARTING DISTANCE AND TIME *
|
||
* BETWEEN RELOCATIONS *
|
||
* *
|
||
* ENTRY *
|
||
* A10 OID *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
**************************************************************************
|
||
BAIT_PROCESS:
|
||
MOVE *A13(PROCID),A1,W
|
||
CALLA COUNT_PROCESSES
|
||
CMPI MAX_BAITERS,A0
|
||
JRHI BAIT_PROC_DIE
|
||
|
||
MOVK 8,A1 ; PLACE TO START FROM
|
||
MOVE A1,*A13(PTEMP1),L ; INTERNAL SEARCH THING
|
||
|
||
CALLR PIMP_DINO ; DINO TO PICK ON
|
||
MOVE A8,A8
|
||
JRZ BAIT_PROC_DIE
|
||
|
||
MOVE *A13(PTEMP1),A7,L ; STARTING DISTANCE FROM DINO
|
||
CALLR FIND_PIMP_CPNT ; LOCATE A STARTING PLACE
|
||
JRZ BAIT_PROC_DIE ; NOTHING MEETS THE CRITERION
|
||
MOVE A1,A5
|
||
|
||
CALLR GETTARINIT
|
||
|
||
CALLA GPALOBJSTF ;DO THE OBJECT
|
||
JRZ BAIT_PROC_DIE
|
||
MOVE A13,*A0(OPLINK),L ;LINK IT UP
|
||
MOVE A10,*A0(OID),W
|
||
MOVE A0,A8
|
||
CALLA OBJ_OFF
|
||
CALLA INSERT_OBJ
|
||
;
|
||
; MOVE THE PIT AROUND THE SCREEN
|
||
;
|
||
BAIT_LOOP:
|
||
MOVE A5,A0
|
||
MOVE A5,A11 ; SAVE LAST POSITION
|
||
CALLA TOMOVE ;PLACE THE TAR ON THE CENTER MOVE
|
||
|
||
MOVB *A5(CMOVEEGG),A0
|
||
INC A0
|
||
JRZ BTA_OK_SPOT ;BAITER MAY NOT TAKE THIS SPOT
|
||
SLEEP 5
|
||
JRUC BTA_NEXT
|
||
|
||
BTA_OK_SPOT
|
||
MOVI TARBAITID,A0
|
||
MOVB A0,*A5(CMOVEEGG) ; MARK IT TAKEN
|
||
|
||
BAIT_NO_SPOT:
|
||
MOVE A8,A0
|
||
CALLA SET_TZPOS
|
||
CALLA OBJ_ON
|
||
MOVI TARIN,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM ; MAKE THE TARPIT GROW
|
||
MOVI ENEMIES,A1
|
||
CALLA INSERT_SUPP ; MAKE US COLLIDABLE
|
||
|
||
MOVI TAR_ANIM1,A9
|
||
MOVI 100,A10
|
||
BTALOOP:
|
||
MOVK 4,A1
|
||
JSRP FRANIM ;TOIL, TOIL, BUBBLE AND BOIL
|
||
SUB A0,A10
|
||
JRN BTADONE
|
||
SLEEPR A0
|
||
JRUC BTALOOP
|
||
BTADONE
|
||
MOVI ENEMIES,A1
|
||
CALLA DELETE_SUPP ; MAKE US NON-COLLIDABLE
|
||
MOVI TAROUT,A9
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
CALLA FREE_MOVE_EGG ; MARK SPOT FREE
|
||
CALLA OBJ_OFF
|
||
BTA_NEXT
|
||
MMTM SP,A7,A8,A9
|
||
CALLR PIMP_DINO ; DINO TO PICK ON
|
||
MOVE A8,A8
|
||
JRNZ BLLIVEDINO
|
||
MMFM SP,A7,A8,A9
|
||
JRUC BAIT_PROC_DEL_DIE
|
||
|
||
BLLIVEDINO
|
||
MOVE *A13(PTEMP1),A7,L ; STARTING DISTANCE FROM DINO
|
||
DEC A7
|
||
JRP BL3
|
||
MOVK 1,A7
|
||
BL3 MOVE A7,*A13(PTEMP1),L
|
||
CALLR FIND_PIMP_CPNT ; LOCATE A STARTING PLACE
|
||
|
||
MMFM SP,A7,A8,A9
|
||
JRZ BL1 ; NOTHING MEETS THE CRITERION
|
||
BL2
|
||
MOVE A1,A5
|
||
JRUC BAIT_LOOP
|
||
BL1 MOVE A11,A1
|
||
JRUC BL2
|
||
|
||
BAIT_PROC_DEL_DIE
|
||
CALLA DELETE_OBJ
|
||
CLR A0
|
||
MOVE A0,*A8(OPLINK),L
|
||
BAIT_PROC_DIE:
|
||
DIE
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* FIND_PIMP_CPNT FIND THE PIMP CENTER POINT *
|
||
* *
|
||
* ENTRY *
|
||
* A7 NUMBER OF STEPS TO LOOK AHEAD *
|
||
* A8 DINO POINTER *
|
||
* A9 DINO OBJECT POINTER *
|
||
* *
|
||
* EXIT *
|
||
* A1 CENTER POINT TO STICK A PIT ( BEST GUESS ) *
|
||
* *
|
||
**************************************************************************
|
||
|
||
FIND_PIMP_CPNT:
|
||
MMTM SP,A0,A2,A7,A8,A9
|
||
MOVE *A8(DDIR),A2,W ; DIRECTION
|
||
MOVE A9,A8 ; GOTTA CALL SOMETHING HERE
|
||
CALLA GETCPNT
|
||
CALLA FIND_CLOSE_CPNT
|
||
;
|
||
MOVE *A0(CMOVEMPTR),A1,L ; GET MOVE POINTER
|
||
;
|
||
; A1 MOVE POINTER OF WHERE TO START LOOKING
|
||
; A2 FORWARD DIRECTION OF SEARCH
|
||
; A7 NUMBER OF STEPS TO LOOK FOR
|
||
;
|
||
CALLR LOOK_RECURSE ; LOOK FORWARD FROM GIVEN LOCATION
|
||
JRNZ FPCPRET ; FOUND A LOCATION
|
||
;
|
||
; OK, TURN AROUND AND LOOK BEHIND US
|
||
;
|
||
CALLR TURN_RIGHT
|
||
CALLR TURN_RIGHT ; ABOUT FACE ME
|
||
;
|
||
CALLR LOOK_RECURSE
|
||
JRNZ FPCPRET ; FOUND SOMETHING MEAN TO DO
|
||
;
|
||
MOVK 1,A7 ; OK HOTSHOT, TRY THIS ONE
|
||
CALLR LOOK_RECURSE
|
||
JRZ FPCRANDOM ; IN SOME WEIRD CASE
|
||
;
|
||
FPCPRET
|
||
;
|
||
; GOT A MOVE POINT -- TURN IT INTO A CENTER POINT FOR RETURN
|
||
;
|
||
MOVE *A1(MOVECPTR),A1,L ; GET THE CENTER MOVE BACK
|
||
JRNN FPCRET
|
||
;
|
||
FPCRANDOM
|
||
;
|
||
; COULDN'T MAKE ANYTHING WORK -- TAKE THE RANDOM CASE
|
||
;
|
||
CALLR FIND_COOL_CPNT ; GET ONE
|
||
;
|
||
FPCRET
|
||
MOVE A1,A1 ; SET SOME FLAGS
|
||
MMFM SP,A0,A2,A7,A8,A9
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* LOOK_RECURSE FOLLOW A MOVE AS FAR AS WE CAN GO *
|
||
* *
|
||
* ENTRY *
|
||
* A1 MOVE POINTER OF WHERE TO START LOOKING *
|
||
* A2 FORWARD DIRECTION OF SEARCH *
|
||
* A7 NUMBER OF STEPS TO LOOK FOR *
|
||
* *
|
||
* EXIT *
|
||
* A1 MOVE POINTER OF WHERE TO START LOOKING *
|
||
* Z COULDN'T FIND ANYTHING *
|
||
* NZ FOUND SOMETHING *
|
||
* *
|
||
**************************************************************************
|
||
|
||
LOOK_RECURSE:
|
||
MMTM SP,A0,A2,A3,A4,A5,A6,A7,A8
|
||
|
||
CALLR LOOK_AROUND ; GET MOVES AROUND ME
|
||
|
||
CMPI 0,A3 ; CHECK FOR STUCK IN A 1x1
|
||
JRNZ LRGO
|
||
CMPI 0,A4
|
||
JRNZ LRGO
|
||
CMPI 0,A5
|
||
JRNZ LRGO
|
||
CMPI 0,A6
|
||
JRNZ LRGO
|
||
**** MOVE *A1(MOVECPTR),A0,L
|
||
**** JRN LRINBOX
|
||
**** MOVB *A0(CMOVEEGG),A0
|
||
**** INC A0
|
||
**** JRNZ LRINBOX
|
||
JRUC LRRET
|
||
|
||
LRGO
|
||
CMP A7,A3 ; FORWARD > TOTAL
|
||
JRLT LRF1
|
||
MOVE A7,A0
|
||
CALLR MOVE_SPACES ; MOVE TOTAL SPACES FORWARD
|
||
JRUC LRRET
|
||
LRF1
|
||
CMPI 0,A3 ; FORWARD > 0
|
||
JRZ LRF2
|
||
MOVE A3,A0
|
||
CALLR MOVE_SPACES ; MOVE AS FAR FORWARD AS POSSIBLE
|
||
SUB A3,A7 ; TOTAL = TOTAL - FORWARD
|
||
CALLR LOOK_RECURSE ; START RECURSION
|
||
JRUC LRRET
|
||
LRF2
|
||
;
|
||
; OK, TAKE A RANDOM LOOK EITHER LEFT OR RIGHT
|
||
;
|
||
CLR A8 ; "ALREADY LOOKED" FLAG
|
||
CALLA RANDOM
|
||
ANDI 1,A0 ; ODD/EVEN
|
||
JRZ LRLEFT ; LOOK LEFT
|
||
JRUC LRRIGHT ; OR RIGHT
|
||
;
|
||
; LOOK LEFT
|
||
;
|
||
LRLEFT
|
||
CMP A7,A4 ; LEFT > TOTAL
|
||
JRLT LRL1
|
||
CALLR TURN_LEFT
|
||
MOVE A7,A0
|
||
CALLR MOVE_SPACES ; MOVE LEFT TOTAL SPACES
|
||
JRUC LRRET
|
||
LRL1
|
||
CMPI 0,A4 ; LEFT > 0
|
||
JRZ LRL2
|
||
CALLR TURN_LEFT
|
||
MOVE A4,A0
|
||
CALLR MOVE_SPACES ; MOVE AS FAR FORWARD AS POSSIBLE
|
||
SUB A4,A7 ; TOTAL = TOTAL - LEFT
|
||
CALLR LOOK_RECURSE ; START RECURSION
|
||
JRUC LRRET
|
||
LRL2
|
||
MOVE A8,A8
|
||
JRNZ LRINBOX ; WE ALREADY CHECKED RIGHT
|
||
MOVK 1,A8 ; FLAG WE LOOKED LEFT
|
||
;
|
||
; CHECK RIGHT
|
||
;
|
||
LRRIGHT
|
||
CMP A7,A5 ; RIGHT > TOTAL
|
||
JRLT LRR1
|
||
CALLR TURN_RIGHT
|
||
MOVE A7,A0
|
||
CALLR MOVE_SPACES ; MOVE RIGHT TOTAL SPACES
|
||
JRUC LRRET
|
||
LRR1
|
||
CMPI 0,A5 ; RIGHT > 0
|
||
JRZ LRR2
|
||
CALLR TURN_RIGHT
|
||
MOVE A5,A0
|
||
CALLR MOVE_SPACES ; MOVE AS FAR RIGHT AS POSSIBLE
|
||
SUB A5,A7 ; TOTAL = TOTAL - RIGHT
|
||
CALLR LOOK_RECURSE ; START RECURSION
|
||
JRUC LRRET
|
||
LRR2
|
||
MOVE A8,A8
|
||
JRNZ LRINBOX ; SITTING IN A BOX
|
||
MOVK 1,A6 ; FLAG WE LOOKED RIGHT
|
||
JRUC LRLEFT ; LOOK TO THE LEFT
|
||
;
|
||
LRINBOX
|
||
;
|
||
; FORWARD = LEFT = RIGHT = 0 -- WE CAN'T GO ANYWHERE
|
||
;
|
||
SETZ ; SET THE ZERO BIT
|
||
JRUC LRFRET
|
||
;
|
||
LRRET
|
||
MOVE A1,A1
|
||
LRFRET
|
||
MMFM SP,A0,A2,A3,A4,A5,A6,A7,A8
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* LOOK_AROUND GIVEN A DIRECTION AND START, RETURN DIRS FOR F,L,R,B *
|
||
* *
|
||
* ENTRY *
|
||
* A1 MOVE POINTER *
|
||
* A2 DIRECTION POINTER *
|
||
* *
|
||
* EXIT *
|
||
* A3 HOW FAR FORWARD *
|
||
* A4 HOW FAR LEFT *
|
||
* A5 HOW FAR RIGHT *
|
||
* A6 HOW FAR BEHIND *
|
||
* *
|
||
**************************************************************************
|
||
|
||
LOOK_AROUND:
|
||
MMTM SP,A0,A2,A7
|
||
CLR A3
|
||
CLR A4
|
||
CLR A5
|
||
CLR A6
|
||
MOVE A2,A0 ; DIRECTION ( FORWARD )
|
||
CALLA SEARCH_EMPTY ; SEE HOW FAR WE CAN GO
|
||
MOVE A5,A3 ; SAVE FORWARD DISTANCE
|
||
CALLR TURN_LEFT
|
||
MOVE A2,A0
|
||
CALLA SEARCH_EMPTY
|
||
MOVE A5,A4 ; SAVE LEFT DISTANCE
|
||
CALLR TURN_LEFT
|
||
MOVE A2,A0
|
||
CALLA SEARCH_EMPTY
|
||
MOVE A5,A7 ; SAVE BACKWARD DISTANCE
|
||
CALLR TURN_LEFT
|
||
MOVE A2,A0
|
||
CALLA SEARCH_EMPTY ; A5 IS RIGHT DISTANCE
|
||
MOVE A7,A6
|
||
SRL 1,A3
|
||
SRL 1,A4
|
||
SRL 1,A5
|
||
SRL 1,A6
|
||
MMFM SP,A0,A2,A7
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SEARCH_EMPTY - SEARCH A DIRECTION UNTIL A WALL OR DEATH IS HIT *
|
||
* A0 = DIRECTION TO SEARCH *
|
||
* A1 = PTR TO STARTING MOVE PNT *
|
||
* RETURNS: *
|
||
* A5 = # OF STEPS 'TIL END *
|
||
* A6 = END TYPE (0 = WALL, 1 = DEATH) *
|
||
* *
|
||
**************************************************************************
|
||
SEARCH_EMPTY:
|
||
MMTM SP,A0,A1
|
||
SWAP A0,A1
|
||
SLL 4,A1
|
||
ADDI MOVEREL,A1
|
||
CLR A5
|
||
SRCH_SAFLP:
|
||
ADD A1,A0
|
||
MOVE *A0,A0,W
|
||
JRN SRCH_DEATH
|
||
CALLA GETMOVE
|
||
MOVB *A0(MOVEPLYR),A6
|
||
JRNN SRCH_WALL
|
||
MOVE *A0(MOVECPTR),A6,L ;GRAB THE CENTER MOVE PTR
|
||
JRN SRCH_NOCMV ;BR = NOT A CENTER MOVE
|
||
MOVB *A6(CMOVEEGG),A6 ;IS THERE SOMETHING ON THIS SPOT?
|
||
INC A6
|
||
|
||
JRNZ SRCH_DEATH
|
||
**** JRZ SRCH_NOCMV ;BR = NO
|
||
**** DEC A6
|
||
**** CMPI TARID,A6 ;ARE WE DEALING WITH A TAR PIT HERE?
|
||
**** JREQ SRCH_DEATH ;BR = YES WE ARE
|
||
**** CMPI FIREID,A6 ;FIRE?
|
||
**** JREQ SRCH_DEATH ;BR = YES
|
||
**** CMPI PITID,A6 ;LOCAL PIT?
|
||
**** JREQ SRCH_DEATH ;BR = YES
|
||
**** CMPI FLOWERID,A6
|
||
**** JREQ SRCH_DEATH
|
||
**** CMPI SHROOMID,A6
|
||
**** JREQ SRCH_DEATH
|
||
**** ANDI 0FFFFFFF0H,A6 ;IS THERE A DUDE'S EGG ON THIS SPOT
|
||
**** JRZ SRCH_DEATH ;BR = YES, BAIL.
|
||
|
||
SRCH_NOCMV:
|
||
INC A5
|
||
JRUC SRCH_SAFLP
|
||
SRCH_WALL:
|
||
CLR A6
|
||
MMFM SP,A0,A1
|
||
RETS
|
||
SRCH_DEATH:
|
||
MOVK 1,A6
|
||
MMFM SP,A0,A1
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TURN_LEFT TURN IN THE LEFT DIRECTION *
|
||
* *
|
||
* ENTRY *
|
||
* A2 DIRECTION *
|
||
* *
|
||
* EXIT *
|
||
* A2 NEW DIRECTION *
|
||
* *
|
||
**************************************************************************
|
||
|
||
TURN_LEFT:
|
||
PUSH A8
|
||
MOVI TLEFT,A8 ; LEFT TURN TABLE
|
||
SLL 4,A2 ; TURN INTO A WORD OFFSET
|
||
ADD A2,A8
|
||
MOVE *A8,A2,W ; GET NEW DIRECTION
|
||
ANDI 7,A2
|
||
PULL A8
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TURN_RIGHT TURN IN THE RIGHT DIRECTION *
|
||
* *
|
||
* ENTRY *
|
||
* A2 DIRECTION *
|
||
* *
|
||
* EXIT *
|
||
* A2 NEW DIRECTION *
|
||
* *
|
||
**************************************************************************
|
||
|
||
TURN_RIGHT:
|
||
PUSH A8
|
||
MOVI TRIGHT,A8 ; RIGHT TURN TABLE
|
||
SLL 4,A2 ; TURN INTO A WORD OFFSET
|
||
ADD A2,A8
|
||
MOVE *A8,A2,W ; GET NEW DIRECTION
|
||
ANDI 7,A2
|
||
PULL A8
|
||
RETS
|
||
|
||
|
||
TLEFT .WORD LEFT,RIGHT,DOWN,UP
|
||
TRIGHT .WORD RIGHT,LEFT,UP,DOWN
|
||
|
||
**************************************************************************
|
||
* *
|
||
* MOVE_SPACES MOVE A POINT AHEAD GIVEN A DIRECTION AND NUMBER OF STEPS *
|
||
* *
|
||
* ENTRY *
|
||
* A0 NUMBER OF STEPS *
|
||
* A1 MOVE POINTER *
|
||
* A2 DIRECTION *
|
||
* *
|
||
* EXIT *
|
||
* A1 MOVE POINTER *
|
||
* *
|
||
**************************************************************************
|
||
|
||
MOVE_SPACES:
|
||
MMTM SP,A0,A2
|
||
|
||
SWAP A0,A2
|
||
MSLOOP:
|
||
CALLA TWO_MOVES ; MOVE AHEAD AT LEAST ONCE
|
||
JRN MSEXIT ; NO MOVE IN THAT DIRECTION
|
||
DEC A2
|
||
JRNZ MSLOOP
|
||
|
||
MSEXIT
|
||
MMFM SP,A0,A2
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* PIMP_DINO FIND A DINO TO PIMP OUT *
|
||
* *
|
||
* ENTRY *
|
||
* NOTHING *
|
||
* *
|
||
* EXIT *
|
||
* A8 CONTAINS A POINTER TO A DINO TABLE ( NOT OBJECT ) *
|
||
* A9 CONTAINS A POINTER TO THE DINO OBJECT *
|
||
* *
|
||
* NOTE: A8 IS ZERO IF NOTHING IS ON THE LIST -- MAKE YOUR CHECKS *
|
||
* ACCORDINGLY! *
|
||
* *
|
||
**************************************************************************
|
||
|
||
LIFETIME EQU 30 ; IN SECONDS -- MIN CREDIT LIFE TIME
|
||
LASTDTH EQU 15 ; IN SECONDS -- MIN LIFE TIME
|
||
|
||
PIMP_DINO:
|
||
MMTM SP,A0,A2
|
||
MOVE @DINOS,A8,L ; START OF DINO SUPP LIST
|
||
JRZ PIMPDEOL ; END OF LIST
|
||
PIMPDLP
|
||
MOVE *A8(OID),A2,W ; GET THE ID
|
||
SRL 4,A2 ; MASK OFF THE IDENTIFIER
|
||
SLL 4,A2
|
||
CMPI DINOOID,A2 ; CHECK TO SEE IF DINO
|
||
JRNZ PIMPDNDINO ; BR = NO DINO
|
||
;
|
||
; RIGHT HERE WE HAVE A DINO SITTING IN A8
|
||
;
|
||
MOVE A8,A9 ; SAVE THE DINO POINTER
|
||
MOVE *A8(OPLINK),A8,L ; GET THE DINO DATA BLOCK
|
||
JRZ NOTTHISDINO ; NO CONTROLLING PROCESS
|
||
;
|
||
MOVE *A8(DPLAYER),A2,L ; GET THE PLAYER CONTROLLING THE DINO
|
||
|
||
MOVE *A2(PTOTTIME),A0,W ; TOTAL TIME OF PLAY
|
||
CMPI LIFETIME,A0
|
||
JRLO NOTTHISDINO ; GIVE HIM TIME TO ENJOY LOSING
|
||
MOVE *A2(PLIFETIME),A0,L ; TIME SINCE LAST DEATH
|
||
CMPI LASTDTH,A0
|
||
JRLO NOTTHISDINO ; NOT BEEN ALIVE THIS LIFE LONG ENUF
|
||
|
||
JRUC PIMPDRET ; FOR NOW USE THIS DINO
|
||
NOTTHISDINO:
|
||
MOVE A9,A8
|
||
PIMPDNDINO
|
||
MOVE *A8(OSLINK),A8,L ; GET NEXT LINK IN CHAIN
|
||
JRNZ PIMPDLP
|
||
PIMPDEOL
|
||
CLR A8
|
||
PIMPDRET
|
||
MMFM SP,A0,A2
|
||
RETS
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* UTILITY ROUTINES *
|
||
* *
|
||
**************************************************************************
|
||
|
||
**************************************************************************
|
||
* *
|
||
* FIND_COOL_CPNT - FIND AN OPEN CENTER POINT THAT ISN'T IN FRONT OF *
|
||
* A HOUSE, OR TOO CLOSE TOO ANOTHER ENEMY. *
|
||
* *
|
||
* ENTRY *
|
||
* NOTHING *
|
||
* *
|
||
* EXIT *
|
||
* A1 [ NZ ] = POINTER TO OPEN SPACE *
|
||
* Z = NO OPEN CENTER POINTS *
|
||
* *
|
||
**************************************************************************
|
||
FIND_COOL_CPNT:
|
||
PUSH A0
|
||
MOVK 2,A0 ; LOOK THIS MANY TIMES
|
||
FCCLOOP:
|
||
CALLA FIND_OPEN_CPNT ; GET AN OPEN CENTER POINT
|
||
JRZ FCCEXIT ; NO OPEN CENTER POINTS
|
||
CALLR CHECK_EPNT ; CHECK TO SEE IF DINO EXIT POINT
|
||
JRZ FCCRELOOP ; EXIT POINT
|
||
CALLR CHECK_DPNT ; CHECK TO SEE IF DINO SITTING HERE
|
||
JRZ FCCRELOOP ; BR = YES, DINO SITTING HERE
|
||
CALLR CK_ENEMY_PROXIMITY ;LOOK AROUND FOR ANOTHER ENEMY
|
||
JRNZ FCCEXIT ;BR = IT'S O.K. HERE
|
||
FCCRELOOP
|
||
DEC A0
|
||
JRNZ FCCLOOP ;BR = TRY AGAIN
|
||
FCCEXIT:
|
||
PULL A0
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* VALID_CPNT - CHECK TO SEE IF IT IS O.K. TO LAND AN ENEMY ON THIS *
|
||
* CENTER POINT. *
|
||
* A1 = PTR TO CENTER POINT *
|
||
* RETURNS: *
|
||
* Z = DO NOT PUT AN ENEMY HERE *
|
||
* NZ = DO AS YOU PLEASE *
|
||
* *
|
||
**************************************************************************
|
||
VALID_CPNT:
|
||
PUSH A0
|
||
MOVB *A1(CMOVEEGG),A0
|
||
INC A0
|
||
JRZ VALID_NOEGG
|
||
CLR A0
|
||
JRUC VALID_CPNT_X
|
||
VALID_NOEGG:
|
||
CALLR CHECK_EPNT ;IS THIS A DINOSAUR EXIT POINT?
|
||
JRZ VALID_CPNT_X ;BR = YES
|
||
CALLR CHECK_DPNT ;IS THERE A DINO SITTING HERE?
|
||
JRZ VALID_CPNT_X ;BR = YES
|
||
CALLR CK_ENEMY_PROXIMITY ;IS THERE AN ENEMY TOO CLOSE?
|
||
JRZ VALID_CPNT_X
|
||
VALID_CPNT_X:
|
||
PULL A0
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* CK_ENEMY_PROXIMITY - CHECK CENTER POINT TO SEE IF IT IS AT A SAFE *
|
||
* DISTANCE FROM OTHER ENEMIES, ALSO CHECKS *
|
||
* TO MAKE SURE THAT THE CENTER DOESN'T EXIST *
|
||
* ON A 1 WIDE PATH. *
|
||
* A1 = PTR TO CENTER POINT TO CHECK. *
|
||
* RETURNS: *
|
||
* Z = POINT IS NOT GOOD FOR AN ENEMY. *
|
||
* NZ = O.K. TO SET AN ENEMY HERE *
|
||
* NOTE: TRASHES A14 *
|
||
* *
|
||
**************************************************************************
|
||
CK_ENEMY_PROXIMITY:
|
||
MMTM SP,A0,A1,A2,A3,A4,A5
|
||
MOVE *A1(CMOVEMPTR),A1,L ;GET CORRESPONDING MOVE
|
||
JRN CK_EP_FL ;BR = FAILED THIS TEST
|
||
MOVE A1,A2 ;STORE THE POINT HERE
|
||
CLR A4 ;WE WILL FLAG ILLEGALS HERE
|
||
MOVI UP,A0 ;START FACING UP
|
||
CK_DP_LP:
|
||
MOVE A0,A3
|
||
CALLA TWO_MOVES ;GO FOR ADJACENT CENTER POINT
|
||
JRZ CK_EP_NOMOVE
|
||
MOVE *A1(MOVECPTR),A0,L ;GET THE CENTER POINTER
|
||
JRN CK_EP_NOMOVE ;BR = FUNKY SLIDE
|
||
CALLA CENTER_CHECK ;CHECK THAT CENTER
|
||
JRZ CK_EP_CMT ;BR = NO DANGER THERE
|
||
MOVB *A0(CMOVEEGG),A5
|
||
CMPI FIREID,A5 ;IS THE DANGER A FIRE?
|
||
JRNE CK_EP_FL ;BR = NO, THEN WE CANNOT PLACE
|
||
CK_EP_CMT:
|
||
MOVB *A0(CMOVETROG),A5
|
||
INC A5 ;IS TROG GOING TO DROP SOMETHING HERE?
|
||
JRZ CK_CMT_OK ;BR = NO
|
||
DEC A5
|
||
CMPI PITID,A5 ;IS IT A PIT?
|
||
JREQ CK_EP_FL ;BR = NO
|
||
CK_CMT_OK:
|
||
MOVE A3,A0
|
||
JRUC CK_EP_NEXT
|
||
CK_EP_NOMOVE:
|
||
MOVE A3,A0
|
||
BSET A0,A4 ;SET THE BIT
|
||
CK_EP_NEXT:
|
||
MOVE A2,A1 ;RESTORE ORIGINAL CENTER
|
||
INC A0
|
||
CMPI DOWN_RIGHT,A0
|
||
JRLS CK_DP_LP
|
||
*
|
||
*CHECK FOR OPPOSITE DEATH MOVES HERE, USING THE BITS SET IN A4
|
||
*
|
||
BTST UP,A4
|
||
JREQ CK_EP_LEFT
|
||
BTST DOWN,A4
|
||
JRNE CK_EP_FL
|
||
CK_EP_LEFT:
|
||
BTST LEFT,A4
|
||
JREQ CK_EP_UL
|
||
BTST RIGHT,A4
|
||
JRNE CK_EP_FL
|
||
CK_EP_UL:
|
||
BTST UP_LEFT,A4
|
||
JREQ CK_EP_DR
|
||
BTST UP_RIGHT,A4
|
||
JREQ CK_EP_UL_DL
|
||
BTST UP,A4
|
||
JREQ CK_EP_FL
|
||
CK_EP_UL_DL:
|
||
BTST DOWN_LEFT,A4
|
||
JREQ CK_EP_DR
|
||
BTST LEFT,A4
|
||
JREQ CK_EP_FL
|
||
|
||
CK_EP_DR:
|
||
BTST DOWN_RIGHT,A4
|
||
JREQ CK_EP_OK
|
||
BTST UP_RIGHT,A4
|
||
JREQ CK_EP_DR_DL
|
||
BTST RIGHT,A4
|
||
JREQ CK_EP_FL
|
||
CK_EP_DR_DL:
|
||
BTST DOWN_LEFT,A4
|
||
JREQ CK_EP_OK
|
||
BTST DOWN,A4
|
||
JREQ CK_EP_FL
|
||
*
|
||
*SPOT IS O.K. FOR BUILDING
|
||
*
|
||
CK_EP_OK:
|
||
CLR A1
|
||
INC A1
|
||
JRUC CK_EP_X
|
||
CK_EP_FL:
|
||
CLR A1
|
||
JRUC CK_EP_X
|
||
CK_EP_X:
|
||
MMFM SP,A0,A1,A2,A3,A4,A5
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* CHECK_EPNT CHECK TO SEE IF A CENTER POINT IS ALSO AN EXIT POINT *
|
||
* FOR ANY OF THE DINOS *
|
||
* *
|
||
* ENTRY *
|
||
* A1 POINTER TO CENTER POINT *
|
||
* *
|
||
* EXIT *
|
||
* NZ NOT A DINO POINT *
|
||
* Z DINO EXIT POINT ON THIS ONE *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CHECK_EPNT:
|
||
MMTM SP,A0,A1,A2
|
||
MOVE *A1(CMOVEMPTR),A0,L ; GET THE ACTUAL MOVE POINTER
|
||
|
||
MOVE *A0(MOVEUP),A2 ; CHECK UP POSITION
|
||
CALLR CHECK_EPNT2
|
||
JRZ CKERET
|
||
MOVE *A0(MOVEDN),A2 ; CHECK DOWN POSITION
|
||
CALLR CHECK_EPNT2
|
||
JRZ CKERET
|
||
MOVE *A0(MOVELF),A2 ; CHECK LEFT POSITION
|
||
CALLR CHECK_EPNT2
|
||
JRZ CKERET
|
||
MOVE *A0(MOVERT),A2 ; CHECK RIGHT POSITION
|
||
CALLR CHECK_EPNT2
|
||
CKERET
|
||
MMFM SP,A0,A1,A2
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* CHECK_EPNT2 *
|
||
* *
|
||
* CHECK TO SEE IF A VALID MOVE IS PASSED IN A2, AND THEN WHETHER *
|
||
* IT IS A DINO EXIT POINT *
|
||
* *
|
||
* ENTRY *
|
||
* A2 MOVE INDEX *
|
||
* *
|
||
* EXIT *
|
||
* Z DINO EXIT POINT *
|
||
* NZ COOL *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CHECK_EPNT2:
|
||
MMTM SP,A0,A1,A2
|
||
MOVE A2,A2 ; SET THE FLAGS
|
||
JRN CKE2RET
|
||
MOVE A2,A0 ; FOR GETMOVE
|
||
CALLA GETMOVE ; TURN INTO ANOTHER MOVE
|
||
MOVE *A0(MOVEEPTR),A1,L
|
||
CALLR CHECK_EXIT ; CHECK FOR DINO EXIT POINTS
|
||
CKE2RET
|
||
MMFM SP,A0,A1,A2
|
||
RETS
|
||
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* CHECK_EXIT *
|
||
* *
|
||
* CHECK TO SEE IF THE POINT PASSED IN A1 IS EQUAL TO ANY OF THE *
|
||
* DINO EXIT POINTS *
|
||
* *
|
||
* ENTRY *
|
||
* A1 EXIT POINT TO CHECK *
|
||
* *
|
||
* EXIT *
|
||
* Z MATCHES ONE OF THE DINOS *
|
||
* NZ NOT A MATCH *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CHECK_EXIT:
|
||
PUSH A2
|
||
MOVI P1DATA,A2 ; PLAYER 1 DATA AREA
|
||
MOVE *A2(PEXITPNT),A2,L
|
||
CMP A1,A2
|
||
JRZ CKRET
|
||
MOVI P2DATA,A2 ; PLAYER 2
|
||
MOVE *A2(PEXITPNT),A2,L
|
||
CMP A1,A2
|
||
JRZ CKRET
|
||
MOVI P3DATA,A2 ; PLAYER 3
|
||
MOVE *A2(PEXITPNT),A2,L
|
||
CMP A1,A2
|
||
JRZ CKRET
|
||
MOVI P4DATA,A2 ; PLAYER 4
|
||
MOVE *A2(PEXITPNT),A2,L
|
||
CMP A1,A2
|
||
JRZ CKRET
|
||
PULL A2
|
||
RETS
|
||
CKRET
|
||
PULL A2
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* CHECK_DPNT CHECK TO SEE IF A DINO IS ON THIS POINT *
|
||
* *
|
||
* ENTRY *
|
||
* A1 POINTER TO CENTER POINT *
|
||
* *
|
||
* EXIT *
|
||
* NZ NO DINO ON THIS POINT *
|
||
* Z DINO IS COMING IN HERE *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CHECK_DPNT:
|
||
MMTM SP,A0,A1,A2,A3,A8
|
||
MOVE A1,A3 ; MOVE IT OUT OF THE WAY
|
||
MOVE @DINOS,A8,L ; START OF DINO SUPP LIST
|
||
JRZ CKDEOL ; END OF LIST
|
||
CKDLOOP
|
||
MOVE *A8(OID),A2,W ; GET THE ID
|
||
SRL 4,A2 ; MASK OFF THE IDENTIFIER
|
||
SLL 4,A2
|
||
CMPI DINOOID,A2 ; CHECK TO SEE IF DINO
|
||
JRNZ CKDNDINO ; BR = NO DINO
|
||
CALLA OBJ_NEAR_CENT ; FIND ITS CENTER POINTER
|
||
JRNC CKDNDINO ; NOT NEAR A CENTER POINT
|
||
CMP A0,A3 ; EQUAL
|
||
JRZ CKDONDINO ; BR = LANDED ON DINO
|
||
CKDNDINO
|
||
MOVE *A8(OSLINK),A8,L ; GET NEXT LINK IN CHAIN
|
||
JRNZ CKDLOOP
|
||
CKDEOL
|
||
CLR A0
|
||
NOT A0 ; STUPID WAY TO SET FLAGS
|
||
CKDONDINO
|
||
MMFM SP,A0,A1,A2,A3,A8
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* DATA *
|
||
* *
|
||
**************************************************************************
|
||
.DATA
|
||
|
||
**************************************************************************
|
||
* *
|
||
* ENEMY INITIALIZATION TABLES *
|
||
* *
|
||
**************************************************************************
|
||
*
|
||
*FIRE INITIALIZATION TABLE
|
||
FIREINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG FLAMESM1,[12,12],DUMCOLL
|
||
.WORD DMAWNZ,FIREOID
|
||
|
||
|
||
*TABLE OF TAR PITS
|
||
TAR_TAB:
|
||
.LONG TARINIT, VTARINIT, ETARINIT, CTARINIT, WTARINIT, STARINIT
|
||
.LONG TARINIT, ETARINIT
|
||
|
||
*GREEN TAR PIT INITIALIZATION TABLE
|
||
TARINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG TAR5,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,TAROID
|
||
*VOLCANO TAR PIT INITIALIZATION TABLE
|
||
VTARINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG VTAR5,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,TAROID
|
||
*TROG ISLE TAR PIT INITIALIZATION TABLE
|
||
ETARINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG ETAR5,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,TAROID
|
||
|
||
*TROG CLUB ISLE TAR PIT INITIALIZATION TABLE
|
||
CTARINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG CTAR5,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,TAROID
|
||
|
||
*TROG WHEEL ISLE TAR PIT INITIALIZATION TABLE
|
||
WTARINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG WTAR5,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,TAROID
|
||
|
||
*TROG SPRING ISLE TAR PIT INITIALIZATION TABLE
|
||
STARINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG STAR5,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,TAROID
|
||
|
||
*TABLE OF PITS
|
||
PIT_TAB:
|
||
.LONG PITINIT, VPITINIT, EPITINIT, CPITINIT, WPITINIT, SPITINIT
|
||
.LONG PITINIT, EPITINIT
|
||
|
||
*
|
||
*PIT INITIALIZATION TABLE
|
||
*NOTE: MAKE SURE THIS STAYS OGPIT1, IF THERE IS A CHANGE, CHECK DENT_GROUND
|
||
PITINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG OGPIT1,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,PITOID
|
||
*PIT TO USE IN THE VOLCANO WAVES
|
||
VPITINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG VOGPIT1,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,PITOID
|
||
*PIT TO USE IN ON THE TROG ISLE
|
||
EPITINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG EOGPIT1,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,PITOID
|
||
*PIT TO USE IN ON THE TROG CLUB ISLE
|
||
CPITINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG COGPIT1,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,PITOID
|
||
*PIT TO USE IN ON THE TROG WHEEL ISLE
|
||
WPITINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG WOGPIT1,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,PITOID
|
||
*PIT TO USE IN ON THE TROG SPRING ISLE
|
||
SPITINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG SOGPIT1,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,PITOID
|
||
|
||
*TABLE OF TROG ENTRANCE PITS
|
||
TROGPIT_TAB:
|
||
.LONG TROGPITINIT, VTROGPITINIT, ETROGPITINIT, CTROGPITINIT
|
||
.LONG WTROGPITINIT, STROGPITINIT, TROGPITINIT
|
||
.LONG ETROGPITINIT
|
||
|
||
*SPECIAL INIT TABLE FOR THE PIT THAT TROG USES TO APPEAR
|
||
TROGPITINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG OGPIT1,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,TROGPITOID
|
||
|
||
*TROGPIT TO USE IN THE VOLCANO WAVES
|
||
VTROGPITINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG VOGPIT1,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,TROGPITOID
|
||
|
||
*TROGPIT TO USE ON TROG ISLE
|
||
ETROGPITINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG EOGPIT1,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,TROGPITOID
|
||
|
||
*TROGPIT TO USE ON TROG CLUB ISLE
|
||
CTROGPITINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG COGPIT1,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,TROGPITOID
|
||
|
||
*TROGPIT TO USE ON TROG WHEEL ISLE
|
||
WTROGPITINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG WOGPIT1,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,TROGPITOID
|
||
|
||
*TROGPIT TO USE ON TROG SPRING ISLE
|
||
STROGPITINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG SOGPIT1,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,TROGPITOID
|
||
|
||
TUNNELINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG TUNNELIMG,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,TUNNELOID
|
||
|
||
;
|
||
; FLOWER INIT
|
||
;
|
||
FLOWERINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG SPEED1,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,FLOWEROID
|
||
|
||
FLOWER_ANIM:
|
||
.LONG SPEED1
|
||
.WORD 6
|
||
.LONG SPEED2
|
||
.WORD 6
|
||
.LONG SPEED3
|
||
.WORD 6
|
||
.LONG SPEED4
|
||
.WORD 1
|
||
.LONG 0
|
||
.LONG SPEED4
|
||
.WORD 1
|
||
.LONG 0
|
||
|
||
;
|
||
; SHROOM INIT
|
||
;
|
||
|
||
SHROOMINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG SHROOM1,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,SHROOMOID
|
||
|
||
SHROOM_ANIM:
|
||
.LONG SHROOM1
|
||
.WORD 6
|
||
.LONG SHROOM2
|
||
.WORD 6
|
||
.LONG SHROOM3
|
||
.WORD 6
|
||
.LONG SHROOM4
|
||
.WORD 1
|
||
.LONG 0
|
||
.LONG SHROOM4
|
||
.WORD 1
|
||
.LONG 0
|
||
|
||
PINEAPPLEINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG PAPPLE1,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,PINEAPPLEOID
|
||
|
||
PINEAPPLEGROW:
|
||
.LONG PAPPLE1
|
||
.WORD 4
|
||
.LONG PAPPLE2
|
||
.WORD 4
|
||
.LONG PAPPLE3
|
||
.WORD 4
|
||
.LONG PAPPLE4
|
||
.WORD 4
|
||
.LONG PAPPLE5
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
PINEAPPLESPIN:
|
||
.LONG PAPPLE6a
|
||
.WORD 12
|
||
.LONG PAPPLE6b
|
||
.WORD 12
|
||
.LONG PAPPLE6c
|
||
.WORD 12
|
||
.LONG 0
|
||
|
||
PINEAPPLE_OUT
|
||
.LONG PAPPLE6c
|
||
.WORD 30
|
||
.LONG PAPPLE5
|
||
.WORD 4
|
||
.LONG PAPPLE4
|
||
.WORD 4
|
||
.LONG PAPPLE3
|
||
.WORD 4
|
||
.LONG PAPPLE2
|
||
.WORD 4
|
||
.LONG PAPPLE1
|
||
.WORD 4
|
||
.LONG 0
|
||
|
||
*
|
||
*THE "LUCKY" HORSESHOE
|
||
*
|
||
HSHOEINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG SHOE1,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,HSHOEOID
|
||
|
||
HSHOE_ANIM
|
||
.LONG SHOE1
|
||
.WORD 6
|
||
.LONG SHOE2
|
||
.WORD 6
|
||
.LONG SHOE3
|
||
.WORD 1
|
||
.LONG 0
|
||
HSHOE_FLASH
|
||
.LONG SHOE3
|
||
.WORD 30
|
||
.LONG SHOE4
|
||
.WORD 30
|
||
.LONG 0
|
||
HSHOE_OUT
|
||
.LONG SHOE2
|
||
.WORD 6
|
||
.LONG SHOE1
|
||
.WORD 6
|
||
.LONG 0
|
||
|
||
*
|
||
*THE ICE CUBE
|
||
*
|
||
ICEINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG CUBE5,[30,0],DUMCOLL
|
||
.WORD DMAWNZ,ICEOID
|
||
|
||
ICE_ANIM
|
||
.LONG CUBE5
|
||
.WORD 8
|
||
.LONG CUBE5a
|
||
.WORD 8
|
||
.LONG CUBE5
|
||
.WORD 8
|
||
.LONG CUBE5a
|
||
.WORD 30
|
||
.LONG 0
|
||
ICE_FLASH
|
||
.LONG CUBE6
|
||
.WORD 30
|
||
.LONG CUBE7
|
||
.WORD 30
|
||
.LONG CUBE8
|
||
.WORD 30
|
||
.LONG 0
|
||
ICE_OUT
|
||
.LONG CUBE9
|
||
.WORD 6
|
||
.LONG CUBE10
|
||
.WORD 6
|
||
.LONG CUBE11
|
||
.WORD 6
|
||
.LONG CUBE12
|
||
.WORD 6
|
||
.LONG 0
|
||
.LONG CUBE13
|
||
.WORD 6
|
||
.LONG CUBE14
|
||
.WORD 6
|
||
.LONG CUBE15
|
||
.WORD 6
|
||
.LONG CUBE16
|
||
.WORD 6
|
||
.LONG CUBE17
|
||
.WORD 6
|
||
.LONG 0
|
||
|
||
*
|
||
*THE RED HOT CHILI PEPPER
|
||
CHILIINIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG FLAMESM1,[12,12],DUMCOLL
|
||
.WORD DMAWNZ,CHILIOID
|
||
|
||
CHILI_ANIM
|
||
.LONG FLAMEBIG1
|
||
.WORD 4|MAKESOUND
|
||
.LONG FIRESTART_SND
|
||
.LONG FLAMEBIG2
|
||
.WORD 4
|
||
.LONG FLAMEBIG3
|
||
.WORD 4
|
||
.LONG FLAMEBIG4
|
||
.WORD 4
|
||
.LONG FLAMEBIG5
|
||
.WORD 4
|
||
.LONG FLAMEBIG6
|
||
.WORD 4
|
||
.LONG FLAMEBIG7
|
||
.WORD 4
|
||
.LONG FLAMEBIG8
|
||
.WORD 4
|
||
.LONG 0
|
||
CHILI_BURN
|
||
.LONG CHILI1
|
||
.WORD 10
|
||
.LONG CHILI2
|
||
.WORD 10
|
||
.LONG CHILI3
|
||
.WORD 10
|
||
.LONG CHILI4
|
||
.WORD 10
|
||
.LONG CHILI5
|
||
.WORD 10
|
||
.LONG 0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* ENEMY ANIMATION SCRIPTS *
|
||
* *
|
||
**************************************************************************
|
||
TAR_SND:
|
||
.WORD >F305,>50,>80A6,0 ;TAR PIT CREATED
|
||
TARBUBBLE_SND
|
||
.WORD >F30E,>67,>80A5,0 ;TAR PIT BUBBLE UNDER
|
||
*
|
||
*TARPIT
|
||
TARIN:
|
||
.LONG TAR5
|
||
.WORD 15|MAKESOUND
|
||
.LONG TAR_SND
|
||
.LONG TAR4
|
||
.WORD 10
|
||
.LONG TAR3
|
||
.WORD 10
|
||
.LONG TAR2
|
||
.WORD 12
|
||
.LONG 0
|
||
TAR_ANIM1:
|
||
.LONG TAR1a
|
||
.WORD 10
|
||
.LONG TAR1b
|
||
.WORD 10
|
||
.LONG TAR1c
|
||
.WORD 10
|
||
.LONG TAR1d
|
||
.WORD 10|SCRIPT
|
||
.LONG TAR_ANIM1
|
||
|
||
TAROUT:
|
||
.LONG TAR2
|
||
.WORD 8
|
||
.LONG TAR3
|
||
.WORD 6
|
||
.LONG TAR4
|
||
.WORD 6
|
||
.LONG TAR5
|
||
.WORD 6
|
||
.LONG 0
|
||
|
||
*
|
||
*FIRE
|
||
FIRESTART_SND:
|
||
.WORD >F006,>5D,>8051,0 ;FIRE START SOUND
|
||
FIREOUT_SND:
|
||
.WORD >F305,>3C,>809F,0 ;FIRE OUT SOUND
|
||
|
||
FIRE_ANIM:
|
||
.LONG FLAMESM1
|
||
.WORD 6|MAKESOUND|SCRIPT
|
||
.LONG FIRESTART_SND
|
||
.LONG FIRE_ANIMII
|
||
FIRE_ANIM_LP:
|
||
.LONG FLAMESM1
|
||
.WORD 6
|
||
FIRE_ANIMII:
|
||
.LONG FLAMESM2
|
||
.WORD 6
|
||
.LONG FLAMESM3
|
||
.WORD 6
|
||
.LONG FLAMESM4
|
||
.WORD 6
|
||
.LONG FLAMESM5
|
||
.WORD 6
|
||
.LONG FLAMESM6
|
||
.WORD 6
|
||
.LONG FLAMESM7
|
||
.WORD 6
|
||
.LONG FLAMESM8
|
||
.WORD 6|SCRIPT
|
||
.LONG FIRE_ANIM_LP
|
||
.LONG 0
|
||
|
||
FIRE_UP_MONKEY_SHIT:
|
||
.LONG FLAMEBIG1
|
||
.WORD 4
|
||
.LONG FLAMEBIG2
|
||
.WORD 4
|
||
.LONG FLAMEBIG3
|
||
.WORD 4
|
||
.LONG FLAMEBIG4
|
||
.WORD 4
|
||
.LONG FLAMEBIG5
|
||
.WORD 4
|
||
.LONG FLAMEBIG6
|
||
.WORD 4
|
||
.LONG FLAMEBIG7
|
||
.WORD 4
|
||
.LONG FLAMEBIG8
|
||
.WORD 4|SCRIPT
|
||
.LONG FIRE_UP_MONKEY_SHIT
|
||
|
||
FIRE_DOWN:
|
||
.LONG FLAMEOUT1
|
||
.WORD 6
|
||
.LONG FLAMEOUT2
|
||
.WORD 6
|
||
.LONG FLAMEOUT3
|
||
.WORD 6
|
||
.LONG FLAMEOUT4
|
||
.WORD 7
|
||
.LONG FLAMEOUT5
|
||
.WORD 7|MAKESOUND
|
||
.LONG FIREOUT_SND
|
||
.LONG FLAMEOUT6
|
||
.WORD 8|NEWPALET
|
||
.LONG FIXED3
|
||
.LONG FLAMEOUT7
|
||
.WORD 8
|
||
.LONG FLAMEOUT8
|
||
.WORD 8
|
||
.LONG 0
|
||
*
|
||
*TABLE OF INITS AND SCRIPTS FOR TROG STARTING A FIRE WITH HIS CLUB
|
||
TROG_FIRE_TAB:
|
||
.LONG FIREU_INIT,START_FIRE_D
|
||
.LONG FIRED_INIT,START_FIRE_D
|
||
.LONG FIREL_INIT,START_FIRE_LR
|
||
.LONG FIRER_INIT,START_FIRE_LR
|
||
|
||
START_FIRE_D:
|
||
.LONG SMOKESTAR01
|
||
.WORD 4
|
||
.LONG SMOKESTAR02
|
||
.WORD 4
|
||
.LONG SMOKESTAR03
|
||
.WORD 4
|
||
.LONG SMOKESTAR01
|
||
.WORD 4
|
||
.LONG SMOKESTAR02
|
||
.WORD 4
|
||
.LONG SMOKESTAR03
|
||
.WORD 4
|
||
.LONG SMOKESTAR01
|
||
.WORD 4
|
||
.LONG SMOKESTAR02
|
||
.WORD 4
|
||
.LONG SMOKESTAR03
|
||
.WORD 4
|
||
.LONG SMOKESTAR01
|
||
.WORD 4
|
||
.LONG SMOKESTAR02
|
||
.WORD 4
|
||
.LONG SMOKESTAR03
|
||
.WORD 4
|
||
.LONG SMOKESTAR01
|
||
.WORD 4
|
||
.LONG SMOKESTAR02
|
||
.WORD 4
|
||
.LONG SMOKESTAR03
|
||
.WORD 2
|
||
.LONG SMOKESTAR01
|
||
.WORD 2
|
||
.LONG SMOKESTAR02
|
||
.WORD 2
|
||
.LONG SMOKESTAR03
|
||
.WORD 2
|
||
.LONG SMOKESTAR01
|
||
.WORD 2
|
||
.LONG SMOKESTAR02
|
||
.WORD 2
|
||
.LONG SMOKESTAR03
|
||
.WORD 2
|
||
.LONG SMOKESTAR01
|
||
.WORD 2
|
||
.LONG SMOKESTAR02
|
||
.WORD 2
|
||
.LONG SMOKESTAR03
|
||
.WORD 2
|
||
.LONG SMOKESTAR01
|
||
.WORD 2
|
||
.LONG SMOKESTAR02
|
||
.WORD 2
|
||
.LONG SMOKESTAR03
|
||
.WORD 2
|
||
.LONG SMOKESTAR01
|
||
.WORD 2
|
||
.LONG SMOKESTAR02
|
||
.WORD 2
|
||
.LONG SMOKESTAR03
|
||
.WORD 2
|
||
.LONG SMOKESTAR01
|
||
.WORD 2
|
||
.LONG SMOKESTAR02
|
||
.WORD 2
|
||
.LONG SMOKESTAR03
|
||
.WORD 2
|
||
.LONG SMOKESTAR01
|
||
.WORD 2
|
||
.LONG SMOKESTAR02
|
||
.WORD 2
|
||
.LONG SMOKESTAR03
|
||
.WORD 2|NEWPALET
|
||
.LONG flame
|
||
.LONG SMOKESTAR01
|
||
.WORD 2
|
||
.LONG SMOKESTAR02
|
||
.WORD 2
|
||
.LONG SMOKESTAR03
|
||
.WORD 2
|
||
.LONG SMOKESTAR01
|
||
.WORD 2
|
||
.LONG SMOKESTAR02
|
||
.WORD 2
|
||
.LONG SMOKESTAR03
|
||
.WORD 2
|
||
.LONG SMOKESTAR01
|
||
.WORD 2|NEWPALET
|
||
.LONG FIXED3
|
||
.LONG SMOKESTAR02
|
||
.WORD 2
|
||
.LONG SMOKESTAR03
|
||
.WORD 2
|
||
.LONG SMOKESTAR01
|
||
.WORD 2
|
||
.LONG SMOKESTAR02
|
||
.WORD 2
|
||
.LONG SMOKESTAR03
|
||
.WORD 2
|
||
.LONG SMOKESTAR01
|
||
.WORD 2|NEWPALET
|
||
.LONG flame
|
||
.LONG SMOKESTAR02
|
||
.WORD 2
|
||
.LONG SMOKESTAR03
|
||
.WORD 2
|
||
.LONG SMOKESTAR01
|
||
.WORD 2
|
||
.LONG 0
|
||
.LONG FLAMEBIG1
|
||
.WORD 6|MAKESOUND
|
||
.LONG FIRESTART_SND
|
||
.LONG FLAMEBIG2
|
||
.WORD 6
|
||
.LONG FLAMEBIG3
|
||
.WORD 6
|
||
.LONG FLAMEBIG4
|
||
.WORD 6
|
||
.LONG 0
|
||
|
||
START_FIRE_LR:
|
||
.LONG SMOKESTAR41
|
||
.WORD 4
|
||
.LONG SMOKESTAR42
|
||
.WORD 4
|
||
.LONG SMOKESTAR43
|
||
.WORD 4
|
||
.LONG SMOKESTAR41
|
||
.WORD 4
|
||
.LONG SMOKESTAR42
|
||
.WORD 4
|
||
.LONG SMOKESTAR43
|
||
.WORD 4
|
||
.LONG SMOKESTAR41
|
||
.WORD 4
|
||
.LONG SMOKESTAR42
|
||
.WORD 4
|
||
.LONG SMOKESTAR43
|
||
.WORD 4
|
||
.LONG SMOKESTAR41
|
||
.WORD 4
|
||
.LONG SMOKESTAR42
|
||
.WORD 4
|
||
.LONG SMOKESTAR43
|
||
.WORD 4
|
||
.LONG SMOKESTAR41
|
||
.WORD 4
|
||
.LONG SMOKESTAR42
|
||
.WORD 4
|
||
.LONG SMOKESTAR43
|
||
.WORD 2
|
||
.LONG SMOKESTAR41
|
||
.WORD 2
|
||
.LONG SMOKESTAR42
|
||
.WORD 2
|
||
.LONG SMOKESTAR43
|
||
.WORD 2
|
||
.LONG SMOKESTAR41
|
||
.WORD 2
|
||
.LONG SMOKESTAR42
|
||
.WORD 2
|
||
.LONG SMOKESTAR43
|
||
.WORD 2
|
||
.LONG SMOKESTAR41
|
||
.WORD 2
|
||
.LONG SMOKESTAR42
|
||
.WORD 2
|
||
.LONG SMOKESTAR43
|
||
.WORD 2
|
||
.LONG SMOKESTAR41
|
||
.WORD 2
|
||
.LONG SMOKESTAR42
|
||
.WORD 2
|
||
.LONG SMOKESTAR43
|
||
.WORD 2
|
||
.LONG SMOKESTAR41
|
||
.WORD 2
|
||
.LONG SMOKESTAR42
|
||
.WORD 2
|
||
.LONG SMOKESTAR43
|
||
.WORD 2
|
||
.LONG SMOKESTAR41
|
||
.WORD 2
|
||
.LONG SMOKESTAR42
|
||
.WORD 2
|
||
.LONG SMOKESTAR43
|
||
.WORD 2
|
||
.LONG SMOKESTAR41
|
||
.WORD 2
|
||
.LONG SMOKESTAR42
|
||
.WORD 2
|
||
.LONG SMOKESTAR43
|
||
.WORD 2|NEWPALET
|
||
.LONG flame
|
||
.LONG SMOKESTAR41
|
||
.WORD 2
|
||
.LONG SMOKESTAR42
|
||
.WORD 2
|
||
.LONG SMOKESTAR43
|
||
.WORD 2
|
||
.LONG SMOKESTAR41
|
||
.WORD 2
|
||
.LONG SMOKESTAR42
|
||
.WORD 2
|
||
.LONG SMOKESTAR43
|
||
.WORD 2
|
||
.LONG SMOKESTAR41
|
||
.WORD 2|NEWPALET
|
||
.LONG FIXED3
|
||
.LONG SMOKESTAR42
|
||
.WORD 2
|
||
.LONG SMOKESTAR43
|
||
.WORD 2
|
||
.LONG SMOKESTAR41
|
||
.WORD 2
|
||
.LONG SMOKESTAR42
|
||
.WORD 2
|
||
.LONG SMOKESTAR43
|
||
.WORD 2
|
||
.LONG SMOKESTAR41
|
||
.WORD 2|NEWPALET
|
||
.LONG flame
|
||
.LONG SMOKESTAR42
|
||
.WORD 2
|
||
.LONG SMOKESTAR43
|
||
.WORD 2
|
||
.LONG SMOKESTAR41
|
||
.WORD 2
|
||
.LONG 0
|
||
.LONG FLAMEBIG1
|
||
.WORD 6|MAKESOUND
|
||
.LONG FIRESTART_SND
|
||
.LONG FLAMEBIG2
|
||
.WORD 6
|
||
.LONG FLAMEBIG3
|
||
.WORD 6
|
||
.LONG FLAMEBIG4
|
||
.WORD 6
|
||
.LONG 0
|
||
|
||
*
|
||
*FIRE INITIALIZATION TABLES
|
||
FIREU_INIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG SMOKESTAR01,[12,12],DUMCOLL
|
||
.WORD DMAWNZ&0F000H,FIREOID
|
||
|
||
FIRED_INIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG SMOKESTAR01,[12,12],DUMCOLL
|
||
.WORD DMAWNZ,FIREOID
|
||
|
||
FIREL_INIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG SMOKESTAR41,[12,12],DUMCOLL
|
||
.WORD DMAWNZ|M_FLIPH,FIREOID
|
||
|
||
FIRER_INIT:
|
||
.LONG 0,0
|
||
.WORD 0,0
|
||
.LONG SMOKESTAR41,[12,12],DUMCOLL
|
||
.WORD DMAWNZ,FIREOID
|
||
|
||
*
|
||
*OG ISLE PIT
|
||
PIT_OPEN:
|
||
.LONG OGPIT1
|
||
.WORD 6
|
||
.LONG OGPIT2
|
||
.WORD 6
|
||
.LONG OGPIT3
|
||
.WORD 6
|
||
.LONG OGPIT4
|
||
.WORD 6
|
||
.LONG OGPIT5
|
||
.WORD 6
|
||
.LONG OGPIT6
|
||
.WORD 6
|
||
.LONG OGPIT7
|
||
.WORD 6
|
||
.LONG OGPIT8
|
||
.WORD 6
|
||
.LONG OGPIT9
|
||
.WORD 6
|
||
.LONG OGPIT10
|
||
.WORD 6
|
||
.LONG OGPIT11
|
||
.WORD 1
|
||
.LONG 0
|
||
PIT_FULL:
|
||
.LONG OGPIT11
|
||
.WORD 1
|
||
.LONG 0
|
||
|
||
PIT_CLOSE:
|
||
.LONG OGPIT11
|
||
.WORD 4
|
||
.LONG OGPIT10
|
||
.WORD 4
|
||
.LONG OGPIT9
|
||
.WORD 4
|
||
.LONG OGPIT8
|
||
.WORD 4
|
||
.LONG OGPIT7
|
||
.WORD 4
|
||
.LONG OGPIT6
|
||
.WORD 4
|
||
.LONG OGPIT5
|
||
.WORD 4
|
||
.LONG OGPIT4
|
||
.WORD 4
|
||
.LONG OGPIT3
|
||
.WORD 4
|
||
.LONG OGPIT2
|
||
.WORD 4
|
||
.LONG OGPIT1
|
||
.WORD 1
|
||
.LONG 0
|
||
|
||
*
|
||
*INITIAL DISPATCH TABLE
|
||
* .LONG DISPATCH 1, PARAMS
|
||
* .
|
||
* .LONG DISPATCH N, PARAMS
|
||
* .LONG 0
|
||
* .LONG POSITION DISPATCH TABLE PTR (0=SKIP)
|
||
* .LONG TIME DISPATCH TABLE PTR (0=SKIP)
|
||
* .LONG ENFORCER BAITER TABLE PTR (0=SKIP)
|
||
* .WORD TIME UNTIL START OF BAITER PROCESS
|
||
*
|
||
*WAVE 1
|
||
*
|
||
WAVE1DSP
|
||
.LONG FLOWER_START,[1,3],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,1],[0,SHROOMOID]
|
||
.LONG TAR_START,[0,1],[0,TAROID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE1TIME
|
||
.WORD 3500 ;ENFORCER BAITER TIME
|
||
|
||
WAVE1TIME
|
||
.WORD 300
|
||
.LONG TROG_START,[0,1],[0,TROGOID]
|
||
.WORD 400
|
||
.LONG START_POWERUPS,[5*60,3],HSHOE
|
||
.WORD 400
|
||
.LONG EXTRA_TROG_START,1,120
|
||
.WORD 0
|
||
*
|
||
*WAVE 3
|
||
*
|
||
WAVE3DSP
|
||
.LONG FLOWER_START,[1,1],[0,FLOWEROID]
|
||
.LONG TAR_START,[0,2],[0,TAROID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE3TIME
|
||
.WORD 2560 ;ENFORCER BAITER TIME
|
||
|
||
WAVE3TIME
|
||
.WORD 100
|
||
.LONG EXTRA_TROG_START,3,30
|
||
.WORD 400
|
||
.LONG START_POWERUPS,[5*60,3],HSHOE|PAPPLE
|
||
.WORD 400
|
||
.LONG EXTRA_TROG_START,4,30
|
||
.WORD 0
|
||
*
|
||
*WAVE 4
|
||
*
|
||
WAVE4DSP
|
||
.LONG ROCK_START,TROGHENG1,[0,ROCKOID]
|
||
.LONG FLOWER_START,[1,1],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[0,1],[0,SHROOMOID]
|
||
.LONG TAR_START,[0,1],[0,TAROID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE4TIME
|
||
.WORD 0A00H ;ENFORCER BAITER TIME
|
||
|
||
WAVE4TIME
|
||
.WORD 100
|
||
.LONG EXTRA_TROG_START,3,30
|
||
.WORD 400
|
||
.LONG START_POWERUPS,[5*60,4],HSHOE|PAPPLE|ICE
|
||
.WORD 400
|
||
.LONG EXTRA_TROG_START,4,30
|
||
.WORD 0
|
||
|
||
*
|
||
*WAVE 7
|
||
*
|
||
WAVE7DSP
|
||
.LONG TROG_PIT_PICK,[0,3],[0,0]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE7TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
WAVE7TIME
|
||
.WORD 60
|
||
.LONG EXTRA_TROG_START,0404H,30
|
||
.WORD 400
|
||
.LONG START_POWERUPS,[5*60,4],HSHOE|PAPPLE|ICE|CHILI
|
||
.WORD 800
|
||
.LONG EXTRA_TROG_START,0303H,30
|
||
.WORD 0
|
||
*
|
||
*WAVE 8
|
||
*
|
||
WAVE8DSP
|
||
.LONG ROCK_START,TROGSKULL1,[0,ROCKOID]
|
||
.LONG FLOWER_START,[1,2],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,1],[0,SHROOMOID]
|
||
.LONG TROG_PIT_PICK,[0,2],[0,0]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE8TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
WAVE8TIME
|
||
.WORD 60
|
||
.LONG EXTRA_TROG_START,0404H,30
|
||
.WORD 400
|
||
.LONG START_POWERUPS,[5*60,4],HSHOE|PAPPLE|ICE|CHILI
|
||
.WORD 400
|
||
.LONG EXTRA_TROG_START,4,30
|
||
.WORD 800
|
||
.LONG EXTRA_TROG_START,0303H,30
|
||
.WORD 0
|
||
|
||
*
|
||
*WAVE 9
|
||
*
|
||
WAVE9DSP
|
||
.LONG ROCK_START,TROGSKULL2,[0,ROCKOID]
|
||
.LONG FLOWER_START,[1,2],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,1],[0,SHROOMOID]
|
||
.LONG TROG_PIT_PICK,[0,2],[0,0]
|
||
.LONG TAR_START,[0,2],[0,TAROID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE8TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
*
|
||
*WAVE 10
|
||
*
|
||
WAVE10DSP
|
||
.LONG FLOWER_START,[0,5],[0,FLOWEROID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE10TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
WAVE10TIME
|
||
.WORD 20
|
||
.LONG TROG_START,[4,8],[0,TROGOID]
|
||
.WORD 101
|
||
.LONG EXTRA_TROG_START,3,10
|
||
.WORD 600
|
||
.LONG TROG_START,[2,4],[0,TROGOID]
|
||
.WORD 850
|
||
.LONG EXTRA_TROG_START,303H,10
|
||
.WORD 0
|
||
*
|
||
*WAVE 11
|
||
*
|
||
WAVE11DSP
|
||
.LONG HOUSE_START,HOUSE_TABLE_1,[0,HAUSOID]
|
||
.LONG FLOWER_START,[1,2],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,1],[0,SHROOMOID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE11TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
WAVE11TIME
|
||
.WORD 11
|
||
.LONG EXTRA_TROG_START,4,10
|
||
.WORD 400
|
||
.LONG START_POWERUPS,[5*60,4],HSHOE|PAPPLE|ICE|CHILI
|
||
.WORD 0
|
||
|
||
*
|
||
*WAVE 12
|
||
*
|
||
WAVE12DSP
|
||
.LONG HOUSE_START,HOUSE_TABLE_2,[0,HAUSOID]
|
||
.LONG FLOWER_START,[1,2],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,1],[0,SHROOMOID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE12TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
WAVE12TIME
|
||
.WORD 11
|
||
.LONG EXTRA_TROG_START,4,10
|
||
.WORD 400
|
||
.LONG START_POWERUPS,[5*60,3],HSHOE|PAPPLE|ICE|CHILI
|
||
.WORD 800
|
||
.LONG EXTRA_TROG_START,0303H,30
|
||
.WORD 0
|
||
|
||
*
|
||
*WAVE 13
|
||
*
|
||
WAVE13DSP
|
||
.LONG HOUSE_START,HOUSE_TABLE_3,[0,HAUSOID]
|
||
.LONG FLOWER_START,[1,2],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,1],[0,SHROOMOID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE12TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
*
|
||
*WAVE 14
|
||
*
|
||
WAVE14DSP
|
||
.LONG ROCK_START,ZIG_TABLE_1,[0,ROCKOID]
|
||
.LONG FLOWER_START,[3,3],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,2],[0,SHROOMOID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE14TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
WAVE14TIME
|
||
.WORD 30
|
||
.LONG EXTRA_TROG_START,030003H,92
|
||
.WORD 400
|
||
.LONG START_POWERUPS,[5*60,5],HSHOE|PAPPLE|ICE|CHILI
|
||
.WORD 0
|
||
*
|
||
*WAVE 15
|
||
*
|
||
WAVE15DSP
|
||
.LONG ROCK_START,ZIG_TABLE_1,[0,ROCKOID]
|
||
.LONG FLOWER_START,[3,3],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,2],[0,SHROOMOID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE15TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
WAVE15TIME
|
||
.WORD 30
|
||
.LONG EXTRA_TROG_START,030003H,92
|
||
.WORD 400
|
||
.LONG START_POWERUPS,[5*60,5],HSHOE|PAPPLE|ICE|CHILI
|
||
.WORD 500
|
||
.LONG EXTRA_TROG_START,03H,30
|
||
.WORD 800
|
||
.LONG EXTRA_TROG_START,0303H,30
|
||
.WORD 0
|
||
*
|
||
*WAVE 16
|
||
*
|
||
WAVE16DSP
|
||
.LONG HOUSE_START,HOUSE_TABLE_1,[0,HAUSOID]
|
||
.LONG ROCK_START,ZIG_TABLE_1,[0,ROCKOID]
|
||
.LONG FLOWER_START,[3,3],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,2],[0,SHROOMOID]
|
||
.LONG TAR_START,[0,2],[0,TAROID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE15TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
*
|
||
*WAVE 17
|
||
*
|
||
WAVE17DSP
|
||
.LONG FLOWER_START,[0,3],[0,FLOWEROID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG 0 ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
*
|
||
*WAVE 18
|
||
*
|
||
WAVE18DSP
|
||
.LONG CATAPULT_START,[1,2],[0,CATOID]
|
||
.LONG FLOWER_START,[1,3],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,2],[0,SHROOMOID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE18TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
WAVE18TIME:
|
||
.WORD 60
|
||
.LONG EXTRA_TROG_START,03000003H,10
|
||
.WORD 400
|
||
.LONG START_POWERUPS,[5*60,5],HSHOE|PAPPLE|ICE|CHILI
|
||
.WORD 0
|
||
*
|
||
*WAVE 19
|
||
*
|
||
WAVE19DSP
|
||
.LONG CATAPULT_START,[1,2],[0,CATOID]
|
||
.LONG ROCK_START,ZIG_TABLE_1,[0,ROCKOID]
|
||
.LONG FLOWER_START,[1,3],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,2],[0,SHROOMOID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE19TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
WAVE19TIME:
|
||
.WORD 30
|
||
.LONG EXTRA_TROG_START,03000003H,10
|
||
.WORD 400
|
||
.LONG START_POWERUPS,[5*60,5],HSHOE|PAPPLE|ICE|CHILI
|
||
.WORD 0
|
||
*
|
||
*WAVE 20
|
||
*
|
||
WAVE20DSP
|
||
.LONG CATAPULT_START,[1,2],[0,CATOID]
|
||
.LONG ROCK_START,ZIG_TABLE_2,[0,ROCKOID]
|
||
.LONG FLOWER_START,[1,3],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,2],[0,SHROOMOID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE20TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
WAVE20TIME:
|
||
.WORD 60
|
||
.LONG EXTRA_TROG_START,03000003H,10
|
||
.WORD 400
|
||
.LONG START_POWERUPS,[5*60,5],HSHOE|PAPPLE|ICE|CHILI
|
||
.WORD 500
|
||
.LONG EXTRA_TROG_START,3,30
|
||
.WORD 0
|
||
|
||
*
|
||
*WAVE 21
|
||
*
|
||
WAVE21DSP
|
||
.LONG FLOWER_START,[0,3],[0,FLOWEROID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE21TIME ;TIME TABLE PTR
|
||
.WORD 0A00H ;ENFORCER BAITER TIME
|
||
|
||
WAVE21TIME
|
||
.WORD 1
|
||
.LONG TROG_START,[4,8],[0,TROGOID]
|
||
.WORD 101
|
||
.LONG EXTRA_TROG_START,3,10
|
||
.WORD 600
|
||
.LONG TROG_START,[2,4],[0,TROGOID]
|
||
.WORD 850
|
||
.LONG TROG_START,[2,2],[0,TROGOID]
|
||
.WORD 0
|
||
|
||
*
|
||
*WAVE 22
|
||
*
|
||
WAVE22DSP
|
||
.LONG ROCK_START,ROCK_TABLE_1,[0,ROCKOID]
|
||
.LONG FLOWER_START,[3,3],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,2],[0,SHROOMOID]
|
||
.LONG TROG_PIT_PICK,[1,2],[0,0]
|
||
.LONG TAR_START,[0,2],[0,TAROID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE22TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
WAVE22TIME:
|
||
.WORD 10
|
||
.LONG EXTRA_TROG_START,00010103H,10
|
||
.WORD 11
|
||
.LONG START_POWERUPS,[5*60,5],HSHOE|PAPPLE|ICE|CHILI
|
||
.WORD 300
|
||
.LONG EXTRA_TROG_START,00010103H,10
|
||
.WORD 800
|
||
.LONG EXTRA_TROG_START,00010103H,10
|
||
.WORD 0
|
||
*
|
||
*WAVE 23
|
||
*
|
||
WAVE23DSP
|
||
.LONG HOUSE_START,HOUSE_TABLE_1,[0,HAUSOID]
|
||
.LONG ROCK_START,PALM_TABLE_1,[0,ROCKOID]
|
||
.LONG FLOWER_START,[3,3],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,2],[0,SHROOMOID]
|
||
.LONG TROG_PIT_PICK,[1,2],[0,0]
|
||
.LONG TAR_START,[0,2],[0,TAROID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE23TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
WAVE23TIME
|
||
.WORD 10
|
||
.LONG EXTRA_TROG_START,01010104H,10
|
||
.WORD 11
|
||
.LONG START_POWERUPS,[5*60,5],HSHOE|PAPPLE|ICE|CHILI
|
||
.WORD 300
|
||
.LONG EXTRA_TROG_START,01010104H,10
|
||
.WORD 800
|
||
.LONG EXTRA_TROG_START,01010104H,10
|
||
.WORD 0
|
||
|
||
*
|
||
*WAVE 32
|
||
*
|
||
WAVE32DSP
|
||
.LONG FLOWER_START,[1,3],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,1],[0,SHROOMOID]
|
||
.LONG TAR_START,[0,1],[0,TAROID]
|
||
.LONG TROG_FIRE_PICK,[1,2],[0,0]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE42TIME
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
*
|
||
*WAVE 33
|
||
*
|
||
WAVE33DSP
|
||
.LONG FLOWER_START,[1,1],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,1],[0,SHROOMOID]
|
||
.LONG TAR_START,[0,1],[0,TAROID]
|
||
.LONG TROG_FIRE_PICK,[1,4],[0,0]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE42TIME
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
*
|
||
*WAVE 34
|
||
*
|
||
WAVE34DSP
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE7TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
*
|
||
*WAVE 36
|
||
*
|
||
WAVE36DSP
|
||
.LONG CATAPULT_START,[1,2],[0,CATOID]
|
||
.LONG ROCK_START,ZIG_TABLE_1,[0,ROCKOID]
|
||
.LONG FLOWER_START,[3,3],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,2],[0,SHROOMOID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE15TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
*
|
||
*WAVE 38
|
||
*
|
||
WAVE38DSP
|
||
.LONG ROCK_START,ZIG_TABLE_1,[0,ROCKOID]
|
||
.LONG FLOWER_START,[3,3],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,2],[0,SHROOMOID]
|
||
.LONG TROG_PIT_PICK,[1,2],[0,0]
|
||
.LONG TROG_FIRE_PICK,[1,4],[0,0]
|
||
.LONG TAR_START,[0,2],[0,TAROID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE23TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
*
|
||
*WAVE 42
|
||
*
|
||
WAVE42DSP
|
||
.LONG ROCK_START,TROGHENG1,[0,ROCKOID]
|
||
.LONG FLOWER_START,[1,1],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[0,1],[0,SHROOMOID]
|
||
.LONG TAR_START,[0,1],[0,TAROID]
|
||
.LONG TROG_FIRE_PICK,[2,4],[0,0]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE42TIME
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
|
||
WAVE42TIME
|
||
.WORD 100
|
||
.LONG EXTRA_TROG_START,3,30
|
||
.WORD 400
|
||
.LONG START_POWERUPS,[5*60,4],HSHOE|PAPPLE|ICE
|
||
.WORD 400
|
||
.LONG EXTRA_TROG_START,0404H,30
|
||
.WORD 0
|
||
|
||
*
|
||
*WAVE 43
|
||
*
|
||
WAVE43DSP
|
||
.LONG ROCK_START,TROGSKULL2,[0,ROCKOID]
|
||
.LONG FLOWER_START,[1,2],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,1],[0,SHROOMOID]
|
||
.LONG TROG_PIT_PICK,[0,2],[0,0]
|
||
.LONG TROG_FIRE_PICK,[2,4],[0,0]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE7TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
*
|
||
*WAVE 45
|
||
*
|
||
WAVE45DSP
|
||
.LONG HOUSE_START,HOUSE_TABLE_1,[0,HAUSOID]
|
||
.LONG ROCK_START,ZIG_TABLE_1,[0,ROCKOID]
|
||
.LONG FLOWER_START,[3,3],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,2],[0,SHROOMOID]
|
||
.LONG TAR_START,[0,2],[0,TAROID]
|
||
.LONG TROG_FIRE_PICK,[2,4],[0,0]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE45TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
WAVE45TIME
|
||
.WORD 30
|
||
.LONG EXTRA_TROG_START,030003H,92
|
||
.WORD 400
|
||
.LONG START_POWERUPS,[5*60,5],HSHOE|PAPPLE|ICE|CHILI
|
||
.WORD 500
|
||
.LONG EXTRA_TROG_START,0303H,30
|
||
.WORD 800
|
||
.LONG EXTRA_TROG_START,0303H,30
|
||
.WORD 0
|
||
|
||
*
|
||
*WAVE 46
|
||
*
|
||
WAVE46DSP
|
||
.LONG CATAPULT_START,[1,2],[0,CATOID]
|
||
.LONG ROCK_START,ZIG_TABLE_2,[0,ROCKOID]
|
||
.LONG FLOWER_START,[1,3],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,2],[0,SHROOMOID]
|
||
.LONG TROG_FIRE_PICK,[1,4],[0,0]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE46TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
WAVE46TIME:
|
||
.WORD 60
|
||
.LONG EXTRA_TROG_START,03000003H,10
|
||
.WORD 400
|
||
.LONG START_POWERUPS,[5*60,5],HSHOE|PAPPLE|ICE|CHILI
|
||
.WORD 500
|
||
.LONG EXTRA_TROG_START,0303H,30
|
||
.WORD 600
|
||
.LONG EXTRA_TROG_START,3,30
|
||
.WORD 0
|
||
|
||
*
|
||
*WAVE 47
|
||
*
|
||
WAVE47DSP
|
||
.LONG ROCK_START,ROCK_TABLE_1,[0,ROCKOID]
|
||
.LONG FLOWER_START,[3,3],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,2],[0,SHROOMOID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE22TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
|
||
*
|
||
*WAVE 48
|
||
*
|
||
WAVE48DSP
|
||
.LONG HOUSE_START,HOUSE_TABLE_1,[0,HAUSOID]
|
||
.LONG ROCK_START,PALM_TABLE_1,[0,ROCKOID]
|
||
.LONG FLOWER_START,[3,3],[0,FLOWEROID]
|
||
.LONG SHROOM_START,[1,2],[0,SHROOMOID]
|
||
.LONG TROG_PIT_PICK,[1,2],[0,0]
|
||
.LONG TAR_START,[0,2],[0,TAROID]
|
||
.LONG TROG_FIRE_PICK,[2,4],[0,0]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE23TIME ;TIME TABLE PTR
|
||
.WORD 3000 ;ENFORCER BAITER TIME
|
||
|
||
*
|
||
*WAVE 49
|
||
*
|
||
WAVE49DSP
|
||
.LONG TGEN_START,TGEN_TABLE_1,[0,TGENOID]
|
||
.LONG FLOWER_START,[3,3],[0,FLOWEROID]
|
||
.LONG 0 ;END OF INITIAL TABLE
|
||
.LONG WAVE49TIME ;TIME TABLE PTR
|
||
.WORD 0 ;ENFORCER BAITER TIME
|
||
|
||
WAVE49TIME
|
||
.WORD 60
|
||
.LONG EXTRA_TROG_START,10,30
|
||
.WORD 400
|
||
.LONG START_POWERUPS,[5*60,4],HSHOE|PAPPLE|ICE|CHILI
|
||
.WORD 600
|
||
.LONG EXTRA_TROG_START,10,30
|
||
.WORD 800
|
||
.LONG EXTRA_TROG_START,0A0AH,30
|
||
.WORD 1000
|
||
.LONG EXTRA_TROG_START,0A0AH,30
|
||
.WORD 1200
|
||
.LONG EXTRA_TROG_START,01000001H,10
|
||
.WORD 0
|
||
|
||
.END
|
||
|