4047 lines
130 KiB
NASM
4047 lines
130 KiB
NASM
**************************************************************************
|
||
* *
|
||
* VIDEO GAME PROJECT: FOOTBALL *
|
||
* *
|
||
* PROGRAMMER: EDWARD J. BOON *
|
||
* ARTIST: JOHN R. NEWCOMER *
|
||
* *
|
||
* MODULE: FBFX.ASM --- SPECIAL EFFECTS *
|
||
* *
|
||
* COPYRIGHT (C) 1990 WILLIAMS ELECTRONICS GAMES, INC. *
|
||
* *
|
||
**************************************************************************
|
||
.FILE 'FBFX.ASM'
|
||
.WIDTH 132
|
||
.OPTION B,D,L,T
|
||
.MNOLIST
|
||
*
|
||
* GET THE SYSTEM STUFF
|
||
*
|
||
.INCLUDE MPROCEQU.ASM ; MPROC EQUATES
|
||
.INCLUDE DISPEQU.ASM ; DISPLAY PROCESSOR EQUATES
|
||
.INCLUDE SYSEQU.ASM
|
||
.INCLUDE MACROS.HDR ; MACROS
|
||
.INCLUDE MAINEQU.ASM
|
||
.INCLUDE IMGTBL.GLO
|
||
.INCLUDE BGNDTBL.GLO
|
||
.INCLUDE FIELDEQU.ASM
|
||
|
||
.DATA
|
||
FXLEGAL1
|
||
.INCLUDE FBFX.TBL
|
||
.DATA
|
||
FXLEGAL2
|
||
.TEXT
|
||
|
||
.GLOBAL FXLEGAL1,FXLEGAL2
|
||
|
||
.DEF WINTEST,TDFX1,FX_GOVER,TDFX2
|
||
.DEF FX_PLAYRES,EOQ_MSG,EXTRAP,KICKPREP
|
||
.DEF FX_BLEW4TH,FX_POSTINT,FX_WHADDA
|
||
.DEF FX_INTER,FX_OOB,FX_NOGOOD,FX_SAFETY,FX_TOUCHB,FX_BIGHIT
|
||
.DEF FX_INCOM,FX_FGY,FX_FUMBLE,TANIA_PROC,TD_TANIA,FX_FGN
|
||
.DEF SHOW_TURNOVER,FX_SUDDEN,FX_PAIN,FX_EPY
|
||
.DEF FX_SHADOW_PRINT,PRNT_1DIG
|
||
.DEF FX_GAME_INTRO,HALFTIME,MIDDLE_OPEN
|
||
.DEF KOM_PROMPT
|
||
|
||
.REF FIELD,BACKGROUND,BOONSND,PRINT_OBJ_XY_ID,PRINT_OBJ
|
||
.REF SHADOW_PRINT,DUMB_IMG,CHAN1PRI,NOSOUNDS,ROAR_WITH_CROWD
|
||
.REF GET_LOGO,SPLIT_A1,FONT15_NUMS,AUTOSCR,PTIMERS
|
||
.REF BIG_DIGITS,TEAM_LOGOS,GETCBOX,GET_CREDITS
|
||
.REF BOUNDS_A0,LOGO_INIT,VERSUS_INIT
|
||
.REF CROWD_FRAMES,STRIP_FRAMES
|
||
.REF CRED_P
|
||
.REF DO_CLOCK,BALL_ON_THE,MINIPRNT,SHOW_QUARTER
|
||
|
||
**************************************************************************
|
||
* *
|
||
* KOM_PROMPT *
|
||
* *
|
||
* Process to prompt the player to tap his ACTION button for kicking pow *
|
||
* *
|
||
**************************************************************************
|
||
KOM_PROMPT
|
||
SLEEP >30
|
||
MOVI PBOX0_INIT,A0
|
||
MOVI TAPACT0_INIT,A2
|
||
MOVI ARR0_INIT,A3
|
||
MOVE @OFFENSE,A1,W
|
||
MOVE @OFFPLAY,A4,W
|
||
CMPI OF_KICKOFF,A4
|
||
JRNE KOMP1
|
||
XORI 1,A1 ; KICKOFF ---> PROMPT FOR DEFENSE
|
||
KOMP1 MOVE A1,A1
|
||
JREQ KOMP2
|
||
|
||
MOVI PBOX1_INIT,A0
|
||
MOVI TAPACT1_INIT,A2
|
||
MOVI ARR1_INIT,A3
|
||
|
||
KOMP2 MOVE A0,A14
|
||
CALLR KOMP7
|
||
MOVE A2,A14
|
||
CALLR KOMP7
|
||
MOVE A3,A14
|
||
CALLR KOMP7
|
||
|
||
MOVK 1,A11
|
||
CREATE PID_PROMPT,RGBSTUFF ; FLASH THE LETTERS
|
||
|
||
KOMP3 SLEEP 6
|
||
MOVE @BSTATE,A0,W ; STATE O BALL ?
|
||
CMPI BS_FGKICK,A0
|
||
JREQ KOMP4 ; YES ----> NO NEED FOR PROMPT ANYMOE
|
||
MOVE @KOM_RAM,A0,W
|
||
CMPI METER_MIN+40,A0
|
||
JRLO KOMP3 ; KEEP SHOWIN
|
||
KOMP4 MOVI OID_PROMPT,A0
|
||
CALLA DALLOBJ
|
||
MOVI PID_PROMPT,A0
|
||
CALLA DALLPRC
|
||
DIE
|
||
|
||
KOMP7 CALLA INITOBJ
|
||
MOVE A8,A0
|
||
JAUC INSOBJ2
|
||
|
||
PBOX0_INIT
|
||
.LONG JUSTABOX,HELPBX_P
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_PROMPT
|
||
.WORD >35,>B0,0
|
||
|
||
TAPACT0_INIT
|
||
.LONG TAFP,boonpal
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_PROMPT
|
||
.WORD >3E,>B7,1
|
||
|
||
ARR0_INIT
|
||
.LONG HBOX_ARROW,HELPBX_P
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_PROMPT
|
||
.WORD >25,>BA,1
|
||
|
||
PBOX1_INIT
|
||
.LONG JUSTABOX,HELPBX_P
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_PROMPT
|
||
.WORD >E5,>B0,0
|
||
|
||
TAPACT1_INIT
|
||
.LONG TAFP,boonpal
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_PROMPT
|
||
.WORD >ED,>B7,1
|
||
|
||
ARR1_INIT
|
||
.LONG HBOX_ARROW,HELPBX_P
|
||
.WORD 0,DMAWNZ|M_NOSCROLL|M_FLIPH,OID_PROMPT
|
||
.WORD >158,>BA,1
|
||
|
||
**************************************************************************
|
||
* *
|
||
* HALFTIME *
|
||
* *
|
||
* Finally, the long awaited, much anticipated HALFTIME show !! *
|
||
* *
|
||
**************************************************************************
|
||
HALFTIME
|
||
MOVI >05,A0
|
||
CALLA FX_SHADOW_PRINT ; "HALFTIME"
|
||
MOVK 4,A11
|
||
CREATE PID_FX,RGBSTUFF ; FLASH THE LETTERS
|
||
|
||
MOVI 4A0H,A9
|
||
MOVE A9,@WORLDTLX+16,W ; STARTING X
|
||
MOVI 2D0H,A10
|
||
MOVE A10,@WORLDTLY+16,W ; STARTING Y
|
||
CREATE PID_FX,BACKGROUND ; START A BACKGROUND UPDATER
|
||
CREATE PID_FX,HT_CROWD ; BACKGROUND CROWD
|
||
|
||
ADDI >150,A9
|
||
ADDI >50,A10
|
||
|
||
PUSH A9
|
||
MOVK 7,A11
|
||
HTIME3 CREATE PID_FX,ONE_CHEER
|
||
SUBI >30,A9
|
||
DSJS A11,HTIME3
|
||
PULL A9
|
||
ADDI >90,A10 ; 2ND ROW
|
||
|
||
MOVK 7,A11
|
||
HTIME4 CREATE PID_FX,ONE_CHEER
|
||
SUBI >30,A9
|
||
DSJS A11,HTIME4
|
||
|
||
CREATE PID_FX,WINMAKER
|
||
SLEEP >40
|
||
MOVK 8,A3
|
||
CALLA SEND_CODE_A3 ; GET DOWN SENOR FORDEN !!
|
||
SLEEP >280
|
||
|
||
MOVI MA_HT_CHEER3,A11
|
||
MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANI
|
||
SLEEP >08
|
||
|
||
MOVI MA_HT_CHEER4,A11
|
||
MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANI
|
||
SLEEP >08
|
||
|
||
MOVI MA_HT_LOF2,A11
|
||
MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANI
|
||
BSOUND >23
|
||
SLEEP >90
|
||
JRUC FX_EXIT
|
||
|
||
|
||
WINMAKER
|
||
CREATE PID_FX,AWESOME_PROC
|
||
MOVI HT_WINDOWS,A8
|
||
WINM1 MOVE *A8,A11,L
|
||
MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANI
|
||
MOVE A0,A11
|
||
CREATE PID_FX,HTWINDOW_KILLER
|
||
SLEEP 1 ; TIME FOR LIST TO BE RUN
|
||
|
||
MOVE @OBJLST3,A3,L
|
||
CLR A0
|
||
MOVE A0,@OBJLST3,L
|
||
MOVI ->28000,A2
|
||
MOVE A3,A4
|
||
|
||
WINM2 MOVE A2,*A4(OXVEL),L
|
||
MOVE A4,A5
|
||
MOVE *A4(OLINK),A4,L ; GIVE ALL OBJECTS THE SAME VELOCITY
|
||
JRNE WINM2
|
||
*
|
||
* TACK ONTO LIST #2
|
||
*
|
||
MOVE @OBJLST2,A0,L
|
||
MOVE A0,*A5(OLINK),L ; ADD TO TOP OF LIST #1
|
||
MOVE A3,@OBJLST2,L
|
||
SLEEP >45
|
||
ADDI 32,A8
|
||
CMPI HT_END,A8
|
||
JRNE WINM1
|
||
|
||
MOVI HTFAN_INIT,A14
|
||
MOVI A_FAN1,A9
|
||
CALLA INITOBJ
|
||
MOVK 5,A10
|
||
CREATE PID_FX,WINDOW_ANI ; LET SOMEONE ELSE DO THE ANIMATING
|
||
MOVE A0,A11
|
||
MOVI ->28000,A2
|
||
MOVE A2,*A8(OXVEL),L
|
||
MOVE A8,A0
|
||
CALLA INSOBJ2
|
||
DIE
|
||
|
||
AWESOME_PROC
|
||
SLEEP >13D
|
||
BSOUND >42 ; SPEECH: AWESOME !!!
|
||
DIE
|
||
|
||
HT_CROWD
|
||
BSOUND >23 ; START WITH ROAR
|
||
SLEEP >50
|
||
JAUC CROWDM
|
||
|
||
HT_WINDOWS
|
||
.LONG MA_HT_CHEER2
|
||
.LONG MA_HTYEA
|
||
.LONG MA_LOFNUM1
|
||
.LONG MA_HT_CHEER1
|
||
.LONG MA_HTAWESOME
|
||
HT_END
|
||
|
||
|
||
HTFAN_INIT
|
||
.LONG FANWIN1A,FAN1PAL
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_FX
|
||
.WORD >1E0,>51,0
|
||
|
||
|
||
HTWINDOW_KILLER
|
||
SLEEP 10
|
||
MOVE *A11(P_PREY),A8,L ; RIGHT SIDE IMAGE
|
||
MOVE *A8(OXPOS),A2,W
|
||
CMPI ->60,A2 ; ON SCREEN ?
|
||
JRGT HTWINDOW_KILLER ; NO ---> WAIT
|
||
|
||
MOVE *A11(P_PREY),A0,L ; RIGHT SIDE
|
||
MOVE *A0(OSLINK),A1,L ; LEFT SIDE
|
||
|
||
CALLA DELOBJP2 ; DELETE RIGHT SIDE
|
||
MOVE A1,A0
|
||
CALLA DELOBJP2 ; DELETE LEFT SIDE
|
||
|
||
MOVE *A11(P_SWITCH),A0,L
|
||
HTKILL3 CALLA DELOBJP2
|
||
MOVE *A0(OSLINK),A0,L
|
||
JRNE HTKILL3 ; KILL LINKED PARTS
|
||
MOVE A11,A0
|
||
CALLA KILL ; KILL "MULTIANI" PROC
|
||
DIE
|
||
|
||
|
||
|
||
; CLR A0
|
||
; MOVE A0,@SCRNTL3,L
|
||
; MOVE A0,@SCRNLR3,L
|
||
|
||
; SLEEP >2A
|
||
; MOVI MA_HT_CHEER2,A11
|
||
; MOVI INSOBJ3,A10
|
||
; CREATE PID_FX,MULTIANI
|
||
; MOVE A0,A9
|
||
; SLEEP 1
|
||
; MOVE *A9(P_PREY),A8,L ; A8 = BACKDROP OBJ
|
||
; MOVI >00030003,A11
|
||
; MOVI >00250025,A10 ; A10 = INITIAL CLIPPING
|
||
; JSRP GROW_WINDOW
|
||
; DIE
|
||
|
||
|
||
ONE_CHEER
|
||
MOVI TANIAFX_INIT,A14
|
||
CALLA INITOBJ
|
||
|
||
MOVE @T0SCORE,A0,W
|
||
MOVE @T1SCORE,A1,W
|
||
|
||
MOVI HFTMER_P,A5
|
||
MOVI afrorpal,A6 ; USE THE LEADING TEAMS CHEERLEADERS
|
||
CMP A1,A0
|
||
JRGE ONEC2
|
||
MOVI HFTIME_P,A5
|
||
MOVI afrobpal,A6
|
||
ONEC2 MOVI 410,A0
|
||
CALLA RANDPER ; 40% BLACK CHEERLEADERS
|
||
JRNC ONEC3
|
||
MOVE A6,A5
|
||
ONEC3 MOVE A5,A0
|
||
CALLA GETFPAL ; GET A PALETTE FOR CHEERLEADER
|
||
MOVE A0,*A8(OPAL),L
|
||
|
||
SLEEP 2
|
||
CALLA GROUND_PLAYER ; PLANT YER FEET, TANIA
|
||
MOVE A9,*A8(OXPOS),W
|
||
MOVE A10,*A8(OZPOS),W
|
||
MOVE A8,A0
|
||
CALLA INSOBJ
|
||
SLEEP >3A
|
||
|
||
MOVI A_SIDE,A9
|
||
MOVI >00060002,A0
|
||
JSRP A0FRAMES ; BEAT #1
|
||
SLEEP >04
|
||
MOVI >00050002,A0
|
||
JSRP A0FRAMES ; BEAT #2
|
||
SLEEP >12
|
||
|
||
MOVI >00050002,A0
|
||
JSRP A0FRAMES ; BEAT #3
|
||
SLEEP >04
|
||
MOVI >00050002,A0
|
||
JSRP A0FRAMES ; BEAT #4
|
||
SLEEP >12
|
||
|
||
MOVI A_KICK,A9
|
||
MOVK 4,A0
|
||
JSRP FRAMEW
|
||
MOVI A_KICK,A9
|
||
MOVK 4,A0
|
||
JSRP FRAMEW
|
||
MOVI A_KICK,A9
|
||
MOVK 4,A0
|
||
JSRP FRAMEW
|
||
|
||
MOVE A11,A0
|
||
SLL 4,A0
|
||
ADDI TS_TABLE1,A0
|
||
MOVE *A0,A0,W
|
||
CALLA PRCSLP
|
||
|
||
MOVI A_JUMP,A9
|
||
MOVK 6,A0
|
||
JSRP FRAMEW ; JUMP ANIMATION
|
||
MOVI A_JUMP,A9
|
||
MOVK 6,A0
|
||
JSRP FRAMEW ; JUMP ANIMATION
|
||
MOVI A_JUMP,A9
|
||
MOVK 6,A0
|
||
JSRP FRAMEW ; JUMP ANIMATION
|
||
MOVI A_JUMP,A9
|
||
MOVI >00020006,A0
|
||
JSRP A0FRAMES
|
||
|
||
MOVI A_SIDE,A9
|
||
MOVK 5,A0
|
||
JSRP FRAMEW
|
||
MOVI A_SIDE,A9
|
||
MOVK 5,A0
|
||
JSRP FRAMEW
|
||
|
||
MOVI A_KICK,A9
|
||
MOVK 4,A0
|
||
JSRP FRAMEW
|
||
SLEEP >20
|
||
|
||
MOVI A_JUMP,A9
|
||
MOVK 6,A0
|
||
JSRP FRAMEW ; JUMP ANIMATION
|
||
MOVI >00020006,A0
|
||
JSRP A0FRAMES
|
||
|
||
DIE
|
||
|
||
TS_TABLE1
|
||
.WORD 6
|
||
.WORD 6*2
|
||
.WORD 6*3
|
||
.WORD 6*4
|
||
.WORD 6*5
|
||
.WORD 6*6
|
||
.WORD 6*7
|
||
.WORD 6*8
|
||
.WORD 6*9
|
||
|
||
.WORD 6*9
|
||
.WORD 6*9
|
||
.WORD 6*9
|
||
|
||
TANIAFX_INIT
|
||
.LONG CHEERSIDE1,0
|
||
.WORD 0,DMAWNZ,OID_FX
|
||
.WORD 0,0,0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* THE PAIN EFFECT *
|
||
* *
|
||
* Used when some dork is screaming on the ground in pain ! *
|
||
* *
|
||
**************************************************************************
|
||
FX_PAIN
|
||
MOVE @PAINCNT,A0,W
|
||
JREQ PAIN1 ; ZERO ---> RUN THE EFFECT
|
||
DEC A0
|
||
MOVE A0,@PAINCNT,W ; DON'T DO THIS TOO OFTEN
|
||
DIE
|
||
|
||
PAIN1 MOVK 2,A0
|
||
MOVE A0,@PAINCNT,W
|
||
SLEEP >38 ; LET THE "IMPACT" SOUND PLAY
|
||
BSOUND >45 ; PAIN SCREAMING
|
||
SLEEP >60
|
||
|
||
MOVI FAN1_INIT,A14
|
||
MOVI A_FAN1,A9
|
||
CALLA INITOBJ
|
||
MOVK 5,A10
|
||
CREATE PID_FX,WINDOW_ANI ; LET SOMEONE ELSE DO THE ANIMATING
|
||
|
||
MOVI >E0,A2
|
||
MOVI >10,A3
|
||
MOVE @BALLCAR,A0,L
|
||
MOVE *A0(OZPOS),A0,W
|
||
CMPI FIELD_MIDZ,A0
|
||
JRLO PAIN2
|
||
MOVI >99,A3
|
||
PAIN2 MOVE A2,*A8(OXPOS),W
|
||
MOVE A3,*A8(OYPOS),W ; FIND A GOOD SPOT FOR WINDOW
|
||
MOVE A8,A0
|
||
CALLA INSOBJ2
|
||
BSOUND >53 ; CROWD ROAR
|
||
SLEEP >40
|
||
|
||
CREATE PID_FX,AWESOME
|
||
SLEEP >80
|
||
JRUC FX_EXIT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* AWESOME *
|
||
* *
|
||
* Announcer saying: "Awesome !!" *
|
||
* *
|
||
**************************************************************************
|
||
AWESOME
|
||
MOVI MA_AWESOMEH,A11
|
||
MOVE @BALLCAR,A0,L
|
||
MOVE *A0(OZPOS),A0,W
|
||
CMPI FIELD_MIDZ,A0
|
||
JRHI AWE2
|
||
MOVI MA_AWESOMEL,A11 ; LOWER PORTION OF SCREEN
|
||
|
||
AWE2 MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANI
|
||
MOVE A0,A9 ; A9 = ANI PROC
|
||
CALLR HIDELIST3
|
||
SLEEP 1 ; TIME FOR IT TO INITIALIZE
|
||
MOVE *A9(P_PREY),A8,L ; A8 = BACKDROP OBJ
|
||
MOVI >00020002,A11
|
||
MOVI >00250025,A10 ; A10 = INITIAL CLIPPING
|
||
JSRP GROW_WINDOW
|
||
SLEEP >0B
|
||
BSOUND >42 ; SPEECH: AWESOME !!!
|
||
SLEEP >80
|
||
MOVI >00020002,A11
|
||
JSRP SHRINK_WIN
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SUDDEN DEATH OVERTIME EFFECT *
|
||
* *
|
||
* Tells the players what the lowdown is. *
|
||
* *
|
||
**************************************************************************
|
||
FX_SUDDEN
|
||
MOVI RGB_BLACK,A0
|
||
MOVE A0,@IRQSKYE,W ; BACKGROUND COLOR
|
||
|
||
CALLA GAME_OVER_SCREEN
|
||
|
||
MOVI >0B,A0
|
||
CALLA FX_SHADOW_PRINT ; "THE SCORE IS TIED"
|
||
|
||
MOVI SUDDEN_IMAGES,A7
|
||
CLR A9
|
||
MOVK 6,A3
|
||
MOVI SUDLET_INIT,A14
|
||
CALLR TDOWN1 ; "SUDDEN"
|
||
MOVI DEATH_IMAGES,A7
|
||
CLR A9
|
||
MOVK 5,A3
|
||
MOVI DELET_INIT,A14
|
||
CALLR TDOWN1 ; "DEATH"
|
||
|
||
MOVI >0A,A0
|
||
CALLA FX_SHADOW_PRINT ; "OVERTIME"
|
||
|
||
MOVK 3,A11
|
||
CREATE PID_FX,RGBSTUFF ; FLASH: "THE SCORE IS TIED"
|
||
|
||
MOVI >0A,A3
|
||
CALLA FVTUNE ; TUNE
|
||
SLEEP >130
|
||
JRUC FX_EXIT
|
||
|
||
SUDLET_INIT
|
||
.LONG HUGE_T,letblu
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_FX
|
||
.WORD >7C,>62,0
|
||
|
||
DELET_INIT
|
||
.LONG HUGE_T,letblu
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_FX
|
||
.WORD >88,>85,0
|
||
|
||
SUDDEN_IMAGES
|
||
.LONG HUGE_N
|
||
.LONG HUGE_E
|
||
.LONG HUGE_D
|
||
.LONG HUGE_D
|
||
.LONG HUGE_U
|
||
.LONG HUGE_S
|
||
|
||
DEATH_IMAGES
|
||
.LONG HUGE_H
|
||
.LONG HUGE_T
|
||
.LONG HUGE_A
|
||
.LONG HUGE_E
|
||
.LONG HUGE_D
|
||
|
||
**************************************************************************
|
||
* *
|
||
* "WHAT A PLAY" EFFECT *
|
||
* *
|
||
**************************************************************************
|
||
FX_WHADDA
|
||
MOVI MA_WHADDAH,A11
|
||
MOVE @BALLCAR,A0,L
|
||
MOVE *A0(OZPOS),A0,W
|
||
CMPI FIELD_MIDZ,A0 ; ABOVE OR BELOW ??
|
||
JRGT WHAD2
|
||
MOVI MA_WHADDAL,A11
|
||
WHAD2 MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANI ; COACH "YEA" WINDOW
|
||
MOVE A0,A9 ; A9 = ANI PROC
|
||
CALLR HIDELIST3
|
||
SLEEP 1 ; TIME FOR IT TO INITIALIZE
|
||
MOVE *A9(P_PREY),A8,L ; A8 = BACKDROP OBJ
|
||
MOVI >00020002,A11
|
||
MOVI >00250025,A10 ; A10 = INITIAL CLIPPING
|
||
JSRP GROW_WINDOW
|
||
SLEEP 8
|
||
BSOUND >48 ; SPEECH: "WHAT A PLAY !!!"
|
||
SLEEP >80
|
||
JRUC SHRINK_THEN_DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* POST INTERCEPTION EFFECT *
|
||
* *
|
||
**************************************************************************
|
||
FX_POSTINT
|
||
MOVI OID_FX,A0
|
||
CALLA DALLOBJ ; DONT INTERFERE WITH OLD TEXT !
|
||
CREATE PID_FX,SHOW_TURNOVER
|
||
|
||
MOVE @RAND,A0,L
|
||
JRN POSTINT1 ; 2 DIFFERENT "YEA !!" DEALS
|
||
|
||
MOVI MA_FUCKINA1,A11
|
||
MOVE @OFFENSE,A0,W
|
||
JREQ POSTINT2
|
||
MOVI MA_FUCKINA2,A11
|
||
JRUC POSTINT2
|
||
|
||
POSTINT1 MOVI MA_COACH_YEA1,A11
|
||
MOVE @OFFENSE,A0,W
|
||
JREQ POSTINT2
|
||
MOVI MA_COACH_YEA2,A11
|
||
POSTINT2 MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANI ; COACH "YEA" WINDOW
|
||
|
||
POSTINT3 MOVE A0,A9 ; A9 = ANI PROC
|
||
CALLR HIDELIST3
|
||
SLEEP 1 ; TIME FOR IT TO INITIALIZE
|
||
MOVE *A9(P_PREY),A8,L ; A8 = BACKDROP OBJ
|
||
MOVI >00020002,A11
|
||
MOVI >00250025,A10 ; A10 = INITIAL CLIPPING
|
||
JSRP GROW_WINDOW
|
||
BSOUND >23 ; CROWD ROAR !!!!
|
||
SLEEP >B0
|
||
JRUC SHRINK_THEN_DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SHOW_TURNOVER *
|
||
* *
|
||
* Effect which shows the TURNOVER of the ball. *
|
||
* *
|
||
**************************************************************************
|
||
SHOW_TURNOVER
|
||
MOVE @T0TEAM,A0,W
|
||
MOVI >36,A5
|
||
MOVI >55,A6
|
||
MOVI INSOBJ2,A10 ; ROUTINE TO CALL
|
||
CALLR DO_A_LOGO
|
||
MOVE @T1TEAM,A0,W
|
||
MOVI >DA,A5
|
||
MOVI >55,A6
|
||
MOVI INSOBJ2,A10 ; ROUTINE TO CALL
|
||
CALLR DO_A_LOGO
|
||
|
||
MOVI >2F,A0
|
||
MOVE @INTERF,A1,W ; INTERCEPTION OF SORTS ??
|
||
CMPI 1,A1
|
||
JRNE SHOT2 ; NOPE....
|
||
MOVI >11,A0 ; YES ---> "INTERCEPTION TURNOVER"
|
||
SHOT2 CALLA FX_SHADOW_PRINT ; "TURNOVER"
|
||
|
||
MOVI >2D,A0
|
||
MOVE @OFFENSE,A1,W
|
||
JREQ SHOT3
|
||
MOVI >2E,A0
|
||
SHOT3 CALLA FX_SHADOW_PRINT
|
||
MOVK 4,A11
|
||
CREATE PID_FX,RGBSTUFF ; FLASH THE LETTERS
|
||
BSOUND >0F
|
||
SLEEP >70
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* BLEW 4TH DOWN EFFECT *
|
||
* *
|
||
**************************************************************************
|
||
FX_BLEW4TH
|
||
SLEEP >30
|
||
MOVI MAD_CHOICES0,A1
|
||
MOVE @OFFENSE,A2,W
|
||
JRNE BLEW40
|
||
MOVI MAD_CHOICES1,A1
|
||
BLEW40 MOVK 5,A0 ; # OF CHOICES WE HAVE
|
||
CALLA RANDU
|
||
DEC A0
|
||
SLL 5,A0
|
||
ADD A1,A0
|
||
MOVE *A0,A11,L
|
||
|
||
BLEW41 MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANI ; COACH WINDOW
|
||
|
||
MOVE A0,A9 ; A9 = ANI PROC
|
||
CALLR HIDELIST3
|
||
SLEEP 1 ; TIME FOR IT TO INITIALIZE
|
||
MOVE *A9(P_PREY),A8,L ; A8 = BACKDROP OBJ
|
||
MOVI >00020002,A11
|
||
MOVI >00250025,A10 ; A10 = INITIAL CLIPPING
|
||
JSRP GROW_WINDOW
|
||
BSOUND >24 ; BOO !!!
|
||
; SLEEP >30
|
||
CREATE PID_FX,SHOW_TURNOVER
|
||
SLEEP >A0
|
||
|
||
SHRINK_THEN_DIE
|
||
MOVI >00020002,A11
|
||
JSRP SHRINK_WIN
|
||
JRUC FX_EXIT
|
||
|
||
MAD_CHOICES0
|
||
.LONG MA_BAGMAN0
|
||
.LONG MA_MAD0
|
||
.LONG MA_SHAKE0
|
||
.LONG MA_PU0
|
||
.LONG MA_MOON0
|
||
|
||
MAD_CHOICES1
|
||
.LONG MA_BAGMAN1
|
||
.LONG MA_MAD1
|
||
.LONG MA_SHAKE1
|
||
.LONG MA_PU1
|
||
.LONG MA_MOON1
|
||
|
||
**************************************************************************
|
||
* *
|
||
* FIELD GOAL = YES EFFECT *
|
||
* *
|
||
**************************************************************************
|
||
FX_FGY
|
||
MOVI RGOAL_IN_X,A1
|
||
MOVE @OFFENSE,A2,W
|
||
JRNE FXFGY2
|
||
MOVI LGOAL_IN_X,A1
|
||
FXFGY2 MOVE @LINEOFSC,A0,W
|
||
SUB A0,A1
|
||
ABS A1
|
||
MOVK PIX_PER_YARD,A2
|
||
DIVS A2,A1 ; TRANSLATE TO YARDS
|
||
ADDK 10,A1 ; PLUS ENDZONE SIZE
|
||
|
||
PUSH A1
|
||
MOVI FXLET_INIT,A14
|
||
PUSH A14
|
||
MOVK 1,A0 ; MSG: "YARD FIELDGOAL"
|
||
CALLA PRINT_OBJ ; TEXT = A4 --> A7
|
||
PULL A14
|
||
MOVE A4,A5 ; A5 = BEGINNING OF LIST
|
||
PULL A1
|
||
|
||
MOVI FXLET_INIT,A14
|
||
CALLA SPLIT_A1 ; A1 / A3
|
||
SWAP A1,A3
|
||
CALLR PRNT_1DIG
|
||
MOVE *A8(OXPOS),A0,W
|
||
SUBK 6,A0
|
||
MOVE A0,*A8(OXPOS),W ; WORD SPACING
|
||
MOVE A3,A1 ; TENS
|
||
JREQ FXFGY3 ; ZERO ---> SKIP
|
||
MOVI FXLET_INIT,A14
|
||
CALLR PRNT_1DIG
|
||
|
||
FXFGY3 MOVI 00020002H,A6
|
||
CALLA SHADOW_PRINT
|
||
MOVE @OBJLST2,A0,L
|
||
MOVE A0,*A7(OLINK),L ; LAST CHAR ----> OBJLST2
|
||
MOVE A5,@OBJLST2,L ; OBJLST2 ---> 1ST CHAR
|
||
|
||
MOVK 4,A11 ; USE THIS RGBSTUFF
|
||
CREATE PID_FX,RGBSTUFF ; FLASH THE LETTERS (A11 IS DEFINED)
|
||
|
||
**************************************************************************
|
||
* *
|
||
* EXTRA POINT = YES EFFECT *
|
||
* *
|
||
**************************************************************************
|
||
FX_EPY
|
||
CALLA UNCLIP
|
||
CLR A3
|
||
CALLA SEND_CODE_A3
|
||
BSOUND >3C ; ITS GOOD / TUNE / CROWD
|
||
CREATE PID_FX,ITGOOD
|
||
CREATE PID_FX,GP_FLASH ; PROC: FLASH THE GOAL POSTS
|
||
|
||
MOVI >14000,A1
|
||
MOVE @OFFENSE,A0,W
|
||
JRNE EPY2
|
||
NEG A1
|
||
EPY2 MOVE A1,@SCROLLX,L ; REVEAL A BIT MORE OF THE GOAL POSTS
|
||
MOVI ->10000,A1
|
||
MOVE A1,@SCROLLY,L ; A TAD UPWARDS
|
||
SLEEP >30
|
||
CLR A0
|
||
MOVE A0,@SCROLLX,L
|
||
MOVE A0,@SCROLLY,L
|
||
SLEEP >60
|
||
|
||
MOVI LGOAL_IN_X+>A0,A1 ; LEFT SIDE
|
||
MOVE @OFFENSE,A0,W
|
||
JREQ EPY3
|
||
MOVI RGOAL_IN_X-SCRRGT->80,A1 ; RIGHT SIDE
|
||
EPY3 MOVI >1B0,A3
|
||
MOVK 3,A4
|
||
JSRP AUTOSCR ; SHOW SOME CROWD
|
||
SLEEP >100
|
||
JRUC FX_EXIT ; SHOULDN'T GET HERE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* FLASH THE GOAL POSTS FOR A SEC... *
|
||
* *
|
||
**************************************************************************
|
||
GP_FLASH
|
||
MOVE @T0GP,A8,L ; ASSUME OFFENSE = 0
|
||
MOVE @OFFENSE,A0,W
|
||
JREQ FGY2
|
||
MOVE @T1GP,A8,L ; MAIN PROC HAS ALREADY SWITCHED OFFENSE
|
||
FGY2 MOVE *A8(OSLINK),A8,L
|
||
MOVE *A8(OSLINK),A9,L
|
||
MOVE *A9(OSLINK),A10,L
|
||
|
||
MOVI BPAL_WHT,A0
|
||
MOVE A0,*A8(OCONST),W
|
||
MOVE A0,*A9(OCONST),W
|
||
MOVE A0,*A10(OCONST),W ; CONSTANT COLOR TO FLASH
|
||
|
||
MOVI 20,A11
|
||
GPFLASH MOVE *A8(OFLAGS),A4,W
|
||
PUSHP A4
|
||
ORI DMACNZ,A4
|
||
MOVI boonpal,A0 ; USE BOONPAL "WHITE"
|
||
CALLA SWPAL
|
||
PUSH A8
|
||
MOVE A9,A8
|
||
CALLA SWPAL
|
||
MOVE A10,A8
|
||
CALLA SWPAL ; CHANGE EVERYONE TO "BOONPAL"
|
||
PULL A8
|
||
MOVE A4,*A8(OFLAGS),W
|
||
MOVE A4,*A9(OFLAGS),W
|
||
MOVE A4,*A10(OFLAGS),W
|
||
SLEEP 3
|
||
*
|
||
* CHANGE EVERYONE BACK TO NORMAL
|
||
*
|
||
PULLP A4
|
||
MOVE A4,*A8(OFLAGS),W
|
||
MOVE A4,*A9(OFLAGS),W
|
||
MOVE A4,*A10(OFLAGS),W
|
||
MOVI FLDPAL1,A0
|
||
CALLA SWPAL
|
||
PUSH A8
|
||
MOVE A9,A8
|
||
CALLA SWPAL
|
||
MOVE A10,A8
|
||
CALLA SWPAL ; CHANGE EVERYONE BACK TO "FLDPAL"
|
||
PULL A8
|
||
SLEEP 3
|
||
DSJ A11,GPFLASH
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* HUGE "ITS GOOD" LETTERS *
|
||
* *
|
||
**************************************************************************
|
||
ITGOOD
|
||
CLR A9
|
||
MOVE A9,@SCRNTL3,0
|
||
MOVE A9,@SCRNLR3,0 ; TOTALLY CLIP LIST #3
|
||
|
||
MOVK 9,A3
|
||
IG1 MOVI IGLET_INIT,A14
|
||
CALLA INITOBJ
|
||
MOVE A3,A1
|
||
DEC A1
|
||
SLL 5,A1
|
||
ADDI IG_IMAGES,A1
|
||
MOVE *A1,A1,L
|
||
CALLA ANI ; SHAPE THE LETTER
|
||
MOVE A9,A9
|
||
JREQ IG2
|
||
|
||
MOVE *A9(OXPOS),A0,W
|
||
MOVE *A9(OSIZEX),A1,W
|
||
ADD A1,A0
|
||
DEC A0
|
||
MOVE A0,*A8(OXPOS),W
|
||
IG2 MOVE A8,A9
|
||
MOVE A8,A0
|
||
CALLA INSOBJ3
|
||
DSJ A3,IG1
|
||
*
|
||
* SCORE BOXES
|
||
*
|
||
MOVE @OBJLST3,A5,L
|
||
MOVE A5,A1
|
||
FG4 MOVE A1,A6
|
||
MOVE *A6(OLINK),A1,L
|
||
JRNE FG4 ; SET UP LIST #3 = A5 --> A6
|
||
|
||
MOVI L_SCOREBOX,A14
|
||
CALLA INITOBJ
|
||
MOVI >22,A0
|
||
MOVE A0,*A8(OXPOS),W
|
||
MOVE A8,A0
|
||
CALLA INSOBJ3 ; ON LIST #3
|
||
MOVE A8,A9
|
||
MOVI R_SCOREBOX,A14
|
||
CALLA INITOBJ
|
||
MOVI >134,A0
|
||
MOVE A0,*A8(OXPOS),W
|
||
MOVE A8,A0
|
||
CALLA INSOBJ3 ; ON LIST #3
|
||
|
||
MOVE @T0SCORE,A1,W
|
||
MOVI >29,A11 ; X COORDINATE FOR DIGIT
|
||
MOVI >6C,A3
|
||
CALLR TWO_BIG_DIG ; TEAM 0 SCORE
|
||
CALLR A9A10_OBJLST3
|
||
MOVE @T1SCORE,A1,W
|
||
MOVI >13B,A11 ; FALL THROUGH TO "MAKE_2_DIGITS"
|
||
MOVI >6C,A3
|
||
CALLR TWO_BIG_DIG ; TEAM 0 SCORE
|
||
CALLR A9A10_OBJLST3
|
||
|
||
MOVI letblu,A10
|
||
MOVI >04060200,A11
|
||
CREATE PID_FX,CYCLERF
|
||
MOVI letblu,A10
|
||
MOVI >0A060200,A11
|
||
CREATE PID_FX,CYCLERF
|
||
*
|
||
* CLIP UNMASKING EFFECT
|
||
*
|
||
MOVI SCRRGT/2,A10
|
||
MOVE A10,A11
|
||
FG6 SUBK 12,A10
|
||
ADDK 12,A11
|
||
MOVE A10,@SCRNTL3,W
|
||
MOVE A11,@SCRNLR3,W
|
||
SLEEP 1
|
||
CMPI SCRRGT-12,A11
|
||
JRLT FG6
|
||
CALLA UNCLIP
|
||
CALLA OL3TOOL2 ; TACK LIST 3 ---> LIST 2
|
||
*
|
||
* WINDOW
|
||
*
|
||
CALLR HIDELIST3
|
||
|
||
MOVI MA_COACH_YEA2,A11
|
||
MOVE @OFFENSE,A0,W
|
||
JREQ FG8
|
||
MOVI MA_COACH_YEA1,A11
|
||
FG8 MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANI ; COACH WINDOW
|
||
MOVE A0,A9 ; A9 = ANI PROC
|
||
SLEEP 1 ; TIME FOR IT TO INITIALIZE
|
||
MOVE *A9(P_PREY),A8,L ; A8 = BACKDROP OBJ
|
||
MOVI >00020002,A11
|
||
MOVI >00250025,A10 ; A10 = INITIAL CLIPPING
|
||
JSRP GROW_WINDOW
|
||
SLEEP >C0 ; TIME TO SEE FULL ANIMATION
|
||
MOVI >00020002,A11
|
||
JSRP SHRINK_WIN
|
||
MOVE A9,A0
|
||
CALLA KILL ; KILL "MULTIANI" PROC
|
||
DIE
|
||
|
||
IGLET_INIT
|
||
.LONG HUGE_I,letblu
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_FX
|
||
.WORD >62,>72,0
|
||
|
||
IG_IMAGES
|
||
.LONG HUGE_D
|
||
.LONG HUGE_O
|
||
.LONG HUGE_O
|
||
.LONG HUGE_G
|
||
.LONG HUGE_SP
|
||
.LONG HUGE_S
|
||
.LONG HUGE_APOS
|
||
.LONG HUGE_T
|
||
.LONG HUGE_I
|
||
|
||
**************************************************************************
|
||
* *
|
||
* BIG HIT EFFECT *
|
||
* *
|
||
* Effect to stroke the dude after he makes a BIG hit !!! *
|
||
* *
|
||
**************************************************************************
|
||
FX_BIGHIT
|
||
MOVE @BALLCAR,A0,L
|
||
MOVE *A0(OZPOS),A0,W ; A0 = BALL CARRIER Z
|
||
SUBI TOP_SIDELINE,A0
|
||
ABS A0 ; A0 = DISTANCE FROM SIDELINE
|
||
CMPI >70,A0
|
||
JRLE PAN_TO_CROWD ; CLOSE TO TOP ---> PAN UP !!
|
||
|
||
SLEEP >30
|
||
BSOUND >53 ; FAST ROAR
|
||
|
||
MOVI FAN1_INIT,A14
|
||
MOVI A_FAN1,A9
|
||
CALLA INITOBJ
|
||
MOVK 5,A10
|
||
CREATE PID_FX,WINDOW_ANI ; LET SOMEONE ELSE DO THE ANIMATING
|
||
|
||
MOVI >EC,A1
|
||
MOVI >12,A2
|
||
MOVE @BALLCAR,A0,L
|
||
MOVE *A0(ODMAY),A0,W
|
||
CMPI >300,A0
|
||
JRGT FXBIG2
|
||
MOVI >94,A2
|
||
FXBIG2 MOVE A1,*A8(OXPOS),W
|
||
MOVE A2,*A8(OYPOS),W ; POSITION WINDOW
|
||
MOVE A8,A0
|
||
CALLA INSOBJ2
|
||
SLEEP >40 ; TIME FOR CROWD SOUND
|
||
|
||
MOVI MA_AWESOME_UL,A11 ; UPPER LEFT CORNER "AWESOME"
|
||
MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANI ; DO THE WINDOW !!
|
||
MOVE A0,A11
|
||
|
||
SLEEP >20
|
||
BSOUND >42 ; SPEECH: AWESOME !!!
|
||
SLEEP >60
|
||
|
||
MOVE *A11(P_PREY),A8,L
|
||
MOVI >00020002,A11
|
||
JRUC SHRINK_THEN_DIE
|
||
|
||
FAN1_INIT
|
||
.LONG FANWIN1A,FAN1PAL
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_FX
|
||
.WORD 0,0,0
|
||
|
||
*
|
||
* PAN UP TO SHOW THE CROWD CHEERING
|
||
*
|
||
PAN_TO_CROWD
|
||
CREATE PID_FX,SHOWC_SCROLL
|
||
SLEEP >30
|
||
BSOUND >53 ; FAST CROWD
|
||
|
||
MOVI CHAN1PRI,A11
|
||
JSRP WAITPRI ; WAIT FOR CROWD TO FINISH
|
||
CLR A10
|
||
MOVK 9,A3 ; A3 = # OF CHOICES
|
||
MOVI SSRCOMT,A2 ; TABLE O COMMENTS
|
||
CALLA COMMENT_CALL ; MAKE THE CALL
|
||
|
||
MOVI CHAN1PRI,A11
|
||
JSRP WAITPRI ; WAIT FOR SOUND TO FINISH
|
||
JRUC FX_EXIT
|
||
|
||
*
|
||
* SHOW CROWD SCROLLER
|
||
*
|
||
SHOWC_SCROLL
|
||
MOVE @BALLCAR,A8,L ; A8 = BALL CARRIER
|
||
MOVI ->18000,A0
|
||
MOVE A0,@SCROLLY,L
|
||
CLR A0
|
||
MOVE A0,@SCROLLX,L ; PAN UP
|
||
CRCH2 SLEEP 1
|
||
MOVE @WORLDTLY+16,A0,W
|
||
|
||
MOVE A0,A2
|
||
ADDI SCRBOT,A2 ; A2 = BOTTOM SCREEN Y
|
||
MOVE *A8(OZPOS),A1,W ; A2 = DUDE Z
|
||
SUB A1,A2
|
||
ABS A2 ; A2 = DISTANCE FROM BOTTOM OF SCREEN
|
||
CMPI >18,A2
|
||
JRLT CRCH3 ; TOO CLOSE TO EDGE ---> STOP SCROLL
|
||
CMPI >1D0,A0
|
||
JRGT CRCH2
|
||
CRCH3 CLR A0
|
||
MOVE A0,@SCROLLX,L
|
||
MOVE A0,@SCROLLY,L
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* FUMBLE MESSAGE *
|
||
* *
|
||
**************************************************************************
|
||
FX_FUMBLE
|
||
CALLA KILLFX
|
||
BSOUND >37 ; SPEECH: "FUMBLE !!"
|
||
MOVI >28,A0
|
||
CALLA FX_SHADOW_PRINT
|
||
MOVK 4,A11
|
||
CREATE PID_FX,RGBSTUFF ; FLASH THE LETTERS
|
||
SLEEP >D0
|
||
JRUC FX_EXIT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TOUCHBACK MESSAGE *
|
||
* *
|
||
**************************************************************************
|
||
FX_TOUCHB
|
||
CALLA KILLFX
|
||
MOVI >25,A0
|
||
CALLA FX_SHADOW_PRINT
|
||
MOVK 4,A11
|
||
CREATE PID_FX,RGBSTUFF ; FLASH THE LETTERS
|
||
SLEEP >30
|
||
MOVI >00310039,A0
|
||
CALLA SNDCROWD ; SPEECH: TOUCHBACK
|
||
SLEEP >70
|
||
JRUC FX_EXIT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* OUT OF BOUNDS EFFECT *
|
||
* *
|
||
**************************************************************************
|
||
FX_OOB
|
||
BSOUND >55
|
||
CALLA KILLFX
|
||
CLR A0
|
||
MOVE A0,@SCROLLX,L
|
||
MOVE A0,@SCROLLY,L ; IN CASE AN EFFECT WAS SCROLLING
|
||
|
||
CMPI 4,A10
|
||
JREQ OOB_TURNOVER ; 4TH DOWN ---> SHOW "TURNOVER"
|
||
|
||
MOVI >26,A0
|
||
CALLA FX_SHADOW_PRINT
|
||
MOVK 4,A11
|
||
CREATE PID_FX,RGBSTUFF ; FLASH THE LETTERS
|
||
SLEEP >90
|
||
; BSOUND >39 ; BULL SHIT, BULL SHIT
|
||
JRUC FX_EXIT
|
||
|
||
OOB_TURNOVER
|
||
MOVI 9,A0
|
||
CALLA FX_SHADOW_PRINT ; OUT OF BOUNDS (HI ON SCREEN)
|
||
MOVK 3,A11
|
||
CREATE PID_FX,RGBSTUFF ; FLASH THE LETTERS
|
||
SLEEP >20
|
||
CREATE PID_FX,FX_BLEW4TH ; NOW SHOW THE "TURNOVER"
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SAFETY EFFECT *
|
||
* *
|
||
**************************************************************************
|
||
FX_SAFETY
|
||
BSOUND >36 ; SOUND FX
|
||
CALLA KILLFX
|
||
|
||
CLR A9
|
||
MOVK 6,A3
|
||
MOVI SAFETY_IMAGES,A7
|
||
MOVI SAFLET_INIT,A14
|
||
CALLR TDOWN1 ; SAFETY LETTERS
|
||
|
||
MOVI L_SCOREBOX,A14
|
||
CALLA INITOBJ
|
||
MOVI >3C,A0
|
||
MOVE A0,*A8(OXPOS),W
|
||
MOVE A8,A0
|
||
CALLA INSOBJ3 ; ON LIST #3
|
||
MOVE A8,A9
|
||
MOVI R_SCOREBOX,A14
|
||
CALLA INITOBJ
|
||
MOVI >11E,A0
|
||
MOVE A0,*A8(OXPOS),W
|
||
MOVE A8,A0
|
||
CALLA INSOBJ3 ; ON LIST #3
|
||
|
||
MOVE @T0SCORE,A1,W
|
||
MOVI >41,A11 ; X COORDINATE FOR DIGIT
|
||
MOVI >6C,A3
|
||
CALLR TWO_BIG_DIG ; TEAM 0 SCORE
|
||
MOVI OID_FX2,A4
|
||
MOVE A4,*A9(OID),W
|
||
MOVE A4,*A10(OID),W ; DONT CONFUSE WITH OID_FX
|
||
CALLR A9A10_OBJLST3
|
||
MOVE @T1SCORE,A1,W
|
||
MOVI >124,A11 ; FALL THROUGH TO "MAKE_2_DIGITS"
|
||
MOVI >6C,A3
|
||
CALLR TWO_BIG_DIG ; TEAM 0 SCORE
|
||
MOVI OID_FX2,A4
|
||
MOVE A4,*A9(OID),W
|
||
MOVE A4,*A10(OID),W ; DONT CONFUSE WITH OID_FX
|
||
CALLR A9A10_OBJLST3
|
||
|
||
SLEEP >80
|
||
MOVI >0D,A3
|
||
CALLA FVTUNE
|
||
SLEEP >F0
|
||
JRUC FX_EXIT
|
||
|
||
SAFETY_IMAGES
|
||
.LONG HUGE_Y
|
||
.LONG HUGE_T
|
||
.LONG HUGE_E
|
||
.LONG HUGE_F
|
||
.LONG HUGE_A
|
||
.LONG HUGE_S
|
||
|
||
SAFLET_INIT
|
||
.LONG HUGE_T,letblu
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_FX2
|
||
.WORD >7C,>72,0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* COMMENT PROCS *
|
||
* *
|
||
* This is the process which handles POST PLAY comments *
|
||
* *
|
||
* Input: A10 = sound call to make (zero = random from table of calls) *
|
||
* *
|
||
**************************************************************************
|
||
*
|
||
* PLAYER COMMENT
|
||
*
|
||
PPCOM JSRP COMSETUP
|
||
MOVI PLCOMT,A2
|
||
MOVK 9,A3 ; A3 = # OF CHOICES
|
||
COM1 CALLR COMMENT_CALL
|
||
MOVI CHAN1PRI,A11
|
||
JSRP WAITPRI ; WAIT FOR SOUND TO FINISH
|
||
DIE ; BEFORE SPLITTIN'
|
||
|
||
COMSETUP
|
||
MOVI PID_CROWDM,A0
|
||
CALLA DALLPRC
|
||
MOVI CHAN1PRI,A11
|
||
JAUC WAITPRI ; WAIT FOR AN OPENNING TO SPEAK
|
||
|
||
*
|
||
* COMMENT CALL
|
||
* A10 = SOUND CALL (or zero for Random call)
|
||
* A9 = # OF CHOICES
|
||
* A2 = TABLE OF A9 SOUND CALLS
|
||
*
|
||
COMMENT_CALL
|
||
MOVE A10,A0 ; RANDOM CALL ??
|
||
JRNE COM2 ; NO, A10 = SOUND CALL TO MAKE
|
||
MOVE A3,A0
|
||
CALLA RANDU ; YES, GET THE RANGE
|
||
DEC A0
|
||
SLL 4,A0
|
||
ADD A2,A0
|
||
MOVE *A0,A0,W ; A0 = RANDOM SOUND CALL
|
||
COM2 JAUC BOONSND ; MAKE THE CALL / RETURN
|
||
|
||
|
||
*
|
||
* ANNOUNCER TABLE O COMMENTS
|
||
*
|
||
SSRCOMT
|
||
.WORD >50 ; 1 - HE NAILED HIM
|
||
.WORD >50 ; 2 - HE NAILED HIM
|
||
.WORD >43 ; 3 - WHAT A HIT
|
||
.WORD >3E ; 4 - OUCH, THAT HURT
|
||
.WORD >40 ; 5 - THAT WAS INTENSE
|
||
.WORD >41 ; 6 - DEVASTATING
|
||
.WORD >43 ; 7 - WHAT A HIT
|
||
.WORD >52 ; 8 - I LOVE IT
|
||
.WORD >3E ; 9 - OUCH, THAT HURT
|
||
|
||
*
|
||
* PLAYER TABLE O COMMENTS
|
||
*
|
||
PLCOMT .WORD >2F ; 1 - I'M GONNA KICK YER ASS
|
||
.WORD >31 ; 2 - YOU SON OF A BITCH
|
||
.WORD >32 ; 3 - YER DEAD BUDDY
|
||
.WORD >33 ; 4 - YOU SUCK
|
||
.WORD >46 ; 5 - YOU MOTHER ******
|
||
.WORD >47 ; 6 - HOW'D THAT FEEL PUNK ?
|
||
.WORD >4A ; 7 - YOU MINE SUCKA
|
||
.WORD >46 ; 8 - YOU MOTHER ******
|
||
.WORD >46 ; 9 - YOU MOTHER ******
|
||
|
||
**************************************************************************
|
||
* *
|
||
* PREPARE FOR KICKOFF MESSAGE *
|
||
* *
|
||
**************************************************************************
|
||
KICKPREP
|
||
MOVE @T0TEAM,A0,W
|
||
MOVI >30,A5
|
||
MOVI >50,A6
|
||
MOVI INSOBJ3,A10 ; ROUTINE TO CALL
|
||
CALLR DO_A_LOGO
|
||
MOVE @T1TEAM,A0,W
|
||
MOVI >E0,A5
|
||
MOVI >50,A6
|
||
MOVI INSOBJ3,A10 ; ROUTINE TO CALL
|
||
CALLR DO_A_LOGO
|
||
|
||
MOVI >1F,A0
|
||
MOVE @OFFENSE,A1,W
|
||
JREQ KIKP2
|
||
MOVI >1E,A0
|
||
KIKP2 CALLA FX_SHADOW_PRINT
|
||
MOVK 4,A11
|
||
CREATE PID_FX,RGBSTUFF ; FLASH THE LETTERS
|
||
|
||
MOVE @SUDDEATH,A0,W
|
||
JREQ KIKP3 ; SUDDEN DEATH ---> TENSE TOON !
|
||
MOVI >D2,A3
|
||
CALLA SEND_CODE_A3
|
||
|
||
KIKP3 SLEEP >80
|
||
JRUC FX_EXIT
|
||
|
||
DO_A_LOGO
|
||
MOVI LOGO_INIT,A14
|
||
CALLA INITOBJ
|
||
MOVE A5,*A8(OXPOS),W ; SET X
|
||
MOVE A6,*A8(OYPOS),W ; SET Y
|
||
SLL 5,A0
|
||
ADDI TEAM_LOGOS,A0
|
||
MOVE *A0,A1,L
|
||
MOVE *A1(32*3),A0,L
|
||
CALLA GETFPAL
|
||
MOVE A0,*A8(OPAL),W ; DO THE PALETTE
|
||
CALLA ANI ; SHAPE TEAM 0 LOGO
|
||
MOVE A8,A0
|
||
JUMP A10
|
||
|
||
**************************************************************************
|
||
* *
|
||
* GAME OVER EFFECT *
|
||
* *
|
||
**************************************************************************
|
||
FX_GOVER
|
||
MOVI RGB_GO_GREY,A0
|
||
MOVE A0,@IRQSKYE,W ; BACKGROUND COLOR
|
||
|
||
MOVE @GSTATE,A1,W
|
||
PUSH A1
|
||
MOVI GS_EOQMSG,A0
|
||
MOVE A0,@GSTATE,W ; TRICK "GAME_OVER_SCREEN" FOR A SEC
|
||
CALLR GAME_OVER_SCREEN
|
||
PULL A1
|
||
MOVE A1,@GSTATE,W ; NO MORE NEED FOR THIS TRECHERY !!
|
||
|
||
CREATE PID_FX,GOVER_CRED ; SOMEONE TO SHOW CREDITS
|
||
MOVI >C,A0
|
||
CALLA FX_SHADOW_PRINT
|
||
MOVK 4,A11
|
||
CREATE PID_FX,RGBSTUFF ; FLASH THE LETTERS
|
||
*
|
||
* SHOW WINNER (IF ANY)
|
||
*
|
||
MOVE @T0TEAM,A2,W ; A2 = WINNING TEAM !
|
||
MOVE @T0SCORE,A0,W
|
||
MOVE @T1SCORE,A1,W
|
||
CMP A1,A0
|
||
JREQ GOVER5 ; TIE SCORE ---> NO WINNER
|
||
JRHI GOVER2
|
||
MOVE @T1TEAM,A2,W ; WINNING TEAM
|
||
|
||
GOVER2 MOVI T0LOGO_INIT,A14
|
||
CALLA INITOBJ
|
||
MOVE A2,A1
|
||
CALLA GET_LOGO
|
||
MOVE *A1(16*6),A0,L
|
||
CALLA GETFPAL
|
||
MOVE A0,*A8(OPAL),W ; TEAMS PALETTE
|
||
CALLA ANI
|
||
|
||
MOVI >88,A0
|
||
MOVE A0,*A8(OXPOS),W
|
||
MOVI >60,A0
|
||
MOVE A0,*A8(OYPOS),W ; POSITION LOGO AT "CENTER SCREEN"
|
||
MOVE A8,A0
|
||
CALLA INSOBJ2
|
||
|
||
MOVI WINS_IMAGES,A7
|
||
CLR A9
|
||
MOVK 4,A3
|
||
MOVI WINSLET_INIT,A14
|
||
CALLR TDOWN1 ; "WINS"
|
||
|
||
*
|
||
* GET DOWN DAN !!
|
||
*
|
||
GOVER5 CLR A3
|
||
CALLA SEND_CODE_A3
|
||
MOVI >C2,A3
|
||
CALLA SEND_CODE_A3 ; GAME OVER INTRO
|
||
SLEEP >40*14
|
||
MOVI >C6,A3
|
||
CALLA SEND_CODE_A3 ; GAME OVER TUNE
|
||
SLEEP >40*30
|
||
BSOUND >15 ; START FADING MUSIC AWAY
|
||
SLEEP >40*15
|
||
|
||
MOVI OBJLST,A2
|
||
CALLA DELOLIST ; EMPTY THE LIST
|
||
MOVI OBJLST2,A2
|
||
CALLA DELOLIST ; EMPTY THE LIST
|
||
JRUC FX_EXIT
|
||
|
||
|
||
WINS_IMAGES
|
||
.LONG HUGE_S
|
||
.LONG HUGE_N
|
||
.LONG HUGE_I
|
||
.LONG HUGE_W
|
||
|
||
WINSLET_INIT
|
||
.LONG HUGE_T,letblu
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_FX
|
||
.WORD >90,>82,0
|
||
|
||
***************************************
|
||
|
||
|
||
GOVER_CRED
|
||
CALLA CRED_P ; ANY CREDITS ?
|
||
JRNE GOCRED3 ; YES, DISPLAY 'EM
|
||
SLOOP 8,GOVER_CRED ; NO, WAIT
|
||
|
||
GOCRED3 MOVI OBJLST3,A2
|
||
CALLA DELOLIST ; EMPTY THE LIST
|
||
|
||
GOCRED5 CALLA GET_CREDITS
|
||
MOVE A0,A10
|
||
CALLA GETCBOX ; GET "CREDIT:" OBJECTS
|
||
|
||
MOVE A5,A4
|
||
GOCRED7 MOVE *A4(OYPOS),A0,W
|
||
ADDI >58,A0
|
||
MOVE A0,*A4(OYPOS),W ; SPECIAL CASE: LOWER THAN NORMAL
|
||
MOVE *A4(OLINK),A4,L
|
||
JRNE GOCRED7
|
||
|
||
MOVI OBJLST3,A2
|
||
CALLA DELOLIST ; EMPTY THE OLD LIST
|
||
CALLA A5A6OL3 ; PUT ON LIST
|
||
|
||
GOCRED8 SLEEP 3
|
||
CALLA GET_CREDITS
|
||
CMP A0,A10
|
||
JRNE GOCRED5
|
||
JRUC GOCRED8
|
||
|
||
|
||
T0LOGO_INIT
|
||
.LONG LA,0
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_FX
|
||
.WORD >40,1,0
|
||
|
||
T1LOGO_INIT
|
||
.LONG LA,0
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_FX
|
||
.WORD >D3,1,0
|
||
|
||
GAME_OVER_SCREEN
|
||
MOVK 3,A0
|
||
CALLA GETBLIMP ; GAME OVER SCREEN
|
||
|
||
MOVE @T0SCORE,A1,W
|
||
MOVK 9,A11 ; X COORDINATE FOR DIGIT
|
||
MOVK 6,A3
|
||
CALLR TWO_BIG_DIG ; TEAM 0 SCORE
|
||
CALLR A9A10_OBJLST2
|
||
MOVE @T1SCORE,A1,W
|
||
MOVI >151,A11
|
||
MOVK 6,A3
|
||
CALLR TWO_BIG_DIG ; TEAM 0 SCORE
|
||
CALLR A9A10_OBJLST2
|
||
CALLA A5A6OL1 ; ADD TO "OBJLST1"
|
||
|
||
MOVI T0LOGO_INIT,A14
|
||
CALLA INITOBJ
|
||
MOVE @T0TEAM,A1,W
|
||
CALLA GET_LOGO
|
||
MOVE *A1(16*6),A0,L
|
||
CALLA GETFPAL
|
||
MOVE A0,*A8(OPAL),W ; TEAMS PALETTE
|
||
CALLA ANI
|
||
MOVE A8,A0
|
||
CALLA INSOBJ
|
||
|
||
MOVI T1LOGO_INIT,A14
|
||
CALLA INITOBJ
|
||
MOVE @T1TEAM,A1,W
|
||
CALLA GET_LOGO
|
||
MOVE *A1(16*6),A0,L
|
||
CALLA GETFPAL
|
||
MOVE A0,*A8(OPAL),W ; TEAMS PALETTE
|
||
CALLA ANI
|
||
MOVE A8,A0
|
||
CALLA INSOBJ
|
||
|
||
MOVE @OBJLST2,A5,L
|
||
MOVE A5,A2
|
||
GOV2 MOVE A2,A6
|
||
MOVE *A6(OLINK),A2,L
|
||
JRNE GOV2 ; A5 ---> A6 = LIST #2
|
||
MOVI INSOBJ2A8,A11 ; A11 = INSERT ROUTINE
|
||
CALLA PTIMERS
|
||
|
||
MOVE @OBJLST2,A5,L
|
||
MOVE A5,A2
|
||
GOV3 MOVE A2,A6
|
||
MOVE *A6(OLINK),A2,L
|
||
JRNE GOV3 ; A5 ---> A6 = LIST #2
|
||
|
||
CALLA DO_CLOCK ; CLOCK !!
|
||
CALLA SHOW_QUARTER
|
||
CALLA BALL_ON_THE
|
||
CALLA MINIPRNT
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* END OF QUARTER *
|
||
* *
|
||
* End of quarter message / effect. *
|
||
* *
|
||
**************************************************************************
|
||
EOQ_MSG
|
||
; MOVI RGB_GO_GREY,A0
|
||
CLR A0
|
||
MOVE A0,@IRQSKYE,W ; BACKGROUND COLOR
|
||
|
||
CALLA NOSOUNDS
|
||
|
||
CLR A0
|
||
MOVE A0,@BAKLST,L
|
||
CALLA BAKCLR
|
||
MOVI MASSIVE_CROWD,A0
|
||
MOVE A0,@BAKMODS,L
|
||
CLR A0
|
||
MOVE A0,@WORLDTLX,L
|
||
MOVE A0,@WORLDTLY,L
|
||
MOVI >10000,A0
|
||
MOVE A0,@SCROLLX,L ; LIL SCROLL ACTION
|
||
CREATE PID_FX,CBACK
|
||
|
||
MOVI >1C,A0 ; END OF 1ST
|
||
MOVE @QUARTER,A1,W
|
||
CMPI 4,A1
|
||
JRNE EOQQ2
|
||
MOVI >0D,A0 ; END OF 3RD
|
||
EOQQ2 MOVI FXLET_INIT,A14
|
||
CALLA PRINT_OBJ ; TEXT = A4 --> A7
|
||
MOVE @OBJLST2,A0,L
|
||
MOVE A0,*A7(OLINK),L ; LAST CHAR ----> OBJLST2
|
||
MOVE A4,@OBJLST2,L ; OBJLST2 ---> 1ST CHAR
|
||
MOVK 4,A11
|
||
CREATE PID_FX,RGBSTUFF ; FLASH THE LETTERS
|
||
|
||
MOVK 1,A0
|
||
CALLA GETBLIMP ; A5 = MENU MODULE OBJECT LIST
|
||
CALLA A5A6OL1 ; ADD TO "OBJLST1"
|
||
|
||
MOVI BIG_BLACK_INIT,A14
|
||
CALLA INITOBJ
|
||
MOVI >F0,A0
|
||
MOVE A0,*A8(OSIZEX),W
|
||
MOVI >38,A0
|
||
MOVE A0,*A8(OSIZEY),W
|
||
MOVI BPAL_BLK,A0
|
||
MOVE A0,*A8(OCONST),W ; BLACK
|
||
MOVE A8,A0
|
||
CALLA INSOBJ
|
||
*
|
||
* TEAM LOGOS
|
||
*
|
||
MOVE @T0TEAM,A0,W
|
||
MOVI >48,A5
|
||
MOVK 3,A6
|
||
MOVI INSOBJ,A10 ; ROUTINE TO CALL
|
||
CALLR DO_A_LOGO
|
||
MOVE @T1TEAM,A0,W
|
||
MOVI >CE,A5
|
||
MOVK 3,A6
|
||
MOVI INSOBJ,A10 ; ROUTINE TO CALL
|
||
CALLR DO_A_LOGO
|
||
MOVI VERSUS_INIT,A14
|
||
CALLA INITINS ; VERSUS
|
||
*
|
||
* TEAM SCORES
|
||
*
|
||
MOVE @T0SCORE,A1,W
|
||
MOVI >0F,A11 ; X COORDINATE FOR DIGIT
|
||
MOVK 6,A3
|
||
CALLR TWO_BIG_DIG ; TEAM 0 SCORE
|
||
CALLR A9A10_OBJLST2
|
||
MOVE @T1SCORE,A1,W
|
||
MOVI >14C,A11 ; FALL THROUGH TO "MAKE_2_DIGITS"
|
||
MOVK 6,A3
|
||
CALLR TWO_BIG_DIG ; TEAM 0 SCORE
|
||
CALLR A9A10_OBJLST2
|
||
*
|
||
* SHOW EACH PLAYERS TIMERS
|
||
*
|
||
MOVK 5,A0
|
||
CALLA GETBLIMP ; BUYIN BOXES
|
||
CALLA A5A6OL2 ; ADD TO "OBJLST2"
|
||
MOVE @OBJLST2,A5,L
|
||
MOVE A5,A2
|
||
EOQQ3 MOVE A2,A6
|
||
MOVE *A6(OLINK),A2,L
|
||
JRNE EOQQ3 ; A5 ---> A6 = LIST #2
|
||
MOVI INSOBJ2A8,A11 ; A11 = INSERT ROUTINE
|
||
CALLA PTIMERS
|
||
|
||
MOVI >0C,A3
|
||
CALLA SEND_CODE_A3
|
||
CREATE PID_FX,EOQ_LOF
|
||
SLEEP 8
|
||
BSOUND >23 ; BIG CROWD ROAR
|
||
SLEEP >E0-8
|
||
|
||
MOVI RGB_BLACK,A0
|
||
MOVE A0,@IRQSKYE,W ; BACKGROUND COLOR
|
||
JRUC FX_EXIT
|
||
|
||
EOQ_LOF
|
||
MOVI LOF_1,A11
|
||
MOVI INSOBJ2,A10
|
||
MOVK 8,A0
|
||
MOVE A0,*A13(P_ANIRATE),W
|
||
|
||
MOVI >C0,A0
|
||
MOVE A0,*A13(PLGOX),W
|
||
MOVI >91,A0
|
||
MOVE A0,*A13(PLGOZ),W
|
||
CLR A0
|
||
MOVE A0,*A13(P_FACE),W ; ASSURE NO FLIPPED IMAGE
|
||
JAUC MANISET
|
||
|
||
LOF_1
|
||
.LONG markfan1,markfan2,0,ANI_LOOP
|
||
.LONG mltarm1,mltarm2,0,ANI_LOOP
|
||
.LONG mrtarm1,mrtarm2,0,ANI_LOOP
|
||
.LONG mwere1,0,ANI_END
|
||
.LONG >FFFFFFFF
|
||
|
||
|
||
QNUM_INIT
|
||
.LONG num0,frame
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_FX
|
||
.WORD >BC,>60,1
|
||
|
||
BIG_BLACK_INIT
|
||
.LONG num0,boonpal
|
||
.WORD 0,DMACAL|M_NOSCROLL,OID_FX
|
||
.WORD 78,37,0
|
||
|
||
*
|
||
* CROWD BACKGROUND PROCESS
|
||
*
|
||
CBACK CALLA BGND_UD1
|
||
|
||
MOVE @BAKLST,A8,L ; A8 = BACKGROUND LIST
|
||
JREQ BACK8 ; EMPTY = SPLIT
|
||
BACK3 MOVE *A8(OZVAL),A1,L
|
||
CMPI CROWD_Z,A1 ; CROWD BLOCK ?
|
||
JRGT BACK8 ; NOPE
|
||
|
||
MOVI CROWD_FRAMES,A2 ; ASSUME "BIG" CROWD BLOCK
|
||
SUBI STRIP_Z,A1
|
||
JRNE BACK5 ; BIG BLOCK = YES
|
||
MOVI STRIP_FRAMES,A2 ; NO, USE "STRIP" FRAMES
|
||
BACK5 MOVE *A8(OCOLLIDE),A0,W ; HAVE WE ANIMATED THIS ONE ??
|
||
INC A0 ; NEXT FRAME
|
||
CMPI 4,A0 ; END OF LIST ?
|
||
JRLT BACK4 ; NOPE....
|
||
CLR A0 ; YES ---> BACK TO BEGINNING
|
||
BACK4 MOVE A0,*A8(OCOLLIDE),W
|
||
SLL 5,A0
|
||
ADD A2,A0
|
||
|
||
MOVE *A0,A1,L ; A1 = NEW IMAGE
|
||
MOVE A1,*A8(OIMG),L
|
||
MOVE *A8(OFLAGS),A4,W
|
||
MOVE *A8(OXVAL),A0,L
|
||
MOVE *A8(OYVAL),A2,L ; SAVE THIS
|
||
CALLA ANI0
|
||
MOVE A0,*A8(OXVAL),L
|
||
MOVE A2,*A8(OYVAL),L ; RESTORE THIS
|
||
MOVE *A8(OLINK),A8,L
|
||
JRNE BACK3
|
||
|
||
BACK8 SLEEP 5 ; USED TO BE 10
|
||
JRUC CBACK
|
||
|
||
MASSIVE_CROWD
|
||
.LONG EOQCRBMOD
|
||
.WORD 0,>30
|
||
.LONG >FFFFFFFF
|
||
|
||
**************************************************************************
|
||
* *
|
||
* FX_INTER *
|
||
* *
|
||
* Interception effect *
|
||
* *
|
||
**************************************************************************
|
||
FX_INTER
|
||
CALLA KILLFX
|
||
MOVI >23,A0
|
||
CALLR FX_SHADOW_PRINT
|
||
|
||
; MOVI INTLET_INIT,A14
|
||
; CALLR SHADOW_2 ; PRINT: "INTERCEPTION"
|
||
MOVK 4,A11
|
||
CREATE PID_FX,RGBSTUFF ; FLASH THE LETTERS
|
||
MOVE A0,A11
|
||
BSOUND >35 ; SPEECH: INTERCEPTION
|
||
SLEEP >C0
|
||
|
||
MOVE @ACTIVE,A0,L
|
||
FXINT1 CMP A0,A11 ; MAKE SURE RGBSTUFF IS STILL ALIVE
|
||
JREQ FXINT2
|
||
MOVE *A0(PLINK),A0,L
|
||
JRNE FXINT1
|
||
JRUC FXINT3
|
||
FXINT2 CALLA KILL ; KILL RGBSTUFF IF STILL ALIVE
|
||
FXINT3 DIE
|
||
|
||
;INTLET_INIT
|
||
; .LONG DUMB_IMG,boonpal
|
||
; .WORD 0,DMACNZ|M_NOSCROLL,OID_FX2
|
||
; .WORD 0,0,0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* PLAY RESULT EFFECT *
|
||
* *
|
||
**************************************************************************
|
||
FX_PLAYRES
|
||
CLR A6 ; ASSUME "NO EXTRA EFFECT"
|
||
MOVE @PPEFFECT,A7,L ; POST PLAY EFFECT REQUEST ??
|
||
JREQ PLRES2 ; NOPE...
|
||
INC A6 ; SIGNAL ---> "ANOTHER EFFECT RUNNING"
|
||
MOVI OID_FX2,A1
|
||
CALLA GETPRC ; YES, CREATE A PROCESS
|
||
PLRES2 MOVE A6,*A13(P_GCOUNT),W
|
||
CALLA UNCLIP
|
||
MOVE A10,A10 ; 1ST DOWN ?
|
||
JREQ NO1ST ; NO...
|
||
*
|
||
* FIRST DOWN !!
|
||
*
|
||
CLR A0
|
||
MOVE A0,*A13(P_GCOUNT),W ; CANCELL OTHER FX
|
||
CALLA KILLFX
|
||
PUSH A11
|
||
MOVI >1B,A0
|
||
CALLA FX_SHADOW_PRINT
|
||
MOVK 4,A11
|
||
CREATE PID_FX,RGBSTUFF ; FLASH THE LETTERS
|
||
PULL A11
|
||
CMPI PIX_PER_YARD*25,A11 ; MAJOR YARDAGE ???
|
||
JRGT FX_WHADDA_1ST ; YES
|
||
|
||
MOVE @OFFENSE,A1,W
|
||
JREQ PLRES3
|
||
MOVI MA_FIRST1_DOWN,A11
|
||
MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANIF ; DO THE WINDOW !!
|
||
JRUC PLRES4
|
||
|
||
PLRES3 MOVI MA_FIRST0_DOWN,A11
|
||
MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANI ; DO THE WINDOW !!
|
||
|
||
PLRES4 MOVE A0,A11 ; SAVE PROC
|
||
SLEEP >28
|
||
BSOUND >3A ; SPEECH: "FIRST DOWN"
|
||
|
||
SLEEP >90->28
|
||
MOVE *A11(P_PREY),A8,L
|
||
MOVI >00020002,A11
|
||
JSRP SHRINK_WIN
|
||
JRUC FX_EXIT
|
||
|
||
*
|
||
* NO FIRST DOWN
|
||
*
|
||
NO1ST MOVE *A13(P_ANIRATE),A0,W ; A0 = DOWN # (IT WAS)
|
||
CMPI 4,A0
|
||
JREQ FX_DIE ; 4TH DOWN ---> DONT SHOW YARDS LOST
|
||
|
||
MOVE @LASTLOS,A0,W ; LAST PLAY'S LINE OF SCRIMMAGE
|
||
MOVE @LINEOFSC,A1,W ; CURRENT LINE OF SCRIMMAGE
|
||
MOVE A1,A3
|
||
MOVE *A13(P_TURBO),A4,W ; TEAM ON OFFENSE ?
|
||
JREQ NO1ST1 ; ZERO
|
||
|
||
SUB A1,A0 ; TEAM1
|
||
MOVE A0,A1 ; A1 = DISTANCE
|
||
JRUC NO1ST3 ; LOOK AT THE DISTANCE
|
||
NO1ST1 SUB A0,A1 ; A1 = DISTANCE
|
||
NO1ST3 MOVE A1,A1
|
||
JRN YARDS_LOST ; NEGATIVE = YARDS LOST
|
||
MOVI >2B,A0
|
||
MOVK 9,A11 ; USE THIS RGBSTUFF
|
||
JRUC YARDALL ; YARD GAIN
|
||
|
||
YARDS_LOST
|
||
MOVI >2A,A0 ; YARD LOSS
|
||
ABS A1
|
||
MOVK 8,A11 ; USE THIS RGBSTUFF
|
||
YARDALL MOVK PIX_PER_YARD,A2
|
||
DIVS A2,A1 ; TRANSLATE TO YARDS
|
||
JREQ NOYARDS ; NO YARDAGE MESSAGE
|
||
|
||
PUSH A1
|
||
MOVI FXLET_INIT,A14
|
||
PUSH A14
|
||
CALLA PRINT_OBJ ; TEXT = A4 --> A7
|
||
PULL A14
|
||
MOVE A4,A5 ; A5 = BEGINNING OF LIST
|
||
PULL A1
|
||
|
||
MOVI FXLET_INIT,A14
|
||
CALLA SPLIT_A1 ; A1 / A3
|
||
SWAP A1,A3
|
||
CALLR PRNT_1DIG
|
||
MOVE *A8(OXPOS),A0,W
|
||
SUBK 6,A0
|
||
MOVE A0,*A8(OXPOS),W ; WORD SPACING
|
||
MOVE A3,A1 ; TENS
|
||
JREQ YLOST3 ; ZERO ---> SKIP
|
||
MOVI FXLET_INIT,A14
|
||
CALLR PRNT_1DIG
|
||
|
||
YLOST3 MOVI 00020002H,A6
|
||
CALLA SHADOW_PRINT
|
||
MOVE @OBJLST2,A0,L
|
||
MOVE A0,*A7(OLINK),L ; LAST CHAR ----> OBJLST2
|
||
MOVE A5,@OBJLST2,L ; OBJLST2 ---> 1ST CHAR
|
||
|
||
CREATE PID_FX,RGBSTUFF ; FLASH THE LETTERS (A11 IS DEFINED)
|
||
MOVE A0,A10 ; REMEMBER THIS PROC
|
||
SLEEP >24
|
||
MOVE A10,A0
|
||
CALLA KILL ; STOP "RGBSTUFF" PROC
|
||
SLEEP >A0
|
||
JRUC PLAYRES_EXIT
|
||
|
||
NOYARDS
|
||
MOVE @PLAYRES,A0,W
|
||
CMPI PR_INCOMPLETE,A0
|
||
JREQ INCOM_PLAYRES ; INCOMPLETE PASS
|
||
|
||
MOVI >2C,A0 ; YARD LOSS
|
||
MOVI FXLET_INIT,A14
|
||
CALLA PRINT_OBJ ; TEXT = A4 --> A7
|
||
MOVE A4,A5
|
||
MOVI 00020002H,A6
|
||
CALLA SHADOW_PRINT
|
||
MOVE @OBJLST2,A0,L
|
||
MOVE A0,*A7(OLINK),L ; LAST CHAR ----> OBJLST2
|
||
MOVE A5,@OBJLST2,L ; OBJLST2 ---> 1ST CHAR
|
||
SLEEP >60
|
||
JRUC PLAYRES_EXIT
|
||
*
|
||
* INCOMPLETE PASS
|
||
*
|
||
INCOM_PLAYRES
|
||
MOVE @BALLCAR,A0,L ; BALL CARRIER ?
|
||
JREQ INCOM2 ; NOPE...
|
||
CALLA BOUNDS_A0 ; CHECK BOUND CONDITIONS
|
||
CMPI 1,A1
|
||
JRNE INCOM2
|
||
CREATE PID_FX,FX_CAUGHTOOB ; BALL CAUGHT OUT OF BOUNDS
|
||
JRUC INCOM3
|
||
INCOM2 CREATE PID_FX,FX_INCOM
|
||
INCOM3 SLEEP >80
|
||
*
|
||
* PLAY RESULT EFFECT EXIT
|
||
*
|
||
PLAYRES_EXIT
|
||
CLR A1
|
||
NOT A1
|
||
MOVI PID_FX,A0
|
||
CALLA EXISTP
|
||
JRNE PRESEX2
|
||
CLR A1
|
||
NOT A1
|
||
MOVI PID_FX2,A0
|
||
CALLA EXISTP
|
||
JREQ FX_EXIT ; NO OTHER FX ---> EXIT
|
||
PRESEX2
|
||
|
||
; MOVE *A13(P_GCOUNT),A6,W ; ANOTHER DUDE RUNNING ??
|
||
; JREQ FX_EXIT ; NOPE...
|
||
; JSRP WAITFX ; YES --> LET HIM GO
|
||
|
||
SLEEP >F0 ; YES ---> LET HIM END THE EFFECT
|
||
JRUC FX_EXIT ; UNLESS HE'S A PIG
|
||
|
||
PRNT_1DIG
|
||
PUSH A14
|
||
SLL 5,A1
|
||
ADDI FONT15_NUMS,A1
|
||
MOVE *A1,A1,L ; A1 = IMG
|
||
PUSH A1
|
||
CALLA INITOBJ ; GET AN OBJECT FOR THIS CHARACTER
|
||
PULL A1
|
||
|
||
CALLA ANI ; GIVE DIGIT A SHAPE !!
|
||
MOVE *A7(OCONST),*A8(OCONST),W ; SAME COLOR
|
||
MOVE *A7(OZPOS),*A8(OZPOS),W
|
||
MOVE *A7(OYPOS),*A8(OYPOS),W
|
||
|
||
MOVE *A7(OXPOS),A0,W
|
||
MOVE *A8(OSIZEX),A1,W
|
||
SUB A1,A0 ; SIZE OF #
|
||
SUBK 3,A0 ; PLUS LETTER SPACING
|
||
MOVE A0,*A8(OXPOS),W
|
||
|
||
CLR A0
|
||
MOVE A0,*A8(OLINK),L ; A8 = NEW END OF LIST
|
||
MOVE A8,*A7(OLINK),L
|
||
MOVE A8,A7
|
||
PULL A14
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* WHAT A PLAY / FIRST DOWN EFFECT *
|
||
* *
|
||
**************************************************************************
|
||
FX_WHADDA_1ST
|
||
MOVE @OFFENSE,A1,W
|
||
JREQ WHADDA3
|
||
|
||
MOVI MA_FIRST1_DOWN,A11
|
||
MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANIF ; DO THE WINDOW !!
|
||
JRUC WHADDA4
|
||
|
||
WHADDA3 MOVI MA_FIRST0_DOWN,A11
|
||
MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANI ; REF: 1ST DOWN WINDOW
|
||
|
||
WHADDA4 MOVI MA_WHADDAL,A11
|
||
MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANI ; ANNOUNCER: WHAT A PLAY !!
|
||
|
||
MOVE A0,A9 ; A9 = ANI PROC
|
||
CALLR HIDELIST3
|
||
SLEEP 1 ; TIME FOR IT TO INITIALIZE
|
||
MOVE *A9(P_PREY),A8,L ; A8 = BACKDROP OBJ
|
||
MOVI >00020002,A11
|
||
MOVI >00250025,A10 ; A10 = INITIAL CLIPPING
|
||
JSRP GROW_WINDOW
|
||
BSOUND >48 ; SPEECH: "WHAT A PLAY !!!"
|
||
SLEEP >80
|
||
JRUC SHRINK_THEN_DIE
|
||
|
||
******************************************************************
|
||
|
||
FX_SHADOW_PRINT
|
||
MOVI FXLET_INIT,A14
|
||
SHADOW_2
|
||
PUSH A14
|
||
CALLA PRINT_OBJ ; TEXT = A4 --> A7
|
||
PULL A14
|
||
MOVE A4,A5
|
||
MOVI 00020002H,A6
|
||
CALLA SHADOW_PRINT
|
||
MOVE @OBJLST2,A0,L
|
||
MOVE A0,*A7(OLINK),L ; LAST CHAR ----> OBJLST2
|
||
MOVE A5,@OBJLST2,L ; OBJLST2 ---> 1ST CHAR
|
||
RETS
|
||
|
||
FXLET_INIT
|
||
.LONG DUMB_IMG,boonpal
|
||
.WORD 0,DMACNZ|M_NOSCROLL,OID_FX
|
||
.WORD 0,0,0
|
||
|
||
|
||
FX_GAME_INTRO
|
||
MOVK 5,A0
|
||
CALLA GETBLIMP ; BUYIN BOXES
|
||
CALLA A5A6OL1 ; ADD TO "OBJLST1"
|
||
*
|
||
* DO EACH PLAYERS "GAME TIMER"
|
||
*
|
||
MOVE @OBJLST,A5,L
|
||
MOVE A5,A2
|
||
GINT1 MOVE A2,A6
|
||
MOVE *A6(OLINK),A2,L
|
||
JRNE GINT1 ; A5 ---> A6 = LIST #2
|
||
MOVI INSOBJA8,A11 ; A11 = INSERT ROUTINE
|
||
CALLA PTIMERS
|
||
|
||
CREATE PID_FX,BACKGROUND ; START BACKGROUND UPDATE DUDE
|
||
CREATE PID_FX,MIDDLE_OPEN
|
||
CLR A0
|
||
MOVE A0,@SCRNTL,L
|
||
MOVE A0,@SCRNLR,L ; START WITH NOTHING SHOWING
|
||
|
||
MOVI TOP_SIDELINE->D0,A0
|
||
MOVE A0,@WORLDTLY+16,W ; CENTER SCREEN
|
||
MOVI LGOAL_OUT_X->A0,A0
|
||
MOVE A0,@WORLDTLX+16,W
|
||
SLEEP 1 ; GIVE BACKGROUND A CHANCE
|
||
|
||
MOVK 1,A3
|
||
CALLA SEND_CODE_A3 ; START THE MAIN TUNE
|
||
MOVI >30000,A0
|
||
MOVE A0,@SCROLLX,L ; PAN ACROSS THE FIELD
|
||
SLEEP >24
|
||
CREATE PID_FX,WINDOW_SHOWOFF
|
||
MOVI >59,A3
|
||
CALLA SEND_CODE_A3 ; "WANNA KICK SOME BUTT ?"
|
||
SLEEP >40
|
||
BSOUND >23 ; ROAR !!!
|
||
|
||
SLEEP >70
|
||
BSOUND >1F ; I CANT HEAR U
|
||
SLEEP >80
|
||
|
||
MOVK 2,A0
|
||
CALLA GETBLIMP ; GET LOGOPAGE
|
||
MOVI >28000,A4
|
||
MOVE A5,A7
|
||
GINT2 MOVE *A7(OXPOS),A3,W
|
||
SUBI >170,A3
|
||
MOVE A3,*A7(OXPOS),W ; START OFFSCREEN
|
||
MOVE A4,*A7(OXVEL),L
|
||
MOVE *A7(OLINK),A7,L
|
||
JRNE GINT2
|
||
CALLA A5A6OL1
|
||
|
||
SLEEP >40
|
||
MOVI >5A,A3
|
||
CALLA SEND_CODE_A3 ; "ITS HIGH IMPACT"
|
||
|
||
SLEEP >53
|
||
MOVK 1,A0
|
||
MOVE A0,@NO_VEL,W
|
||
CLR A1
|
||
MOVE @OBJLST,A0,L
|
||
GINT8 MOVE A1,*A0(OXVEL),L
|
||
MOVE *A0(OLINK),A0,L ; STOP LOGO OBJECTS
|
||
JRNE GINT8
|
||
MOVE A1,@NO_VEL,W ; ALLOW VELOCITIES AGAIN
|
||
|
||
MOVI FADE_NOLOGO,A0
|
||
CALLA FADEOUT
|
||
SLEEP >8
|
||
CLR A0
|
||
MOVE A0,@SCROLLX,L
|
||
SLEEP >10
|
||
CREATE PID_FX,STARS1
|
||
MOVE A0,A11
|
||
SLEEP >20
|
||
MOVE A11,A0
|
||
CALLA KILL ; KILL LINE SPAWNER
|
||
MOVI PID_FX2,A0
|
||
CALLA DALLPRC ; AND ANY REMAINING LINES
|
||
SLEEP >30
|
||
MOVI PID_FX,A0
|
||
CALLA DALLPRC
|
||
MOVI PID_FX2,A0
|
||
CALLA DALLPRC ; DELETE FX PROCESSES
|
||
MOVI BAKLST,A2
|
||
CALLA DELOLIST ; NO MORE NEED FOR BACKGROUND
|
||
MOVI FADE_NOBUY,A0
|
||
CALLA FADEOUT
|
||
SLEEP >10
|
||
MOVI OID_FX,A0
|
||
CALLA DALLOBJ
|
||
*
|
||
* BRING ON THE TEAMS !!
|
||
*
|
||
MOVI LOGORAND,A9,L
|
||
GINT19 MOVE *A9+,A11,W
|
||
JRN GINT20 ; END OF LIST ----> DONE
|
||
CREATE PID_FX,LOGO_FLY
|
||
SLEEP 6
|
||
JRUC GINT19
|
||
|
||
GINT20 MOVK 4,A0
|
||
CALLA GETBLIMP ; "SELECT TEAM" MESSAGE
|
||
CALLA A5A6OL1
|
||
|
||
MOVI PID_FX,A0
|
||
CALLA DALLPRC
|
||
MOVI PID_FX2,A0
|
||
CALLA DALLPRC ; KILL ALL FX PROCS
|
||
DIE
|
||
|
||
LOGORAND .WORD 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14
|
||
.WORD >FFFF
|
||
|
||
LOGO_FLY
|
||
MOVE A11,A0
|
||
MOVE A0,A1
|
||
SLL 5,A1
|
||
ADDI LOGO_COOR,A1
|
||
MOVE *A1+,A5,W
|
||
MOVE *A1+,A6,W
|
||
MOVI INSOBJ,A10
|
||
CALLA DO_A_LOGO
|
||
DIE
|
||
|
||
LOGO_COOR
|
||
.WORD LOGO1_X,LOGO1_Y
|
||
.WORD LOGO1_X,LOGO1_Y+35
|
||
.WORD LOGO1_X,LOGO1_Y+35*2
|
||
.WORD LOGO1_X,LOGO1_Y+35*3
|
||
.WORD LOGO1_X,LOGO1_Y+35*4
|
||
|
||
.WORD LOGO1_X+>80,LOGO1_Y
|
||
.WORD LOGO1_X+>80,LOGO1_Y+35
|
||
.WORD LOGO1_X+>80,LOGO1_Y+35*2
|
||
.WORD LOGO1_X+>80,LOGO1_Y+35*3
|
||
.WORD LOGO1_X+>80,LOGO1_Y+35*4
|
||
|
||
.WORD LOGO1_X+>100,LOGO1_Y
|
||
.WORD LOGO1_X+>100,LOGO1_Y+35
|
||
.WORD LOGO1_X+>100,LOGO1_Y+35*2
|
||
.WORD LOGO1_X+>100,LOGO1_Y+35*3
|
||
.WORD LOGO1_X+>100,LOGO1_Y+35*4
|
||
|
||
FADE_NOLOGO
|
||
.LONG WILLYPAL,logopal,MENUPAL1,boonpal,0
|
||
FADE_NOBUY
|
||
.LONG MENUPAL1,boonpal,0
|
||
|
||
*
|
||
* STARS
|
||
*
|
||
STARS1 MOVI STAR_COORDS,A4
|
||
GINT4 MOVE *A4+,A9,W
|
||
JREQ GINT5
|
||
MOVE *A4+,A10,W
|
||
SUBI STAR_Z,A10 ; COMPENSATE FOR Z !!
|
||
MOVE *A4+,A11,L
|
||
CREATE PID_FX2,LINE_O_STARS
|
||
JRUC GINT4
|
||
|
||
GINT5
|
||
JAUC WAIT_FOREVER
|
||
|
||
**************************************************************************
|
||
* *
|
||
* WINDOW_SHOWOFF *
|
||
* *
|
||
* This is the process which spawns the moving windows during the *
|
||
* game intro sequence. *
|
||
* *
|
||
**************************************************************************
|
||
WINDOW_SHOWOFF
|
||
MOVI INTRO_WINDOWS,A8
|
||
|
||
WINS1 MOVE *A8,A11,L
|
||
MOVI INSOBJ2,A10
|
||
CREATE PID_FX,MULTIANI
|
||
MOVE A0,A11
|
||
CREATE PID_FX,WINDOW_KILLER
|
||
SLEEP 1 ; TIME FOR LIST TO BE RUN
|
||
|
||
MOVE @OBJLST2,A3,L
|
||
CLR A0
|
||
MOVE A0,@OBJLST2,L
|
||
MOVI >28000,A2
|
||
MOVE A3,A4
|
||
WINS2
|
||
; MOVE *A4(OID),A0,W
|
||
; CMPI OID_FX,A0
|
||
; JRNE WINS3 ; DONT TOUCH "NON F/X" OBJECTS
|
||
|
||
MOVE A2,*A4(OXVEL),L
|
||
WINS3 MOVE A4,A5
|
||
MOVE *A4(OLINK),A4,L ; GIVE ALL OBJECTS THE SAME VELOCITY
|
||
JRNE WINS2
|
||
*
|
||
* TACK ONTO LIST #1
|
||
*
|
||
MOVE @OBJLST,A0,L
|
||
MOVE A0,*A5(OLINK),L ; ADD TO TOP OF LIST #1
|
||
MOVE A3,@OBJLST,L
|
||
SLEEP >40
|
||
|
||
ADDI 32,A8
|
||
CMPI INTRO_END,A8
|
||
JRNE WINS1
|
||
DIE
|
||
|
||
INTRO_WINDOWS
|
||
.LONG MA_INTCHEER
|
||
.LONG MA_INTREFTD
|
||
.LONG MA_CANT_HEAR
|
||
.LONG MA_INTYEA
|
||
.LONG MA_INTFD
|
||
INTRO_END
|
||
|
||
|
||
WINDOW_KILLER
|
||
SLEEP 10
|
||
MOVE *A11(P_PREY),A8,L ; RIGHT SIDE IMAGE
|
||
; MOVE *A0(OSLINK),A8,L ; LEFT SIDE IMAGE
|
||
MOVE *A8(OXPOS),A2,W
|
||
CMPI SCRRGT,A2 ; ON SCREEN ?
|
||
JRLT WINDOW_KILLER ; NO ---> WAIT
|
||
|
||
MOVE *A11(P_PREY),A0,L ; RIGHT SIDE
|
||
MOVE *A0(OSLINK),A1,L ; LEFT SIDE
|
||
|
||
CALLA DELOBJP ; DELETE RIGHT SIDE
|
||
MOVE A1,A0
|
||
CALLA DELOBJP ; DELETE LEFT SIDE
|
||
|
||
MOVE *A11(P_SWITCH),A0,L
|
||
WKILL3 CALLA DELOBJP
|
||
MOVE *A0(OSLINK),A0,L
|
||
JRNE WKILL3 ; KILL LINKED PARTS
|
||
|
||
MOVE A11,A0
|
||
CALLA KILL ; KILL "MULTIANI" PROC
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* MIDDLE_OPEN *
|
||
* *
|
||
* Television "reveal" effect from the middle of the screen outwards. *
|
||
* *
|
||
**************************************************************************
|
||
MIDDLE_OPEN
|
||
; MOVI WBAR_INIT,A14
|
||
; CALLA INITOBJ
|
||
; MOVI BPAL_YEL,A0
|
||
; MOVE A0,*A8(OCONST),W
|
||
; MOVE A8,A0
|
||
; CALLA INSOBJ2
|
||
|
||
MOVI SCRNMID,A0
|
||
MOVE A0,@SCRNTL,L
|
||
MOVE A0,@SCRNLR,L ; START FROM THE MIDDLE
|
||
MOPEN1 SLEEP 1
|
||
CLR A3
|
||
MOVE @SCRNTL,A0,L
|
||
SUBI >00020003,A0
|
||
MOVE @SCRNLR,A1,L
|
||
ADDI >00020003,A1
|
||
|
||
CMPXY A3,A0
|
||
JRYGE MOPEN3
|
||
SLL 16,A0
|
||
SRL 16,A0 ; KEEP Y POSITIVE
|
||
MOPEN3 CMPXY A3,A0
|
||
JRXGE MOPEN4
|
||
SRL 16,A0
|
||
SLL 16,A0 ; KEEP X POSITIVE
|
||
MOPEN4 MOVI SCRNEND,A3
|
||
CMPXY A3,A1
|
||
JRYLE MOPEN5
|
||
MOVY A3,A1
|
||
MOPEN5 CMPXY A3,A1
|
||
JRXLE MOPEN6
|
||
MOVX A3,A1
|
||
MOPEN6 MOVE A0,@SCRNTL,L
|
||
MOVE A1,@SCRNLR,L
|
||
|
||
MOVE A0,A0
|
||
JRNE MOPEN1
|
||
|
||
MOVI SCRNST,A0
|
||
MOVE A0,@SCRNTL,L
|
||
MOVI SCRNEND,A0
|
||
MOVE A0,@SCRNLR,L ; UNCLIP
|
||
DIE
|
||
|
||
;WBAR_INIT
|
||
; .LONG DUMB_IMG,boonpal
|
||
; .WORD 0,DMACAL|M_NOSCROLL,OID_FX
|
||
; .WORD 0,0,0
|
||
|
||
STAR_COORDS
|
||
.WORD >70,78H
|
||
.LONG STW_PAL
|
||
.WORD >A0,78H
|
||
.LONG STR_PAL
|
||
.WORD >B3,78H
|
||
.LONG STW_PAL
|
||
.WORD >BC,78H
|
||
.LONG STB_PAL
|
||
|
||
; .WORD >C3,78H
|
||
.WORD 0
|
||
|
||
|
||
|
||
LINE_O_STARS
|
||
CREATE PID_FX,STAR_PROC ; QUADRANT #1
|
||
|
||
PUSH A9
|
||
MOVI SCRRGT/2,A0
|
||
SUB A9,A0
|
||
ADDI SCRRGT/2,A0
|
||
MOVE A0,A9
|
||
CREATE PID_FX,STAR_PROC ; QUADRANT #2
|
||
PULL A9
|
||
|
||
PUSH A10
|
||
MOVI SCRBOT/2,A0
|
||
SUB A10,A0
|
||
ADDI SCRBOT/2,A0
|
||
MOVE A0,A10
|
||
CREATE PID_FX,STAR_PROC ; QUADRANT #4
|
||
PULL A10
|
||
|
||
MMTM SP,A9,A10
|
||
MOVI SCRRGT/2,A0
|
||
SUB A9,A0
|
||
ADDI SCRRGT/2,A0
|
||
MOVE A0,A9
|
||
MOVI SCRBOT/2,A0
|
||
SUB A10,A0
|
||
ADDI SCRBOT/2,A0
|
||
MOVE A0,A10
|
||
CREATE PID_FX,STAR_PROC ; QUADRANT #3
|
||
MMFM SP,A9,A10
|
||
|
||
SLEEP 10
|
||
JRUC LINE_O_STARS
|
||
|
||
STAR_PROC
|
||
MOVI STAR_INIT,A14
|
||
CALLA INITOBJ
|
||
|
||
MOVE A11,A0
|
||
CALLA SWPAL
|
||
|
||
MOVE A9,*A8(OXPOS),W
|
||
MOVE A10,*A8(OYPOS),W
|
||
|
||
MOVI (SCRRGT/2)*10000H,A0 ; SCREEN X MIDPOINT
|
||
MOVI (SCRBOT/2)*10000H,A2 ; SCREEN Y MIDPOINT
|
||
MOVE *A8(OXVAL),A1,L
|
||
MOVE *A8(OYVAL),A3,L
|
||
SUB A0,A1
|
||
SUB A2,A3 ; GET X/Y RATIOS
|
||
MOVE A1,A0
|
||
MOVE A3,A2
|
||
ABS A0
|
||
ABS A2
|
||
ADD A2,A0 ; A0 = ABS(X) + ABS(Z)
|
||
SRL 16,A0 ; IN LOWER WORD
|
||
|
||
DIVS A0,A1 ; A1 = X / X+Z
|
||
DIVS A0,A3 ; A3 = Z / X+Z
|
||
MOVK 5,A0
|
||
MPYS A0,A1
|
||
MPYS A0,A3
|
||
MOVE A1,*A8(OXVEL),L
|
||
MOVE A3,*A8(OYVEL),L
|
||
|
||
MOVE A8,A0
|
||
CALLA INSOBJ
|
||
|
||
MOVI A_STARSP,A9
|
||
MOVK 3,A0
|
||
JSRP FRAMEW
|
||
SLEEP 20H
|
||
MOVE A8,A0
|
||
CALLA DELOBJP ; DELETE OBJECT AND PALETTE
|
||
FX_DIE DIE
|
||
|
||
;DELAYED_TUNE
|
||
; SLEEP 29H
|
||
; BSOUND 1
|
||
; DIE
|
||
|
||
|
||
STAR_Z .SET 10
|
||
|
||
STAR_INIT
|
||
.LONG STR1,STW_PAL
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_FX
|
||
.WORD 0,0,0 ;STAR_Z
|
||
|
||
**************************************************************************
|
||
* *
|
||
* INCOMPLETE PASS EFFECT *
|
||
* *
|
||
**************************************************************************
|
||
FX_INCOM
|
||
CALLA UNCLIP
|
||
MOVI MA_INCOMPLETE,A11
|
||
MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANI
|
||
MOVE A0,A11 ; SAVE PROC
|
||
BSOUND >54 ; INCOMPLETE
|
||
|
||
MOVI >27,A0
|
||
CALLA FX_SHADOW_PRINT ; PRINT: "INCOMPLETE PASS"
|
||
SLEEP >60
|
||
MOVE *A11(P_PREY),A8,L
|
||
MOVI >00020002,A11
|
||
JSRP SHRINK_WIN
|
||
JRUC FX_EXIT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* BALL CAUGHT OUT OF BOUNDS EFFECT *
|
||
* *
|
||
**************************************************************************
|
||
FX_CAUGHTOOB
|
||
MOVI >31,A0
|
||
CALLA FX_SHADOW_PRINT
|
||
MOVI >26,A0
|
||
CALLA FX_SHADOW_PRINT
|
||
MOVK 4,A11
|
||
CREATE PID_FX,RGBSTUFF ; FLASH THE LETTERS
|
||
|
||
BSOUND >55 ; SPEECH: OUT OF BOUNDS
|
||
SLEEP >70
|
||
JRUC FX_EXIT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* NO GOOD REFEREE EFFECT *
|
||
* *
|
||
**************************************************************************
|
||
FX_NOGOOD
|
||
CALLA UNCLIP
|
||
MOVI MA_NOGOOD,A11
|
||
MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANI
|
||
MOVE A0,A11 ; SAVE PROC
|
||
BSOUND >44 ; NO GOOD !!
|
||
SLEEP >D0
|
||
MOVE *A11(P_PREY),A8,L
|
||
MOVI >00020002,A11
|
||
JSRP SHRINK_WIN
|
||
JRUC FX_EXIT
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* FIELD GOAL NO GOOD EFFECT *
|
||
* *
|
||
**************************************************************************
|
||
FX_FGN
|
||
MOVI P1STAT,A1
|
||
MOVI P3STAT,A2
|
||
MOVE A10,A10
|
||
JREQ FGN2 ; TEAM 0 MISSED
|
||
MOVI P3STAT,A1
|
||
MOVI P1STAT,A2
|
||
FGN2 MOVE *A1,A0,L
|
||
JREQ FGN_CHEER ; DRONE TEAM MISSED ---> CHEER
|
||
MOVE *A2,A0,L
|
||
JREQ FGN_BOO ; HUMAN MISSED (VS DRONE) ---> BOO
|
||
|
||
FGN_CHEER
|
||
PUSH A10
|
||
MOVI MA_FGN0,A11
|
||
MOVE A10,A10
|
||
JREQ FGN3
|
||
MOVI MA_FGN1,A11 ; TEAM 1 FUCKED UP
|
||
FGN3 MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANI
|
||
PULL A10 ; REF "NO GOOD" ON DORK SIDE
|
||
|
||
BSOUND >44 ; NO GOOD !!
|
||
SLEEP >30
|
||
|
||
MOVI MA_NGCHEER1,A11
|
||
MOVE A10,A10
|
||
JREQ FGN4
|
||
MOVI MA_NGCHEER0,A11
|
||
FGN4 MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANI ; CHEER ON "COOL" SIDE
|
||
|
||
SLEEP >06
|
||
BSOUND >23 ; ROAR !!
|
||
|
||
FGNTO CREATE PID_FX,SHOW_TURNOVER
|
||
SLEEP >B0
|
||
|
||
MOVI SCRNST+>32,A0
|
||
MOVE A0,@SCRNTL3,L
|
||
MOVE A0,@SCRNTL2,L
|
||
MOVI SCRNEND->32,A0
|
||
MOVE A0,@SCRNLR3,L
|
||
MOVE A0,@SCRNLR2,L
|
||
MOVK 1,A10
|
||
MOVK 6,A11
|
||
JSRP WIPEOUT32_1
|
||
|
||
MOVI OBJLST2,A2
|
||
CALLA DELOLIST
|
||
MOVI OBJLST3,A2
|
||
CALLA DELOLIST
|
||
CALLA UNCLIP
|
||
CALLA KILLFX ; STOP PROCS
|
||
SLEEP >20 ; PAUSE FOR SMOOTHNESS
|
||
|
||
JRUC FX_EXIT
|
||
|
||
FGN_BOO
|
||
PUSH A10
|
||
MOVI MA_FGN1,A11
|
||
MOVE A10,A10
|
||
JREQ FGN6
|
||
MOVI MA_FGN0,A11 ; TEAM 1 FUCKED UP
|
||
FGN6 MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANI
|
||
PULL A10 ; REF "NO GOOD" ON DORK SIDE
|
||
BSOUND >44 ; NO GOOD !!
|
||
SLEEP >30
|
||
BSOUND >24 ; SPEECH: BOO !!
|
||
|
||
MOVI MA_FGPU0,A11
|
||
MOVE A10,A10
|
||
JREQ FGN7
|
||
MOVI MA_FGPU1,A11
|
||
FGN7 MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANI ; BOO
|
||
JRUC FGNTO
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TOUCHDOWN EFFECT #2 *
|
||
* *
|
||
**************************************************************************
|
||
TDFX2
|
||
BSOUND >27 ; SOUND: WHISTLE / TOUCHDOWN !!
|
||
MOVI MA_REFTD,A11
|
||
MOVI INSOBJ2,A10
|
||
CREATE PID_FX,MULTIANI
|
||
|
||
CLR A9
|
||
MOVK 9,A11
|
||
T2DOWN1 MOVI TDLET_INIT,A14
|
||
CALLA INITOBJ
|
||
MOVE A11,A1
|
||
DEC A1
|
||
SLL 5,A1
|
||
ADDI TD_IMAGES,A1
|
||
MOVE *A1,A1,L
|
||
CALLA ANI ; SHAPE THE LETTER
|
||
MOVE A9,A9
|
||
JREQ T2DOWN2
|
||
|
||
MOVE *A9(OCOLLIDE),A0,W
|
||
MOVE *A9(OSIZEX),A1,W
|
||
ADD A1,A0
|
||
DEC A0
|
||
MOVE A0,*A8(OXPOS),W
|
||
|
||
T2DOWN2 MOVE A8,A9
|
||
MOVE *A8(OXPOS),*A8(OCOLLIDE),W
|
||
CREATE PID_FX,TD_SLIDE ; MAKE SOMEONE TO SLIDE IT IN
|
||
SLEEP >6
|
||
DSJ A11,T2DOWN1
|
||
|
||
SLEEP >20
|
||
CALLR TD_SCORE_BOXES
|
||
CALLR TD_SCORES
|
||
MOVI letblu,A10
|
||
MOVI >04060200,A11
|
||
CREATE PID_FX,CYCLERF
|
||
MOVI letblu,A10
|
||
MOVI >0A060200,A11
|
||
CREATE PID_FX,CYCLERF
|
||
CALLR PLAY_TD_TUNE
|
||
|
||
SLEEP >70
|
||
JRUC FX_EXIT
|
||
|
||
TD_SLIDE
|
||
MOVE *A8(OXPOS),A11,W
|
||
MOVE A11,A0
|
||
ADDI SCRRGT,A0
|
||
MOVE A0,*A8(OXPOS),W
|
||
MOVE A8,A0
|
||
CALLA INSOBJ3
|
||
|
||
MOVI ->A0000,A0
|
||
MOVE A0,*A8(OXVEL),L
|
||
TDSL2 SLEEP 1
|
||
MOVE *A8(OXPOS),A0,W
|
||
CMP A0,A11
|
||
JRLO TDSL2
|
||
CLR A0
|
||
MOVE A0,*A8(OXVEL),L
|
||
MOVE A11,*A8(OXPOS),W
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TOUCHDOWN EFFECT #1 *
|
||
* *
|
||
**************************************************************************
|
||
TDFX1
|
||
CREATE PID_FX,TD_SCROLLER
|
||
CALLA UNCLIP
|
||
BSOUND >27 ; SOUND: WHISTLE / TOUCHDOWN !!
|
||
MOVI MA_REFTD,A11
|
||
MOVI INSOBJ2,A10
|
||
CREATE PID_FX,MULTIANI
|
||
|
||
MOVE @RAND,A0,L
|
||
JRN FX_TD2 ; BE A BIT RANDOM !!!
|
||
|
||
SLEEP >30
|
||
CALLR TD_LETTERS
|
||
*
|
||
* CLIP UNMASKING EFFECT
|
||
*
|
||
MOVI SCRRGT/2,A10
|
||
MOVE A10,A11
|
||
TDOWN3 SUBK 12,A10
|
||
ADDK 12,A11
|
||
MOVE A10,@SCRNTL3,W
|
||
MOVE A11,@SCRNLR3,W
|
||
SLEEP 1
|
||
CMPI SCRRGT-8,A11
|
||
JRLT TDOWN3
|
||
CALLA UNCLIP
|
||
|
||
SLEEP >20
|
||
CALLR PLAY_TD_TUNE
|
||
|
||
MOVI MA_TDCHEER,A11
|
||
MOVI INSOBJ3,A10
|
||
CREATE PID_FX,MULTIANI ; CHEERLEADER WINDOW
|
||
SLEEP >F0
|
||
|
||
MOVI OID_FX,A0
|
||
CALLA DALLOBJ ; KILL ONLY WINDOW OBJECTS
|
||
MOVI PID_FX,A0
|
||
CALLA DALLPRC ; AND THE FUCKING PROC YOU DORK !!!
|
||
SLEEP >C0
|
||
JRUC FX_EXIT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TOUCHDOWN EFFECT #2 (WITH ANNOUNCER) * *
|
||
* *
|
||
**************************************************************************
|
||
FX_TD2
|
||
MOVI MA_TDANN,A11
|
||
MOVI INSOBJ2,A10
|
||
CREATE PID_FX,MULTIANI
|
||
CALLR TD_LETTERS
|
||
|
||
MOVI SCRRGT/2,A10
|
||
MOVE A10,A11
|
||
TDFX22 SUBK 12,A10
|
||
ADDK 12,A11
|
||
MOVE A10,@SCRNTL3,W
|
||
MOVE A11,@SCRNLR3,W
|
||
SLEEP 1
|
||
CMPI SCRRGT-8,A11
|
||
JRLT TDFX22
|
||
CALLA UNCLIP
|
||
|
||
SLEEP >20
|
||
CALLR PLAY_TD_TUNE
|
||
SLEEP >C0
|
||
|
||
MOVI OID_FX,A0
|
||
CALLA DALLOBJ ; KILL ONLY WINDOW OBJECTS
|
||
SLEEP >E0
|
||
JRUC FX_EXIT
|
||
|
||
*
|
||
* "TOUCHDOWN" SCROLL TO CROWD
|
||
*
|
||
TD_SCROLLER
|
||
SLEEP >40*2
|
||
MOVI FIFTY_YARD-(SCRRGT/2),A1
|
||
MOVI >1B8,A3 ; WE WANNA END UP HERE
|
||
MOVK 4,A4 ; AND TRAVEL THIS FAST
|
||
JSRP AUTOSCR ; LET THE AUTO SCROLLER HANDLE IT
|
||
DIE
|
||
|
||
|
||
*
|
||
* SCORE BOXES AND "TOUCHDOWN" LETTERS
|
||
*
|
||
TD_LETTERS
|
||
CALLR TD_SCORE_BOXES
|
||
CALLR TD_SCORES
|
||
|
||
MOVI TD_IMAGES,A7
|
||
CLR A9
|
||
MOVK 9,A3
|
||
MOVI TDLET_INIT,A14
|
||
TDOWN1 PUSH A14
|
||
CALLA INITOBJ
|
||
PULL A14
|
||
MOVE A3,A1
|
||
DEC A1
|
||
SLL 5,A1
|
||
ADD A7,A1
|
||
MOVE *A1,A1,L
|
||
CALLA ANI ; SHAPE THE LETTER
|
||
MOVE A9,A9
|
||
JREQ TDOWN2
|
||
|
||
MOVE *A9(OXPOS),A0,W
|
||
MOVE *A9(OSIZEX),A1,W
|
||
ADD A1,A0
|
||
DEC A0
|
||
MOVE A0,*A8(OXPOS),W
|
||
TDOWN2 MOVE A8,A9
|
||
MOVE A8,A0
|
||
CALLA INSOBJ3
|
||
DSJ A3,TDOWN1
|
||
|
||
MOVI letblu,A10
|
||
MOVI >04060200,A11
|
||
CREATE PID_FX,CYCLERF
|
||
MOVI letblu,A10
|
||
MOVI >0A060200,A11
|
||
CREATE PID_FX,CYCLERF
|
||
RETS
|
||
|
||
*
|
||
* SCORES
|
||
*
|
||
TD_SCORES
|
||
MOVE @T0SCORE,A1,W
|
||
MOVI >13,A11 ; X COORDINATE FOR DIGIT
|
||
MOVI >6C,A3
|
||
CALLR TWO_BIG_DIG ; TEAM 0 SCORE
|
||
MOVI OID_FX2,A4
|
||
MOVE A4,*A9(OID),W
|
||
MOVE A4,*A10(OID),W ; DONT CONFUSE WITH OID_FX
|
||
CALLR A9A10_OBJLST3
|
||
MOVE @T1SCORE,A1,W
|
||
MOVI >147,A11 ; FALL THROUGH TO "MAKE_2_DIGITS"
|
||
MOVI >6C,A3
|
||
CALLR TWO_BIG_DIG ; TEAM 0 SCORE
|
||
MOVI OID_FX2,A4
|
||
MOVE A4,*A9(OID),W
|
||
MOVE A4,*A10(OID),W ; DONT CONFUSE WITH OID_FX
|
||
CALLR A9A10_OBJLST3
|
||
RETS
|
||
|
||
|
||
TD_SCORE_BOXES
|
||
MOVI L_SCOREBOX,A14
|
||
CALLA INITOBJ
|
||
MOVE A8,A0
|
||
CALLA INSOBJ3 ; ON LIST #3
|
||
MOVE A8,A9
|
||
MOVI R_SCOREBOX,A14
|
||
CALLA INITOBJ
|
||
MOVE A8,A0
|
||
CALLA INSOBJ3 ; ON LIST #3
|
||
RETS
|
||
|
||
TD_IMAGES
|
||
.LONG HUGE_N
|
||
.LONG HUGE_W
|
||
.LONG HUGE_O
|
||
.LONG HUGE_D
|
||
.LONG HUGE_H
|
||
.LONG HUGE_C
|
||
.LONG HUGE_U
|
||
.LONG HUGE_O
|
||
.LONG HUGE_T
|
||
|
||
TDLET_INIT
|
||
.LONG HUGE_T,letblu
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_FX2
|
||
.WORD >4C,>72,0
|
||
|
||
L_SCOREBOX
|
||
.LONG MENUSCORE,MENUPAL1
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_FX2
|
||
.WORD >0C,>68,0
|
||
|
||
R_SCOREBOX
|
||
.LONG MENUSCORE,MENUPAL1
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_FX2
|
||
.WORD >140,>68,0
|
||
|
||
|
||
PLAY_TD_TUNE
|
||
MOVI >60,A3
|
||
CALLA SEND_CODE_A3
|
||
MOVI >20,A3
|
||
CALLA SEND_CODE_A3 ; FULL VOLUME
|
||
MOVI 9,A3
|
||
JAUC SEND_CODE_A3
|
||
|
||
|
||
*
|
||
* FORM LINKED LIST: A11 ---> A9
|
||
*
|
||
FORM_WINDOW
|
||
CALLR SETUP_WINDOW
|
||
MOVE A11,A9 ; A9 = BACKDROP DUDE
|
||
PJSH00 PULLP A2 ; TAKE FROM LIST
|
||
MOVE A2,A2 ; END OF LIST ?
|
||
JREQ PJSH0 ; YES, EXIT
|
||
MOVE A2,*A9(OLINK),L ; ADD TO A9 LIST
|
||
MOVE A2,A9
|
||
JRUC PJSH00
|
||
*
|
||
* ADD OBJECTS TO "OBJLST3"
|
||
*
|
||
PJSH0 MOVE A11,A8
|
||
MOVI >0025002C,A1 ; A1 = INITIAL CLIPPING
|
||
CALLR WINDOW_CLIP ; CLIP BEFORE PUTTING ON LIST
|
||
|
||
MOVE @OBJLST3,A0,L
|
||
MOVE A0,*A9(OLINK),L ; END OF LIST ---> OBJLST3
|
||
MOVE A11,@OBJLST3,L ; OBJLST3 ---> TOP OF LIST
|
||
|
||
MOVI >0025002C,A10 ; A10 = INITIAL CLIPPING
|
||
MOVE A14,A14
|
||
JREQ PJSH2 ; NO MOVEMENT --> RETP
|
||
|
||
MOVE A14,A0
|
||
SRA 16,A0
|
||
MOVE A0,*A13(P_GCOUNT),W ; SAVE VELOCITY HERE
|
||
SLL 16,A14
|
||
SRL 16,A14 ; A14 = # OF ITERATIONS
|
||
*
|
||
* CLIPPING / MOVEMENT
|
||
*
|
||
MOVE A11,A8 ; CLIP ACCORDING TO BACKDROP
|
||
PJSH6 PUSHP A14
|
||
MOVE A11,A3
|
||
PJSH7 MOVE *A3(OXPOS),A2,W
|
||
MOVE *A13(P_GCOUNT),A5,W ; VELOCITY
|
||
ADD A5,A2
|
||
MOVE A2,*A3(OXPOS),W ; DO VELOCITY BY HAND
|
||
MOVE *A3(OLINK),A3,L
|
||
JRNE PJSH7
|
||
PJSH1 MOVE A10,A1
|
||
CALLR WINDOW_CLIP
|
||
SLEEP 1
|
||
PULLP A14
|
||
DSJS A14,PJSH6
|
||
PJSH2 RETP
|
||
|
||
*
|
||
* GROW THE WINDOW
|
||
* INPUT: A8 = BACKDROP OBJECT
|
||
* A11 = AMOUNT TO CLIP EACH TICK
|
||
* A10 = INITIAL CLIPPING
|
||
*
|
||
GROW_WINDOW
|
||
MOVE A10,A1
|
||
CALLR WINDOW_CLIP
|
||
SLEEP 1
|
||
MOVE A11,A0 ; A0 = AMOUNT TO CLIP EACH TICK
|
||
SUBXY A0,A10
|
||
MOVE A10,A1
|
||
MOVE A10,A2
|
||
SLL 16,A1
|
||
SRA 16,A1 ; A1 = X
|
||
JRP GROW_WINDOW ; ANY CLIPPING AT ALL = LOOP
|
||
SRA 16,A2 ; A2 = Y
|
||
JRP GROW_WINDOW ; ANY CLIPPING AT ALL = LOOP
|
||
*
|
||
* SHOW FULL SCREEN
|
||
*
|
||
MOVI SCRNST,A0,L ; INIT SCREEN TOP LEFT [Y,X]
|
||
MOVE A0,@SCRNTL3,L
|
||
MOVI SCRNEND,A0,L ; INIT SCREEN LOWER RIGHT [Y,X]
|
||
MOVE A0,@SCRNLR3,L
|
||
RETP
|
||
|
||
********************************************************************
|
||
|
||
|
||
FX_EXIT CALLA KILLFX
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SHRINK WINDOW *
|
||
* *
|
||
* Does the clipping trick to shrink a window to nothing. *
|
||
* *
|
||
* Input: A8 = backdrop object *
|
||
* A11 = amount to clip away each tick. *
|
||
* *
|
||
**************************************************************************
|
||
SHRINK_WIN
|
||
CLR A10 ; INIT = NO CLIP
|
||
SHWIN2 ADDXY A11,A10
|
||
MOVE A10,A1
|
||
CALLR WINDOW_CLIP
|
||
SLEEP 1
|
||
MOVE *A8(OSIZEX),A0,W
|
||
MOVE *A8(OSIZEY),A1,W
|
||
MOVE A10,A2
|
||
MOVE A10,A3
|
||
SLL 16,A2
|
||
SRL 16,A2 ; A2 = X CLIP
|
||
CMP A0,A2 ; ANY MORE TO CLIP
|
||
JRLT SHWIN2 ; YES, DO MORE
|
||
SRL 16,A3 ; A3 = Y CLIP
|
||
CMP A1,A3 ; ANY MORE TO CLIP
|
||
JRLT SHWIN2 ; YES, DO IT
|
||
RETP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* WINDOW CLIP *
|
||
* *
|
||
* INPUT: A1 = AMOUNT TO CLIP TL,LR CORNERS *
|
||
* A8 = BACKDROP BLOCK TO USE *
|
||
* *
|
||
***************************************************************************
|
||
WINDOW_CLIP
|
||
MOVE *A8(OXPOS),A2,W
|
||
MOVE *A8(OYPOS),A3,W
|
||
SLL 16,A2
|
||
SRL 16,A2
|
||
SLL 16,A3
|
||
OR A2,A3 ; A3 = BOX [Y,X]
|
||
ADDXY A1,A3
|
||
MOVE A3,@SCRNTL3,L
|
||
|
||
MOVE *A8(OXPOS),A2,W
|
||
MOVE *A8(OYPOS),A3,W
|
||
MOVE *A8(OSIZEX),A4,W
|
||
SLL 1,A4
|
||
|
||
MOVE *A8(OSIZEY),A5,W
|
||
ADD A4,A2 ; A2 = BOTTOM RIGHT CORNER X
|
||
ADD A5,A3 ; A3 = BOTTOM RIGHT CORNER Y
|
||
SLL 16,A3
|
||
OR A2,A3 ; A3 = BOTTOM CORNER BOX [Y,X]
|
||
SUBXY A1,A3
|
||
MOVE A3,@SCRNLR3,L
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SETUP WINDOW *
|
||
* *
|
||
* Creates a BACKDROP object and walks through a list of foreground *
|
||
* objects to animate. *
|
||
* *
|
||
* Input: A14 = init table for BACKDROP object *
|
||
* A3 = table of foreground animations to run. *
|
||
* A5 = x position (16 bits) *
|
||
* A6 = y position (16 bits) *
|
||
* *
|
||
* Returns: all the objects created on the process stack. *
|
||
* A11 = backdrop object *
|
||
* A14 = velocity to give each window object *
|
||
* *
|
||
**************************************************************************
|
||
SETUP_WINDOW
|
||
CLR A0
|
||
PUSHP A0 ; ZERO SIGNALS ---> END O LIST
|
||
CALLA INITOBJ
|
||
CALLR POSITION_ME
|
||
MOVE *A8(OYPOS),A0,W
|
||
INC A0 ; COMPENSATE FOR SMALLER "Z"
|
||
MOVE A0,*A8(OYPOS),W
|
||
MOVE A8,A11 ; RETURN A11 = BACKDROP OBJECT
|
||
|
||
SETWIN3 MOVE *A3+,A14,L ; A14 ---> INIT TABLE
|
||
JREQ SETWIN9 ; END OF ANIMATIONS TO MAKE
|
||
CALLA INITOBJ
|
||
CALLR POSITION_ME
|
||
PUSHP A8 ; STACK IT !!
|
||
MOVE *A3+,A9,L ; A9 = ANIMATION TO USE
|
||
JREQ SETWIN4 ; NO ANI ---> NO PROC
|
||
MOVE *A3,A10,W ; PASS A10 = SLEEP TIME
|
||
CREATE PID_FX,WINDOW_ANI
|
||
SETWIN4 ADDI 16,A3 ; A3 ---> NEXT ENTRY
|
||
JRUC SETWIN3
|
||
SETWIN9 MOVE *A3,A14,L ; A14 = VELOCITY / ITTERATIONS
|
||
RETS
|
||
|
||
POSITION_ME
|
||
MOVE *A8(OXPOS),A0,W
|
||
ADD A5,A0
|
||
MOVE A0,*A8(OXPOS),W
|
||
MOVE *A8(OYPOS),A0,W
|
||
ADD A6,A0
|
||
MOVE A0,*A8(OYPOS),W ; PUT WINDOW WHERE IT SHOULD BE
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* WINDOW ANIMATOR *
|
||
* *
|
||
* INPUTS: A8 = OBJECT TO ANIMATE *
|
||
* A9 = ANIMATION FRAMES *
|
||
* A10 = SLEEP TIME BETWEEN TICKS *
|
||
* *
|
||
**************************************************************************
|
||
WINDOW_ANI
|
||
MOVE *A9,A1,L
|
||
MOVE *A8(OFLAGS),A4,W
|
||
MOVE *A9+,A1,L
|
||
JREQ WANI3
|
||
CALLA ANI
|
||
MOVE A10,A0
|
||
CALLA PRCSLP
|
||
JRUC WINDOW_ANI
|
||
WANI3 MOVE *A9,A9,L
|
||
JRUC WINDOW_ANI
|
||
|
||
|
||
WINDOW_PLANE .SET 300H
|
||
WINDOW_COLOR .SET 0101H
|
||
BOARDER_COLOR .SET 0202H
|
||
|
||
WINTEST
|
||
RETS
|
||
|
||
|
||
PULL_OUT_A8
|
||
MOVE *A8(OSIZEX),A10,W
|
||
SRA 1,A10 ; 1ST X CLIP = ALL
|
||
|
||
PULL2 MOVE A10,A1
|
||
CALLR WINDOW_CLIP
|
||
SLEEP 1
|
||
MOVI >00000004,A0
|
||
SUBXY A0,A10
|
||
MOVE A10,A1
|
||
MOVE A10,A2
|
||
SLL 16,A1
|
||
SRA 16,A1 ; A1 = X
|
||
JRP PULL2 ; ANY CLIPPING AT ALL = LOOP
|
||
RETP
|
||
|
||
SQUEEZE_IN_A8
|
||
CLR A10 ; 1ST CLIP = NONE
|
||
SQU2 MOVE A10,A1
|
||
CALLR WINDOW_CLIP
|
||
SLEEP 1
|
||
MOVI >00000004,A0
|
||
ADDXY A0,A10
|
||
MOVE A10,A1
|
||
MOVE A10,A2
|
||
SLL 16,A1
|
||
SRA 16,A1 ; A1 = X
|
||
MOVE *A8(OSIZEX),A0,W
|
||
CMP A0,A1
|
||
JRLE SQU2
|
||
RETP
|
||
|
||
*
|
||
* BOARDER OFFSET
|
||
* A1 = [Y,X] OFFSETS
|
||
* A9 = BOARDER OBJECT
|
||
*
|
||
BOARDER_OFFSET
|
||
MOVE A1,A0
|
||
SLL 16,A0
|
||
SRL 16,A0 ; A0 = X OFFSET
|
||
SRL 16,A1 ; A1 = Y OFFSET
|
||
MOVE *A9(OXPOS),A2,W
|
||
ADD A0,A2
|
||
MOVE A2,*A8(OXPOS),W
|
||
MOVE *A9(OYPOS),A2,W
|
||
ADD A1,A2
|
||
MOVE A2,*A8(OYPOS),W
|
||
MOVK 2,A0
|
||
MOVE A0,*A8(OZVAL),L ; NUDGE Z IN FRONT OF REST
|
||
MOVE A8,A0
|
||
JAUC INSOBJ3
|
||
|
||
|
||
GROW_WINDOW2
|
||
SLEEP 1
|
||
MOVE A11,A11
|
||
JREQ NOX
|
||
DEC A11
|
||
MOVE *A8(OSIZEX),A0,W
|
||
ADDK 8,A0
|
||
MOVE A0,*A8(OSIZEX),W ; BIGGER X
|
||
MOVE *A8(OXPOS),A0,W
|
||
SUBK 4,A0
|
||
MOVE A0,*A8(OXPOS),W
|
||
|
||
NOX MOVE A10,A10
|
||
JREQ NOY
|
||
DEC A10
|
||
MOVE *A8(OSIZEY),A0,W
|
||
ADDK 8,A0
|
||
MOVE A0,*A8(OSIZEY),W ; BIGGER Y
|
||
MOVE *A8(OYPOS),A0,W
|
||
SUBK 4,A0
|
||
MOVE A0,*A8(OYPOS),W
|
||
|
||
NOY MOVE A11,A0
|
||
ADD A10,A0
|
||
JRNE GROW_WINDOW
|
||
RETP
|
||
|
||
TEAM_INIT
|
||
.LONG LA,LA_PAL
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_FX
|
||
.WORD 0,0,0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* EXTRA POINT EFFECT *
|
||
* *
|
||
**************************************************************************
|
||
EXTRAP
|
||
MOVI >1D,A0
|
||
CALLA FX_SHADOW_PRINT
|
||
MOVK 5,A11
|
||
CREATE PID_FX,RGBSTUFF ; FLASH THE LETTERS
|
||
JAUC WAIT_FOREVER
|
||
|
||
*
|
||
* SWITCH OBJECT LIST #3 TO OBJECT LIST #2
|
||
*
|
||
OBJ3TO2
|
||
MOVE @OBJLST3,A0,L
|
||
O321 MOVE A0,A1
|
||
MOVE *A0(OLINK),A0,L ; NEXT ??
|
||
JRNE O321 ; NON-ZERO CONTINUE
|
||
MOVE @OBJLST2,A0,L
|
||
MOVE A0,*A1(OLINK),L ; ADD TO TOP OF LIST #2
|
||
MOVE @OBJLST3,A0,L
|
||
MOVE A0,@OBJLST2,L ; REPOINT TOP OF LIST #2
|
||
CLR A0
|
||
MOVE A0,@OBJLST3,L ; EMPTY OLD LIST OUT
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* MULTIANI *
|
||
* *
|
||
* Process to animate through multiple sequences at once. This is *
|
||
* a window utility. *
|
||
* *
|
||
* Input: A11 ---> master animation table *
|
||
* A10 = which "INSERT OBJECT" routine to call *
|
||
* *
|
||
**************************************************************************
|
||
MASTER_END .SET >FFFFFFFF
|
||
ANI_LOOP .SET 1
|
||
ANI_END .SET 2
|
||
ANI_JUMP .SET 3
|
||
|
||
|
||
MULTIANIF
|
||
MOVK 1,A0
|
||
JRUC MANI0
|
||
|
||
MULTIANI CLR A0
|
||
MANI0 MOVE A0,*A13(P_FACE),W ; FLIP FLAG
|
||
MOVE *A11+,A0,W
|
||
MOVE A0,*A13(P_ANIRATE),W ; SAVE SLEEP TIME
|
||
MOVE *A11+,A0,W
|
||
MOVE A0,*A13(PLGOX),W ; X OFFSET
|
||
MOVE *A11+,A0,W
|
||
MOVE A0,*A13(PLGOZ),W ; Y OFFSET
|
||
*
|
||
* DO THE BACKGROUND "WINDOW" OBJECT
|
||
*
|
||
MOVI MANI_IMG,A14
|
||
CALLA INITOBJ
|
||
MOVE A8,*A13(P_PREY),L ; STORE 1ST WINDOW IMAGE HERE
|
||
|
||
MOVE *A13(PLGOX),*A8(OXPOS),W
|
||
MOVE *A13(PLGOZ),A0
|
||
; INC A0
|
||
MOVE A0,*A8(OYPOS),W
|
||
CLR A0
|
||
MOVE A0,*A8(OZPOS),W
|
||
|
||
MOVE *A11+,A1,L ; WINDOW IMAGE
|
||
CMPI ANI_JUMP,A1 ; JUMP TO NEW ADDRESS ???
|
||
JRNE MANI1 ; NO
|
||
MOVE *A11+,A1,L ; A1 = BACKGROUNDS IMAGE
|
||
MOVE *A11,A11,L ; YES ---> REDIRECT A11
|
||
MANI1 MOVE *A1(32*3),A0,L ; A0 = PALETTE TO USE
|
||
PUSH A0
|
||
CALLA GETFPAL ; GET ONE
|
||
MOVE A0,*A8(OPAL),W
|
||
CALLR WANI
|
||
MOVE A8,A0
|
||
CALL A10 ; CALL THE "INSERT OBJECT" ROUTINE
|
||
*
|
||
* HACK TOGETHER THE "SPLIT WINDOW" BRAIN DAMMAGE
|
||
*
|
||
MOVE A8,A9 ; A9 = RIGHT SIDE WINDOW
|
||
MOVI MANI_IMG,A14
|
||
CALLA INITOBJ
|
||
PULL A0 ; WINDOW PALETTE
|
||
CALLA GETFPAL
|
||
MOVE A0,*A8(OPAL),W
|
||
MOVE *A9(OIMG),*A8(OIMG),L
|
||
MOVE A8,*A9(OSLINK),L ; LINK WINDOW HALFS TOGETHER
|
||
MOVE A9,*A8(OSLINK),L ; LINK WINDOW HALFS TOGETHER
|
||
CALLA YFLP ; LEFT WINDOW = FLIPPED RIGHT WINDOW
|
||
MOVE *A9(OYPOS),*A8(OYPOS),W
|
||
MOVE *A9(OZPOS),*A8(OZPOS),W
|
||
MOVE *A9(OXPOS),A0,W
|
||
MOVE *A8(OSIZEX),A1,W
|
||
SUB A1,A0
|
||
MOVE A0,*A8(OXPOS),W ; POSITION LEFT WINDOW NEXT TO RIGHT
|
||
MOVE A8,*A13(P_PREY),L ; CLIP BASED ON "LEFT" SIDE
|
||
MOVE A8,A0
|
||
CALL A10 ; CALL THE "INSERT OBJECT" ROUTINE
|
||
|
||
*
|
||
* SETUP ANIMATIONS
|
||
*
|
||
MANISET
|
||
CLR A9
|
||
MANI3 MOVE *A11,A8,L ; ANIMATION ??
|
||
CMPI MASTER_END,A8
|
||
JREQ MANI7 ; DONE...
|
||
MOVI MANI_IMG,A14
|
||
CALLA INITOBJ
|
||
MOVE *A13(P_FACE),A0,W
|
||
JREQ MANIX2 ; NO FLIP
|
||
ORI M_FLIPH,A4
|
||
MOVE A4,*A8(OFLAGS),W ; FLIP IMAGE
|
||
|
||
MANIX2 MOVE A9,A9 ; 1ST IMAGE ?
|
||
JRNE MANI5 ; NO
|
||
MOVE A8,*A13(P_SWITCH),L ; YES, REMEMBER IT
|
||
JRUC MANI2
|
||
MANI5 MOVE A8,*A9(OSLINK),L ; NO, LINK TO THE LAST ONE
|
||
MANI2 CLR A0
|
||
MOVE A0,*A8(OSLINK),L ; ASSUME END OF LIST
|
||
MOVE A8,A9 ; SAVE
|
||
|
||
MOVE *A13(PLGOX),*A8(OXPOS),W
|
||
MOVE *A13(PLGOZ),A0,W
|
||
DEC A0
|
||
MOVE A0,*A8(OYPOS),W ; Y OFFSET - 1
|
||
|
||
MOVE *A11,A1,L ; GET 1ST IMAGE
|
||
MOVE *A8(OPAL),A0,W ; PALETTE DEFINED YET ???
|
||
JRNE MANI21 ; YES, SKIP
|
||
MOVE *A1(32*3),A0,L ; A0 = PALETTE TO USE
|
||
CALLA GETFPAL ; NO ---> GET ONE
|
||
MOVE A0,*A8(OPAL),W
|
||
MANI21 CALLA ANI
|
||
MOVE A11,*A8(OCOLLIDE),L ; SAVE TABLE POINTER HERE
|
||
MOVE A11,*A8(OXACC),L ; SAVE 1ST FRAME POINTER HERE
|
||
MOVE A8,A0
|
||
CALL A10
|
||
|
||
MANI4 MOVE *A11+,A0,L
|
||
JRNE MANI4 ; SEARCH FOR ZERO
|
||
ADDI 32,A11 ; NEXT COMMAND
|
||
MOVE *A11,A0,L
|
||
CMPI MASTER_END,A0 ; END OF ALL ????
|
||
JRNE MANI3 ; NOPE...
|
||
*
|
||
* DO THE ANIMATIONS
|
||
*
|
||
MANI_ANI
|
||
MOVE *A13(P_SWITCH),A8,L ; GET OBJECT #1
|
||
MANI9 MOVE *A8(OCOLLIDE),A2,L
|
||
JREQ MANI8 ; ZERO ---> LEAVE IMAGE ALONE
|
||
|
||
MOVE *A2+,A1,L ; A1 = NEW IMAGE
|
||
JREQ MANI6 ; ZERO ---> SPECIAL CODE
|
||
MOVE *A8(OFLAGS),A4,W
|
||
CALLA ANI
|
||
MOVE A2,*A8(OCOLLIDE),L ; SAVE NEXT IMAGE POINTER
|
||
JRUC MANI8
|
||
|
||
MANI6 MOVE *A2,A1,L ; A1 = COMMAND
|
||
CMPI ANI_LOOP,A1
|
||
JREQ MANI7 ; ANI LOOP
|
||
CLR A0
|
||
MOVE A0,*A8(OCOLLIDE),L ; NO MORE ANI'S
|
||
JRUC MANI8
|
||
|
||
MANI7 MOVE *A8(OXACC),A0,L
|
||
MOVE A0,*A8(OCOLLIDE),L ; RESET ANI POINTER
|
||
JRUC MANI9 ; DO NEXT FRAME RIGHT AWAY
|
||
|
||
MANI8 MOVE *A8(OSLINK),A8,L
|
||
JRNE MANI9
|
||
MOVE *A13(P_ANIRATE),A0,W ; RESTORE SLEEP TIME
|
||
CALLA PRCSLP
|
||
JRUC MANI_ANI
|
||
|
||
*
|
||
* ANI WHICH CHECKS BOUNDARIES OF IMAGE POINTER
|
||
*
|
||
WANI
|
||
CMPI FXLEGAL1,A1
|
||
JRLO WANI_ERROR
|
||
CMPI FXLEGAL2,A1
|
||
JRHS WANI_ERROR ; MAKE SURE THIS IMAGE IS LEGIT
|
||
JAUC ANI ; COOL ---> ANI YER ASS OFF
|
||
|
||
WANI_ERROR
|
||
ERMAC 61
|
||
|
||
|
||
MANI_IMG
|
||
.LONG MULTI_DUMB,0
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_FX
|
||
.WORD 0,0,1
|
||
|
||
MULTI_DUMB
|
||
.word 0,0,0,0 ; SIZE, ANI POINTS
|
||
.long DUMB_IMG ; IMG DATA POINTER
|
||
.long DUMB_IMG ; PALETTE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* MULTIWINDOW MASTER ANIMATION TABLES *
|
||
* *
|
||
**************************************************************************
|
||
MA_AWESOME_UL
|
||
.WORD >0A,>60,>10
|
||
.LONG ANI_JUMP,winsize1,AWESOME_FRAMES
|
||
|
||
MA_AWESOMEL
|
||
.WORD >0A,>60,>99
|
||
.LONG ANI_JUMP,winsize1,AWESOME_FRAMES
|
||
|
||
MA_AWESOMEH
|
||
.WORD >0A,>120,>10
|
||
.LONG winsize1
|
||
AWESOME_FRAMES
|
||
.LONG bighead1
|
||
.LONG bighead1
|
||
.LONG bighead1,bighead2,bighead2,bighead2,bigbod1,bigbod1,bigbod1
|
||
.LONG bigbod1,bigbod1
|
||
.LONG 0,ANI_END
|
||
.LONG TDANN_DUMB
|
||
.LONG TDANN_DUMB
|
||
.LONG TDANN_DUMB,TDANN_DUMB,TDANN_DUMB,TDANN_DUMB,bighead3
|
||
.LONG bighead3,bighead3,bighead3,bighead4
|
||
.LONG 0,ANI_END
|
||
.LONG >FFFFFFFF
|
||
|
||
MA_TDANN
|
||
.WORD >08,>50,>A0
|
||
.LONG winsize1
|
||
.LONG bigbod1
|
||
.LONG bigbod1
|
||
.LONG bigbod1
|
||
.LONG bigbod1
|
||
.LONG bigbod1,TDANN_DUMB,TDANN_DUMB,bigbod1,0,ANI_END
|
||
.LONG bighead3
|
||
.LONG bighead3
|
||
.LONG bighead3
|
||
.LONG bighead3
|
||
.LONG bighead3,bighead1,bighead1,bighead5,bighead5,bighead6
|
||
.LONG bighead6,bighead6,bighead6,bighead6,bighead6,bighead4
|
||
.LONG 0,ANI_END
|
||
.LONG >FFFFFFFF
|
||
|
||
TDANN_DUMB
|
||
.word 0,0,0,0 ; SIZE, ANI POINTS
|
||
.long DUMB_IMG ; IMG DATA POINTER
|
||
.long bghedpal ; PALETTE
|
||
|
||
|
||
MA_WHADDAH
|
||
.WORD >07,>110,>08
|
||
.LONG ANI_JUMP,winsize1,WHADDA_FRAMES
|
||
MA_WHADDAL
|
||
.WORD >07,>58,>90
|
||
.LONG winsize1
|
||
WHADDA_FRAMES
|
||
.LONG whatbod1
|
||
.LONG whatbod1
|
||
.LONG whatbod1,whatbod2,whatbod3,0,ANI_END
|
||
.LONG WHA_DUMB
|
||
.LONG WHA_DUMB
|
||
.LONG WHA_DUMB,wltarm1,wltarm2,0,ANI_END
|
||
.LONG WHA_DUMB
|
||
.LONG WHA_DUMB
|
||
.LONG WHA_DUMB,wrtarm1,wrtarm2,0,ANI_END
|
||
.LONG WHA_DUMB
|
||
.LONG WHA_DUMB
|
||
.LONG WHA_DUMB,WHA_DUMB,wlthand,0,ANI_END
|
||
.LONG WHA_DUMB
|
||
.LONG WHA_DUMB
|
||
.LONG WHA_DUMB,WHA_DUMB,wrthand2,0,ANI_END
|
||
.LONG WHA_DUMB
|
||
.LONG WHA_DUMB
|
||
.LONG WHA_DUMB,WHA_DUMB,whathed3,whathed2,whathed1
|
||
.LONG whathed2,whathed3,0,ANI_END
|
||
.long >FFFFFFFF
|
||
|
||
WHA_DUMB
|
||
.word 0,0,0,0 ; SIZE, ANI POINTS
|
||
.long DUMB_IMG ; IMG DATA POINTER
|
||
.long whattpal ; PALETTE
|
||
|
||
****************************************
|
||
|
||
MA_FGPU0
|
||
.WORD >0A,>70,>99
|
||
.LONG ANI_JUMP,HALFBLUR,PU_FRAMES
|
||
|
||
MA_FGPU1
|
||
MA_PU1
|
||
.WORD >0A,>120,>99
|
||
.LONG ANI_JUMP,HALFBLUR,PU_FRAMES
|
||
MA_PU0
|
||
.WORD >0A,>70,>99
|
||
.LONG HALFBLUR
|
||
PU_FRAMES
|
||
.LONG stkhand1,stkhand2,stkhand3,0,ANI_LOOP
|
||
.LONG stnkarm1,stnkarm2,stnkarm3,0,ANI_LOOP
|
||
.LONG stnkhed1,stnkhed2,stnkhed3,0,ANI_LOOP
|
||
.LONG stnksut1,stnksut2,stnksut3,0,ANI_LOOP
|
||
.LONG >FFFFFFFF
|
||
|
||
MA_MAD1
|
||
.WORD >8,>110,>99
|
||
.LONG ANI_JUMP,HALFBLUR,MAD_FRAMES
|
||
|
||
MA_MAD0
|
||
.WORD >8,>70,>99
|
||
.LONG HALFBLUR
|
||
MAD_FRAMES
|
||
.LONG COCHMAD1,COCHMAD2,COCHMAD3,0,ANI_LOOP
|
||
.LONG >FFFFFFFF
|
||
|
||
|
||
MA_FIRST1_DOWN
|
||
.WORD 8,>120,>10
|
||
.LONG ANI_JUMP,HALFBLUR,FD_FRAMES
|
||
|
||
MA_FIRST0_DOWN
|
||
.WORD 8,>50,>10
|
||
.LONG HALFBLUR
|
||
FD_FRAMES
|
||
.LONG REF_1DOWN1A
|
||
.LONG REF_1DOWN1A
|
||
.LONG REF_1DOWN1A
|
||
.LONG REF_1DOWN1A
|
||
.LONG REF_1DOWN1A
|
||
.LONG REF_1DOWN1A
|
||
.LONG REF_1DOWN1A,REF_1DOWN2A,REF_1DOWN3A,0,ANI_END
|
||
.LONG REF_1DOWN1B
|
||
.LONG REF_1DOWN1B
|
||
.LONG REF_1DOWN1B
|
||
.LONG REF_1DOWN1B
|
||
.LONG REF_1DOWN1B
|
||
.LONG REF_1DOWN1B
|
||
.LONG REF_1DOWN1B,REF_1DOWN2B,REF_1DOWN3B,0,ANI_END
|
||
.LONG >FFFFFFFF
|
||
|
||
MA_FGN0
|
||
.WORD >07,>70,>99
|
||
.LONG ANI_JUMP,HALFBLUR,NOGOOD_FRAMES
|
||
|
||
MA_FGN1
|
||
.WORD >07,>120,>99
|
||
.LONG ANI_JUMP,HALFBLUR,NOGOOD_FRAMES
|
||
|
||
MA_INCOMPLETE
|
||
.WORD >07,>70,>99
|
||
.LONG ANI_JUMP,HALFBLUR,NOGOOD_FRAMES
|
||
|
||
MA_NOGOOD
|
||
.WORD 8,>80,>10
|
||
.LONG HALFBLUR
|
||
NOGOOD_FRAMES
|
||
.LONG REF_NGOOD1,REF_NGOOD2A,REF_NGOOD3A,0,ANI_LOOP
|
||
.LONG NG_DUMB,REF_NGOOD2B,REF_NGOOD3B,0,ANI_LOOP
|
||
.LONG NG_DUMB,REF_NGOOD2C,REF_NGOOD3C,0,ANI_LOOP
|
||
.LONG >FFFFFFFF
|
||
|
||
NG_DUMB
|
||
.word 0,0,0,0 ; SIZE, ANI POINTS
|
||
.long DUMB_IMG ; IMG DATA POINTER
|
||
.long REFNG_PA ; PALETTE
|
||
|
||
MA_REFTD
|
||
.WORD 8,>120,>0D
|
||
.LONG HALFBLUR
|
||
TD_FRAMES
|
||
.LONG REF_TD1A
|
||
.LONG REF_TD1A
|
||
.LONG REF_TD1A
|
||
.LONG REF_TD1A,REF_TD2A,REF_TD3A,0,ANI_END
|
||
.LONG REF_TD1B
|
||
.LONG REF_TD1B
|
||
.LONG REF_TD1B
|
||
.LONG REF_TD1B,REF_TD2B,REF_TD3B,0,ANI_END
|
||
.LONG REF_TD1C
|
||
.LONG REF_TD1C
|
||
.LONG REF_TD1C
|
||
.LONG REF_TD1C,REF_TD2C,REF_TD3C,0,ANI_END
|
||
.LONG >FFFFFFFF
|
||
|
||
|
||
MA_NGCHEER0
|
||
.WORD >07,>70,>99
|
||
.LONG ANI_JUMP,HALFBLUR,CHEER_FRAMES
|
||
|
||
MA_NGCHEER1
|
||
.WORD >07,>120,>99
|
||
.LONG ANI_JUMP,HALFBLUR,CHEER_FRAMES
|
||
|
||
|
||
MA_TDCHEER
|
||
.WORD 8,>50,>A0
|
||
.LONG HALFBLUR
|
||
CHEER_FRAMES
|
||
.LONG CHEER1A,CHEER2A,CHEER3A,0,ANI_LOOP
|
||
.LONG CHEER1B,CHEER2B,CHEER3B,0,ANI_LOOP
|
||
.LONG CHEER1C,CHEER2C,CHEER3C,0,ANI_LOOP
|
||
.LONG >FFFFFFFF
|
||
|
||
*****************************************
|
||
|
||
MA_FUCKINA2
|
||
.WORD 8,>120,>9D
|
||
.LONG ANI_JUMP,HALFBLUR,FUCKINA_FRAMES
|
||
MA_FUCKINA1
|
||
.WORD 8,>60,>9D
|
||
.LONG HALFBLUR
|
||
FUCKINA_FRAMES
|
||
.LONG high51A,high52A,high53,0,ANI_LOOP
|
||
.LONG high51B,high52B,FUK_DUMB,0,ANI_LOOP
|
||
.LONG high51C,high52C,FUK_DUMB,0,ANI_LOOP
|
||
.LONG >FFFFFFFF
|
||
|
||
FUK_DUMB
|
||
.word 0,0,0,0 ; SIZE, ANI POINTS
|
||
.long DUMB_IMG ; IMG DATA POINTER
|
||
.long coachpal ; PALETTE
|
||
|
||
*****************************************
|
||
|
||
MA_MOON1
|
||
.WORD 8,>110,>99
|
||
.LONG ANI_JUMP,HALFBLUR,MOON_FRAMES
|
||
|
||
MA_MOON0
|
||
.WORD >0A,>70,>99
|
||
.LONG HALFBLUR
|
||
MOON_FRAMES
|
||
.LONG moon1
|
||
.LONG moon1
|
||
.LONG moon1
|
||
.LONG moon1,moon2,moon3
|
||
.LONG moon2,moon3
|
||
.LONG moon2,moon3
|
||
.LONG moon2,moon3
|
||
.LONG 0,ANI_END
|
||
.LONG >FFFFFFFF
|
||
|
||
MA_COACH_YEA2
|
||
.WORD 8,>120,>9D
|
||
.LONG ANI_JUMP,HALFBLUR,COACHY_FRAMES
|
||
|
||
MA_COACH_YEA1
|
||
.WORD 8,>60,>9D
|
||
.LONG HALFBLUR
|
||
COACHY_FRAMES
|
||
.LONG yeasuit1,yeasuit2,yeasuit3,0,ANI_LOOP
|
||
.LONG yeahead1,yeahead2,yeahead3,0,ANI_LOOP
|
||
.LONG yelthnd1,yelthnd2,yelthnd3,0,ANI_LOOP
|
||
.LONG yerthnd1,yerthnd2,yerthnd3,0,ANI_LOOP
|
||
.LONG >FFFFFFFF
|
||
|
||
MA_SHAKE1
|
||
.WORD >06,>110,>99
|
||
.LONG ANI_JUMP,HALFBLUR,SHAKE_FRAMES
|
||
|
||
MA_SHAKE0
|
||
.WORD >06,>70,>99
|
||
.LONG HALFBLUR
|
||
SHAKE_FRAMES
|
||
.LONG EJBSHAKE1,EJBSHAKE2,EJBSHAKE3,0,ANI_LOOP
|
||
.LONG PJSHAKE1,PJSHAKE2,PJSHAKE3,0,ANI_LOOP
|
||
.LONG >FFFFFFFF
|
||
|
||
MA_BAGMAN1
|
||
.WORD >09,>110,>99
|
||
.LONG ANI_JUMP,HALFBLUR,BAG_FRAMES
|
||
|
||
MA_BAGMAN0
|
||
.WORD >09,>70,>99
|
||
.LONG HALFBLUR
|
||
BAG_FRAMES
|
||
.LONG COCHBAG1
|
||
.LONG COCHBAG1
|
||
.LONG COCHBAG1
|
||
.LONG COCHBAG1,COCHBAG2A,COCHBAG3A,0,ANI_END
|
||
.LONG BAG_DUMB
|
||
.LONG BAG_DUMB
|
||
.LONG BAG_DUMB
|
||
.LONG BAG_DUMB,COCHBAG2B,COCHBAG3B,0,ANI_END
|
||
.LONG >FFFFFFFF
|
||
|
||
BAG_DUMB
|
||
.word 0,0,0,0 ; SIZE, ANI POINTS
|
||
.long DUMB_IMG ; IMG DATA POINTER
|
||
.long CBAG_PAL ; PALETTE
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* WIPEOUT3_1 *
|
||
* *
|
||
* Wipes from the left/right edges "inwards" using 2 vertical lines. *
|
||
* *
|
||
* Input: A10 = sleep time to use *
|
||
* A11 = # of pixels each tick [0,x] *
|
||
* *
|
||
**************************************************************************
|
||
WIPEOUT3_1
|
||
MOVE @SCRNTL3,A8,L ; INIT SCREEN TOP LEFT [Y,X]
|
||
MOVE @SCRNLR3,A9,L ; INIT SCREEN LOWER RIGHT [Y,X]
|
||
WIPEO31 ADD A11,A8
|
||
SUB A11,A9 ; CLIPPY
|
||
MOVE A9,A0
|
||
SLL 16,A0
|
||
SRL 16,A0
|
||
CMP A8,A0
|
||
JRLS WIPEO32 ; WEEZ DONE
|
||
MOVE A8,@SCRNTL3,L
|
||
MOVE A9,@SCRNLR3,L
|
||
MOVE A10,A0
|
||
CALLA PRCSLP
|
||
JRUC WIPEO31
|
||
WIPEO32 RETP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* WIPEOUT32_1 *
|
||
* *
|
||
* Wipes from the left/right edges "inwards" using 2 vertical lines. *
|
||
* *
|
||
* Input: A10 = sleep time to use *
|
||
* A11 = # of pixels each tick [0,x] *
|
||
* *
|
||
**************************************************************************
|
||
WIPEOUT32_1
|
||
MOVE @SCRNTL3,A8,L ; INIT SCREEN TOP LEFT [Y,X]
|
||
MOVE @SCRNLR3,A9,L ; INIT SCREEN LOWER RIGHT [Y,X]
|
||
WIPEO321 ADD A11,A8
|
||
SUB A11,A9 ; CLIPPY
|
||
MOVE A9,A0
|
||
SLL 16,A0
|
||
SRL 16,A0
|
||
CMP A8,A0
|
||
JRLS WIPEO322 ; WEEZ DONE
|
||
MOVE A8,@SCRNTL3,L
|
||
MOVE A8,@SCRNTL2,L
|
||
MOVE A9,@SCRNLR3,L
|
||
MOVE A9,@SCRNLR2,L
|
||
MOVE A10,A0
|
||
CALLA PRCSLP
|
||
JRUC WIPEO321
|
||
WIPEO322 RETP
|
||
|
||
**************************************************************************
|
||
* *
|
||
* ANIMATION TABLES *
|
||
* *
|
||
**************************************************************************
|
||
*
|
||
* FAN WINDOW #1
|
||
*
|
||
A_FAN1
|
||
.long FANWIN1A
|
||
.long FANWIN1B
|
||
.long FANWIN1C
|
||
.long 0
|
||
.long A_FAN1
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* TANIA PROC *
|
||
* *
|
||
* This process handles making all the cheerleaders on the field *
|
||
* animate. *
|
||
* *
|
||
**************************************************************************
|
||
TANIA_PROC
|
||
MOVK 1,A0
|
||
MOVE A0,@TANIAF,W ; SIGNAL ---> TANIA PROCESS IS ALIVE
|
||
|
||
MOVI TANIA_PALETTES,A11
|
||
|
||
CLR A9
|
||
MOVK 5,A10 ; # OF CHEERLEADERS ON FIELD
|
||
MOVI LGOAL_IN_X+(PIX_PER_YARD*28),A6
|
||
TANIAP2 MOVI TANIA_INIT,A14
|
||
CALLA INITOBJ
|
||
MOVE *A11+,A0,L ; GET A PALLETE
|
||
CALLA GETFPAL
|
||
MOVE A0,*A8(OPAL),L ; USE IT
|
||
|
||
CALLA GROUND_PLAYER ; SET Y
|
||
MOVE A6,*A8(OXPOS),W
|
||
MOVE A9,*A8(OSLINK),L ; LINK 'EM TOGETHER
|
||
MOVE A8,A0
|
||
CALLA INSOBJ
|
||
MOVE A8,A9
|
||
ADDI PIX_PER_YARD*3,A6 ; NEXT X POSITION
|
||
DSJ A10,TANIAP2
|
||
|
||
MOVK 5,A10 ; # OF CHEERLEADERS ON FIELD
|
||
MOVI RGOAL_IN_X-(PIX_PER_YARD*28),A6
|
||
TANIAP3 MOVI TANIA_INIT,A14
|
||
CALLA INITOBJ
|
||
MOVE *A11+,A0,L ; GET A PALLETE
|
||
CALLA GETFPAL
|
||
MOVE A0,*A8(OPAL),L ; USE IT
|
||
|
||
CALLA GROUND_PLAYER ; SET Y
|
||
MOVE A6,*A8(OXPOS),W
|
||
MOVE A9,*A8(OSLINK),L ; LINK 'EM TOGETHER
|
||
MOVE A8,A0
|
||
CALLA INSOBJ
|
||
MOVE A8,A9
|
||
SUBI PIX_PER_YARD*3,A6 ; NEXT X POSITION
|
||
DSJ A10,TANIAP3
|
||
MOVE A8,A11 ; A11 = CHEERLEADER #1
|
||
|
||
MOVE @TANIAR,A0,L ; SPECIAL ROUTINE ?
|
||
JREQ TANIAP4 ; NOPE...
|
||
JUMP A0 ; YES ---> RUN IT
|
||
*
|
||
* ANIMATE 'EM
|
||
*
|
||
TANIAP4 MOVI A_SIDE,A9
|
||
MOVI >00140008,A10
|
||
JSRP CHEERANI
|
||
MOVI A_KICK,A9
|
||
MOVI >001A0005,A10
|
||
JSRP CHEERANI
|
||
MOVI A_JUMP,A9
|
||
MOVI >000A0006,A10
|
||
JSRP CHEERANI
|
||
JRUC TANIAP4
|
||
|
||
TANIA_INIT
|
||
.LONG CHEERSIDE1,0
|
||
.WORD 0,DMAWNZ,OID_TANIA
|
||
.WORD 0,0,TOP_SIDELINE-30
|
||
|
||
TANIA_PALETTES
|
||
.LONG HFTMER_P
|
||
.LONG afrorpal
|
||
.LONG HFTMER_P
|
||
.LONG HFTMER_P
|
||
.LONG afrorpal ; RED TEAM
|
||
|
||
.LONG HFTIME_P
|
||
.LONG afrobpal
|
||
.LONG HFTIME_P
|
||
.LONG afrobpal
|
||
.LONG afrobpal ; BLUE TEAM
|
||
|
||
;TANIA2_INIT
|
||
; .LONG CHEERSIDE1,HFTMER_P
|
||
; .WORD 0,DMAWNZ,OID_TANIA
|
||
; .WORD 0,0,TOP_SIDELINE-30
|
||
|
||
TD_TANIA
|
||
MOVI A_JUMP,A9
|
||
MOVI >02000006,A10
|
||
JSRP CHEERANI
|
||
JRUC TD_TANIA
|
||
|
||
*
|
||
* ANIMATE A LIST OF CHEERLEADERS
|
||
*
|
||
CHEERANI
|
||
MOVE A10,A0
|
||
SRL 16,A0
|
||
MOVE A0,*A13(P_GCOUNT),W ; FRAME COUNT
|
||
CHANI1 MOVE A11,A8
|
||
MOVE *A9,A1,L
|
||
CHANI2 MOVE *A8(OFLAGS),A4,W
|
||
CALLA ANI
|
||
MOVE *A8(OSLINK),A8,L ; EACH ONE !!
|
||
JRNE CHANI2
|
||
MOVE A10,A0
|
||
SLL 16,A0
|
||
SRL 16,A0
|
||
CALLA PRCSLP
|
||
ADDI 32,A9
|
||
MOVE *A9,A1,L
|
||
JRNE CHANI4
|
||
MOVE *A9(32),A9,L ; ZERO ---> GET POINTER TO BEGIN
|
||
CHANI4 MOVE *A13(P_GCOUNT),A0,W
|
||
DEC A0
|
||
MOVE A0,*A13(P_GCOUNT),W
|
||
JRNE CHANI1
|
||
RETP
|
||
|
||
*
|
||
* MAKE 2 BIG DIGITS
|
||
* RETURNS: A9 = #1
|
||
* A10 = #2
|
||
*
|
||
TWO_BIG_DIG
|
||
PUSH A1
|
||
MOVI DIGIT_INIT,A14
|
||
CALLA INITOBJ
|
||
MOVE A8,A9 ; A9 = DIGIT #1
|
||
MOVI DIGIT_INIT,A14
|
||
CALLA INITOBJ
|
||
MOVE A8,A10 ; A10 = DIGIT #2
|
||
PULL A1
|
||
|
||
CMPI 99,A1
|
||
JRLE TWO2
|
||
MOVI 99,A1
|
||
TWO2
|
||
MOVE A1,A2 ; SAVE ORIGINAL
|
||
MOVI 10,A0
|
||
DIVS A0,A1 ; A1 = TENS !!
|
||
MOVE A1,A7
|
||
SLL 5,A7
|
||
ADDI BIG_DIGITS,A7 ; A7 = TENS ENTRY TABLE
|
||
MPYS A0,A1 ; A1 = ONLY TENS
|
||
SUB A1,A2 ; A2 = ONES
|
||
SLL 5,A2
|
||
ADDI BIG_DIGITS,A2 ; A2 = ONES TABLE ENTRY
|
||
|
||
MOVE A3,*A9(OYPOS),W
|
||
MOVE A11,*A9(OXPOS),W
|
||
MOVE *A7,A1,L ; A1 = NEW OIMG
|
||
MOVE A9,A8 ; A8 --> OBJECT BLOCK
|
||
MOVE *A9(OFLAGS),A4,W ; A4 = FLAGS
|
||
CALLA ANI
|
||
|
||
MOVE A3,*A10(OYPOS),W
|
||
ADDI 25,A11 ; DIGIT #2 DISTANCE = WIDTH
|
||
MOVE A11,*A10(OXPOS),W
|
||
MOVE *A2,A1,L ; A1 = OIMG
|
||
MOVE A10,A8 ; A8 --> OBJECT BLOCK
|
||
MOVE *A10(OFLAGS),A4,W ; A4 = FLAGS
|
||
CALLA ANI
|
||
RETS
|
||
|
||
DIGIT_INIT
|
||
.LONG num0,frame
|
||
.WORD 0,DMAWNZ|M_NOSCROLL,OID_FX
|
||
.WORD 0,0,0
|
||
|
||
A9A10_OBJLST3
|
||
MOVE A9,A0
|
||
CALLA INSOBJ3
|
||
MOVE A10,A0
|
||
JAUC INSOBJ3
|
||
|
||
A9A10_OBJLST2
|
||
MOVE A9,A0
|
||
CALLA INSOBJ2
|
||
MOVE A10,A0
|
||
JAUC INSOBJ2
|
||
|
||
A9A10_OBJLST
|
||
MOVE A9,A0
|
||
CALLA INSOBJ
|
||
MOVE A10,A0
|
||
JAUC INSOBJ
|
||
|
||
HIDELIST3
|
||
CLR A0
|
||
MOVE A0,@SCRNTL3,L
|
||
MOVE A0,@SCRNLR3,L ; DONT SHOW ANY OBJLST3
|
||
RETS
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* GAME INTRO WINDOW ANIMATIONS *
|
||
* *
|
||
**************************************************************************
|
||
MA_INTCHEER
|
||
.WORD >07,->40,>89
|
||
.LONG ANI_JUMP,HALFBLUR,CHEER_FRAMES
|
||
|
||
MA_INTREFTD
|
||
.WORD >07,->40,>89
|
||
.LONG ANI_JUMP,HALFBLUR,TD_FRAMES
|
||
|
||
MA_INTYEA
|
||
.WORD >07,->40,>89
|
||
.LONG ANI_JUMP,HALFBLUR,COACHY_FRAMES
|
||
|
||
MA_INTFD
|
||
.WORD >07,->40,>89
|
||
.LONG ANI_JUMP,HALFBLUR,FD_FRAMES
|
||
|
||
MA_CANT_HEAR
|
||
.WORD >0D,->40,>89
|
||
.LONG winsize1
|
||
.LONG bigbod1
|
||
.LONG bigbod1
|
||
.LONG bigbod1
|
||
.LONG bighead1,bigbod1,bigbod1,bigbod1,bigbod1,bighead2,0,ANI_END
|
||
.LONG bighead3
|
||
.LONG bighead3
|
||
.LONG bighead3
|
||
.LONG TDANN_DUMB,bighead3,bighead3,bighead6,bighead6,TDANN_DUMB
|
||
.LONG 0,ANI_END
|
||
.LONG >FFFFFFFF
|
||
|
||
|
||
MA_LOFEOQ
|
||
.WORD >07,>50,>80
|
||
.LONG ANI_JUMP,HALFBLUR,LOF_FRAMES
|
||
|
||
MA_LOFNUM1
|
||
.WORD >08,>1E0,>51
|
||
.LONG HALFBLUR
|
||
LOF_FRAMES
|
||
.LONG markfan1,markfan2,0,ANI_LOOP
|
||
.LONG mltarm1,mltarm2,0,ANI_LOOP
|
||
.LONG mrtarm1,mrtarm2,0,ANI_LOOP
|
||
.LONG mwere1,0,ANI_END
|
||
.LONG >FFFFFFFF
|
||
|
||
MA_HT_CHEER1
|
||
.WORD >08,>1E0,>51
|
||
.LONG ANI_JUMP,HALFBLUR,CHEER_FRAMES
|
||
|
||
MA_HTYEA
|
||
.WORD >07,>1E0,>51
|
||
.LONG ANI_JUMP,HALFBLUR,COACHY_FRAMES
|
||
|
||
MA_HTAWESOME
|
||
.WORD >0A,>1E0,>51
|
||
.LONG winsize1
|
||
.LONG bighead1
|
||
.LONG bighead1
|
||
.LONG bighead1
|
||
.LONG bighead1
|
||
.LONG bighead1,bighead2,bighead2,bighead2,bigbod1,bigbod1,bigbod1
|
||
.LONG bigbod1,bigbod1
|
||
.LONG 0,ANI_END
|
||
.LONG TDANN_DUMB
|
||
.LONG TDANN_DUMB
|
||
.LONG TDANN_DUMB
|
||
.LONG TDANN_DUMB
|
||
.LONG TDANN_DUMB,TDANN_DUMB,TDANN_DUMB,TDANN_DUMB,bighead3
|
||
.LONG bighead3,bighead3,bighead3,bighead4
|
||
.LONG 0,ANI_END
|
||
.LONG >FFFFFFFF
|
||
|
||
|
||
MA_HT_CHEER2
|
||
.WORD >05,>1E0,>51
|
||
.LONG HALFBLUR
|
||
.LONG NCHEER1A
|
||
.LONG NCHEER1A
|
||
.LONG NCHEER1A
|
||
.LONG NCHEER1A
|
||
.LONG NCHEER1A
|
||
.LONG NCHEER1A
|
||
.LONG NCHEER1A
|
||
.LONG NCHEER1A
|
||
.LONG NCHEER1A
|
||
.LONG NCHEER1A,NCHEER2A,NCHEER3A
|
||
.LONG NCHEER3A
|
||
.LONG NCHEER3A
|
||
.LONG NCHEER3A
|
||
.LONG NCHEER2A,NCHEER1A
|
||
.LONG NCHEER1A
|
||
.LONG NCHEER1A
|
||
.LONG NCHEER1A
|
||
.LONG NCHEER2A,NCHEER3A
|
||
.LONG NCHEER3A
|
||
.LONG NCHEER3A
|
||
.LONG NCHEER2A,NCHEER1A
|
||
.LONG 0,ANI_END
|
||
|
||
.LONG NCHEER1B
|
||
.LONG NCHEER1B
|
||
.LONG NCHEER1B
|
||
.LONG NCHEER1B
|
||
.LONG NCHEER1B
|
||
.LONG NCHEER1B
|
||
.LONG NCHEER1B
|
||
.LONG NCHEER1B
|
||
.LONG NCHEER1B
|
||
.LONG NCHEER1B,NCHEER2B,NCHEER3B
|
||
.LONG NCHEER3B
|
||
.LONG NCHEER3B
|
||
.LONG NCHEER3B
|
||
.LONG NCHEER2B,NCHEER1B
|
||
.LONG NCHEER1B
|
||
.LONG NCHEER1B
|
||
.LONG NCHEER1B
|
||
.LONG NCHEER2B,NCHEER3B
|
||
.LONG NCHEER3B
|
||
.LONG NCHEER3B
|
||
.LONG NCHEER2B,NCHEER1B
|
||
.LONG 0,ANI_END
|
||
|
||
.LONG NCHEER1C
|
||
.LONG NCHEER1C
|
||
.LONG NCHEER1C
|
||
.LONG NCHEER1C
|
||
.LONG NCHEER1C
|
||
.LONG NCHEER1C
|
||
.LONG NCHEER1C
|
||
.LONG NCHEER1C
|
||
.LONG NCHEER1C
|
||
.LONG NCHEER1C,NCHEER2C,NCHEER3C
|
||
.LONG NCHEER3C
|
||
.LONG NCHEER3C
|
||
.LONG NCHEER3C
|
||
.LONG NCHEER2C,NCHEER1C
|
||
.LONG NCHEER1C
|
||
.LONG NCHEER1C
|
||
.LONG NCHEER1C
|
||
.LONG NCHEER2C,NCHEER3C
|
||
.LONG NCHEER3C
|
||
.LONG NCHEER3C
|
||
.LONG NCHEER2C,NCHEER1C
|
||
.LONG 0,ANI_END
|
||
.LONG >FFFFFFFF
|
||
|
||
MA_HT_CHEER3
|
||
.WORD >0A,>40,>51
|
||
.LONG HALFBLUR
|
||
.LONG NCHEER1A,NCHEER2A,NCHEER3A,0,ANI_LOOP
|
||
.LONG NCHEER1B,NCHEER2B,NCHEER3B,0,ANI_LOOP
|
||
.LONG NCHEER1C,NCHEER2C,NCHEER3C,0,ANI_LOOP
|
||
.LONG >FFFFFFFF
|
||
|
||
MA_HT_CHEER4
|
||
.WORD >0A,>145,>51
|
||
.LONG HALFBLUR
|
||
.LONG CHEER1A,CHEER2A,CHEER3A,0,ANI_LOOP
|
||
.LONG CHEER1B,CHEER2B,CHEER3B,0,ANI_LOOP
|
||
.LONG CHEER1C,CHEER2C,CHEER3C,0,ANI_LOOP
|
||
.LONG >FFFFFFFF
|
||
|
||
MA_HT_LOF2
|
||
.WORD >08,>C0,>51
|
||
.LONG ANI_JUMP,HALFBLUR,LOF_FRAMES
|
||
|