1877 lines
46 KiB
NASM
1877 lines
46 KiB
NASM
.MLIB "TROGMACS.LIB"
|
||
.FILE 'TROGTIPS.ASM'
|
||
.TITLE " <<< T R O G -- TIPS, LIES AND VIDEOTAPE >>>"
|
||
.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 "STRING.H"
|
||
.INCLUDE "TROGAEQU.ASM" ;DINO ANIMATION EQUATES
|
||
.INCLUDE "TROGSEQU.ASM"
|
||
|
||
|
||
.DEF HBOX_COLORS, WAVE1_HELP, KILL_HELP, BONE_TIP4
|
||
.DEF PLACE_TEXT, WAIT_FOR_BONE, PLAYER_ENABLE
|
||
.DEF PLACE_MESS_DIR, WAVE2_HELP, END_TUTOR
|
||
|
||
.REF SLEEP_SWITCHX, WIPEOUT, TOMOVE, GET_DIRECTIONS_TO_MOVE
|
||
.REF P1BOXBONEh, P1BOXBONEv, DRONE_MOVE, DRONE_BONE
|
||
.REF OWINDOW, OWINDOW_OID, GPLAYNUM, BARTAB, SPLAYER_NUM
|
||
.REF SPLAYER_COL, DINO_START, EGG_START, TWO_MOVES
|
||
.REF TIP1_FLAG, TIP2_FLAG, TIP3_FLAG, TIP4_FLAG, TIP5_FLAG
|
||
.REF TIP6_FLAG, TIP2A_FLAG, DINO_FIND_CLOSEST, FINDMOVE
|
||
.REF ONE_MOVE, BONED_IN_4, GET_DIRECTIONS, TUTOR, EGG_START_IMM
|
||
.REF STORY_MODE, TIP8_FLAG, FIND_CLOSE_MPNT, LAY_EGGS
|
||
|
||
.BSS HELP_PAUSE,16,1 ;VARIABLE PAUSE TIME
|
||
|
||
TIP_ZPOS EQU 2800H ;TIP BASE Z POSITION
|
||
HELP_ZPOS EQU PIZPOS-1
|
||
END_TUTOR EQU 2 ;AFTER THIS WAVE, NO MORE TUTORIALS
|
||
|
||
.TEXT
|
||
.EVEN
|
||
|
||
HDINO .EQU PDATA
|
||
HTEMP1 .EQU PDATA+20H
|
||
|
||
**************************************************************************
|
||
* *
|
||
* WAVE1_HELP - PROCESS TO START OFF THE PLAYER FOR THE FIRST WAVE *
|
||
* STARTS WITH A BRIEF TUTORIAL. *
|
||
* A11 = PLAYER TO START *
|
||
* *
|
||
**************************************************************************
|
||
WAVE1_HELP:
|
||
MOVE @TUTOR,A0,W ;IN TUTOR MODE?
|
||
JRZ WAVEX_START ;BR = NO,JUST START THE STUFF
|
||
|
||
MOVI (10*63)/3,A1
|
||
MOVE @GAME_STATE,A0
|
||
CMPI INAMODE,A0
|
||
JRNE W1H_PTIME
|
||
MOVI (1*63)/3,A1
|
||
W1H_PTIME:
|
||
MOVE A1,@HELP_PAUSE,W
|
||
MOVK 1,A0
|
||
MOVE A0,*A11(PINSTRUCT),W ;MARK INSTRUCTIONAL MODE
|
||
MOVE A0,@TUTOR,W ;PUT HIM IN TUTOR MODE
|
||
CALLR PLAYER_DISABLE
|
||
|
||
|
||
*
|
||
*THIS IS A TEST TO SHORTEN THE INSTRUCTIONAL MODE, IT SKIPS STRAIGHT TO
|
||
*THE DINO & HAND STUFF (GNP 6/8/90)
|
||
MOVE @TIP1_FLAG,A0,W
|
||
JRNZ W1H_NEWHELP
|
||
SLEEP 30 ;LET SHIT COME UP
|
||
INCM @TIP1_FLAG,W
|
||
W1H_NEWHELP
|
||
MOVE *A11(POBJ),A8,L
|
||
CALLA OBJ_ON
|
||
MOVK DOWN,A0
|
||
MOVE *A11(PMOVE),A1,L
|
||
CALLA TWO_MOVES
|
||
CALLA TWO_MOVES
|
||
MOVE A1,*A13(HTEMP1),L
|
||
|
||
**** MOVE @TIP1_FLAG,A0,W
|
||
**** JRNZ WAVE1_HELP_IMM
|
||
**** SLEEP 30 ;LET SHIT COME UP
|
||
**** JSRP TROG_TIP1
|
||
****WAVE1_HELP_IMM:
|
||
**** MOVE *A11(POBJ),A8,L
|
||
**** CALLA OBJ_ON
|
||
**** JSRP POINT_HAND ;POINT OUT HIS HAND
|
||
**** MOVK DOWN,A0
|
||
**** MOVE *A11(PMOVE),A1,L
|
||
**** CALLA TWO_MOVES
|
||
**** CALLA TWO_MOVES
|
||
**** MOVE A1,A10
|
||
*****POINT OUT THE PLACE WE WANT HIM TO GO
|
||
**** CALLR KILL_HELP
|
||
**** SLEEP 5 ;MAKE IT LOOK NICE
|
||
**** MOVI MOVE_TEXT,A8
|
||
**** CLR A9 ;MOVK UP,A9
|
||
**** MOVE A10,A6
|
||
**** MOVE *A10(MOVEPOS),A10,L
|
||
**** CREATE INDPID,HELP_BOX
|
||
**** MOVE A6,A9
|
||
**** CLR A0
|
||
**** MOVE A0,*A11(PNOMOVE),W
|
||
*****WAIT ON PLAYER TO GET TO THIS MOVE SPOT
|
||
***** MOVI (10*62)/3,A8
|
||
**** MOVE @HELP_PAUSE,A8,W
|
||
****W1H_LP:
|
||
**** SLEEP 3
|
||
**** MOVE *A11(PMOVE),A10,L
|
||
**** CMP A9,A10 ;DID HE MAKE IT?
|
||
**** JREQ W1H_THERE ;BR = YES
|
||
**** DEC A8 ;TAKEN TOO LONG?
|
||
**** JRNZ W1H_LP ;BR = NO
|
||
**** JSRP HAND_TO_MOVE ;HELP THE PLAYER ALONG
|
||
****W1H_THERE
|
||
**** CALLR PLAYER_DISABLE
|
||
**** MOVE *A11(POBJ),A8,L
|
||
**** MOVE A9,A0
|
||
**** CALLA TOMOVE ;RE-ALIGN THAT HAND
|
||
****
|
||
*****PLAYER COMPLETED THE MOVE PORTION, NOW GIVE HIM HIS DIPLOMA
|
||
**** CALLR KILL_HELP
|
||
**** SLEEP 5 ;MAKE IT LOOK NICE
|
||
****
|
||
**** MOVE *A9(MOVEPOS),A10,L
|
||
****
|
||
**** MOVE @STORY_MODE,A0,W
|
||
**** JRNE W1H_BONEHELP
|
||
****
|
||
**** MOVI GOOD_TEXT,A8
|
||
**** CLR A9 ;MOVK UP,A9
|
||
**** CREATE INDPID,HELP_BOX
|
||
****
|
||
**** MOVK 30,A0
|
||
**** JSRP BONESLEEP_30
|
||
****
|
||
**** CALLA KILL_HELP
|
||
**** SLEEP 5
|
||
****
|
||
*****BONE DRAWING HELP
|
||
****W1H_BONEHELP:
|
||
**** JSRP TROG_TIP2
|
||
**** SLEEP 5
|
||
*****NOW FOR OUR NEXT LESSON, BONE DRAWING 101
|
||
**** CALLR PLACE_MESSAGE
|
||
**** CALLR PLAYER_ENABLE
|
||
**** MOVE *A11(PMOVE),A9,L ;WE ARE WAITING ON THIS MOVE
|
||
**** JSRP WAIT_FOR_BONE
|
||
**** CALLR PLAYER_DISABLE
|
||
**** MOVE *A11(POBJ),A8,L
|
||
**** MOVE A10,A0
|
||
**** CALLA TOMOVE ;RE-ALIGN THAT HAND
|
||
*****CONGRATULATE THE PLAYER FOR BONING
|
||
**** CALLR KILL_HELP
|
||
**** SLEEP 5 ;MAKE IT LOOK NICE
|
||
****
|
||
**** MOVE @STORY_MODE,A0,W
|
||
**** JRNE W1H_ERASEHELP
|
||
****
|
||
**** PUSHP A10
|
||
**** MOVI NICE_TEXT,A8
|
||
**** CLR A9 ;MOVK UP,A9
|
||
**** MOVE *A10(MOVEPOS),A10,L
|
||
**** CREATE INDPID,HELP_BOX
|
||
**** PULLP A10
|
||
****
|
||
**** MOVK 30,A0
|
||
**** JSRP BONESLEEP_30
|
||
****
|
||
**** CALLR KILL_HELP
|
||
**** SLEEP 5
|
||
****
|
||
*****BONE ERASING HELP
|
||
****W1H_ERASEHELP:
|
||
**** JSRP TROG_TIP2A
|
||
**** SLEEP 5
|
||
**** MOVE A10,A9
|
||
**** MOVE *A9(MOVEPOS),A10,L
|
||
**** CALLR REMOVE_MESSAGE
|
||
**** CALLR PLAYER_ENABLE
|
||
**** MOVE *A11(PMOVE),A9,L ;WE ARE WAITING ON THIS MOVE
|
||
**** JSRP WAIT_FOR_REMOVE
|
||
**** CALLR PLAYER_DISABLE
|
||
**** MOVE *A11(POBJ),A8,L
|
||
**** MOVE A10,A0
|
||
**** CALLA TOMOVE ;RE-ALIGN THAT HAND
|
||
*****CONGRATULATE THE PLAYER
|
||
**** CALLR KILL_HELP
|
||
**** SLEEP 5 ;MAKE IT LOOK NICE
|
||
****
|
||
**** MOVE A10,*A13(HTEMP1),L
|
||
****
|
||
**** MOVE @STORY_MODE,A0,W
|
||
**** JRNE W1H_DINOHELP
|
||
****
|
||
**** MOVI GOODJ_TEXT,A8
|
||
**** CLR A9 ;MOVK UP,A9
|
||
**** MOVE *A10(MOVEPOS),A10,L
|
||
**** CREATE INDPID,HELP_BOX
|
||
****
|
||
**** MOVK 30,A0
|
||
**** JSRP BONESLEEP_30
|
||
****
|
||
**** CALLR KILL_HELP
|
||
**** SLEEP 5
|
||
|
||
*DINO HELP
|
||
W1H_DINOHELP:
|
||
JSRP TROG_TIP3
|
||
SLEEP 5
|
||
CALLR PLAYER_ENABLE
|
||
MOVK 1,A0
|
||
MOVE A0,*A11(PDINOSTOP),W ;TURN DINO OFF
|
||
MOVE A11,A2
|
||
CALLA DINO_START ;FIRE UP THE DUDES DINO
|
||
CALLA GPLAYNUM
|
||
ORI DINOOID,A0
|
||
MOVE A0,A9
|
||
MOVI DINOS,A10
|
||
JSRP WAIT_FOR_OBJ
|
||
MOVE A8,*A13(HDINO),L
|
||
CALLA GET_BOTTOM_MID
|
||
MOVE A1,A10
|
||
|
||
MOVI HELP_TEXT,A8
|
||
CLR A9 ;MOVK UP,A9
|
||
CREATE INDPID,HELP_BOX
|
||
MOVI 140,A0
|
||
JSRP BONESLEEP_30
|
||
CALLA KILL_HELP
|
||
SLEEP 5
|
||
CLR A0
|
||
MOVE A0,*A11(PDINOSTOP),W
|
||
MOVK DOWN,A0
|
||
MOVE *A13(HTEMP1),A1,L ;GET OUR CURRENT MOVE
|
||
CALLA TWO_MOVES
|
||
CALLA TWO_MOVES
|
||
|
||
MOVI PLACE_TEXT,A8
|
||
MOVE *A1(MOVEPOS),A10,L
|
||
MOVK 1,A9
|
||
CALLA CREATE_HELP
|
||
|
||
MOVE A1,A10
|
||
CLRM *A11(PSWITCHESC),W
|
||
MOVE A11,A2
|
||
CALLA GPLAYNUM
|
||
MOVE A0,A9
|
||
MOVE @HELP_PAUSE,A8,W
|
||
|
||
W1HBW_LP:
|
||
SLEEP 3
|
||
MOVE *A11(PBONEHIT),A0,W ;BONE COLLISION DURING WAIT?
|
||
JRNZ W1H_EGG ;BR = YES
|
||
|
||
MOVB *A10(MOVEPLYR),A0
|
||
JRNN W1HBW_X
|
||
MOVE *A11(PSWITCHESC),A0,W ;DID HE BONE ELSEWHERE?
|
||
JRZ W1HBW_NXT
|
||
SLEEP 6
|
||
MOVB *A10(MOVEPLYR),A0 ;CHECK AGAIN FOR ANI SAKE
|
||
JRNN W1HBW_X
|
||
JSRP FLASH_TEXT
|
||
JSRP FLASH_TEXT
|
||
CLRM *A11(PSWITCHESC),W
|
||
W1HBW_NXT:
|
||
DSJ A8,W1HBW_LP
|
||
*PLACE HAND OURSELVES
|
||
MOVE A10,A9
|
||
JSRP HAND_TO_MOVE
|
||
CALLR PLAYER_DISABLE
|
||
MOVE *A11(POBJ),A8,L
|
||
MOVE A9,A0
|
||
CALLA TOMOVE ;RE-ALIGN THAT HAND
|
||
JSRP DRONE_BONE ;BONE ACTION MAN
|
||
CALLR PLAYER_ENABLE
|
||
W1HBW_X
|
||
CALLR KILL_HELP
|
||
SLEEP 5
|
||
MOVE *A11(PBONEHIT),A0,W ;WAS THIS BY ANOTHER NAME
|
||
JRNZ W1H_EGG ;BR = YES
|
||
|
||
MOVE @STORY_MODE,A0,W
|
||
JRNE W1HT4_LP
|
||
|
||
MOVI GREAT_TEXT,A8
|
||
MOVE *A10(MOVEPOS),A10,L
|
||
MOVK 1,A9
|
||
CALLA CREATE_HELP
|
||
MOVK 30,A0
|
||
JSRP BONESLEEP_30
|
||
CALLR KILL_HELP
|
||
*BONE DEFLECT HELP
|
||
W1HT4_LP
|
||
SLEEP 3
|
||
MOVE *A11(PBONEHIT),A0,W ;BONE COLLISION DURING WAIT?
|
||
JRZ W1HT4_LP ;BR = NO
|
||
*EGG HELP
|
||
W1H_EGG:
|
||
CALLR KILL_HELP
|
||
SLEEP 100
|
||
JSRP TROG_TIP5
|
||
MOVK 1,A0
|
||
MOVE A0,*A11(PDINOSTOP),W ;STOP THE PLAYERS DINOSAUR
|
||
|
||
*SPECIFIC EGG LAYER
|
||
MOVE A11,A2
|
||
CALLA GPLAYNUM
|
||
MOVE A0,A9
|
||
ORI EGGOID,A9
|
||
SLL 5,A0
|
||
ADDI W1_EGG_POS,A0
|
||
MOVE *A0,A10,L
|
||
CALLA EGG_START_IMM
|
||
MOVI EGGS,A10
|
||
JSRP WAIT_FOR_OBJ
|
||
CALLA GETCPNT
|
||
MOVE A1,A10
|
||
|
||
MOVI EGG_TEXT,A8
|
||
MOVK 1,A9
|
||
CALLR CREATE_HELP
|
||
SLEEP 30
|
||
MOVI 100,A0
|
||
JSRP BONESLEEP_30
|
||
CALLA KILL_HELP
|
||
SLEEP 5
|
||
|
||
*COMMUNITY EGG LAYER
|
||
.IF 0
|
||
MOVI LIST_O_EGGS,A1
|
||
CALLA LAY_EGGS
|
||
SLEEP 30
|
||
.ENDIF
|
||
|
||
W1HH_LP:
|
||
MOVI HOUSELST,A1
|
||
MOVI HOUSEOID|PXPLAYER,A0
|
||
CALLA ISSUPPID ;LOOK FOR GLOBAL HOUSE FIRST
|
||
JRZ W1HH_SPEC
|
||
MOVE A1,A8
|
||
CALLA GETANIXY_PACKED
|
||
MOVE A3,A1
|
||
CALLA FIND_CLOSE_MPNT
|
||
MOVE *A0(MOVEEPTR),A9,L
|
||
JRUC W1HH_HOUSE_TIP
|
||
|
||
W1HH_SPEC
|
||
MOVE *A11(PEXITPNT),A9,L
|
||
MOVE *A9(EMOVEOBJ),A0,L
|
||
JRNZ W1HH_HOUSE_TIP
|
||
|
||
MOVE *A13(HDINO),A8,L
|
||
JSRP HELP_DINO
|
||
SLOOP 5,W1HH_LP
|
||
|
||
W1HH_HOUSE_TIP:
|
||
MOVE @TIP6_FLAG,A0,W
|
||
JRNE W1HHH_LP
|
||
JSRP TROG_TIP6
|
||
MOVK 1,A0
|
||
MOVE A0,*A11(PDINOSTOP),W ;STOP! LITTLE DINO MAN.
|
||
MOVE *A9(EMOVEPOS),A10,L
|
||
MOVB *A9(EMOVEDIR),A9
|
||
MOVI HOME_TEXT,A8
|
||
CREATE INDPID,HELP_BOX
|
||
MOVI 140,A0
|
||
JSRP BONESLEEP_30
|
||
CALLR KILL_HELP
|
||
W1HHH_LP:
|
||
**** MOVE @GAME_STATE,A0,W
|
||
**** CMPI INPLAY,A0
|
||
**** JRNE W1HHH_NXT
|
||
MOVE @WAVE_OVER,A0,W
|
||
JRNZ W1HHH_NXT
|
||
MOVE *A13(HDINO),A8,L
|
||
JSRP HELP_DINO ;HELP THE LITTLE DINO HOME
|
||
W1HHH_NXT:
|
||
SLOOP 5,W1HHH_LP
|
||
|
||
DIE
|
||
|
||
W1_EGG_POS:
|
||
.LONG [120,66],[120,130],[120,258],[120,322]
|
||
|
||
LIST_O_EGGS
|
||
.LONG [120,194],[152,194],[184,194],0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* WAVE2_HELP - PROCESS TO START OFF THE PLAYER FOR THE SECOND WAVE *
|
||
* GIVES THE PLAYER A REMINDER OF WHO HE IS AND *
|
||
* HOW MANY EGGS TO PICK UP. *
|
||
* A11 = PLAYER TO START *
|
||
* *
|
||
**************************************************************************
|
||
WAVE2_HELP:
|
||
MOVE @TUTOR,A0,W ;IN TUTOR MODE?
|
||
JRZ WAVEX_START ;BR = NO,JUST START THE STUFF
|
||
|
||
MOVI (10*63)/3,A1
|
||
MOVE A1,@HELP_PAUSE,W
|
||
CALLR PLAYER_DISABLE
|
||
MOVE @TIP8_FLAG,A0,W
|
||
JRNZ WAVE2_HELP_IMM
|
||
SLEEP 30 ;LET SHIT COME UP
|
||
JSRP TROG_TIP8
|
||
WAVE2_HELP_IMM:
|
||
MOVE *A11(POBJ),A8,L
|
||
CALLA OBJ_ON
|
||
|
||
MOVE A11,A2
|
||
CALLA GPLAYNUM
|
||
MOVE A0,A9
|
||
ORI DINOOID,A9
|
||
|
||
*OUTPUT A PATTERN OF THIS GUYS EGGS
|
||
SLL 5,A0
|
||
ADDI W2_EGG_POS,A0
|
||
MOVE *A0,A0,L
|
||
W2ES_LP:
|
||
MOVE *A0+,A10,L
|
||
JRZ W2ESD
|
||
CALLA EGG_START_IMM
|
||
JRUC W2ES_LP
|
||
W2ESD:
|
||
**** JSRP POINT_HAND
|
||
CALLR PLAYER_ENABLE
|
||
MOVK 1,A0
|
||
MOVE A0,*A11(PDINOSTOP),W ;TURN DINO OFF
|
||
MOVE A11,A2
|
||
CALLA DINO_START ;FIRE UP THE DUDES DINO
|
||
MOVI DINOS,A10
|
||
JSRP WAIT_FOR_OBJ
|
||
MOVE A8,*A13(HDINO),L
|
||
SLEEP 60 ;PAUSE ON DINO FIRST
|
||
CLR A0
|
||
MOVE A0,*A11(PDINOSTOP),W
|
||
DIE
|
||
|
||
*ALL HELP ENDS LIKE THIS
|
||
*A11 = PLAYER DATA
|
||
WAVEX_START:
|
||
MOVE *A11(POBJ),A8,L
|
||
CALLA OBJ_ON
|
||
MOVE A11,A2
|
||
CALLA DINO_START
|
||
CALLA EGG_START
|
||
DIE
|
||
|
||
|
||
*
|
||
*WAVE 2 CANNED EGG POSITIONS
|
||
W2_EGG_POS:
|
||
.LONG P1W2_LAY, P2W2_LAY, P3W2_LAY, P4W2_LAY
|
||
|
||
P1W2_LAY:
|
||
.LONG [216,98]
|
||
.LONG [152,162]
|
||
.LONG [184,258]
|
||
.LONG 0
|
||
P2W2_LAY:
|
||
.LONG [120,98]
|
||
.LONG [216,162]
|
||
.LONG [184,322]
|
||
.LONG 0
|
||
P3W2_LAY:
|
||
.LONG [184,66]
|
||
.LONG [216,226]
|
||
.LONG [120,290]
|
||
.LONG 0
|
||
P4W2_LAY:
|
||
.LONG [184,130]
|
||
.LONG [152,226]
|
||
.LONG [216,290]
|
||
.LONG 0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* POINT_HAND - PROCESS SUBROUTINE TO POINT OUT THE PLAYERS HAND. *
|
||
* A11 = PTR TO PLAYER DATA AREA. *
|
||
* *
|
||
**************************************************************************
|
||
****POINT_HAND:
|
||
**** MMTM A12,A8,A9,A10
|
||
**** MOVE *A11(PMOVE),A10,L
|
||
**** MOVI YOU_TEXT,A8 ;MESSAGE THIS
|
||
**** MOVK 1,A9
|
||
**** MOVE *A10(MOVEPOS),A10,L
|
||
**** CALLR CREATE_HELP
|
||
**** MOVI 170,A0
|
||
**** JSRP JOYSLEEP_30
|
||
**** CALLR KILL_HELP
|
||
**** SLEEP 5 ;KILL MESSAGE
|
||
**** MMFM A12,A8,A9,A10
|
||
**** RETP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* HELP_DINO - PROCESS SUBROUTINE TO DETERMINE THE NEXT SPOT THAT A *
|
||
* BONE SHOULD BE PLACED TO MAKE A DINOSAUR WALK TOWARDS *
|
||
* SOMETHING GOOD. *
|
||
* A8 = PTR TO DINO *
|
||
* A11 = PTR TO PLAYER CONTROLLING THIS DINO *
|
||
* NOTE: CALL WITH JSRP *
|
||
* TRASHES A8-A10, PTEMP1 - PTEMP3 *
|
||
* *
|
||
**************************************************************************
|
||
HELP_DINO:
|
||
CLR A0
|
||
MOVE A0,*A11(PDINOSTOP),W
|
||
MOVE A13,A9
|
||
MOVE *A8(OPLINK),A13,L
|
||
CALLA DINO_FIND_CLOSEST
|
||
MOVE A1,A4
|
||
CALLA GET_DIRECTIONS
|
||
SWAP A13,A9
|
||
MOVE A1,*A13(PTEMP1),W
|
||
MOVE A4,A8
|
||
CALLA GETANIXY_PACKED ;GET TARGET CENTER POSITION
|
||
MOVE A3,A2
|
||
MOVE *A9(TCURMPOS),A3,L ;GET THE DINOS CURRENT MOVE POSITION
|
||
CALLA FINDMOVE ;NOW FIND THE POINT
|
||
JRNC HELP_DINO_X
|
||
MOVE A1,*A13(PTEMP2),L
|
||
SWAP A2,A3
|
||
MOVE *A9(DDIR),A1,W
|
||
MOVE A1,A8
|
||
CALLR GET_NEXT_TURN
|
||
JRZ HELP_DINO_X
|
||
MOVE A1,A9
|
||
MOVE A4,*A13(PTEMP3),W
|
||
*CHECK THE 1x1 BOX
|
||
MOVE *A13(PTEMP2),A0,L
|
||
MOVE A0,A1
|
||
CALLA BONED_IN_4
|
||
JRNZ HD_REMOVE_LP
|
||
MOVE *A13(PTEMP1),A1,W
|
||
CALLA ONE_MOVE
|
||
JRZ HELP_DINO_X
|
||
MOVB *A1(MOVEPLYR),A0
|
||
JRN HELP_DINO_X
|
||
JSRP WAIT_MOVE_REMOVE
|
||
JRUC HELP_DINO_X
|
||
HD_REMOVE_LP
|
||
CMP A1,A9
|
||
JREQ HELP_BONE_HERE
|
||
MOVB *A1(MOVEPLYR),A6
|
||
JRNN HELP_BONE_REMOVE
|
||
MOVE A1,A0
|
||
MOVE A8,A1
|
||
CALLA ONE_MOVE
|
||
JRNZ HD_REMOVE_LP
|
||
JRUC HELP_DINO_X
|
||
HELP_BONE_REMOVE:
|
||
JSRP WAIT_MOVE_REMOVE
|
||
JRUC HD_REMOVE_LP
|
||
*NOW TELL HIM TO PLACE A BLOCKER BONE, UNLESS HE IS IN FRONT OF HIS HOUSE
|
||
HELP_BONE_HERE
|
||
MOVE *A9(MOVEEPTR),A1,L ;IS THIS AN EXIT MOVE?
|
||
JRN HELP_BONE_OK ;BR = NO
|
||
MOVB *A1(EMOVEPLYR),A0
|
||
CMPI PXPLAYER,A0 ;IS IT A COMMUNITY EXIT?
|
||
JREQ HB_ALL_EXIT ;BR = YES
|
||
|
||
MOVE *A11(PEXITPNT),A1,L
|
||
MOVE *A1(EMOVEMPTR),A0,L
|
||
CMP A0,A9 ;IS THIS OUR PLAYERS EXIT?
|
||
JRNE HELP_BONE_OK ;BR = NO
|
||
|
||
HB_ALL_EXIT
|
||
MOVE *A1(EMOVEOBJ),A0,L ;IS THERE A HOUSE ON THIS EXIT?
|
||
JRZ HELP_BONE_OK ;BR = NO
|
||
MOVB *A9(MOVEPLYR),A1 ;BONE IN FRONT OF THIS HOUSE?
|
||
JRN HELP_DINO_X ;BR = NO
|
||
MOVE A9,A1
|
||
JSRP WAIT_MOVE_REMOVE ;REMOVE THAT BONE!
|
||
JRUC HELP_DINO_X
|
||
|
||
HELP_BONE_OK:
|
||
MOVE *A13(PTEMP3),A1,W
|
||
JRNE HELP_DINO_X
|
||
MOVB *A9(MOVEPLYR),A1 ;IS THERE A BONE HERE?
|
||
JRNN HELP_DINO_X ;BR = YES, THEN NO NEW ONE
|
||
MOVK 1,A0
|
||
MOVE A0,*A11(PDINOSTOP),W
|
||
MOVE A9,A0
|
||
CALLR PLACE_MESS_DIR
|
||
JSRP WAIT_FOR_BONE
|
||
CALLR PLAYER_ENABLE
|
||
CALLR KILL_HELP
|
||
HELP_DINO_X:
|
||
RETP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* GET_NEXT_TURN - GET THE NEXT TURN POINT FOR AN OBJECT *
|
||
* A1 = OBJECT DIRECTION *
|
||
* A2 = OBJECT [Y,X] *
|
||
* A3 = TARGET [Y,X] *
|
||
* RETURNS: *
|
||
* Z = NO POINT FOUND (A1 = 0) *
|
||
* A1 = 0 *
|
||
* A4 = UNDEFINED *
|
||
* NZ = POINT FOUND (A1 = PTR TO MOVE) *
|
||
* A1 = PTR TO MOVE *
|
||
* A4 = 1 IF TARGET IN SIGHT, OTHERWISE 0 *
|
||
* *
|
||
**************************************************************************
|
||
GET_NEXT_TURN:
|
||
MMTM SP,A0,A2,A3,A8
|
||
CLR A4
|
||
CMPI UP,A1
|
||
JREQ GNT_UP
|
||
CMPI DOWN,A1
|
||
JREQ GNT_DOWN
|
||
CMPI LEFT,A1
|
||
JREQ GNT_LEFT
|
||
*OBJECT MOVING RIGHT
|
||
CMPXY A2,A3
|
||
JRXLE GNT_IMM ;IMMEADIATELY DRAW BONE IN FRONT
|
||
JRUC GNT_INTERSECT_X
|
||
*OBJECT MOVING LEFT
|
||
GNT_LEFT:
|
||
CMPXY A2,A3
|
||
JRXGE GNT_IMM
|
||
JRUC GNT_INTERSECT_X
|
||
*DINO MOVING DOWN
|
||
GNT_DOWN:
|
||
CMPXY A2,A3
|
||
JRYLE GNT_IMM
|
||
JRUC GNT_INTERSECT_Y
|
||
*DINO MOVING UP
|
||
GNT_UP:
|
||
CMPXY A2,A3
|
||
JRYGE GNT_IMM
|
||
GNT_INTERSECT_Y:
|
||
JRXNE GNT_IY_NE ;IN LINE OF SIGHT? BR = NO
|
||
INC A4
|
||
GNT_IY_NE:
|
||
MOVY A3,A2
|
||
JRUC GNT_IMM
|
||
GNT_INTERSECT_X:
|
||
JRYNE GNT_IX_NE ;IN LINE OF SIGHT? BR = NO
|
||
INC A4
|
||
GNT_IX_NE:
|
||
MOVX A3,A2
|
||
*A1 = CURRENT DINO DIRECTION
|
||
*A2 = CURRENT [Y,X] DINO MOVE POINT POSITION, OR DINO TARGET INTERSECT
|
||
*A4 = LINE OF SIGHT FLAG
|
||
GNT_IMM:
|
||
MOVE A1,A8
|
||
MOVE A2,A3
|
||
CALLA FINDMOVE
|
||
JRNC GNT_FAIL
|
||
MOVE A1,A0
|
||
MOVE A8,A1
|
||
CALLA ONE_MOVE
|
||
JRNZ GNT_CHECK ;FUNKY END OF ISLAND SHIT
|
||
MOVE A0,A1 ;JUST USE THE LAST POINT
|
||
GNT_CHECK:
|
||
MOVB *A1(MOVETYPE),A3
|
||
CMPI HORBAR,A3
|
||
JREQ GNT_POINT
|
||
CMPI VERTBAR,A3
|
||
JREQ GNT_POINT
|
||
MOVE A1,A0
|
||
MOVE A8,A1
|
||
CALLA ONE_MOVE
|
||
JRNZ GNT_POINT
|
||
GNT_FAIL:
|
||
CLR A1
|
||
JRUC GNT_X
|
||
GNT_POINT:
|
||
MOVE A1,A3
|
||
MOVE A1,A0
|
||
MOVE A8,A1
|
||
CALLA ONE_MOVE ;CHECK TO SEE IF WE END IN DEATH
|
||
JRNZ GNT_INNER_POINT ;BR = NO
|
||
CLR A4 ;FREAKIN' DRAW A SAFETY BONE DUDE!
|
||
GNT_INNER_POINT:
|
||
MOVE A3,A1
|
||
GNT_X:
|
||
MMFM SP,A0,A2,A3,A8
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* WAIT_FOR_OBJ - PROCESS SUBROUTINE TO WAIT FOR THE FIRST OCCURANCE *
|
||
* OF AN OBJECT ON A SUPP LIST THEN RETURN. *
|
||
* A9 = OID OF OBJECT *
|
||
* A10 = SUPPLEMENTAL LIST *
|
||
* RETURNS: *
|
||
* A8 = OBJECT *
|
||
* NOTE: CALL WITH JSRP *
|
||
* *
|
||
**************************************************************************
|
||
WAIT_FOR_OBJ:
|
||
SLEEP 5
|
||
MOVE A9,A0
|
||
MOVE A10,A1
|
||
CALLA ISSUPPID
|
||
JRZ WAIT_FOR_OBJ
|
||
MOVE A1,A8
|
||
RETP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* PLAYER_DISABLE - DISABLE THE PLAYERS CONTROLS, JOYSTICK AND BUTTON. *
|
||
* A11 = PTR TO PLAYER DATA AREA *
|
||
* NOTE: TRASHES A0 *
|
||
* *
|
||
**************************************************************************
|
||
PLAYER_DISABLE:
|
||
MOVK 1,A0
|
||
JRUC PDG
|
||
**************************************************************************
|
||
* *
|
||
* PLAYER_ENABLE - ENABLE THE PLAYERS CONTROLS, JOYSTICK AND BUTTON. *
|
||
* A11 = PTR TO PLAYER DATA AREA *
|
||
* NOTE: TRASHES A0 *
|
||
* *
|
||
**************************************************************************
|
||
PLAYER_ENABLE:
|
||
CLR A0
|
||
PDG:
|
||
MOVE A0,*A11(PNOMOVE),W
|
||
MOVE A0,*A11(PNODRAW),W
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* WAIT_FOR_BONE - WAIT FOR PLAYER TO PLACE A BONE ON A GIVEN MOVE. *
|
||
* IF IT DOESN'T GET A BONE IT WILL START TO BITCH *
|
||
* AT THE PLAYER THEN EVENTUALLY MOVE THE HAND TO *
|
||
* THE SPOT AND PLACE THE BONE ITSELF. *
|
||
* A9 = MOVE THAT WE ARE WATCHING *
|
||
* A11 = PLAYER DATA AREA *
|
||
* RETURNS: *
|
||
* A10 = PTR TO CURRENT PLAYER MOVE POINT *
|
||
* NOTE: TRASHES A8,A9 *
|
||
* *
|
||
**************************************************************************
|
||
WAIT_FOR_BONE:
|
||
MOVE A9,A10
|
||
MOVE A11,A2
|
||
CALLA GPLAYNUM
|
||
MOVE A0,A9
|
||
MOVE @HELP_PAUSE,A8,W
|
||
CLRM *A11(PSWITCHESC),W
|
||
WAITFB_LP:
|
||
SLEEP 3
|
||
MOVB *A10(MOVEPLYR),A0
|
||
|
||
JRNN WAITFB_X
|
||
|
||
MOVE *A11(PSWITCHESC),A0,W ;DID HE BONE ELSEWHERE?
|
||
JRZ WAITFB_NXT
|
||
SLEEP 6
|
||
MOVB *A10(MOVEPLYR),A0 ;CHECK AGAIN FOR ANI SAKE
|
||
CMP A0,A9
|
||
JREQ WAITFB_X
|
||
JSRP FLASH_TEXT
|
||
JSRP FLASH_TEXT
|
||
CLRM *A11(PSWITCHESC),W
|
||
WAITFB_NXT:
|
||
DSJ A8,WAITFB_LP
|
||
*IF YOU WANT IT DONE, YOU HAVE TO DO IT YOURSELF
|
||
MOVE A10,A9
|
||
JSRP HAND_TO_MOVE
|
||
CALLR PLAYER_DISABLE
|
||
MOVE *A11(POBJ),A8,L
|
||
MOVE A9,A0
|
||
CALLA TOMOVE ;RE-ALIGN THAT HAND
|
||
JSRP DRONE_BONE ;BONE ACTION MAN
|
||
WAITFB_X:
|
||
RETP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* WAIT_FOR_REMOVE - WAIT FOR PLAYER TO REMOVE A BONE ON A GIVEN MOVE. *
|
||
* IF HE DOESN'T IT WILL START TO BITCH *
|
||
* AT THE PLAYER THEN EVENTUALLY MOVE THE HAND TO *
|
||
* THE SPOT AND REMOVE THE BONE ITSELF. *
|
||
* A9 = MOVE THAT WE ARE WATCHING *
|
||
* A11 = PLAYER DATA AREA *
|
||
* RETURNS: *
|
||
* A10 = PTR TO CURRENT PLAYER MOVE POINT *
|
||
* NOTE: TRASHES A8,A9 *
|
||
* *
|
||
**************************************************************************
|
||
WAIT_FOR_REMOVE:
|
||
MOVE A9,A10
|
||
MOVE A11,A2
|
||
CALLA GPLAYNUM
|
||
MOVE A0,A9
|
||
* MOVI (10*62)/3,A8 ;WAIT ON HIM FOR TEN SECS
|
||
MOVE @HELP_PAUSE,A8,W
|
||
CLRM *A11(PSWITCHESC),W
|
||
WAITFR_LP:
|
||
SLEEP 3
|
||
MOVB *A10(MOVEPLYR),A0
|
||
JRN WAITFR_X
|
||
MOVE *A11(PSWITCHESC),A0,W ;DID HE BONE ELSEWHERE?
|
||
JRZ WAITFR_NXT
|
||
SLEEP 6
|
||
MOVB *A10(MOVEPLYR),A0 ;CHECK AGAIN FOR ANI SAKE
|
||
JRN WAITFR_X
|
||
JSRP FLASH_TEXT
|
||
JSRP FLASH_TEXT
|
||
CLRM *A11(PSWITCHESC),W
|
||
WAITFR_NXT:
|
||
DSJ A8,WAITFR_LP
|
||
*IF YOU WANT IT DONE, YOU HAVE TO DO IT YOURSELF
|
||
MOVE A10,A9
|
||
JSRP HAND_TO_MOVE
|
||
CALLR PLAYER_DISABLE
|
||
MOVE *A11(POBJ),A8,L
|
||
MOVE A9,A0
|
||
CALLA TOMOVE ;RE-ALIGN THAT HAND
|
||
WAITFR_BLP:
|
||
JSRP DRONE_BONE ;BONE ACTION MAN
|
||
MOVB *A10(MOVEPLYR),A0 ;DID WE ERASE IT?
|
||
JRNN WAITFR_BLP ;BR = NO, DO IT AGAIN
|
||
WAITFR_X:
|
||
RETP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* WAIT_MOVE_REMOVE - PROCESS SUBROUTINE TO WAIT FOR A BONE TO BE *
|
||
* REMOVED FROM A MOVE. *
|
||
* A1 = PTR TO MOVE *
|
||
* A11 = PTR TO PLAYER DATA *
|
||
* RETURNS: *
|
||
* A10 = PTR TO MOVE THAT WE WAITED ON *
|
||
* NOTE: CALL WITH JSRP *
|
||
* *
|
||
**************************************************************************
|
||
WAIT_MOVE_REMOVE:
|
||
MMTM A12,A1,A8,A9
|
||
MOVE A1,A9
|
||
MOVK 1,A0
|
||
MOVE A0,*A11(PDINOSTOP),W
|
||
MOVE A9,A0
|
||
MOVI REMOVE_TEXT,A8
|
||
CALLR MESSAGE_DIR
|
||
JSRP WAIT_FOR_REMOVE
|
||
CALLR PLAYER_ENABLE
|
||
CALLR KILL_HELP
|
||
MMFM A12,A1,A8,A9
|
||
RETP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* FLASH_TEXT - FLASH THE TEXT IN A PLAYERS HELP BOX. OFF AND ON *
|
||
* A9 = PLAYER # *
|
||
* NOTE: CALL WITH JSRP *
|
||
* *
|
||
**************************************************************************
|
||
FLASH_TEXT:
|
||
PUSHP A10 ;GRAB THE PLAYERS ATTENTION
|
||
MOVI HTEXTOID,A10
|
||
OR A9,A10
|
||
MOVE A10,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA OBJECTS_OFF
|
||
SLEEP 6
|
||
MOVE A10,A0
|
||
CLR A1
|
||
NOT A1
|
||
MOVI DMACNZ,A4
|
||
CALLA OBJECTS_ON
|
||
SLEEP 8
|
||
PULLP A10
|
||
RETP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* JOYSLEEP_30 - PROCESS SUBROUTINE TO SLEEP A GIVEN NUMBER OF TICKS *
|
||
* ABOVE AND BEYOND THE 3O MINIMUM REQUIRED. IF *
|
||
* THE JOYSTICK IS FOUND MOVING AFTER 30 TICKS THEN *
|
||
* IT RETURNS IMMEADIATELY. *
|
||
* A0 = NUMBER OF TICKS TO SLEEP PAST 30 *
|
||
* A11 = PLAYER DATA AREA *
|
||
* RETURNS: *
|
||
* Z = NORMAL EXIT *
|
||
* NZ = EXIT BECAUSE OF JOYSTICK *
|
||
* NOTE: CALL WITH JSRP *
|
||
* *
|
||
**************************************************************************
|
||
JOYSLEEP_30:
|
||
MMTM A12,A9,A11
|
||
MOVI PJOYESC,A1
|
||
JRUC BJS30_G
|
||
|
||
**************************************************************************
|
||
* *
|
||
* BONESLEEP_30 - PROCESS SUBROUTINE TO SLEEP A GIVEN NUMBER OF TICKS *
|
||
* ABOVE AND BEYOND THE 3O MINIMUM REQUIRED. IF THE BONE *
|
||
* BUTTON IS PRESSED AFTER 30 TICKS THEN IT RETURNS *
|
||
* IMMEADIATELY. *
|
||
* A0 = NUMBER OF TICKS TO SLEEP PAST 30 *
|
||
* A11 = PLAYER DATA AREA *
|
||
* RETURNS: *
|
||
* Z = NORMAL EXIT *
|
||
* NZ = EXIT BECAUSE OF BONE BUTTON *
|
||
* NOTE: CALL WITH JSRP *
|
||
* *
|
||
**************************************************************************
|
||
BONESLEEP_30:
|
||
MMTM A12,A9,A11
|
||
MOVI PSWITCHESC,A1
|
||
*
|
||
*ENTRY FOR BUTTON OR STICK WAIT
|
||
*A1 = OFFSET FROM A11 TO LOOK FOR ACTIVITY
|
||
BJS30_G:
|
||
ADD A1,A11
|
||
MOVE A0,A9
|
||
SLEEP 30
|
||
SRL 2,A9 ;4 TICK RESOLUTION
|
||
JRZ BJS30_X
|
||
CLRM *A11,W
|
||
BJS30_LP:
|
||
SLEEP 4
|
||
MOVE *A11,A0,W
|
||
JRNZ BJS30_X
|
||
DSJS A9,BJS30_LP
|
||
CLR A9
|
||
BJS30_X:
|
||
MMFM A12,A9,A11
|
||
RETP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* HAND_TO_MOVE - PROCESS SUBROUTINE TO KINDLY TAKE A PLAYERS HAND FROM *
|
||
* IT'S CURRENT POSITION AND PUT IT WHERE YOU WANT *
|
||
* IT. *
|
||
* A9 = PTR TO DESIRED MOVE POINT *
|
||
* A11 = PLAYER DATA AREA *
|
||
* NOTE: CALL WITH JSRP *
|
||
* *
|
||
**************************************************************************
|
||
HAND_TO_MOVE:
|
||
PUSHP A8
|
||
HANDTM_LP:
|
||
MOVE *A11(PMOVE),A0,L
|
||
CMP A0,A9
|
||
JREQ HANDTM_X
|
||
MOVE A9,A0
|
||
MOVE *A11(POBJ),A8,L
|
||
CALLA GET_DIRECTIONS_TO_MOVE
|
||
MOVE A2,A0
|
||
JSRP DRONE_MOVE
|
||
SLOOP 4,HANDTM_LP
|
||
HANDTM_X:
|
||
PULLP A8
|
||
RETP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* PLACE_MESSAGE - PUT THE PLACE BONE MESSAGE ON THE SCREEN. *
|
||
* A10 = [Y,X] POSITION *
|
||
* A11 = PLAYER THAT OWNS THE MESSAGE *
|
||
* *
|
||
**************************************************************************
|
||
PLACE_MESSAGE:
|
||
MMTM SP,A0,A1,A7,A8,A9
|
||
MOVI PLACE_TEXT,A8
|
||
CLR A9 ;MOVK UP,A9
|
||
CREATE INDPID,HELP_BOX
|
||
MMFM SP,A0,A1,A7,A8,A9
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* PLACE_MESS_DIR - PUT THE PLACE BONE MESSAGE ON THE SCREEN *
|
||
* USING THE BONE TYPE AND SCREEN POSITION TO *
|
||
* DETERMINE MESSAGE DIRECTION. *
|
||
* A0 = MOVE POINT TO POINT TO *
|
||
* A11 = PLAYER THAT OWNS THE MESSAGE *
|
||
* *
|
||
**************************************************************************
|
||
PLACE_MESS_DIR:
|
||
PUSH A8
|
||
MOVI PLACE_TEXT,A8
|
||
CALLR MESSAGE_DIR
|
||
PULL A8
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* REMOVE_MESSAGE - PUT THE REMOVE BONE MESSAGE ON THE SCREEN. *
|
||
* A10 = [Y,X] POSITION *
|
||
* A11 = PLAYER THAT OWNS THE MESSAGE *
|
||
* *
|
||
**************************************************************************
|
||
REMOVE_MESSAGE:
|
||
MMTM SP,A0,A1,A7,A8,A9
|
||
MOVI REMOVE_TEXT,A8
|
||
CLR A9 ;MOVK UP,A9
|
||
CREATE INDPID,HELP_BOX
|
||
MMFM SP,A0,A1,A7,A8,A9
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* HELP BOX MESSAGES *
|
||
* ALL OF THEM USE THE SAME INITIALIZATION HEADER *
|
||
* *
|
||
**************************************************************************
|
||
PLACE_TEXT:
|
||
.STRING "PLACE\n\fBONE\n\fHERE",0
|
||
.LONG [-2,0]
|
||
.LONG [-4,0]
|
||
.EVEN
|
||
|
||
REMOVE_TEXT:
|
||
.STRING "REMOVE\n\fTHIS\n\fBONE",0
|
||
.LONG [-2,0]
|
||
.LONG [-4,0]
|
||
.EVEN
|
||
|
||
****YOU_TEXT:
|
||
**** .STRING "YOU\n\fMOVE\n\fHAND",0
|
||
**** .LONG [-2,0]
|
||
**** .LONG [-4,0]
|
||
**** .EVEN
|
||
|
||
****MOVE_TEXT:
|
||
**** .STRING "MOVE\n\fHAND\n\fHERE",0
|
||
**** .LONG [-2,0]
|
||
**** .LONG [-4,0]
|
||
**** .EVEN
|
||
|
||
****GOOD_TEXT:
|
||
**** .STRING "\n\fGOOD!",0
|
||
**** .LONG [-3,0]
|
||
**** .EVEN
|
||
|
||
****NICE_TEXT:
|
||
**** .STRING "\n\fNICE!",0
|
||
**** .LONG [-3,0]
|
||
**** .EVEN
|
||
|
||
****GOODJ_TEXT:
|
||
**** .STRING "\n\fGOOD\n\fJOB!",0
|
||
**** .LONG [-8,0]
|
||
**** .LONG [-10,0]
|
||
**** .EVEN
|
||
|
||
GREAT_TEXT:
|
||
.STRING "\n\fGREAT!",0
|
||
.LONG [-3,0]
|
||
.EVEN
|
||
|
||
HELP_TEXT:
|
||
.STRING "\n\fYOUR\n\fDINO",0
|
||
.LONG [-8,0]
|
||
.LONG [-10,0]
|
||
.EVEN
|
||
|
||
EGG_TEXT:
|
||
.STRING "\n\fEGG",0
|
||
.LONG [-3,0]
|
||
.EVEN
|
||
|
||
HOME_TEXT:
|
||
.STRING "LEAD\n\fDINO\n\fHOME",0
|
||
.LONG [-2,0]
|
||
.LONG [-4,0]
|
||
.EVEN
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG HELP POINTER BOX HANDLERS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
**************************************************************************
|
||
* *
|
||
* MESSAGE_DIR - PUT A HELP MESSAGE ON THE SCREEN USING THE MOVE TYPE *
|
||
* AND SCREEN POSITION TO DETERMINE MESSAGE DIRECTION. *
|
||
* A0 = MOVE POINT TO POINT MESSAGE AT *
|
||
* A8 = MESSAGE *
|
||
* A11 = PLAYER THAT GETS THE MESSAGE *
|
||
* *
|
||
**************************************************************************
|
||
MESSAGE_DIR:
|
||
MMTM SP,A9,A10
|
||
MOVB *A0(MOVETYPE),A9
|
||
CMPI HORBAR,A9
|
||
JREQ MESSAGE_UD
|
||
MOVK 1,A9
|
||
JRUC MESSAGE_OUT
|
||
MESSAGE_UD:
|
||
CLR A9
|
||
MESSAGE_OUT:
|
||
MOVE *A0(MOVEPOS),A10,L
|
||
CALLR CREATE_HELP
|
||
MMFM SP,A9,A10
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* CREATE_HELP - CREATE THE HELP BOX PROCESS, THIS ROUTINE WILL PICK *
|
||
* ONE OF TWO DIRECTIONS BASED ON THE POSITION OF *
|
||
* THE POINT OF INTEREST. *
|
||
* A8 = TEXT TO PLACE IN THE HELP BOX. *
|
||
* A9 = ORIENTATION (0 = LEFT/RIGHT, ~0 = UP/DOWN) *
|
||
* A10 = POINT THE ARROW AT THIS [Y,X] POINT. *
|
||
* A11 = PLAYER DATA AREA *
|
||
* *
|
||
**************************************************************************
|
||
CREATE_HELP:
|
||
MMTM SP,A0,A1,A7,A9
|
||
MOVE @SCRNTL,A0,L
|
||
MOVE @SCRNLR,A1,L
|
||
CALLA MIDPOINT
|
||
MOVE A9,A9
|
||
JRNZ CREATE_H_UD
|
||
CMPXY A0,A10
|
||
JRXLT CREATE_H_LEFT
|
||
MOVK RIGHT,A9
|
||
JRUC CREATE_H
|
||
CREATE_H_LEFT
|
||
MOVK LEFT,A9
|
||
JRUC CREATE_H
|
||
CREATE_H_UD:
|
||
CMPXY A0,A10
|
||
JRYLT CREATE_H_UP
|
||
MOVK DOWN,A9 ;UP/DOWN BOX
|
||
JRUC CREATE_H
|
||
CREATE_H_UP:
|
||
CLR A9 ;MOVK UP,A9
|
||
CREATE_H:
|
||
CREATE INDPID,HELP_BOX
|
||
MMFM SP,A0,A1,A7,A9
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* KILL_HELP - ROUTINE TO KILL ANY CURRENT HELP BOXES FOR THIS PLAYER *
|
||
* A11 = PTR TO PLAYER DATA AREA *
|
||
* *
|
||
**************************************************************************
|
||
KILL_HELP:
|
||
MMTM SP,A0,A1,A2
|
||
MOVE *A11(PPID),A0,W
|
||
ORI PHELPPID,A0
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILALL ;KILL ANY OTHERS
|
||
MOVE A11,A2
|
||
CALLA GPLAYNUM
|
||
ORI HBOXOID,A0
|
||
MOVI HBOXMASK,A1 ;KILL ALL PARTS
|
||
CALLA KILOBJ ;ONLY ONE INSTRUCTION AT A TIME
|
||
MMFM SP,A0,A1,A2
|
||
RETS
|
||
|
||
|
||
*
|
||
*HELP_BOX PROCESS EQUATES
|
||
HBOID .EQU PDATA
|
||
HBPLAY .EQU PDATA+10H
|
||
HBTEXT .EQU PDATA+20H
|
||
HBDIR .EQU PDATA+40H
|
||
HBPOS .EQU PDATA+50H
|
||
HBPDATA .EQU PDATA+70H
|
||
HBZVAL .EQU PDATA+90H
|
||
|
||
**************************************************************************
|
||
* *
|
||
* HELP_BOX - PROCESS TO PLACE A HELP BOX ON THE SCREEN *
|
||
* A8 = TEXT TO PLACE IN THE HELP BOX. *
|
||
* A9 = DIRECTION TO POINT THE ARROW *
|
||
* A10 = POINT THE ARROW AT THIS [Y,X] POINT. *
|
||
* A11 = PLAYER DATA AREA *
|
||
* *
|
||
**************************************************************************
|
||
HELP_BOX:
|
||
MOVE *A11(PPID),A0,W
|
||
ORI PHELPPID,A0
|
||
MOVE A0,*A13(PROCID),W
|
||
|
||
MOVE A11,A2
|
||
CALLA GPLAYNUM
|
||
MOVE A0,*A13(HBPLAY),W
|
||
MOVI HELP_ZPOS,A1
|
||
SUB A0,A1
|
||
SLL 16,A1
|
||
MOVE A1,*A13(HBZVAL),L
|
||
ORI HBOXOID,A0
|
||
MOVE A0,*A13(HBOID),W
|
||
|
||
CALLR KILL_HELP ;ONE HELPER/PLAYER AT A TIME
|
||
|
||
MOVE A8,*A13(HBTEXT),L
|
||
MOVE A9,*A13(HBDIR),W
|
||
SLL 5,A9
|
||
ADDI HBOFFSET_TAB,A9
|
||
MOVE *A9,A9,L
|
||
ADDXY A9,A10
|
||
MOVE A10,*A13(HBPOS),L
|
||
MOVE A11,*A13(HBPDATA),L
|
||
|
||
*OPEN WINDOWS
|
||
MOVK 1,A0
|
||
MOVE *A13(HBZVAL),A1,L
|
||
|
||
MOVI [37,51],A8
|
||
MOVE *A13(HBOID),A9,W
|
||
JSRP OWINDOW_OID
|
||
JRZ HELP_BOX_DIE
|
||
MOVE *A13(HBPOS),A10,L
|
||
MOVE *A13(HBPLAY),A0,W
|
||
SLL 4,A0
|
||
ADDI HBOX_COLORS,A0
|
||
MOVE *A0(0),*A8(OCONST),W ;SET BORDER COLOR
|
||
*INNER WINDOW FOR COOL BORDER LOOK
|
||
MOVK 1,A0
|
||
MOVE *A13(HBZVAL),A1,L
|
||
MOVI [33,47],A8
|
||
MOVE *A13(HBOID),A9,W
|
||
JSRP OWINDOW_OID
|
||
JRZ HELP_BOX_FAIL
|
||
|
||
*OUTPUT THE DESIRED TEXT
|
||
MOVI HELP_SETUP,A8
|
||
CALLA LM_SETUP
|
||
MOVE *A13(HBTEXT),A8,L ;REAL STRING PLEASE
|
||
MOVE *A13(HBPOS),A9,L
|
||
SUBI [13,0],A9 ;TO THE TOP OF THE BOX
|
||
MOVE *A13(HBPDATA),A0,L
|
||
MOVE *A0(PPALID),A0,L
|
||
CALLA FINDPAL ;GET CORRECT PLAYER PALETTE
|
||
MOVX A0,A5
|
||
CLR A0 ;ZERO SLEEP FOR SURE
|
||
JSRP PRINTF
|
||
MOVI TEXTOID,A0
|
||
MOVE *A13(HBZVAL),A1,L
|
||
CALLA CHANGEZPOS
|
||
MOVE *A13(HBPLAY),A1,W
|
||
ORI HTEXTOID,A1
|
||
CALLA CHANGOID
|
||
*CREATE THE ARROW STABBER
|
||
MOVE *A13(HBPLAY),A14,W
|
||
SLL 5,A14
|
||
ADDI BARTAB,A14
|
||
MOVE *A14,A14,L
|
||
CALLA GPALOBJSTF ;LOAD THE POINTER ARROW
|
||
JRZ HELP_BOX_FAIL ;BR = BOGUS, NO MORE OBJECTS
|
||
MOVE A0,A8
|
||
MOVE *A13(HBPLAY),A3,W
|
||
ORI HARROWOID,A3
|
||
MOVE A3,*A8(OID),W ;MAKE THE ARROW SPECIFIC
|
||
MOVE A13,*A8(OPLINK),L
|
||
MOVE *A13(HBPOS),A3,L
|
||
CALLA OBJ_TO_PNT
|
||
|
||
MOVE *A13(HBZVAL),*A8(OZVAL),L
|
||
|
||
MOVE *A13(HBDIR),A9,W
|
||
SLL 5,A9
|
||
ADDI HBOX_ANIMS,A9
|
||
MOVE *A9,A9,L ;SCRIPT TO PLAY WITH
|
||
MOVK 4,A1
|
||
JSRP FRANIM
|
||
CALLA INSERT_OBJ ;LET THEM ALL SEE IT
|
||
MOVK 1,A1
|
||
JSRP FRANIM
|
||
HELP_BOX_FAIL:
|
||
MOVE *A13(HBOID),A0,W
|
||
MOVI HBOXMASK,A1
|
||
CALLA KILOBJ ;WE FAILED, SCREW THE BOX
|
||
HELP_BOX_DIE:
|
||
DIE
|
||
|
||
*
|
||
*GENERIC TEXT HEADER FOR ALL HELP BOX MESSAGES
|
||
HELP_SETUP:
|
||
MESS_MAC RD7FONT,1,0,0,0E0E0000H,STRCNRMO,0
|
||
|
||
*
|
||
*HELP BOX DUXPAL COLOR ASSIGNMENTS FOR EACH PLAYER
|
||
HBOX_COLORS:
|
||
.WORD TROG_RED, TROG_BLUE, TROG_YELLOW, TROG_PURPLE
|
||
|
||
*
|
||
*HELP BOX OFFSET FROM END OF ARROW TO CENTER OF BOX
|
||
*USED FOR CONVERTING "POINT OF INFO" TO "CENTER OF HELP BOX."
|
||
HBOFFSET_TAB:
|
||
.LONG [40,0],[-40,0],[0,47],[0,-47]
|
||
|
||
*
|
||
*HELP BOX ARROW ANIMATIONS
|
||
HBOX_ANIMS:
|
||
.LONG HBOXUP_ANIM, HBOXDOWN_ANIM, HBOXLEFT_ANIM, HBOXRIGHT_ANIM
|
||
*UP/DOWN
|
||
HBOXDOWN_ANIM:
|
||
.LONG BOXARV1
|
||
.WORD 1|FLIPBITS,M_FLIPV
|
||
HBOXUP_ANIM:
|
||
.LONG BOXARV1
|
||
.WORD 10
|
||
.LONG BOXARV2
|
||
.WORD 10|SCRIPT
|
||
.LONG HBOXUP_ANIM
|
||
*LEFT/RIGHT
|
||
HBOXLEFT_ANIM:
|
||
.LONG BOXARH1
|
||
.WORD 1|FLIPBITS,M_FLIPH
|
||
HBOXRIGHT_ANIM:
|
||
.LONG BOXARH1
|
||
.WORD 10
|
||
.LONG BOXARH2
|
||
.WORD 10|SCRIPT
|
||
.LONG HBOXRIGHT_ANIM
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG TIPS BOX HANDLERS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG_TIP1 - PROCESS SUBROUTINE FOR THE FIRST TROG TIP *
|
||
* NOTE: CALL WITH JSRP *
|
||
* *
|
||
**************************************************************************
|
||
****TROG_TIP1:
|
||
**** MOVI TIP1_FLAG,A1
|
||
**** MOVI TIP1_DEF,A3
|
||
**** JRUC TROG_TIP_FLAG
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG_TIP2 - PROCESS SUBROUTINE FOR THE SECOND TROG TIP *
|
||
* NOTE: CALL WITH JSRP *
|
||
* *
|
||
**************************************************************************
|
||
****TROG_TIP2:
|
||
**** MOVI TIP2_FLAG,A1
|
||
**** MOVI TIP2_DEF,A3
|
||
**** JRUC TROG_TIP_FLAG
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG_TIP2A - PROCESS SUBROUTINE FOR THE SECOND SUB TROG TIP *
|
||
* NOTE: CALL WITH JSRP *
|
||
* *
|
||
**************************************************************************
|
||
****TROG_TIP2A:
|
||
**** MOVI TIP2A_FLAG,A1
|
||
**** MOVI TIP2A_DEF,A3
|
||
**** JRUC TROG_TIP_FLAG
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG_TIP3 - PROCESS SUBROUTINE FOR THE THIRD TROG TIP *
|
||
* NOTE: CALL WITH JSRP *
|
||
* *
|
||
**************************************************************************
|
||
TROG_TIP3:
|
||
MOVI TIP3_FLAG,A1
|
||
MOVI TIP3_DEF,A3
|
||
JRUC TROG_TIP_FLAG
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG_TIP4 - PROCESS SUBROUTINE FOR THE FOURTH TROG TIP *
|
||
* NOTE: CALL WITH JSRP *
|
||
* *
|
||
**************************************************************************
|
||
TROG_TIP4:
|
||
MOVI TIP4_FLAG,A1
|
||
MOVI TIP4_DEF,A3
|
||
JRUC TROG_TIP_FLAG
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG_TIP5 - PROCESS SUBROUTINE FOR THE FIFTH TROG TIP *
|
||
* NOTE: CALL WITH JSRP *
|
||
* *
|
||
**************************************************************************
|
||
TROG_TIP5:
|
||
MOVI TIP5_FLAG,A1
|
||
MOVI TIP5_DEF,A3
|
||
JRUC TROG_TIP_FLAG
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG_TIP6 - PROCESS SUBROUTINE FOR THE SIXTH TROG TIP *
|
||
* NOTE: CALL WITH JSRP *
|
||
* *
|
||
**************************************************************************
|
||
TROG_TIP6:
|
||
MOVI TIP6_FLAG,A1
|
||
MOVI TIP6_DEF,A3
|
||
JRUC TROG_TIP_FLAG
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG_TIP8 - PROCESS SUBROUTINE FOR THE EIGTH TROG TIP *
|
||
* NOTE: CALL WITH JSRP *
|
||
* *
|
||
**************************************************************************
|
||
TROG_TIP8:
|
||
MOVI TIP8_FLAG,A1
|
||
MOVI TIP8_DEF,A3
|
||
JRUC TROG_TIP_FLAG
|
||
|
||
**************************************************************************
|
||
* *
|
||
* BONE_TIP4 - SPECIAL PROCESS TO ACTIVATE TROG_TIP4 DUE TO MAJOR PROCESS *
|
||
* STACK USAGE BY TROG_TIP. *
|
||
* *
|
||
**************************************************************************
|
||
BONE_TIP4:
|
||
JSRP TROG_TIP4
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG_TIP_FLAG - CHECK GIVEN FLAG, IF = 0 THEN SET AND CALL TIP *
|
||
* IF <> 0, RETURN. *
|
||
* A1 = PTR TO FLAG LOCATION *
|
||
* A3 = PTR TO TIP *
|
||
* NOTE: CALL WITH JSRP *
|
||
* *
|
||
**************************************************************************
|
||
TROG_TIP_FLAG:
|
||
MOVE *A1,A0,W
|
||
JRNZ TIP_RETP
|
||
INC A0
|
||
MOVE A0,*A1,W
|
||
JRUC TROG_TIP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TROG_TIP - PROCESS SUBROUTINE TO SHOW A TROG TIP TO THE PLAYERS *
|
||
* A3 = PTR TO TROG TIP DEFINITION *
|
||
* RETURNS: *
|
||
* NOTHING *
|
||
* NOTE: BASHES PTEMP1 *
|
||
* *
|
||
**************************************************************************
|
||
TROG_TIP:
|
||
MMTM A12,A8,A9,A10,A11
|
||
MOVE *A13(PROCID),*A13(PTEMP1),W
|
||
MOVI INDPIDE,A9
|
||
MOVE A9,*A13(PROCID),W
|
||
PAUSEON
|
||
MOVI HBOXOID,A0
|
||
MOVI HBOXMASK,A1
|
||
SRL 4,A1
|
||
SLL 4,A1
|
||
CALLA OBJECTS_OFF ;TURN ALL HELP BOXES OFF
|
||
MOVE *A3+,A9,L ; BASE LOCATION
|
||
MOVE *A3+,A8,L ; BOX SIZE
|
||
CALLR TIP_TOP
|
||
PUSHP A3
|
||
JSRP TIP_BACKBOX
|
||
PULLP A3
|
||
MOVE *A3+,A0,W ; GET THE FIRST SLEEP
|
||
JRZ TROG_TIP_TEXT_LOOP
|
||
PUSHP A3
|
||
JSRP SLEEP_SWITCHX
|
||
PULLP A3
|
||
|
||
TROG_TIP_TEXT_LOOP
|
||
MOVE *A3+,A8,L ; TEXT POINTER
|
||
JRZ TROG_TIP_WAIT
|
||
PUSHP A3
|
||
JSRP LM_PRINTF
|
||
MOVI TEXTOID,A0
|
||
MOVI TIPOID,A1
|
||
CALLA CHANGOID ; CLEAN OUT ALL THE TEXT THINGS
|
||
PULLP A3
|
||
MOVE *A3+,A0,W ; SLEEP TIME
|
||
JRZ TROG_TIP_WAIT ; LAST ONE ( ZERO )
|
||
PUSHP A3
|
||
JSRP SLEEP_SWITCHX ; SLEEP FOR TEXT TIME
|
||
PULLP A3
|
||
JRUC TROG_TIP_TEXT_LOOP
|
||
TROG_TIP_WAIT
|
||
MOVI 200,A0
|
||
JSRP SLEEP_SWITCHX
|
||
TROG_TIP_DONE
|
||
CALLA TIP_KILL
|
||
MOVI HBOXOID,A0
|
||
MOVI 0FFF0H,A1
|
||
MOVI DMACAL,A4
|
||
CALLA OBJECTS_ON ;TURN ALL HELP BOXES BACK ON
|
||
MOVI HTEXTOID,A0
|
||
MOVI DMACNZ,A4
|
||
CALLA OBJECTS_ON
|
||
MOVI HARROWOID,A0
|
||
MOVI DMAWNZ,A4
|
||
CALLA OBJECTS_ON
|
||
PAUSEOFF
|
||
MOVE *A13(PTEMP1),*A13(PROCID),W
|
||
MMFM A12,A8,A9,A10,A11
|
||
*NOTE: THIS LABEL MUST STAY AT A RETP, NO PULLING OF REGGIES PLEASE.
|
||
TIP_RETP:
|
||
RETP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TIP_BACKBOX - OPEN THE TROG TIP BOX WINDOWS IN THE COLOR OF THE *
|
||
* PLAYER THAT STARTED THIS GAME. *
|
||
* A8 = SIZE OF BOX *
|
||
* A9 = LOCATION OF TIP SIGN *
|
||
* NOTE: CALL WITH JSRP *
|
||
* *
|
||
**************************************************************************
|
||
BOXYOFFSET EQU 45
|
||
|
||
TIP_BACKBOX:
|
||
CLR A0
|
||
MOVE A8,A1
|
||
CALLA GETCENT
|
||
|
||
ADDI BOXYOFFSET,A0
|
||
SLL 16,A0
|
||
MOVE A9,A10
|
||
ADDXY A0,A10
|
||
|
||
MOVK 1,A0 ; 1 TICK
|
||
MOVI TIP_ZPOS,A1
|
||
SLL 16,A1 ;FULL Z POSITION FOR WINDOW OPEN
|
||
MOVI TIPOID,A9 ; STUFF THIS I.D.
|
||
*WARNING: THIS PUSH IS THE MAX AT THIS LEVEL, PUSH MORE AND BLOW IT!!! (GNP)
|
||
MMTM A12,A8,A10
|
||
JSRP OWINDOW_OID
|
||
MOVE @SPLAYER_COL,A0,W
|
||
MOVE A0,*A8(OCONST),W ;MAKE IT RIGHT
|
||
MMFM A12,A8,A10
|
||
SUBI [6,6],A8 ;SIZE OF INNER BOX
|
||
MOVK 1,A0 ; 1 TICK
|
||
MOVI TIP_ZPOS,A1
|
||
SLL 16,A1 ;FULL Z POSITION FOR WINDOW OPEN
|
||
MOVI TIPOID,A9 ; STUFF THIS I.D.
|
||
JSRP OWINDOW_OID
|
||
RETP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TIP_TOP *
|
||
* *
|
||
* PLOT OUT THE HEAD AND THE "TROG TIPS" LOGO *
|
||
* *
|
||
* ENTRY *
|
||
* A9 RELATIVE LOCATION TO PUT IT AT *
|
||
* *
|
||
* EXIT *
|
||
* A0 ZERO IF SOMETHING WENT WRONG *
|
||
* *
|
||
**************************************************************************
|
||
TIP_TOP:
|
||
MMTM SP,A3,A8
|
||
MOVI LOGO_HEAD_INIT,A14
|
||
CALLA GPALOBJSTF
|
||
JRZ TIP_TOP_DIE
|
||
MOVE A9,A3
|
||
MOVE A0,A8
|
||
CALLA OBJ_TO_PNT ; PLACE IN A GOOD SPOT
|
||
MOVI LOGO_SIGN_INIT,A14
|
||
CALLA GPALOBJSTF
|
||
JRNZ TIP_COOL ; BR = COOL
|
||
MOVE A8,A0
|
||
CALLA DELETE_OBJ ; DELETE THE HEAD OFF
|
||
JRUC TIP_TOP_DIE
|
||
TIP_COOL
|
||
CALLA INSERT_OBJ
|
||
MOVE A0,A8
|
||
CALLA OBJ_TO_PNT
|
||
CALLA INSERT_OBJ
|
||
MOVE A8,A8
|
||
TIP_TOP_DIE
|
||
MMFM SP,A3,A8
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TIP_KILL *
|
||
* *
|
||
* KILL OFF ALL THE TIPOID OBJECTS *
|
||
* *
|
||
* ENTRY *
|
||
* NOTHING *
|
||
* *
|
||
* EXIT *
|
||
* NOTHING *
|
||
* *
|
||
**************************************************************************
|
||
|
||
TIP_KILL:
|
||
MMTM SP,A0,A1
|
||
MOVI TIPOID,A0 ;BOX AND TEXT
|
||
CLR A1
|
||
NOT A1
|
||
CALLA KILOBJ ;WIPE THEM OUT
|
||
MOVI TIPHEADOID,A0 ;HEADER OBJECT
|
||
CALLA KILL_OBJECTS ;RID 'O PLEASE
|
||
MMFM SP,A0,A1
|
||
RETS
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TIP SCRIPTS *
|
||
* *
|
||
**************************************************************************
|
||
TIP_Y EQU 60
|
||
TIP_X EQU -78
|
||
|
||
****TIP1_DEF:
|
||
**** .LONG [70,200] ; LOCATION
|
||
**** .LONG [95,172] ; SIZE OF BOX
|
||
**** .WORD 60 ; INITIAL SLEEP
|
||
**** .LONG TIP_START_TEXT1 ; TEXT TO PLOT
|
||
**** .WORD 0
|
||
|
||
****TIP2_DEF:
|
||
**** .LONG [70,200] ; LOCATION
|
||
**** .LONG [95,172] ; SIZE OF BOX
|
||
**** .WORD 0 ; INITIAL SLEEP
|
||
**** .LONG TIP_START_TEXT1 ; TEXT TO PLOT
|
||
**** .WORD 60
|
||
**** .LONG TIP_START_TEXT2
|
||
**** .WORD 0
|
||
|
||
****TIP2A_DEF:
|
||
**** .LONG [70,200] ; LOCATION
|
||
**** .LONG [95,172] ; SIZE OF BOX
|
||
**** .WORD 0 ; INITIAL SLEEP
|
||
**** .LONG TIP_START_TEXT1 ; TEXT TO PLOT
|
||
**** .WORD 1
|
||
**** .LONG TIP_START_TEXT2
|
||
**** .WORD 60
|
||
**** .LONG TIP_START_TEXT2A
|
||
**** .WORD 0
|
||
|
||
TIP3_DEF:
|
||
.LONG [70,200] ; LOCATION
|
||
.LONG [95,172] ; SIZE OF BOX
|
||
.WORD 60 ; INITIAL SLEEP
|
||
.LONG TIP_START_TEXT3 ; TEXT TO PLOT
|
||
.WORD 0
|
||
|
||
TIP4_DEF:
|
||
.LONG [70,200] ; LOCATION
|
||
.LONG [95,172] ; SIZE OF BOX
|
||
.WORD 0 ; INITIAL SLEEP
|
||
.LONG TIP_START_TEXT3 ; TEXT TO PLOT
|
||
.WORD 60
|
||
.LONG TIP_START_TEXT4
|
||
.WORD 0
|
||
|
||
TIP5_DEF:
|
||
.LONG [70,200] ; LOCATION
|
||
.LONG [95,172] ; SIZE OF BOX
|
||
.WORD 0 ; INITIAL SLEEP
|
||
.LONG TIP_START_TEXT3 ; TEXT TO PLOT
|
||
.WORD 1
|
||
.LONG TIP_START_TEXT4
|
||
.WORD 60
|
||
.LONG TIP_START_TEXT5
|
||
.WORD 0
|
||
|
||
TIP6_DEF:
|
||
.LONG [70,200] ; LOCATION
|
||
.LONG [95,172] ; SIZE OF BOX
|
||
.WORD 60 ; INITIAL SLEEP
|
||
.LONG TIP_START_TEXT6
|
||
.WORD 260
|
||
.LONG TIP_START_TEXT7
|
||
.WORD 0
|
||
|
||
TIP8_DEF:
|
||
.LONG [70,200] ; LOCATION
|
||
.LONG [95,172] ; SIZE OF BOX
|
||
.WORD 60 ; INITIAL SLEEP
|
||
.LONG TIP_TEXT9 ; TEXT TO PLOT
|
||
.WORD 200
|
||
.LONG TIP_TEXT10
|
||
.WORD 120
|
||
.LONG TIP_TEXT11
|
||
.WORD 0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TIP TEXT *
|
||
* *
|
||
**************************************************************************
|
||
****TIP_START_TEXT1
|
||
**** MESS_MAC RD7FONT,1,200+TIP_X,70+TIP_Y,DINO_PWHITE,STRLNRMO,0
|
||
**** .STRING "\c",7EH,"\c JOYSTICK MOVES \p\*bHAND.",0
|
||
**** .WORD DMACAL
|
||
**** .WORD DMACNZ
|
||
**** .LONG GAMEFIX
|
||
**** .LONG SPLAYER_COL
|
||
|
||
****TIP_START_TEXT2
|
||
**** MESS_MAC RD7FONT,1,200+TIP_X,88+TIP_Y,DINO_PWHITE,STRLNRMO,0
|
||
**** .STRING "\c",7EH,"\c BONE BUTTON MAKES \p\*bHAND\p\b"
|
||
**** .STRING "\n PLACE\f\c",7FH,7FH,7FH,7FH,"\f",7FH,"\c BONES.",0
|
||
**** .WORD DMACAL
|
||
**** .WORD DMACNZ
|
||
**** .LONG GAMEFIX
|
||
**** .LONG SPLAYER_COL
|
||
**** .LONG RED16
|
||
**** .WORD DINO_WHITE
|
||
**** .LONG [0,-36] ; BACKSPACE 5 CHARS
|
||
**** .WORD DMACAL
|
||
**** .LONG [0,-1] ; BACKSPACE LAST UNDERLINE BY A DOT
|
||
**** .WORD DMACNZ
|
||
|
||
****TIP_START_TEXT2A
|
||
**** MESS_MAC RD7FONT,1,200+TIP_X,116+TIP_Y,DINO_PWHITE,STRLNRMO,0
|
||
**** .STRING "\c",7EH,"\c BONE BUTTON MAKES \p\*bHAND\p\b"
|
||
**** .STRING "\n REMOVE\f\c",7FH,7FH,7FH,7FH,7FH,"\f",7FH,"\c BONES,"
|
||
**** .STRING " TOO!",0
|
||
**** .WORD DMACAL
|
||
**** .WORD DMACNZ
|
||
**** .LONG GAMEFIX
|
||
**** .LONG SPLAYER_COL
|
||
**** .LONG RED16
|
||
**** .WORD DINO_WHITE
|
||
**** .LONG [0,-42] ; BACKSPACE 4 CHARS
|
||
**** .WORD DMACAL
|
||
**** .LONG [0,-1] ; BACKSPACE LAST UNDERLINE BY A DOT
|
||
**** .WORD DMACNZ
|
||
|
||
TIP_START_TEXT3
|
||
MESS_MAC RD7FONT,1,200+TIP_X,70+TIP_Y,DINO_PWHITE,STRLNRMO,0
|
||
.STRING "\c",7EH,"\c REMEMBER!\p\*b YOU\p\b CONTROL"
|
||
.STRING "\n THE \p\*bHAND\f\c",7FH,7FH,7FH,"\f",7FH
|
||
.STRING "\c\f,\p\b NOT THE DINO!!",0
|
||
.WORD DMACAL
|
||
.WORD DMACNZ
|
||
.LONG GAMEFIX
|
||
.LONG SPLAYER_COL
|
||
.LONG RED16
|
||
.WORD DINO_WHITE
|
||
.LONG GAMEFIX
|
||
.LONG SPLAYER_COL
|
||
.LONG [0,-28] ; BACKSPACE 4 CHARS
|
||
.WORD DMACAL
|
||
.LONG [0,-1] ; BACKSPACE LAST UNDERLINE BY A DOT
|
||
.WORD DMACNZ
|
||
.LONG [0,1] ; MAKE COMMA NOT LOOK STUPID
|
||
.LONG RED16
|
||
.WORD DINO_WHITE
|
||
|
||
TIP_START_TEXT4
|
||
MESS_MAC RD7FONT,1,200+TIP_X,100+TIP_Y,DINO_PWHITE,STRLNRMO,0
|
||
.STRING "\c",7EH,"\c\p\*b BONES \p\bMAKE DINOS TURN.",0
|
||
.WORD DMACAL
|
||
.WORD DMACNZ
|
||
.LONG GAMEFIX
|
||
.LONG SPLAYER_COL
|
||
.LONG RED16
|
||
.WORD DINO_WHITE
|
||
|
||
TIP_START_TEXT5
|
||
MESS_MAC RD7FONT,1,200+TIP_X,117+TIP_Y,DINO_PWHITE,STRLNRMO,0
|
||
.STRING "\c",7EH,"\c USE \p\*bBONES\p\b TO LEAD DINO"
|
||
.STRING "\n TO THE \p\*bEGGS.\p\b",0
|
||
.WORD DMACAL
|
||
.WORD DMACNZ
|
||
.LONG GAMEFIX
|
||
.LONG SPLAYER_COL
|
||
.LONG RED16
|
||
.WORD DINO_WHITE
|
||
.LONG GAMEFIX
|
||
.LONG SPLAYER_COL
|
||
.LONG RED16
|
||
.WORD DINO_WHITE
|
||
|
||
TIP_START_TEXT6
|
||
MESS_MAC RD7FONT,1,200+TIP_X,70+TIP_Y,DINO_PWHITE,STRLNRMO,0
|
||
.STRING "\c",7EH,"\c THE DINOS \p\*bHOME\p\b APPEARS"
|
||
.STRING "\n WHEN THERE ARE NO MORE"
|
||
.STRING "\n \p\*bEGGS\p\b TO PICK UP.",0
|
||
.WORD DMACAL
|
||
.WORD DMACNZ
|
||
.LONG GAMEFIX
|
||
.LONG SPLAYER_COL
|
||
.LONG RED16
|
||
.WORD DINO_WHITE
|
||
.LONG GAMEFIX
|
||
.LONG SPLAYER_COL
|
||
.LONG RED16
|
||
.WORD DINO_WHITE
|
||
|
||
|
||
TIP_START_TEXT7
|
||
MESS_MAC RD7FONT,1,200+TIP_X,111+TIP_Y,DINO_PWHITE,STRLNRMO,0
|
||
.STRING "\c",7EH,"\c USE \p\*bBONES\p\b TO LEAD DINO"
|
||
.STRING "\n \p\*bHOME!\p\b",0
|
||
.WORD DMACAL
|
||
.WORD DMACNZ
|
||
.LONG GAMEFIX
|
||
.LONG SPLAYER_COL
|
||
.LONG RED16
|
||
.WORD DINO_WHITE
|
||
.LONG GAMEFIX
|
||
.LONG SPLAYER_COL
|
||
.LONG RED16
|
||
.WORD DINO_WHITE
|
||
|
||
TIP_TEXT9
|
||
MESS_MAC RD7FONT,1,200+TIP_X,70+TIP_Y,DINO_PWHITE,STRLNRMO,0
|
||
.STRING "\c",7EH,"\c DO NOT LET YOUR \p\*bDINO\p\b"
|
||
.STRING "\n FALL OFF OF THE ISLAND!",0
|
||
.WORD DMACAL
|
||
.WORD DMACNZ
|
||
.LONG GAMEFIX
|
||
.LONG SPLAYER_COL
|
||
.LONG RED16
|
||
.WORD DINO_WHITE
|
||
|
||
TIP_TEXT10
|
||
MESS_MAC RD7FONT,1,200+TIP_X,96+TIP_Y,DINO_PWHITE,STRLNRMO,0
|
||
.STRING "\c",7EH,"\c \bRED PLANT:\b\n SPEEDS DINO UP.",0
|
||
.WORD DMACAL
|
||
.WORD DMACNZ
|
||
.WORD DINO_INTENSE
|
||
.WORD DINO_WHITE
|
||
|
||
TIP_TEXT11
|
||
MESS_MAC RD7FONT,1,200+TIP_X,121+TIP_Y,DINO_PWHITE,STRLNRMO,0
|
||
.STRING "\c",7EH,"\c \bMUSHROOM:\b\n SLOWS DINO DOWN.",0
|
||
.WORD DMACAL
|
||
.WORD DMACNZ
|
||
.WORD DINO_GREY
|
||
.WORD DINO_WHITE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* OBJECT INITS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
LOGO_HEAD_INIT:
|
||
.LONG [0,0],[0,0]
|
||
.WORD 0,TIP_ZPOS+5
|
||
.LONG TRTIPSb,0,DUMCOLL
|
||
.WORD DMAWNZ,TIPHEADOID
|
||
|
||
LOGO_SIGN_INIT:
|
||
.LONG [0,0],[0,0]
|
||
.WORD 0,TIP_ZPOS+5
|
||
.LONG TRTIPSa,0,DUMCOLL
|
||
.WORD DMAWNZ,TIPHEADOID
|
||
|
||
|
||
.END
|
||
|
||
|