trog/TROGCAVE.ASM

2468 lines
52 KiB
NASM
Raw Permalink Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

.MLIB "TROGMACS.LIB"
.FILE 'TROGCAVE.ASM'
.TITLE " <<< T R O G -- A TROG'S HOME IS HIS CAVE >>>"
.WIDTH 132
.OPTION B,D,L,T
.MNOLIST
**************************************************************************
* *
* COPYRIGHT (C) 1990 MIDWAY MANUFACTURING COMPANY, *
* MANUFACTURERS OF BALLY/MIDWAY AMUSEMENT GAMES. *
* ALL RIGHTS RESERVED. *
* *
**************************************************************************
.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" ; PALETTE HANDLER STUFF
.INCLUDE "IMGTBL.GLO"
.INCLUDE "BGNDTBL.GLO" ;Background equates
.INCLUDE "STRING.H"
.INCLUDE "TROGSEQU.ASM"
.INCLUDE "TROGAEQU.ASM"
.INCLUDE "TROGCAVE.TBL" ;NOW WE HAVE IMAGES
**************************************************************************
* *
* DEFS AND REFS *
* *
**************************************************************************
.DEF CAVESHOW1,CAVESHOW2,CAVESHOW3,CAVESHOW4,CAVESHOW5
.DEF SIGNINIT, AHA_SND
.REF TROGCAVE1
.REF BAKMODS, BGND_UD1
.REF CYCLE16
.REF FADEIN, FADE_ONLY, FadeIn, FadeOut, WIPEOUT
.REF DINOLOAD, REXATAB, RESTP0, TRSTP0,SPWAP4F1
.REF TROG_CLUB_ATAB, VOBLIT1, SEE_STARS, START_FIRE_LR
.REF SMOKESTAR41, FIRE_ANIMII, TREATP4F8, TREATP0F8
.REF WHLATAB, WHEEL410
.REF FADEOUT, SCORPROC, COLOR_START
.REF TRBOP0F1,TRBOP0F2,TRBOP0F3,TRBOP0F4,TRBOP0F5
.REF SPSQP4FF1,SPSQP4FF2,SPSQP4FF3
.REF SLEEP_SWITCHX, CSHOW6_FLAG
.REF TROGWOBBLE_D
.REF SPLAYER_NUM
**************************************************************************
* *
* USEFUL VARIABLES *
* *
**************************************************************************
CAVE_ZPOS EQU 300H
.BSS CHALKOBJ,32
.BSS DRAWOBJ,32
.BSS FADEUPOBJ,32
.BSS DRAWLIST,32
.BSS DRAWSEQ,32
.BSS WHEELOBJ,32
.BSS LILOUT,16 ; COUNTER OF LITTLES OUT
.BSS LILFOOD,16
.BSS ANIMDONE,16 ; FOR FLAGGING WHEN DONE WITH ANIM
.BSS TROGBASELOC,32
.BSS FOODOBJ,32
.TEXT
.EVEN
**************************************************************************
* *
* CODE START *
* *
**************************************************************************
PSKIN EQU PDATA ; SKIN OBJECT
PFUR EQU PSKIN+32 ; FUR OBJECT
PWHITE EQU PFUR+32 ; WHITE OBJECT
PARM EQU PWHITE+32 ; ARM OBJECT
PEYE EQU PARM+32 ; EYE OBJECT
PBROW EQU PEYE+32 ; BROW OBJECT
PBLINK EQU PBROW+32 ; BLINK OBJECT
PCHALK EQU PBLINK+32 ; CHALK OBJECT
PTHOUGHT EQU PCHALK+32 ; WHICH ROUTINE TO USE FOR ANIMATION
**************************************************************************
* *
* CAVESHOW1 - TROG CAVE SHOW DRAWING FOOD. *
* NOTE: CALL WITH JSRP *
* *
**************************************************************************
CAVESHOW1:
CALLA RANDOM
ANDI 3,A0
JRZ CAVESHOW1
DEC A0
MOVE A0,@LILFOOD,W
SLL 5,A0
ADDI FOOD_LIST,A0
MOVE *A0,A8,L ; MATCHING SCRIPT FOR FOOD
MOVK 1,A14
MOVE A14,@LILOUT,W
JRUC DO_CAVESHOW
FOOD_LIST
.LONG BURG_LIST,PIZZA_LIST,CHICK_LIST
**************************************************************************
* *
* CAVESHOW2 - TROG INVENTS THE SPRING SHOES. *
* NOTE: CALL WITH JSRP *
* *
**************************************************************************
CAVESHOW2:
MOVK 2,A14
MOVE A14,@LILOUT,W
MOVI SPRING_LIST,A8
JRUC DO_CAVESHOW
**************************************************************************
* *
* CAVESHOW3 - TROG INVENTS THE CLUB. *
* NOTE: CALL WITH JSRP *
* *
**************************************************************************
CAVESHOW3:
MOVK 3,A14
MOVE A14,@LILOUT,W
MOVI CLUB_LIST,A8
JRUC DO_CAVESHOW
**************************************************************************
* *
* CAVESHOW4 - TROG DISCOVERS FIRE. *
* NOTE: CALL WITH JSRP *
* *
**************************************************************************
CAVESHOW4:
MOVK 4,A14
MOVE A14,@LILOUT,W
MOVI FIRE_LIST,A8
JRUC DO_CAVESHOW
**************************************************************************
* *
* CAVESHOW5 - TROG INVENTS THE WHEEL. *
* NOTE: CALL WITH JSRP *
* *
**************************************************************************
CAVESHOW5:
MOVK 5,A14
MOVE A14,@LILOUT,W
MOVI EMC2_LIST,A8
JRUC DO_CAVESHOW
*
*ENTRYPOINT - DO A CAVE SHOW ACCORDING TO THE SCRIPT
*A8 = SCRIPT
DO_CAVESHOW:
SOUNDON
**** SOUND1 TUNE_SND
CLR A0
MOVE A0,@IRQSKYE,W
MOVE A0,@ANIMDONE,W
MOVE A0,@GAMERASE,W ; AUTO ERASE ON
CALLA AUTOEOFF
DISPOFF
JSRP DPYSHIDE
MOVI SCRNEND+[SKYTOPOF,0],A0 ;RE-ADJUST BOTTOM
MOVE A0,@SCRNLR,L
MOVI 08000h,A1
CLR A0
CALLA KILALL ;KILL ALL PROCS, EXCEPT FOR COINS
CALLA COLOR_START ;RE-START THE COLOR CYCLER
SOUND1 TUNE_SND
PUSHP A8
DISPON
MOVK 1,A0
MOVE A0,@GAMERASE,W
CREATE INDPID,CAVESIGN
SLEEP 40
CLR A0
MOVE A0,@GAMERASE,W
CALLA AUTOEOFF
DISPOFF ; MIGHT HAVE TO WASTE AUTOERASE HERE
JSRP CAVE_BACKGND
PULLP A8
MOVE *A8,A14,L
JRZ NO_LIL_PROCESS
CALLR LIL_PROCESS
NO_LIL_PROCESS
JSRP CAVE_ACTION
MOVI 08000h,A1
CLR A0
CALLA KILALL ;KILL ALL PROCS, EXCEPT FOR COINS
DISPOFF
CALLA CLRPLAY ;CLEAR THE CAVE SHIT
SLEEP 2 ; GNP SUGGESTION
CALLA MYOINIT ;AND RE-INIT
DISPON ;RETURN TO YOUR HOMES
CREATE INDPIDW,SCORPROC ;START UP THE PUSH PLAYER START PROCESS
CALLA COLOR_START ;RE-START THE COLOR CYCLER
JSRP DPYSNORM
RETP
**************************************************************************
* *
* DPYSNORM - INCREMENTS DPYSTRT FROM ITS CURRENT VALUE TO FFFCH *
* *
**************************************************************************
DPYSNORM
MOVK 16,A11
DPYSNL
MOVE @DPYSTRT,A0,W
ADD A11,A0
JRNN DPYNFIX ;WE'RE DEFINITELY DONE
ZEXT A0
CMPI NORMDPYS,A0
JRHS DPYNFIX
MOVE A0,@DPYSTRT,W
SLOOP 1,DPYSNL
DPYNFIX
MOVI NORMDPYS,A0
MOVE A0,@DPYSTRT,W ;MAKE SURE IT HOLDS CORRECTLY
RETP
**************************************************************************
* *
* DPYSHIDE - DECREMENTS DPYSTRT FROM ITS CURRENT VALUE TO SCORDPYS *
* *
**************************************************************************
DPYSHIDE
MOVK 16,A11
DPYSHL
MOVE @DPYSTRT,A0,W
SUB A11,A0
JRNN DPYHFIX ;WE'RE DEFINITELY DONE
CMPI SCORDPYS,A0
JRLS DPYHFIX
MOVE A0,@DPYSTRT,W
SLOOP 1,DPYSHL
DPYHFIX
MOVI SCORDPYS,A0
MOVE A0,@DPYSTRT,W ;MAKE SURE IT HOLDS CORRECTLY
RETP
**************************************************************************
* *
* CAVE_TEST *
* *
* CAVE_TEST *
* *
* CAVE_TEST *
* *
**************************************************************************
****CAVE_TEST:
**** MOVK 2,A0
**** MOVE A0,@SPLAYER_NUM,W
**** JSRP CAVESHOW6
**** CALLA WIPEOUT
**** DISPON
**** JRUC CAVE_TEST
**** JSRP CAVESHOW1
**** CALLA WIPEOUT
**** DISPON
**** JSRP CAVESHOW2
**** CALLA WIPEOUT
**** DISPON
**** JSRP CAVESHOW3
**** CALLA WIPEOUT
**** DISPON
**** JSRP CAVESHOW4
**** CALLA WIPEOUT
**** DISPON
**** JSRP CAVESHOW5
**** CALLA WIPEOUT
**** DISPON
**** RETP
.IF 0
CHICK_LIST
.LONG FOOD_ANIM, DRCHICK1, DRCHICK2, DRCHICK3, DRCHICK4, 0
BURG_LIST
.LONG FOOD_ANIM, DRBURG1, DRBURG2, DRBURG3, DRBURG4, 0
PIZZA_LIST
.LONG FOOD_ANIM, DRPIZZA1, DRPIZZA2, DRPIZZA3, DRPIZZA4, 0
CLUB_LIST
.LONG CLUB_ANIM, DRCLUB1, DRCLUB2, DRCLUB3, DRCLUB4, 0
FIRE_LIST
.LONG FIRE_ANIM, DRFIRE1, DRFIRE2, DRFIRE3, DRFIRE4, 0
WHEEL_LIST
.LONG DRWHEEL1, DRWHEEL2, DRWHEEL3, DRWHEEL4, 0
SPRING_LIST
.LONG SPRING_ANIM, DRSPRING1, DRSPRING2, DRSPRING3, DRSPRING4, 0
EMC2_LIST
.LONG WHEEL_ANIM, EMC21, EMC22, EMC23, EMC24, 0
.ENDIF
CHICK_LIST
.LONG FOOD_ANIM, DRCHICK2, DRCHICK4,0
BURG_LIST
.LONG FOOD_ANIM, DRBURG2, DRBURG4, 0
PIZZA_LIST
.LONG FOOD_ANIM, DRPIZZA2, DRPIZZA4, 0
CLUB_LIST
.LONG CLUB_ANIM, DRCLUB2, DRCLUB4, 0
FIRE_LIST
.LONG FIRE_ANIM, DRFIRE2, DRFIRE4, 0
WHEEL_LIST
.LONG DRWHEEL2, DRWHEEL4, 0
SPRING_LIST
.LONG SPRING_ANIM, DRSPRING2, DRSPRING4, 0
EMC2_LIST
.LONG WHEEL_ANIM, EMC22, EMC24, 0
**************************************************************************
* *
* CAVE_ACTION_GO *
* *
* START A CAVE ACTION SCENE AND GET GOING *
* *
* ENTRY *
* A8 POINTER TO PICTURE LIST FOR WALL *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* JSRP *
* *
**************************************************************************
HEADSCRATCH EQU 5
CAVE_ACTION_GO:
MOVE *A8+,A14,L
MOVE A14,*A13(PTHOUGHT),L ; WHICH THOUGHT ANIMATION TO USE
MOVE A8,@DRAWLIST,L ; DRAWING LIST
MOVI TROGSKINIT,A14
CALLA GPALOBJSTF
JRZ CAVE_ACTION_DIE
MOVE A0,*A13(PSKIN),L ; SKIN
MOVE A0,A8
MOVI TROGFRINIT,A14
CALLA GPALOBJSTF
JRZ CAVE_ACTION_DIE
MOVE A0,*A13(PFUR),L ; FUR
MOVE A0,*A8(OMLINK),L
MOVE A0,A8
MOVI TROGARMINIT,A14
CALLA GPALOBJSTF
JRZ CAVE_ACTION_DIE
PUSH A8
MOVE A0,A8
CALLA OBJ_OFF
CALLA INSOBJ
MOVE A0,*A13(PARM),L ; ARM
MOVI TROGEYEINIT,A14
CALLA GPALOBJSTF
JRZ CAVE_ACTION_DIE
MOVE A0,*A13(PEYE),L ; EYE
MOVE A0,A8
CALLA OBJ_OFF
CALLA INSOBJ
MOVI TROGBROWINIT,A14
CALLA GPALOBJSTF
JRZ CAVE_ACTION_DIE
MOVE A0,*A13(PBROW),L ; BROW
MOVE A0,A8
CALLA OBJ_OFF
CALLA INSOBJ
PULL A8
MOVI TROGDRAWINIT,A14
CALLA GPALOBJSTF
JRZ CAVE_ACTION_DIE
PUSH A8
MOVE A0,A8
CALLA OBJ_OFF
CALLA INSOBJ
MOVE A0,@DRAWOBJ,L ; PICTURE ON THE WALL
MOVI TROGDRAWINIT,A14
CALLA GPALOBJSTF
JRZ CAVE_ACTION_DIE
MOVE A0,A8
CALLA OBJ_OFF
CALLA INSOBJ
MOVI FADEGRAY15,A0,L
CALLA GETFPAL
JRZ CAVE_ACTION_DIE
MOVE A0,*A8(OPAL),W ; SET A GOOD FADER PALETTE
MOVE *A8(OZPOS),A0,W
DEC A0
MOVE A0,*A8(OZPOS),W
MOVE A8,@FADEUPOBJ,L ; THE PICTURE WE ARE GOING TO FADE UP
PULL A8
MOVI TROGBLKINIT,A14
CALLA GPALOBJSTF
JRZ CAVE_ACTION_DIE
MOVE A0,*A13(PBLINK),L ; BLINK ME, BABY
MOVI TROGCHALKINIT,A14
CALLA GPALOBJSTF
JRZ CAVE_ACTION_DIE
PUSH A8
MOVE A0,A8
CALLA OBJ_OFF
CALLA INSOBJ ; SETIT UP FOR CHALKER
MOVE A0,@CHALKOBJ,L
PULL A8
MOVI TROGWHINIT,A14
CALLA GPALOBJSTF
JRZ CAVE_ACTION_DIE
MOVE A0,*A13(PWHITE),L ; WHITE
PUSH A8
MOVE A0,A8
CALLA OBJ_OFF
PULL A8
MOVE A0,*A8(OMLINK),L
CLR A8
MOVE A8,*A0(OMLINK),L
CALLA INSOBJ
MOVE *A13(PSKIN),A0,L
CALLA INSOBJ
MOVE *A13(PFUR),A0,L
CALLA INSOBJ
;
; ALL OBJECTS CREATED AND READY TO ROCK AND ROLL HERE -- DISP IS F2
;
; ARM WRITING ON THE WALL
;
MOVI FADENOSIGN,A0
CALLA FADEIN
DISPON
SLEEP 5 ; GET THINGS OUT THERE
MOVE @SCRNTL,A0,W
ADDI 75,A0 ;RE-ADJUST FOR OVERLOAD PROTECT
MOVE A0,@SCRNTL,W
;
; WRITE ON THE WALL
;
REWRITE:
JSRP CAVE_WRITE_ARM
SLEEP 4
MOVE *A13(PARM),A8,L
CALLA OBJ_OFF ; GET RID OF HIS ARM
;
; OK, DONE WRITING ON THE WALL, TIME TO TURN AND SHOW SOMEONE
; WHAT ELSE WE HAVE DONE
;
MOVE *A13(PSKIN),A8,L
CALLA GETANIXY ; LOCATION OF BODY INTO A2/A3
SRL 16,A3
MOVY A2,A3
MOVE A3,@TROGBASELOC,L ; SAVE AWAY HIS OLD POSITION
MOVE *A13(PWHITE),A8,L
CALLA OBJ_ON ; TURN ON THE WHITE AGAIN
MOVI TROGTURNTAB,A11
TROG_TURN_LOOP
MOVE *A11+,A1,L
JRZ TROG_TURN_LOOP_GO
MOVI 40000H,A1
MOVI 6000H,A2
CALLR CAVE_VELS
TROG_TURN_LOOP_GO
MOVE *A11+,A1,L
JRZ TROG_TURN_DONE
MOVE *A13(PSKIN),A8,L
MOVE *A8(OFLAGS),A4,W
CALLA ANI
MOVE *A11+,A1,L
MOVE *A13(PFUR),A8,L
MOVE *A8(OFLAGS),A4,W
CALLA ANI
MOVE *A11+,A1,L
JRZ TROG_TURN_DONE ; GROSS, BUT EFFECTIVE
MOVE *A13(PWHITE),A8,L
MOVE *A8(OFLAGS),A4,W
CALLA ANI
MOVE *A11+,A0,L
SLEEPR A0
JRUC TROG_TURN_LOOP
TROG_TURN_DONE:
CLR A1
CLR A2
CALLR CAVE_VELS
;
; START THE HEAD SCRATCH -- FRAMES F9 LOADED INTO SKIN/FUR ALREADY
; FINAL ARM SCRATCH IS CTROARM1F9 ( FINGER RAISED TOWARDS PERSON )
;
MOVE *A13(PWHITE),A8,L
CALLA OBJ_OFF ; TURN OFF THE WHITE EYE
CALLA GETANIXY ; LOCATION OF BODY INTO A2/A3
SRL 16,A3
MOVY A2,A3
MOVE *A13(PEYE),A8,L ; START HIS EYE MOVING
CALLA OBJ_TO_PNT
; MOVE A8,A0
; CALLA INSOBJ ; GET IT ON THE OBJECT LIST
CALLA OBJ_ON
CREATE INDPID,CAVE_EYE
MOVE *A13(PBROW),A8,L ; MOVE HIS BROW AROUND
PUSH A3
SUBI 40000H,A3 ; MOVE BROW UP A LITTLE
CALLA OBJ_TO_PNT
PULL A3
; MOVE A8,A0
; CALLA INSOBJ
CALLA OBJ_ON
CREATE INDPID,CAVE_BROW
MOVE *A13(PARM),A8,L
MOVI CAVE_ZPOS,A14
MOVE A14,*A8(OZPOS),W
CALLA OBJ_TO_PNT
CALLA OBJ_ON ; MAKE SURE ARM IS TURNED ON
SOUND1 HMMM_SND
MOVI HEADSCRATCH,A11
TROG_SCRATCH_HEAD
MOVK 1,A1
MOVI TROGSCRATCHARM,A9
JSRP FRANIM
DSJS A11,TROG_SCRATCH_HEAD
;
; IF WE ARE IN THE EMC2 THING, WE GOTS TO TURN BACK AND DRAW AGAIN
;
MOVE @LILOUT,A0,W
CMPI 5,A0
JRNZ TROGFINISH
MOVK 6,A0
MOVE A0,@LILOUT,W
CALLA LIL_PROCESS ; POP UP THE EMC2 ON THE WALL
MOVI WHEEL_LIST,A0
MOVE A0,@DRAWLIST,L ; SETUP THE NEW ANIMATION
MOVE *A13(PEYE),A8,L
CALLA OBJ_OFF
MOVE *A13(PBROW),A8,L
CALLA OBJ_OFF
MOVE *A13(PARM),A8,L
CALLA OBJ_OFF
MOVE *A13(PWHITE),A8,L
CALLA OBJ_ON ; TURN ON THE WHITE AGAIN
MOVI TROGRETURNTAB,A11
TROG_RETURN_LOOP
MOVE *A11+,A1,L
JRZ TROG_RETURN_LOOP_GO
CALLA GETANIXY ; LOCATION OF BODY INTO A2/A3
SRL 16,A3
MOVY A2,A3
MOVE A3,A2
MOVE @TROGBASELOC,A3,L
MOVI 21,A4
CALLA SLINEVEL
CALLR CAVE_VELS
TROG_RETURN_LOOP_GO
MOVE *A11+,A1,L
JRZ TROG_RETURN_DONE
MOVE *A13(PSKIN),A8,L
MOVE *A8(OFLAGS),A4,W
CALLA ANI
MOVE *A11+,A1,L
MOVE *A13(PFUR),A8,L
MOVE *A8(OFLAGS),A4,W
CALLA ANI
MOVE *A11+,A1,L
JRZ TROG_RETURN_DONE ; GROSS, BUT EFFECTIVE
MOVE *A13(PWHITE),A8,L
MOVE *A8(OFLAGS),A4,W
CALLA ANI
MOVE *A11+,A0,L
SLEEPR A0
JRUC TROG_RETURN_LOOP
TROG_RETURN_DONE:
CLR A1
CLR A2
CALLR CAVE_VELS
MOVE *A13(PSKIN),A8,L
CALLA GETANIXY ; LOCATION OF BODY INTO A2/A3
SRL 16,A3
MOVY A2,A3
MOVE *A13(PARM),A8,L
CALLA OBJ_TO_PNT
MOVI CAVE_ZPOS+8,A0
MOVE A0,*A8(OZPOS),W
MOVE *A13(PWHITE),A8,L
CALLA OBJ_ON
JRUC REWRITE
;
; ALL DONE WITH THE WRITE ON THE WALL SHIT
;
TROGFINISH:
MOVE @FADEUPOBJ,A8,L
CALLA DELETE_PAL
MOVE *A13(PARM),A8,L
MOVI CTROARM1F9,A1 ; FINAL ARM EXPRESSION "THOUGHT"
MOVE *A8(OFLAGS),A4,W
CALLA ANI
SLEEP 5
;
; GOING INTO THE HOMESTRETCH HERE, FOLKS!
;
CALLA OBJ_OFF ; TURN OFF THE ARM
MOVE *A13(PEYE),A8,L
CALLA OBJ_OFF
MOVE *A13(PBROW),A8,L
CALLA OBJ_OFF ; LATER ON HIS EYEBROW
MOVE *A13(PWHITE),A8,L
CALLA OBJ_ON ; TURN WHITE BACK ON
MOVI TROGFINALTAB,A11
TROG_FINAL_LOOP
MOVE *A11+,A1,L
JRZ TROG_FINAL_DONE
CMPI CTROSKF11,A1
JRNZ TROG_FINAL_LOOP_GO
MMTM SP,A1,A8
MOVE *A13(PTHOUGHT),A8,L ; WHICH BUBBLE ANIMATION TO USE
CREATE INDPID,CAVE_THOUGHT_BUBBLE
MMFM SP,A1,A8
TROG_FINAL_LOOP_GO
MOVE *A13(PSKIN),A8,L
MOVE *A8(OFLAGS),A4,W
CALLA ANI
MOVE *A11+,A1,L
MOVE *A13(PFUR),A8,L
MOVE *A8(OFLAGS),A4,W
CALLA ANI
MOVE *A11+,A1,L
MOVE *A13(PWHITE),A8,L
MOVE *A8(OFLAGS),A4,W
CALLA ANI
MOVE *A11+,A0,L
SLEEPR A0
JRUC TROG_FINAL_LOOP
TROG_FINAL_DONE:
;
; BLINK HIS EYE A COUPLE OF TIMES FOR PEOPLE
;
SOUND1 AHA_SND
CALLA GETANIXY
SRL 16,A3
MOVY A2,A3
MOVE A3,A8
CREATE INDPID,DINGDING
MOVE *A13(PBLINK),A8,L
CALLA OBJ_TO_PNT
MOVE A8,A0
CALLA INSOBJ
CREATE INDPID,RAND_BLINK
SLEEP 1000
DIE
CAVE_ACTION:
CREATE INDPID,CAVE_ACTION_GO
CLR A0
MOVE A0,@ANIMDONE,W
ANIM_DONE_WAIT:
MOVK 2,A0
JSRP SLEEP_SWITCHX
JRNZ CAVE_ACTION_LATER
MOVE @ANIMDONE,A14,W
JRZ ANIM_DONE_WAIT
CAVE_ACTION_LATER
CLR A0
MOVI 0A000h,A1
CALLA KILALL ;KILL ALL BUT THE INDESTRUCTIBLES
MOVI PFADEPID,A0
CLR A1
NOT A1
CALLA KILALL
MOVI CAVESIGNPID,A0
CALLA KILALL ;KILL CAVE SIGN FLASHER
MOVK 2,A11
CREATE FADEPID,FADE_DOWN ;FADE ALL MUSIC DOWN
**** SOUND1 TRANSITION_SND
CLR A0
CALLA FADEOUT
SLEEP 20 ;ALLOW FADE TO DO THE TRICK
CAVE_ACTION_DIE
RETP
TROGTURNTAB
.LONG 0,CTROSKF4, CTROFRF4, CTROWHF4,25
.LONG 1,CTROSKF4, CTROFRF4, CTROWHF4,5
.LONG 0,CTROSKF8, CTRPFRF8, CTROWHF8,10
.LONG 0,CTROSKF9, CTROFRF9, 0 ; FINAL TURN IS FOR WIMPS
.LONG 0,0
TROGRETURNTAB
.LONG 1,CTROSKF8, CTRPFRF8, CTROWHF8,6
.LONG 0,CTROSKF4, CTROFRF4, CTROWHF4,15
.LONG 0,CTROSKF3, CTROFRF3, 0
.LONG 0,0
TROGFINALTAB
.LONG CTROSKF10, CTROFRF10, CTROWHF10,8
.LONG CTROSKF11, CTROFRF11, CTROWHF11,6
.LONG CTROSKF12, CTROFRF12, CTROWHF12,4
.LONG 0
**************************************************************************
* *
* RAND_BLINK *
* *
* BLINK AT RANDOM INTERVALS *
* *
* ENTRY *
* A8 POINTER TO OBJECT *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* CREATE *
* *
**************************************************************************
RAND_BLINK:
CALLA OBJ_ON
MOVK 1,A1
MOVI TROGEYEBLINK,A9
JSRP FRANIM
CALLA OBJ_OFF
MOVI 15,B0
MOVI 60,B1
CALLA RANGRAND
SLEEPR A0
JRUC RAND_BLINK
**************************************************************************
* *
* CHALK_PLOT *
* *
* PLOT OUT THE PIECE OF CHALK SPECIFIED IN A10 *
* *
* ENTRY *
* A10 CHALK PIECE TO PLOT *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* CREATE *
* *
**************************************************************************
CHALK_PLOT:
MOVE @CHALKOBJ,A8,L ; CHALK OBJECT
MOVE A10,A1 ; IMAGE TO BECOME
MOVE *A8(OFLAGS),A4,W
CALLA ANI
CALLA OBJ_ON
SLEEP 3
CALLA OBJ_OFF
DIE
**************************************************************************
* *
* DINGDING *
* *
* START UP A DINGER AROUND TROG'S HEAD FOR THE SILLINESS *
* *
* ENTRY *
* A8 POSITION OF TROG *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* CREATE *
* *
**************************************************************************
DINGDING:
SOUND1 DING_SND
SLEEP 3
MOVI TROGDINGINIT,A14
CALLA GPALOBJSTF
JRZ DING_DIE
MOVE A0,*A13(PDATA),L
MOVE A8,A3
MOVE A0,A8
CALLA OBJ_TO_PNT
CALLA INSOBJ
DING_LOOP
CALLA OBJ_ON
SLEEP 20
CALLA OBJ_OFF
SLEEP 7
JRUC DING_LOOP
DING_DIE
DIE
**************************************************************************
* *
* OBJECT_OFF *
* *
* TURN AN OBJECT OFF IN AN ANIMATION SCRIPT *
* *
* ENTRY *
* NOTHING *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* CREATE *
* *
**************************************************************************
OBJECT_OFF:
CALLA OBJ_OFF
SLEEP WRITESLEEP
CALLA OBJ_ON
DIE
**************************************************************************
* *
* CAVE_EYE *
* *
* MOVE TROG'S EYE AROUND FOR FRAME 9 *
* *
* ENTRY *
* A8 POINTER TO AN EYE OBJECT *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* CREATE *
* *
**************************************************************************
CAVE_EYE:
CALLA OBJ_ON
MOVK 1,A1
MOVI TROGSCRATCHEYE,A9
JSRP FRANIM
DIE
**************************************************************************
* *
* CAVE_BROW *
* *
* MOVE THE POOR LITTLE GUY'S EYEBROW UP AND DOWN AND ALL AROUND *
* *
* ENTRY *
* A8 OBJECT OF THE BROW *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* CREATE *
* *
**************************************************************************
CAVE_BROW
CALLA OBJ_ON
MOVK 1,A1
MOVI TROGBROW,A9
JSRP FRANIM
DIE
**************************************************************************
* *
* CAVE_WRITE_ARM *
* *
* THE ARM END OF THE WRITING PROCESS -- THIS SHOULD CORRESPOND *
* WITH CAVE_WRITE_WHITE, SINCE THEY TIME FOR EACH OTHER *
* *
* ENTRY *
* A8 POINTER TO ARM OBJECT *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* JSRP *
* *
**************************************************************************
WRITESLEEP EQU 3
CAVE_WRITE_ARM:
MOVE *A13(PARM),A8,L
JRZ CAVE_WRITE_ARM_DIE ; LATER, DUDE!
CALLA OBJ_ON
CAVE_WRITE_ARM_LOOP
MOVE *A13(PWHITE),A8,L ; WHITE PROCESS THING
CREATE INDPID,CAVE_WRITE_WHITE ; ARM WHITE PROCESS
MOVE *A13(PARM),A8,L
MOVK 1,A1
MOVI TROGWRITEARM,A9
JSRP FRANIM
;
; STEP BACK HERE
;
JRUC CAVE_WRITE_ARM_DIE
.IF 0
JRUC NOSTEPBACK
MOVE @LILOUT,A0,W
CMPI 4,A0
JRZ NOSTEPBACK
CALLA OBJ_OFF ; TURN OFF THE ARM
PUSHP A8 ; SAVE ARM ON STACK
MOVE *A13(PWHITE),A8,L
CALLA OBJ_ON ; TURN ON THE WHITE PART OF TROG
MOVI TROGSTEPBACK,A11
TROG_STEP_BACK
MOVE *A11+,A1,L
JRZ TROG_STEP_DONE
MOVE *A13(PSKIN),A8,L
MOVE *A8(OFLAGS),A4,W
CALLA ANI
MOVE *A11+,A1,L
MOVE *A13(PFUR),A8,L
MOVE *A8(OFLAGS),A4,W
CALLA ANI
MOVE *A11+,A1,L
MOVE *A13(PWHITE),A8,L
MOVE *A8(OFLAGS),A4,W
CALLA ANI
MOVE *A11+,A0,L
JRZ TROG_STEP_DONE
SLEEPR A0
JRUC TROG_STEP_BACK
TROG_STEP_DONE
PULLP A8 ; GET BACK THE ARM
CALLA OBJ_ON ; TURN IT BACK ON
NOSTEPBACK
MOVK 1,A1
JSRP FRANIM
.ENDIF
CAVE_WRITE_ARM_DIE:
RETP
.IF 0
TROGSTEPBACK
.LONG CTROSKF4,CTROFRF4,CTROWHF4,40
.LONG CTROSKF3,CTROFRF3,CTROWHF4,0
.ENDIF
**************************************************************************
* *
* CAVE_WRITE_WHITE *
* *
* THE WHITE END OF THE WRITING PROCESS -- MAKE SURE IT LOOKS *
* LIKE CAVE_WRITE_ARM, SINCE THAT IS WHEN IT HAS TO BE FINISHED *
* *
* ENTRY *
* A8 OBJECT WE ARE ABUSING *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* CREATE *
* *
**************************************************************************
CAVE_WRITE_WHITE:
MOVE A8,A8
JRZ CAVE_WRITE_WHITE_DIE ; LATER, DUDE!
CALLA OBJ_ON
MOVK 1,A1
MOVI TROGWRITEWHITE,A9
JSRP FRANIM
JRUC CAVE_WRITE_WHITE_DIE
.IF 0
JRUC NOSLEEPWHITE
MOVE @LILOUT,A0,W
CMPI 4,A0
JRZ NOSLEEPWHITE
SLEEP 40
NOSLEEPWHITE
MOVK 1,A1
JSRP FRANIM
.ENDIF
CAVE_WRITE_WHITE_DIE:
DIE
**************************************************************************
* *
* CAVE_UPDATE_DRAWING *
* *
* UPDATE THE DRAWING ON THE WALL WITH THE LIST *
* *
* ENTRY *
* NOTHING *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* CREATE *
* *
**************************************************************************
CAVE_UPDATE_DRAWING:
MOVE @DRAWLIST,A0,L
MOVE *A0+,A1,L ; NEXT ITEM IN LIST
JRZ CAVE_UPDATE_NOMORE
MOVE A0,@DRAWLIST,L
CMPI DRWHEEL2,A1
JRNZ CUDGO
CUDGO
MOVE @FADEUPOBJ,A8,L
CALLA OBJ_OFF ; FORCE THE OBJECT OFF
MOVE *A8(OFLAGS),A4,W
CALLA ANI
;
MOVI FADEGRAY15,A0
MOVI FADETAB,A11
CALLA FADE_ONLY
SLEEP 5
CALLA OBJ_ON
;
SLEEP 20 ; TIME TO BRING THE OBJECT UP
;
MOVE *A8(OIMG),A1,L ; SHIFT TO THE REAL DRAWING OBJECT
MOVE @DRAWOBJ,A8,L
MOVE *A8(OFLAGS),A4,W
CALLA ANI
CALLA OBJ_ON
CAVE_UPDATE_NOMORE
DIE
**************************************************************************
* *
* CAVE_THOUGHT_BUBBLE *
* *
* PLOT OUT THE THOUGHT BUBBLE STUFF *
* *
* ENTRY *
* A8 WHICH BUBBLE ANIMATION TO USE *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* CREATE *
* *
**************************************************************************
PBUBBLE1 EQU PDATA
PBUBBLE2 EQU PBUBBLE1+32
PBUBBLE3 EQU PBUBBLE2+32
PSEQ EQU PBUBBLE3+32
PSEQ2 EQU PSEQ+32
THINKSEQ EQU 100
CAVE_THOUGHT_BUBBLE:
SLEEP 20 ; DELAY FOR SOUND FINISH
MOVI BUBBLE_1_TAB,A10
CMPI SPRING_ANIM,A8
JRNZ CAVE_THOUGHT_GO
MOVI BUBBLE_2_TAB,A10
CAVE_THOUGHT_GO
MOVE A10,*A13(PSEQ),L
CREATE INDPID,BUBBLE_ANIM
MOVI TROGBUBBLEINIT,A14
CALLA GPALOBJSTF
JRZ CAVE_THOUGHT_DIE
MOVE A0,*A13(PBUBBLE1),L ; OBJECT 1
CALLA INSOBJ
MOVI TROGBUBBLEINIT,A14
CALLA GPALOBJSTF
JRZ CAVE_THOUGHT_DIE
MOVE A0,*A13(PBUBBLE2),L
MOVE A0,A8
CALLA OBJ_OFF
CALLA INSOBJ
;
MOVI TROGBUBBLEINIT,A14
CALLA GPALOBJSTF
JRZ CAVE_THOUGHT_DIE
MOVE A0,*A13(PBUBBLE3),L
MOVE A0,A8
CALLA OBJ_OFF
CALLA INSOBJ
;
SLEEP 4 ; FIRST PART
MOVE *A13(PBUBBLE1),A8,L
MOVI BUBSTAR2,A1
MOVE *A8(OFLAGS),A4,W
CALLA ANI
SLEEP 4
;
CLR A0
MOVE A0,*A13(PSEQ2),W
BUBBLE_RESET
CLR A0
MOVE *A13(PSEQ),A11,L
CMPI BUBBLE_1_TAB,A11
JRZ BUBBLE_BUBBLE ; PHASE 1 ANIMATION THINGIE
MOVE *A13(PSEQ2),A0,W ; CHECK WHERE WE ARE
JRZ BUBBLE_BUBBLE ; HAHA, WE'LL TIME IT SOME YEAR
**** CMPI 1,A0
**** JRZ BUBBLE_JUMP
**** CMPI 2,A0
**** JRZ BUBBLE_JUMP
**** CMPI 3,A0
**** JRZ BUBBLE_JUMP
**** CMPI 4,A0
**** JRZ BUBBLE_JUMP
**** CMPI 5,A0
**** JRZ BUBBLE_JUMP
**** CMPI 6,A0
**** JRZ BUBBLE_JUMP
**** CMPI 7,A0
**** JRLO BUBBLE_BUBBLE
****BUBBLE_JUMP
MOVI BUBBLE_2_REENTER,A11
BUBBLE_BUBBLE
INC A0
MOVE A0,*A13(PSEQ2),W
BUBBLE_RELOOP
MOVE *A11+,A1,L
JRZ BUBBLE_RESET
MOVE *A13(PBUBBLE1),A8,L
MOVE *A8(OFLAGS),A4,W
CALLA ANI
MOVE *A11+,A1,L
MOVE *A13(PBUBBLE2),A8,L
MOVE *A8(OFLAGS),A4,W
CALLA ANI
CALLA OBJ_ON
MOVE *A11+,A1,L
MOVE *A13(PBUBBLE3),A8,L
MOVE *A8(OFLAGS),A4,W
CALLA ANI
CALLA OBJ_ON
MOVE *A11+,A0,L
SLEEPR A0
JRUC BUBBLE_RELOOP
CAVE_THOUGHT_DIE:
DIE
BUBBLE_1_TAB:
.LONG BUBBLE1a, BUBBLE1b, BUBBLE1c, 4
.LONG BUBBLE2a, BUBBLE2b, BUBBLE3c, 4
.LONG BUBBLE3a, BUBBLE3b, BUBBLE3c, 4
.LONG 0
BUBBLE_2_TAB:
.LONG BUBBLE1a, BUBBLE1b, BUBBLE1c, 6
.LONG BUBBLE2a, BUBBLE2b, BUBBLE3c, 6
.LONG BUBBLE3a, BUBBLE3b, BUBBLE3c, 6
BUBBLE_2_WOBBLE:
.LONG BUBBLE1a, BUBBLE1b, BUBBLE1c, 6
.LONG BUBBLE2a, BUBBLE2b, BUBBLE3c, 6
.LONG BUBBLE3a, BUBBLE3b, BUBBLE3c, 6
BUBBLE_2_REENTER:
.LONG BUBBLE1a, BUBBLE1b, BUBBLE1c, 8
.LONG BUBBLE2aa, BUBBLE2b, BUBBLE3c, 8
.LONG BUBBLE3a, BUBBLE3b, BUBBLE3c, 8
.LONG 0
**************************************************************************
* *
* BUBBLE_ANIM *
* *
* START A BUBBLE ANIMATION ROLLING *
* *
* ENTRY *
* A8 WHICH BUBBLE ANIMATION TO USE *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* CREATE *
* *
**************************************************************************
BUBBLE_ANIM:
SLEEP 8 ; GIVE THE BUBBLE TIME TO GET UP
JSRPR A8
DIE
**************************************************************************
* *
* FOOD_ANIM *
* *
* ANIMATE A FOOD DISPLAY *
* *
* ENTRY *
* NOTHING *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* JSRP *
* *
**************************************************************************
PFOOD EQU PDATA
FOOD_ANIM:
MOVI FOODREXINIT,A14
CALLA GPALOBJSTF
JRZ FOOD_DIE
CALLA OBJ_PAL_SET
MOVE A0,*A13(PFOOD),L
MOVE A0,A8
CALLA INSOBJ
CREATE CAVESIGNPID,FOOD_OVERWRITE ; FLASHING FOOD STUFF
CLR A0
MOVE A0,*A13(DVEL),L ; ZERO OUT HIS VELOCITY
MOVI RIGHT,A0
MOVI REXATAB,A10
CALLA DINOLOAD
MOVI [80H,(25*256)+2],A1
JSRP FRANIM
MOVE @FOODOBJ,A8,L
JRZ FOOD_DIE
CALLA OBJ_OFF ; TURN OFF THAT STUPID FOOD
FOOD_DIE
MOVK 1,A1
MOVE A1,@ANIMDONE,W
DIE
FOOD_OVERWRITE:
MOVE A8,A10 ; DINO IN A10
MOVI FOODPICINIT,A14
CALLA GPALOBJSTF
JRZ FOOD_OVER_DIE
MOVE A0,A8
MOVE A0,A9
MOVI FADEGRAY15,A0,L
CALLA GETFPAL
JRZ FOOD_OVER_DIE
MOVE A0,*A8(OPAL),W ; SET A GOOD FADER PALETTE
MOVE @LILFOOD,A1,W
SLL 5,A1
ADDI LIL_FOODTAB,A1
MOVE *A1,A1,L ; WHICH OBJECT
MOVE *A8(OFLAGS),A4,W
CALLA ANI
CMPI LILPIZZA,A1
JRNZ FACK2
CALLA GETANIXY
ADDI 40000H,A2
SRL 16,A3
MOVY A2,A3
CALLA OBJ_TO_PNT
JRUC FAGO
FACK2
CMPI LILBURG,A1
JRNZ FAGO
CALLA GETANIXY
SRL 16,A3
ADDI 20000H,A2
MOVY A2,A3
CALLA OBJ_TO_PNT
FAGO
MOVE A8,A0
CALLA OBJ_OFF
CALLA INSOBJ
MOVE A8,@FOODOBJ,L
FOOD_LOOP
CALLR GETDPAL
; MOVI RED16,A0
MOVI FASTFADEUP,A11
CALLA FADE_ONLY
MOVI FADEGRAY15,A0
MOVI FASTFADEDOWN,A11
CALLA FADE_ONLY
SLEEP 5
MOVI CAVE_ZPOS+11,A0
MOVE A0,*A10(OZPOS),W
MOVI CAVE_ZPOS+10,A0
MOVE A0,*A9(OZPOS),W
SLEEP 25
MOVE A9,A8
CALLA OBJ_ON ; MAKE SURE FOOD IS ON
CALLR GETDPAL
; MOVI RED16,A0
MOVI FASTFADEDOWN,A11
CALLA FADE_ONLY
MOVI FADEGRAY15,A0
MOVI FASTFADEUP,A11
CALLA FADE_ONLY
SLEEP 5
MOVI CAVE_ZPOS+11,A0
MOVE A0,*A9(OZPOS),W
MOVI CAVE_ZPOS+10,A0
MOVE A0,*A10(OZPOS),W
SLEEP 25
JRUC FOOD_LOOP
FOOD_OVER_DIE
DIE
**************************************************************************
* *
* CLUB_ANIM *
* *
* HANDLE THE ANIMATION FOR TROG CLUBBING A BONE/DINO *
* *
* ENTRY *
* NOTHING *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* JSRP *
* *
**************************************************************************
PDINOA EQU PDATA+60H ; GET BY A FEW THINGS
PBONEA EQU PDINOA+32
PTROGA EQU PBONEA+32
PFIREA EQU PBONEA
CLUBHITS EQU 3
CLUB_ANIM:
MOVI CLUBDINOINIT,A14
CALLA GPALOBJSTF
JRZ CLUB_ANIM_DIE
CALLR OBJ_PAL_SET
CALLA INSOBJ
MOVE A0,*A13(PDINOA),L
**** MOVI CLUBBONEINIT,A14
**** CALLA GPALOBJSTF
**** JRZ CLUB_ANIM_DIE
**** CALLR OBJ_PAL_SET
**** CALLA INSOBJ
**** MOVE A0,*A13(PBONEA),L
MOVI CLUBTROGINIT,A14
CALLA GPALOBJSTF
JRZ CLUB_ANIM_DIE
CALLA INSOBJ
MOVE A0,*A13(PTROGA),L
MOVE A0,A8
;
SLEEP 20 ; GIVE AHA! TIME TO FINISH
**** MOVI CLUBHITS,A11
****CLUB_BONE_LOOP
**** MOVI CLUBU+LEFT,A0
**** MOVI TROG_CLUB_ATAB,A10
**** CALLA DINOLOAD
**** MOVK 1,A1
**** JSRP FRANIM
**** PUSHP A8
**** MOVE *A13(PBONEA),A8,L
**** CREATE INDPID,CLUB_PROC_TOO
**** PULLP A8
**** MOVK 1,A1
**** JSRP FRANIM
**** SLEEP 4
**** DSJ A11,CLUB_BONE_LOOP
;
**** PUSHP A8
**** MOVE *A13(PBONEA),A8,L
**** CALLA OBJ_OFF
**** PULLP A8
;
MOVI TROG_CLUB_ATAB,A10
MOVI 8000H,A14
MOVE A14,*A13(DVEL),L
MOVK LEFT,A0
CALLA DINOLOAD
MOVI [0A0H,(7*256)+2],A1
JSRP FRANIM
CLR A1
MOVE A1,*A13(DVEL),L
MOVI PUNCHU+LEFT,A0
CALLA DINOLOAD
MOVK [0AH,1],A1
JSRP FRANIM
PUSHP A8
MOVE *A13(PDINOA),A8,L
CREATE INDPID,CLUB_PROC_TRES
PULLP A8
MOVK 1,A1
JSRP FRANIM
MOVI TREATP4F8,A1 ; CHOW TIME
MOVE *A8(OFLAGS),A4,W
CALLA ANI
MOVE *A8(OXPOS),A1,W
ADDK 8,A1
MOVE A1,*A8(OXPOS),W ; SHIFT HIM OVER A LITTLE
SLEEP 1000
CLUB_ANIM_DIE:
RETP
CLUB_PROC_TOO:
MOVK 1,A1
MOVI VOBLIT1,A9
JSRP FRANIM
DIE
CLUB_PROC_TRES:
CLR A0
MOVE A0,*A13(DVEL),L
MOVI REXATAB,A10
MOVI CLUBOUTU+DOWN,A0
CALLA DINOLOAD
MOVE *A8(OXPOS),A14,W
ADDK 5,A14
MOVE A14,*A8(OXPOS),W
MOVK 1,A1
JSRP FRANIM
CALLA SEE_STARS
MOVK 1,A1
JSRP FRANIM
MOVK 1,A1
JSRP FRANIM
SLEEP 10
MOVK 1,A1
MOVE A1,@ANIMDONE,W
DIE
**************************************************************************
* *
* FIRE_ANIM *
* *
* FIRE ANIMATION THINGS *
* *
* ENTRY *
* NOTHING *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* JSRP *
* *
**************************************************************************
FIRE_ANIM:
MOVI CLUBTROGINIT,A14
CALLA GPALOBJSTF
JRZ FIRE_ANIM_DIE
CALLA INSOBJ
MOVE A0,*A13(PTROGA),L
MOVE A0,A8
MOVI TROG_CLUB_ATAB,A10
MOVI 8000H,A14
MOVE A14,*A13(DVEL),L
MOVK LEFT,A0
CALLA DINOLOAD
MOVI [0A0H,(4*256)+2],A1
JSRP FRANIM
CLR A1
MOVE A1,*A8(OXVEL),L
MOVE A1,*A8(OYVEL),L
MOVE A1,*A13(DVEL),L
CREATE INDPID,FIRE_FIRE
MOVI STOKEFIREU+LEFT,A0
CALLA DINOLOAD
MOVK 1,A1
JSRP FRANIM
;
; ASSUME THE FIRE IS BURNING -- GET CHEF TROG AND REX READY FOR A
; BACKYARD BARBECUE
;
MOVI TREATP4F8,A1 ; CHOW TIME
MOVE *A8(OFLAGS),A4,W
CALLA ANI
MOVE *A8(OXPOS),A1,W
ADDK 8,A1
MOVE A1,*A8(OXPOS),W ; SHIFT HIM OVER A LITTLE
;
**** SLEEP 60 ; GIVE HIM TIME TO ABSORB FIRE
MOVI FIREDINOINIT,A14
CALLA GPALOBJSTF
JRZ FIRE_ANIM_DIE
CALLR OBJ_PAL_SET
MOVE A0,A8
CALLA INSOBJ
MOVI 8000H,A0
MOVE A0,*A13(DVEL),L
MOVI RIGHT,A0
MOVI REXATAB,A10
CALLA DINOLOAD
MOVI [0A0H,(10*256)+2],A1
JSRP FRANIM
CLR A0
MOVE A0,*A13(DVEL),L
MOVI FIREU+RIGHT,A0
CALLA DINOLOAD
MOVK 1,A1
CALLA GETANIXY
SRL 16,A3
MOVY A2,A3
ADDI [-8,0],A3
CALLA OBJ_TO_PNT
JSRP FRANIM
FIRE_ANIM_DIE
MOVK 1,A1
MOVE A1,@ANIMDONE,W
RETP
FIRE_FIRE:
MOVI FIRE_INIT,A14
CALLA GPALOBJSTF
JRZ FIRE_FIRE_DIE
MOVE A0,A8
CALLA INSOBJ
MOVE A0,*A13(PFIREA),L
MOVI START_FIRE_LR,A9
MOVK 1,A1
JSRP FRANIM
CALLA GETANIXY
SRL 16,A3
MOVY A2,A3
ADDI [35,-12],A3
CALLA OBJ_TO_PNT
MOVK 1,A1
JSRP FRANIM
MOVI FIRE_ANIMII,A9
MOVK 1,A1
JSRP FRANIM
FIRE_FIRE_DIE
DIE
**************************************************************************
* *
* WHEEL_ANIM *
* *
* ANIMATE THE LITTLE WHEEL DUDE THROUGH A DINO *
* *
* ENTRY *
* NOTHING *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* JSRP *
* *
**************************************************************************
CRUSHBONES EQU 2
CRUSHDINOS EQU 1
WHEEL_ANIM:
CREATE INDPID,WHEEL_ROLL ; START THE WHELL ROLLING
SLEEP 30
MOVI CRUSHDINOS,A11 ; DINOS WE ARE GOING TO CRUSH
DINO_CRUSHER_LOOP
MOVI WHEELDINOINIT,A14
CALLA GPALOBJSTF
JRZ WHEEL_ANIM_DIE
CALLR OBJ_PAL_SET
CALLA INSOBJ
MOVE A0,A8
MOVI 8000H,A0
MOVE A0,*A13(DVEL),L ; MOVE IT ACROSS
MOVI RIGHT,A0
MOVI REXATAB,A10
CALLA DINOLOAD
MOVI [0A0H,(9*256)+2],A1
JSRP FRANIM
MOVI DINOSPLAT,A9
MOVK 1,A1
JSRP FRANIM ; ROAD PIZZA, BABY
MOVI CAVE_ZPOS+9,A1
MOVE A1,*A8(OZPOS),W
SLEEP 45 ; ANIMATE LAST FRAME OFF
MOVE A8,A0
CALLA DELOBJ ; DELETE BONE IN A0
SLEEP 10
DSJ A11,DINO_CRUSHER_LOOP
SLEEP 20
WHEEL_ANIM_DIE
MOVK 1,A1
MOVE A1,@ANIMDONE,W
RETP
WHEEL_ROLL:
CLR A0
MOVE A0,*A13(DVEL),L ; SPINNING IN THE CENTER
MOVI WHEELINIT,A14
CALLA GPALOBJSTF
JRZ WHEEL_ROLL_DIE
CALLA INSOBJ
MOVE A0,A8
MOVE A0,@WHEELOBJ,L
MOVI WHLATAB,A10
MOVI LEFT,A0
CALLA DINOLOAD
MOVK 1,A1
JSRP FRANIM ; SPINNING WHEELS, DUDE
WHEEL_ROLL_DIE
DIE
WHEEL_BOUNCE:
MOVE @WHEELOBJ,A8,L
CALLA GETANIXY
SRL 16,A3
MOVY A2,A3
MOVE A3,A9
ADDI [-3,0],A3
CALLA OBJ_TO_PNT
SLEEP 8
MOVE A9,A3
CALLA OBJ_TO_PNT
DIE
**************************************************************************
* *
* SPRING_ANIM *
* *
* SPRING SHOE ANIMATION *
* *
* ENTRY *
* NOTHING *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* CREATE *
* *
**************************************************************************
SPRING_ANIM:
CREATE INDPID,SPRING_TIMER
MOVI SPRINGINIT,A14
CALLA GPALOBJSTF
JRZ SPRING_ANIM_DIE
CALLA INSOBJ
MOVE A0,A8
MOVI TROGWOBBLE_D,A9
MOVI 0602H,A1
JSRP FRANIM
MOVI SPRINGTABLE,A9
MOVK 1,A1
JSRP FRANIM
SPRING_ANIM_DIE
DIE
SPRING_TIMER:
SLEEP 160
MOVK 1,A1
MOVE A1,@ANIMDONE,W
DIE
**************************************************************************
* *
* LIL_PROCESS *
* *
* PUT UP ANY OF THE LITTLES THAT ARE NEEDED *
* *
* ENTRY *
* NOTHING *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* CALL *
* *
**************************************************************************
LIL_PROCESS:
MMTM SP,A8,A9,A10,A11
MOVE @LILOUT,A11,W
DEC A11
JRZ LIL_RET
CLR A10
LIL_LOOP
MOVI LILINIT,A14
CALLA GPALOBJSTF
JRZ LIL_RET
MOVE A0,A8
MOVE A10,A10
JRNZ LIL_REGOBJ
MOVE @LILFOOD,A1,W
CMPI 2,A1
JRLS LIL_FOOD_OK
LIL_CHECK
CALLA RANDOM
ANDI 3,A0
JRZ LIL_CHECK
DEC A0
MOVE A0,@LILFOOD,W
MOVE A0,A1 ; OOOPS!
MOVE A8,A0
LIL_FOOD_OK
SLL 5,A1
ADDI LIL_FOODTAB,A1
JRUC LIL_GETOBJ
LIL_REGOBJ
MOVE A10,A1
DEC A1
SLL 5,A1
ADDI LIL_REGTAB,A1
LIL_GETOBJ
MOVE *A1,A1,L ; WHICH OBJECT
MOVE *A8(OFLAGS),A4,W
CALLA ANI
MOVE A10,A3
SLL 5,A3
ADDI LIL_LOCS,A3
MOVE *A3,A3,L ; LOCATION ON SCREEN
CALLA OBJ_TO_PNT ; MOVE THE OBJECT
CALLA INSOBJ
INC A10
DSJ A11,LIL_LOOP
LIL_RET
MMFM SP,A8,A9,A10,A11
RETS
LIL_LOCS
.LONG [105+SKYTOPOF,95] ; FOOD
.LONG [80+SKYTOPOF,120] ; SPRING
.LONG [68+SKYTOPOF,157] ; CLUB
.LONG [65+SKYTOPOF,200] ; FIRE
.LONG [82+SKYTOPOF,239] ; EMC2
.LONG [102+SKYTOPOF,262] ; WHEEL
LIL_FOODTAB
.LONG LILBURG, LILPIZZA, LILCHICK
LIL_REGTAB
.LONG LILSPRING,LILCLUB,LILFIRE,LILEMC2,LILWHEEL
**************************************************************************
* *
* CAVE_BACKGND *
* *
* FIRE UP THE CAVE BACKGROUND AND ASSORTED CYCLERS *
* *
* ENTRY *
* NOTHING *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* JSRP *
* *
**************************************************************************
CAVE_BACKGND:
MOVI TROGCAVE1,A14
MOVE A14,@BAKMODS,L ; SETUP THE BACKGROUND
CALLA BGND_UD1
RETP
**************************************************************************
* *
* CAVESIGN *
* *
* DROP THE CAVE SIGN DOWN IN ON PEOPLE *
* *
* ENTRY *
* NOTHING *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* CREATE *
* *
**************************************************************************
CAVESIGN:
MOVI SIGNINIT,A14
CALLA GPALOBJSTF
JRZ CAVE_NO_SIGN ; BUMMER, IT BROKE
CALLA INSOBJ
PUSHP A0
MOVI CAVSIN,A8 ; PALETTE TO CYCLE
MOVK 1,A9
MOVK 2,A10
MOVK 20,A11 ; TICKS
CREATE CAVESIGNPID,CYCLE16 ; LIGHTS 1
MOVK 3,A9
MOVK 4,A10
CREATE CAVESIGNPID,CYCLE16 ; LIGHTS 2
PULLP A8
MOVK 1,A1
MOVI SIGNDOWN,A9
JSRP FRANIM
CAVE_NO_SIGN
DIE
**************************************************************************
* *
* CAVE_VELS *
* *
* SET THE VELOCITIES ON SOME OBJECTS *
* *
* ENTRY *
* A1 XVEL *
* A2 YVEL *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* CALLR *
* *
**************************************************************************
CAVE_VELS:
MMTM SP,A8
MOVE *A13(PSKIN),A8,L
CAVE_VEL_LOOP
MOVE A8,A8
JRZ CAVE_VEL_LOOP_DONE
MOVE A1,*A8(OXVEL),L
MOVE A2,*A8(OYVEL),L
MOVE *A8(OMLINK),A8,L
JRUC CAVE_VEL_LOOP
CAVE_VEL_LOOP_DONE
MMFM SP,A8
RETS
**************************************************************************
* *
* OBJ_PAL_SET *
* *
* SET THE OBJECT PALETTE TO THE STARTING PLAYER'S PALETTE *
* *
* ENTRY *
* A0 OBJECT POINTER *
* *
* EXIT *
* NOTHING *
* *
* CALL *
* CALL *
* *
**************************************************************************
OBJ_PAL_SET:
MMTM SP,A0,A8
MOVE A0,A8
CALLR GETDPAL
CALLA GETFPAL
JRZ OBJ_PAL_FAIL
MOVE A0,*A8(OPAL),W ; RESET TO PLAYER'S COLORS
OBJ_PAL_FAIL
MMFM SP,A0,A8
RETS
GETDPAL:
MOVE @SPLAYER_NUM,A0,W
SLL 5,A0
ADDI OBJ_PAL_TAB,A0
MOVE *A0,A0,L ; GET THE PALETTE
RETS
OBJ_PAL_TAB
.LONG RED16,BLUE16,YELLOW16,PINK16
**************************************************************************
* *
* OBJECT INITIALIZATIONS *
* *
**************************************************************************
TROGX EQU 235
TROGY EQU 108+SKYTOPOF
TROGDRAWX EQU 190
TROGDRAWY EQU 80+SKYTOPOF
DINOX EQU 165
DINOY EQU 42+SKYTOPOF
TROGSKINIT:
.LONG [TROGX,0],[TROGY,0]
.WORD 0,CAVE_ZPOS+6
.LONG CTROSKF3,0,DUMCOLL
.WORD DMAWNZ,CAVEOID
TROGFRINIT:
.LONG [TROGX,0],[TROGY,0]
.WORD 0,CAVE_ZPOS+13
.LONG CTROFRF3,0,DUMCOLL
.WORD DMAWNZ,CAVEOID
TROGWHINIT:
.LONG [TROGX,0],[TROGY,0]
.WORD 0,CAVE_ZPOS+9
.LONG CTROWHF4,0,DUMCOLL
.WORD DMAWNZ,CAVEOID
TROGARMINIT:
.LONG [TROGX,0],[TROGY,0]
.WORD 0,CAVE_ZPOS+8
.LONG CTROARM1F3,0,DUMCOLL
.WORD DMAWNZ,CAVEOID
TROGEYEINIT:
.LONG [TROGX,0],[TROGY,0]
.WORD 0,CAVE_ZPOS+8
.LONG CTROEY1F9,0,DUMCOLL
.WORD DMAWNZ,CAVEOID
TROGBROWINIT:
.LONG [TROGX,0],[TROGY,0]
.WORD 0,CAVE_ZPOS+9
.LONG CTROBRW1F9,0,DUMCOLL
.WORD DMAWNZ,CAVEOID
TROGBLKINIT:
.LONG [TROGX,0],[TROGY,0]
.WORD 0,CAVE_ZPOS+10
.LONG CTROBLK1F12,0,DUMCOLL
.WORD DMAWNZ,CAVEOID
TROGCHALKINIT:
.LONG [TROGX,0],[TROGY,0]
.WORD 0,CAVE_ZPOS+3
.LONG CHALK41,0,DUMCOLL
.WORD DMAWNZ,CAVEOID
TROGDRAWINIT:
.LONG [TROGDRAWX,0],[TROGDRAWY,0]
.WORD 0,CAVE_ZPOS+2
.LONG DRCLUB2,0,DUMCOLL
.WORD DMAWNZ,CAVEOID
TROGBUBBLEINIT:
.LONG [TROGX-47,0],[TROGY-77,0]
.WORD 0,CAVE_ZPOS+5
.LONG BUBSTAR1,0,DUMCOLL
.WORD DMAWNZ,CAVEOID
TROGDINGINIT:
.LONG 0,0
.WORD 0,CAVE_ZPOS+7
.LONG CTRODINGF12,0,DUMCOLL
.WORD DMAWNZ,CAVEOID
FOODREXINIT:
.LONG [DINOX,0],[DINOY,0]
.WORD 0,CAVE_ZPOS+10
.LONG RESTP0,0,DUMCOLL
.WORD DMAWNZ,CAVEOID
FOODPICINIT:
.LONG [DINOX-12,0],[DINOY+11,0]
.WORD 0,CAVE_ZPOS+11
.LONG LILBURG,0,DUMCOLL
.WORD DMAWAL,CAVEOID
CLUBDINOINIT:
.LONG [DINOX-15,0],[DINOY,0]
.WORD 0,CAVE_ZPOS+10
.LONG RESTP0,0,DUMCOLL
.WORD DMAWNZ,CAVEOID
FIREDINOINIT:
.LONG [DINOX-30,0],[DINOY,0]
.WORD 0,CAVE_ZPOS+11
.LONG SPWAP4F1,0,DUMCOLL
.WORD DMAWNZ,CAVEOID
****CLUBBONEINIT:
**** .LONG [DINOX+4,0],[DINOY+36,0]
**** .WORD 0,CAVE_ZPOS+9
**** .LONG P1VBON,0,DUMCOLL
**** .WORD DMAWNZ,CAVEOID
CLUBTROGINIT:
.LONG [DINOX+20,0],[DINOY,0]
.WORD 0,CAVE_ZPOS+10
.LONG TRSTP0,0,DUMCOLL
.WORD DMAWNZ|M_FLIPH,CAVEOID
FIRE_INIT:
.LONG [DINOX+13,0],[DINOY,0]
.WORD 0,CAVE_ZPOS+10
.LONG SMOKESTAR41,0,DUMCOLL
.WORD DMAWNZ|M_FLIPH,CAVEOID
WHEELINIT:
.LONG [DINOX,0],[DINOY-6,0]
.WORD 0,CAVE_ZPOS+10
.LONG WHEEL410,0,DUMCOLL
.WORD DMAWNZ,CAVEOID
WHEELDINOINIT:
.LONG [DINOX-30,0],[DINOY,0]
.WORD 0,CAVE_ZPOS+11
.LONG RESTP0,0,DUMCOLL
.WORD DMAWNZ,CAVEOID
SPRINGINIT:
.LONG [DINOX+2,0],[DINOY+8,0]
.WORD 0,CAVE_ZPOS+10
.LONG TRBOP0F1,0,DUMCOLL
.WORD DMAWNZ,CAVEOID
LILINIT:
.LONG 0,0
.WORD 0,CAVE_ZPOS+1
.LONG LILBURG,0,DUMCOLL
.WORD DMAWNZ,CAVEOID
SIGNINIT:
.LONG [80,0],[2+SKYTOPOF-20,0]
.WORD 0,CAVE_ZPOS
.LONG TROGCAVSIN,0,DUMCOLL
.WORD DMAWNZ,CAVEOID
**************************************************************************
* *
* ANIMATION SCRIPTS *
* *
**************************************************************************
CHALK $MACRO CNAME
.LONG :CNAME:
.WORD INDPID
.LONG CHALK_PLOT
$END
OBJOFF $MACRO
.LONG 0
.WORD INDPID
.LONG OBJECT_OFF
$END
NEWPICT $MACRO
.LONG 0
.WORD INDPID
.LONG CAVE_UPDATE_DRAWING
$END
ARM $MACRO NUM,TIME
.LONG CTROARM:NUM:F3
.WORD :TIME:
$END
CHALKARM $MACRO NUM,CHALKNUM,TIME
.LONG CTROARM:NUM:F3
.WORD WRITESLEEP|SPAWNP|MAKESOUND
.LONG CHALK:CHALKNUM:
.WORD INDPID
.LONG CHALK_PLOT
.LONG SCRATCH_SND
$END
PICTARM $MACRO NUM,TIME
.LONG CTROARM:NUM:F3
.WORD 1|SPAWNP
.LONG 0
.WORD INDPID
.LONG CAVE_UPDATE_DRAWING
$END
DRAW2 $MACRO
ARM 1,WRITESLEEP
ARM 3,WRITESLEEP
ARM 2,WRITESLEEP
CHALKARM 4,41,WRITESLEEP
CHALKARM 7,72,WRITESLEEP
CHALKARM 8,83,WRITESLEEP
CHALKARM 6,64,WRITESLEEP
ARM 9,WRITESLEEP
CHALKARM 10,105,WRITESLEEP
CHALKARM 9,96,WRITESLEEP
CHALKARM 6,67,WRITESLEEP
CHALKARM 8,88,WRITESLEEP
CHALKARM 5,59,WRITESLEEP
ARM 3,WRITESLEEP
ARM 1,WRITESLEEP
ARM 7,WRITESLEEP
$END
DRAW3 $MACRO
ARM 9,WRITESLEEP
CHALKARM 6,67,WRITESLEEP
ARM 9,WRITESLEEP
CHALKARM 8,813,WRITESLEEP
CHALKARM 5,59,WRITESLEEP
ARM 7,WRITESLEEP
CHALKARM 9,914,WRITESLEEP
CHALKARM 6,67,WRITESLEEP
CHALKARM 8,88,WRITESLEEP
ARM 2,WRITESLEEP
CHALKARM 4,41,WRITESLEEP
CHALKARM 2,215,WRITESLEEP
CHALKARM 4,41,WRITESLEEP
CHALKARM 7,72,WRITESLEEP
$END
DRAW4 $MACRO
ARM 8,WRITESLEEP
CHALKARM 9,916,WRITESLEEP
CHALKARM 10,105,WRITESLEEP
CHALKARM 9,96,WRITESLEEP
CHALKARM 8,917,WRITESLEEP
CHALKARM 5,59,WRITESLEEP
ARM 7,WRITESLEEP
ARM 4,WRITESLEEP
CHALKARM 1,118,WRITESLEEP
CHALKARM 4,419,WRITESLEEP
CHALKARM 1,118,WRITESLEEP
CHALKARM 4,419,WRITESLEEP
$END
DRAW5 $MACRO
ARM 1,WRITESLEEP
ARM 2,WRITESLEEP
CHALKARM 4,41,WRITESLEEP
ARM 3,WRITESLEEP
CHALKARM 4,419,WRITESLEEP
CHALKARM 10,1020,WRITESLEEP
CHALKARM 7,721,WRITESLEEP
CHALKARM 8,83,WRITESLEEP
ARM 9,WRITESLEEP
CHALKARM 2,222,WRITESLEEP
$END
DRAW6 $MACRO
ARM 5,WRITESLEEP
ARM 8,WRITESLEEP
CHALKARM 6,64,WRITESLEEP
CHALKARM 8,88,WRITESLEEP
$END
TROGWRITEARM
DRAW2
PICTARM 7,1
DRAW3
DRAW6
DRAW6
PICTARM 8,1
DRAW6
DRAW6
.LONG 0
.IF 0
DRAW4
PICTARM 8,1
DRAW5
DRAW5
PICTARM 2,1
DRAW5
.LONG 0
.WORD 0
.ENDIF
WHITE $MACRO NUM,TIME
.LONG CTROWH:NUM:F3
.WORD :TIME:
$END
WHITENO $MACRO NUM,TIME
.LONG CTROWH9F3 ; ARM ANYTHING
.WORD WRITESLEEP|SPAWNP
OBJOFF
$END
WHITE2 $MACRO
WHITE 1,WRITESLEEP
WHITE 3,WRITESLEEP
WHITE 2,WRITESLEEP
WHITE 4,WRITESLEEP
WHITE 7,WRITESLEEP
WHITE 8,WRITESLEEP
WHITENO 6,WRITESLEEP
WHITE 9,WRITESLEEP
WHITE 10,WRITESLEEP
WHITE 9,WRITESLEEP
WHITENO 6,WRITESLEEP
WHITE 8,WRITESLEEP
WHITE 5,WRITESLEEP
WHITE 3,WRITESLEEP
WHITE 1,WRITESLEEP
WHITE 7,WRITESLEEP
$END
WHITE3 $MACRO
WHITE 9,WRITESLEEP
WHITENO 6,WRITESLEEP
WHITE 9,WRITESLEEP
WHITE 8,WRITESLEEP
WHITE 5,WRITESLEEP
WHITE 7,WRITESLEEP
WHITE 9,WRITESLEEP
WHITENO 6,WRITESLEEP
WHITE 8,WRITESLEEP
WHITE 2,WRITESLEEP
WHITE 4,WRITESLEEP
WHITE 2,WRITESLEEP
WHITE 4,WRITESLEEP
WHITE 7,WRITESLEEP
$END
WHITE4 $MACRO
WHITE 8,WRITESLEEP
WHITE 9,WRITESLEEP
WHITE 10,WRITESLEEP
WHITE 9,WRITESLEEP
WHITE 8,WRITESLEEP
WHITE 5,WRITESLEEP
WHITE 7,WRITESLEEP
WHITE 4,WRITESLEEP
WHITE 1,WRITESLEEP
WHITE 4,WRITESLEEP
WHITE 1,WRITESLEEP
WHITE 4,WRITESLEEP
$END
WHITE5 $MACRO
WHITE 1,WRITESLEEP
WHITE 2,WRITESLEEP
WHITE 4,WRITESLEEP
WHITE 3,WRITESLEEP
WHITE 4,WRITESLEEP
WHITE 10,WRITESLEEP
WHITE 7,WRITESLEEP
WHITE 8,WRITESLEEP
WHITE 9,WRITESLEEP
WHITE 2,WRITESLEEP
$END
WHITE6 $MACRO
WHITE 5,WRITESLEEP
WHITE 8,WRITESLEEP
WHITENO 6,WRITESLEEP
WHITE 8,WRITESLEEP
$END
TROGWRITEWHITE
WHITE2
WHITE 7,1
WHITE3
WHITE6
WHITE6
WHITE 8,1
WHITE6
WHITE6
.LONG 0
.IF 0
WHITE4
WHITE 8,1
WHITE5
WHITE5
WHITE 2,1
WHITE5
.LONG 0
.WORD 0
.ENDIF
TROGSCRATCHARM:
.LONG CTROARM3F9
.WORD 3|MAKESOUND
.LONG HEADSCRATCH_SND
.LONG CTROARM4F9
.WORD 3
.LONG CTROARM3F9
.WORD 3
.LONG CTROARM4F9
.WORD 3
.LONG CTROARM3F9
.WORD 3
.LONG 0
.WORD 0
TROGSCRATCHEYE:
.LONG CTROEY1F9
.WORD 16
.LONG CTROEY2F9
.WORD 4
.LONG CTROEY3F9
.WORD 4
.LONG CTROEY4F9
.WORD 16
.LONG CTROEY3F9
.WORD 4
.LONG CTROEY2F9
.WORD 4
.LONG CTROEY1F9
.WORD 16
.LONG 0
.WORD 0
TROGEYEBLINK:
.LONG CTROBLK1F12
.WORD 4
.LONG CTROBLK2F12
.WORD 4
.LONG CTROBLK1F12
.WORD 4
.LONG 0
.WORD 0
TROGBROW:
.LONG CTROBRW1F9
.WORD 4|DELTAY,1
.LONG CTROBRW1F9
.WORD 4|DELTAY,1
.LONG CTROBRW1F9
.WORD 4|DELTAY,1
.LONG CTROBRW1F9
.WORD 4|DELTAY,1
.LONG CTROBRW1F9
.WORD 4|DELTAY,1
.LONG CTROBRW2F9
.WORD 45
.LONG CTROBRW1F9 ; BRING IT BACK UP
.WORD 2|DELTAY,-1
.LONG CTROBRW1F9
.WORD 2|DELTAY,-1
.LONG 0
.WORD 0
DINOSPLAT:
.LONG SPSQP4FF1
.WORD 4
.LONG SPSQP4FF2
.WORD 4|MAKESOUND|SPAWNP
.LONG 0
.WORD INDPID
.LONG WHEEL_BOUNCE
.LONG DINOSQUASH_SND
.LONG SPSQP4FF3
.WORD 4
.LONG 0
SIGNDOWN:
.LONG TROGCAVSIN
.WORD 1|DELTAY,2
.LONG TROGCAVSIN
.WORD 1|DELTAY,2
.LONG TROGCAVSIN
.WORD 1|DELTAY,2
.LONG TROGCAVSIN
.WORD 1|DELTAY,2
.LONG TROGCAVSIN
.WORD 1|DELTAY,2
.LONG TROGCAVSIN
.WORD 1|DELTAY,2
.LONG TROGCAVSIN
.WORD 1|DELTAY,2
.LONG TROGCAVSIN
.WORD 1|DELTAY,2
.LONG TROGCAVSIN
.WORD 1|DELTAY,2
.LONG TROGCAVSIN
.WORD 1|DELTAY,2
.LONG TROGCAVSIN
.WORD 1|DELTAY,2
.LONG TROGCAVSIN
.WORD 1|DELTAY,2
.LONG TROGCAVSIN
.WORD 1|DELTAY,2
.LONG TROGCAVSIN
.WORD 1|DELTAY,2
.LONG TROGCAVSIN
.WORD 1
.LONG TROGCAVSIN
.WORD 1|DELTAY,-3
.LONG TROGCAVSIN
.WORD 1|DELTAY,-3
.LONG TROGCAVSIN
.WORD 1
.LONG TROGCAVSIN
.WORD 1|DELTAY,3
.LONG TROGCAVSIN
.WORD 1|DELTAY,3
.LONG 0
SPRINGTABLE1:
.LONG TRBOP0F1
.WORD 4
SPRINGTABLE:
.LONG TRBOP0F2
.WORD 4|MAKESOUND
.LONG SHORTSPRING_SND
.LONG TRBOP0F3
.WORD 4
.LONG TRBOP0F4
.WORD 8|DELTAY,-3
.LONG TRBOP0F5
.WORD 4|SCRIPT|DELTAY,3
.LONG SPRINGTABLE1
**************************************************************************
* *
* PALETTE TO FADE DRAWINGS UP WITH *
* *
**************************************************************************
FADENOSIGN: .LONG CAVSIN,0
FADEGRAY15:
.word 16
.word >0,>0,>421,>1083,>14A4,>18C5,>1CE6,>2107
.word >2528,>2949,>318B,>39CD,>420F,>4A51,>5293,>62F7
FADETAB .WORD 80,80,80,80,88,88,88,88,96,96,96,96,104,104,104,104
.WORD 112,112,112,112,120,120,120,120,128,128,128,128,>FFFF
FASTFADEUP:
.WORD 0,16,32,48,64,80,96,112,128,>FFFF
; .WORD 80,88,96,104,112,120,128,>FFFF
FASTFADEDOWN:
.WORD 128,112,96,80,64,48,32,16,0,>FFFF
; .WORD 128,120,112,104,96,88,80,>FFFF
**************************************************************************
* *
* NIFTY SOUNDS *
* *
**************************************************************************
SCRATCH_SND:
.WORD >F302,3,>80AC,0 ; TROG DRAWING
DING_SND:
.WORD >F302,30,>80BA,0 ; TROG IDEA DING
HMMM_SND:
.WORD >F002,30,>80BE,0 ; TROG THINKING
AHA_SND:
.WORD >F00A,30,>804A,0 ; AHA!
HEADSCRATCH_SND:
.WORD >F302,3,>80A7,0 ; FINGER IN HEAD
****TUNE_SND
**** .WORD >F2FD,3,>8000,>802F,>100,>8005,>4024,0
TUNE_SND
.WORD >F2FD,>1,>8009,0 ;CAVE TUNE
TRANSITION_SND
.WORD >F2FD,3,>8017,0
DINOSQUASH_SND:
.WORD >F011,>20,>807C,0 ;DINO GETS SQUASHED BY WHEEL
SHORTSPRING_SND:
.WORD >F300,>5,>80A0,0 ;SHORT SPRING SOUND