revolution-x/GXSCROL3.ASM

4953 lines
93 KiB
NASM
Raw Permalink Blame History

This file contains invisible Unicode characters!

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

.MLIB "GXMACS.LIB"
.FILE "GXSCROL3.ASM"
.TITLE " <<< GENERATION X -- SCROLL ROUTINES ptIII >>>"
.WIDTH 132
.OPTION B,D,L,T
.MNOLIST
.include "gx.inc"
.INCLUDE "GXSTRING.H" ;String processor
.INCLUDE "IMGTBL.GLO"
.INCLUDE "UNIVTBL.GLO"
.include "gxscrl.h"
.INCLUDE "GXNONBOY.H"
MAKE_EASY .set 1
**************************************************************************
* *
* COPYRIGHT (C) 1992 MIDWAY MANUFACTURING COMPANY. *
* ALL RIGHTS RESERVED. *
* *
**************************************************************************
* SYMBOLS IN HERE
.DEF BOYS_ROOM, GIRLS_ROOM, PORTAL_BOYS_ROOM, PORTAL_GIRLS_ROOM
.DEF BAR_SECRET, LA_SCROLL, FleaBagRm, OOLALA_ROOM, SCROLL_FLITE
.DEF SND_SWEET_EMOTION
.DEF ATTRACT1, ATTRACT4
.DEF TOMS_SIDE
.if WARREN
.DEF WARREN_SCAFF,GET_DRESSED
.endif
.if BILL|GEORGE
.DEF LA_SCROLL_TEST
.endif
* SYMBOLS FROM GXHELI.ASM
; .REF S_POSITION_COPTER, S_COPTER_FLY_TO_POINT, S_TOGGLE_COPTER_COMMAND
.REF COPTER_ATTACK_1, COPTER_ATTACK_2, COPTER_ATTACK_3, COPTER_ATTACK_4, COPTER_ATTACK_5, COPTER_ATTACK_6, COPTER_ATTACK_FINAL
.REF COPTER_APPROACH_SND_PROC, COPTER_FLY_1, COPTER_FLY_2, COPTER_FLY_2_1
.REF COPTER_INTRO_2, DELETE_COPTER_FRAME, MAKE_COPTER_ONTOP_PROC
.REF SCROLL_HOVER_PROC, SND_COPTER_FULL,BTR_HANG_TIME,S_CAR_BEEPER
.if BILL
.REF MAKE_FRONT_COPTER_PROC
.endif
* SYMBOLS FROM GXWAVE.ASM
.REF WAVE1SUB1B,WAVE1SUB1C,WAVE1SUB1D
.REF WAVE1SUB1E,WAVE1SUB1F,WAVE1SUB1H
.REF WAVE1SUB1I,WAVE1SUB1J,WAVE1SUB1K,WAVE1SUB1L
.REF WAVE1SUB1M
.REF WAVE1END
.REF DSP_LA_COGBUST, DSP_LA_STREET1, DSP_LA_STREET2, DSP_LA_STREET3
.REF DSP_LA_CLUBTOP, DSP_LA_SCAFFOLD2, DSP_LA_SCAFFOLD3
.REF DSP_LA_DRESS1, DSP_LA_DRESS2
.REF ONSTAGE_DISPATCH
* SYMBOLS FROM GXLA1.ASM
.REF LA_OUTSIDE2_VECT_TABLE, LA_BATHROOM_VECT_TABLE
.REF LA_LOBBY_BAR_VECT_TABLE, LA_STAGE_VECT_TABLE
.REF LA_OUTSIDE1_VECT_TABLE, S_CHECK_TICKET_WINDOWS
.REF FLASH_GITAR_PROC
* SYMBOLS FROM GXLA2.ASM
.REF S_NONBOY_BATHROOM, LA_DRESS_VECT_TABLE, PILLAR_COUNT
.REF S_KERRI_BATHROOM
* SYMBOLS FROM GXUNIFX.ASM
.REF MAKE_CAT_PROC, CAT_DONE, GITTEN_KITTEN
.REF MAKE_INTRO_COPTER_PROC
.REF MAKE_ROPE_LADDER
.REF MAKE_CEILING_SMOKE,MAKE_CEILING_DEBRIS
.REF PROC_AIR_RAID_SIREN
.REF START_SIGN_FLASH
* SYMBOLS FROM GXLA3.ASM
.REF PUSH_BUTTON
* SYMBOLS FROM GXBGDATA.ASM
.REF STAR_BGND
* SYMBOLS FROM GXRAM.ASM
.REF ENEMY_HITALL, BUYIN_NOFADE, GUNS_OFF
* SYMBOLS FROM GXCOG.ASM
.REF COG_BUSTER, COG_BOUNCER, PROC_COG_BABBLE, PROC_COG_GARAGE_LEFT
.REF PROC_COG_GARAGE_RIGHT, PROC_COG_NO_STOP
* SYMBOLS FROM GXUNISEQ.ASM
.REF RUNOUT_TOTAL
***** from GXRAM.ASM
.REF BONUS_DIRECTION
***** from GXWARREN.ASM
.REF BTR_DEAD
* SYMBOLS FROM GXNONBOY.ASM
.REF NONBOY_SHOOT_CHANCE, BIGBOYS
* SYMBOLS FROM GXAERO.ASM
.REF MAKE_AEROSMITH
.REF MAKE_AEROSMITH_2
* SYMBOLS FROM GXNOBOY2.ASM
.REF MAKE_CHAIRBOY
.data
.BSS TOMS_SIDE,32 ;0=LEFT, -1=RIGHT
**************************************************************************
* *
* SOUND TABLES
* *
**************************************************************************
SND_FLY_CHASE
; .WORD 0F0FDH,1,08016H,0
; .WORD 0F0FDH,1,08003H,0
.WORD 0F0FDH,1,08009H,0
SND_LA_STREET
.WORD 0F0FDH,1,08007H,0
SND_AUDITORIUM
.WORD 0F0FDH,1,08009H,0
SND_EAT_THE_RICH
.WORD 0F0FDH,1,08012H,0 ;X-fade from bar
SND_EAT_THE_RICH2
.WORD 0F0FDH,1,0800CH,0 ;Start at beg. no X-fade
SND_EAT_THE_RICH3
.WORD 0F0FDH,1,083E8H,0 ;Start at scream
SND_SWEET_EMOTION
.WORD 0F0FDH,1,0801FH,0 ;Sweet emotion direct start
SND_SWEET_EMOTION_X
.WORD 0F0FDH,1,0801EH,0 ;X-fade between Heli and Aero
SND_WAKE_UP
.WORD 0F3F0H,260,820AH,0
SND_GUITAR_JAM
.WORD 0F0FDH,1,08006H,0
SND_RAVE
.WORD 0F0FDH,1,08001H,0 ;Rave CLUB X
SND_GURU
.WORD 0F0FDH,1,08008H,0 ;Guru-Dude tune
SND_BTR_FIGHT
.WORD 0F0FDH,1,0800BH,0 ;BTR Battle tune
SND_ZOOM_IN
.WORD 0F3FDh,107,0834dh,0 ;Zoom in sound
SND_BUST_UP
.WORD 0F2F0H,100,08304H,0 ;PRE-BUST EXPLOSION
SND_NO_TRESPASSING
.WORD 0F3F0H,87,08232H,0 ;CogHead say "NO TRESPASSING"
SND_CLUB_CLOSED
.WORD 0F3FDH,1,083E6H,0F342H,90,08231H,0 ;CogHead say "THE CLUB'S CLOSED"
**************************************************************************
* *
* MESSAGE MACROS *
* *
**************************************************************************
.text
**************************************************************************
* *
* Local Scroll funcs *
* *
**************************************************************************
**************************************************************************
* *
* S_SET_RUNOUT *
* *
* Set RUNOUT_TOTAL, the Nonboy variable, based on the *
* current number of players playing. *
* *
* *A11+,W = Base number to set *
* *A11+,W = Time between dispatches *
* *
**************************************************************************
S_SET_RUNOUT
MOVE *A11+,A0,W
MOVE *A11+,A2,W
MOVE A0,A1
SRA 1,A1 ;Add 50% for every player playing
SLL 8,A2
MOVE @CURPLYRS,A3,W
JRZ SSR_ADJUST ;BR = Nobody is playing
JRUC SSR_NXT
SSR_ADD
ADD A1,A0
SSR_NXT
DSJS A3,SSR_ADD
SSR_ADJUST
ADD A2,A0 ;Add in that dispatch time
MOVE A0,@RUNOUT_TOTAL
JAUC SCRL_DISPATCHER
**************************************************************************
* *
* S_SUB_WAIT_VAR *
* *
* Scroll func to subtract a value from WAIT_VAR. Pays attention *
* to M_QUOTA flags and such. *
* *
* *A11+,W = Value to subtract *
* *
**************************************************************************
S_SUB_WAIT_VAR
MOVE *A11+,A0,W
MOVE @WAIT_VAR,A1,W
MOVE A1,A2
SRL 12,A2
SLL 12,A2 ;Keep flags
SLL 20,A1
SRA 20,A1 ;Flags off of sleep
SUB A0,A1
JRGT SSWV_STORE ;BR = Value is OK
MOVK 1,A1 ;Stuff default bottom
SSWV_STORE
OR A2,A1 ;Restore the flags
MOVE A1,@WAIT_VAR,W
JAUC SCRL_DISPATCHER
**************************************************************************
* *
* S_WAIT_OR_JUMP_QUOTA *
* *
* Scroll func to wait a given amount of time, or jump *
* when ENEMY_QUOTA is set *
* *
* *A11+,W = Ticks to wait *
* *A11+,L = Scroll jump, should ENEMY_QUOTA be set *
* *
**************************************************************************
*
* Variable sleep entry
* *A11+,L = Address of variable sleep time
*
S_WAITR_OR_JUMP_QUOTA
MOVE *A11+,A8,L
MOVE *A8,A8,W
JRUC SWOJQ_GO
S_WAIT_OR_JUMP_QUOTA
MOVE *A11+,A8,W
SWOJQ_GO
MOVE *A11+,A9,L
SWOJQ_WAIT
SLEEP 1
MOVE @ENEMY_QUOTA,A14,W
JRNZ SWOJQ_JUMP
DSJS A8,SWOJQ_WAIT
JAUC SCRL_DISPATCHER
SWOJQ_JUMP
MOVE A9,A11
JAUC SCRL_DISPATCHER
**************************************************************************
* *
* S_JUMP_ON_ENEMIES_GT *
* *
* Scroll func to jump if a given enemy count is greater *
* than the given value. *
* *
* *A11+,W = Object I.D. of enemy *
* *A11+,W = Value to check against *
* *A11+,L = Scroll branch *
* *
**************************************************************************
S_JUMP_ON_ENEMIES_GT
MOVE *A11+,A0,W
MOVE *A11+,A1,W
MOVE *A11+,A2,L
CALLA GET_ENEMY_COUNT ;Get count for this enemy
CMP A1,A0
JALE SCRL_DISPATCHER ;BR = Condition not met
MOVE A2,A11
JAUC SCRL_DISPATCHER
**************************************************************************
* *
* S_JUMP_ON_SHOOTING_NONBOYS *
* *
* Scroll func to jump if there are Shooting Nonboys present. *
* *
* *A11+,L = Scroll jump *
* *
**************************************************************************
S_JUMP_ON_SHOOTING_NONBOYS
MOVE *A11+,A4,L
MOVI OID_NONBOY,A0
CALLA EXIST_OBJ_ALL
JAZ SCRL_DISPATCHER ;BR = No Nonboys
SJOSN_LOOP
MOVE *A8(AnimScr),A14,L
CMPI NONBOY_SHOOT_LUPE,A14
JREQ SJOSN_JUMP ;BR = We found our guy
CALLA RESUME_EXIST_OBJ_ALL
JRNZ SJOSN_LOOP
JAUC SCRL_DISPATCHER
SJOSN_JUMP
MOVE A4,A11 ;Execute the branch
JAUC SCRL_DISPATCHER
**************************************************************************
* *
* S_SNDPRI_WAIT *
* *
* Scroll func to sit tight until a certain sound priority *
* has cleared from a given track. *
* *
* *A11+,W = Track # *
* *A11+,W = Priority *
* *
**************************************************************************
S_SNDPRI_WAIT
MOVE *A11+,A0,W
MOVE *A11+,A1,W
SSPW_LOOP
CALLA CKSNDPRI
JANC SCRL_DISPATCHER
MOVE A0,A8
MOVE A1,A9
SLEEP 1
MOVE A8,A0
MOVE A9,A1
JRUC SSPW_LOOP
**************************************************************************
* *
* S_JUMP_IF_TRUE - JUMP TO AN ADDRESS IF VAR IS NON-ZERO *
* *
* .LONG ADDRESS TO JUMP TO *
* .LONG VAR TO CHECK *
* *
**************************************************************************
**************************************************************************
* *
* S_JUMP_RANDPER *
* *
* Scroll func to jump the scroll table a given % of the *
* time. *
* *
* A11+,W = % *
* A11+,L = Jump vector *
* *
**************************************************************************
S_JUMP_RANDPER
MOVE *A11+,A0,W
MOVE *A11+,A1,L
CALLA RANDPER
JANC SCRL_DISPATCHER
MOVE A1,A11
JAUC SCRL_DISPATCHER
**************************************************************************
* *
* SCROLL TABLES *
* *
**************************************************************************
**************************************************************************
* *
* WAVE #1 SCROLL TABLES *
* *
**************************************************************************
; .if BILL
;LA_SCROLL_TEST
; .LONG S_SET_LONG
; .LONG WXBUFFER
; .LONG 0400000H
;
; .LONG S_SET_LONG
; .LONG WYBUFFER
; .LONG 0400000H
;
; .LONG S_SET_WORD
; .LONG UNIVERR
; .WORD 1
;
; .LONG S_SET_LONG
; .LONG UEP_Z
; .LONG 070000H
;
; .LONG S_SET_WORD
; .LONG OBJENEMIES
; .WORD -1
;
; .LONG S_CLR_SCROLL_FLAG
; .LONG -1
;
; .LONG S_LOCKOUT_PORTALS
;
; .LONG S_WAIT_HERE
; .WORD 60*3
;
; .LONG S_CHANGE_ZFAR
; .long 014000H
;
; .LONG S_START_UID_DANIM
; .WORD 2 << 8 + (28-1)
;
; .LONG S_WAIT_HERE
; .WORD 60*7
;
; .LONG S_CHANGE_ZFAR
; .long 070000H
;
;; .LONG ENDLESS_LUPE+M_JUMP
; .LONG LA_SCROLL_TEST_GO+M_JUMP
;
; .endif
LA_SCROLL
.LONG S_CLR_SCROLL_FLAG
.LONG -1
.LONG S_SET_LONG
.LONG WXBUFFER
.LONG 0400000H
.LONG S_SET_LONG
.LONG WYBUFFER
.LONG 0400000H
.LONG S_SET_WORD
.LONG UNIVERR
.WORD 1
.LONG S_SET_WORD
.LONG WAVE_WAIT
.WORD 1
.LONG S_SET_LONG
.LONG UEP_Z
.LONG 070000H
.LONG S_SET_WORD
.LONG NONBOY_SHOOT_CHANCE
.WORD 256
.LONG S_LOCKOUT_PORTALS
.IF GEORGE
.LONG S_WAIT_HERE
.WORD 60
.LONG LA_SCROLL_TEST+M_JUMP
.ENDIF
.LONG S_CREATE_PROC ;MAKE DA COPTER
.word PID_COPTER
.LONG MAKE_INTRO_COPTER_PROC
.LONG S_WAIT_UNTIL_TRUE
.LONG SCROLL_FLAG ;HELICOPTER FLY IN YET?
.LONG S_CREATE_PROC
.word PID_IND
.LONG PROC_AIR_RAID_SIREN
.LONG S_X_ACCEL_LIMIT ;START MOVING LEFT
.word -4000h ; accel
.long -80000h ; target velocity
.LONG S_WAIT_FOR_COORD ;GO TO THE CLUB
.LONG XBASE
.LONG 03DC0000H
.WORD 0
.LONG S_GOTO_POINT
.WORD 30 ;DURATION
.WORD 03DCH,0212H ;X, Y, Z DESTINATION
.LONG -018000H
.WORD 0
.LONG S_SET_WORD ;KILL THOSE LEFT OVER 1-SHOT
.LONG UNIVERR ;TREES
.WORD 1
.LONG S_DISPATCH_HERE ;Set quota for roof top
.long DSP_LA_CLUBTOP+M_WAIT
.word 0
.LONG S_WAIT_HERE
.WORD 25
.LONG S_SOUND
.LONG SND_WAKE_UP
.LONG S_GOTO_POINTZ ;MOVE TOWARD BUILDING
.WORD 200 ;DURATION
.LONG -07500H ;Z DESTINATION
.WORD 0
.LONG S_SOUND
.LONG SND_GUITAR_JAM
.LONG S_WAIT_HERE
.WORD 60
.LONG S_SOUND0
.LONG SND_COPTER_FULL
.LONG S_CREATE_PROCR
.WORD PID_IND
.LONG 30,3,0,0,TRACK_FADE_IN_FULL_PROC
.WORD 0
.LONG S_WAIT_HERE ;Wait for quota on Nonboys
.WORD 1+M_QUOTA
.LONG S_DISPATCH_HERE ;Dummy dispatch to clear QUOTA
.LONG WAVE1END+M_WAIT
.WORD 0
LWL S_JUMP_RANDPER, 512, CLUB_TOP_RIGHT
.LONG S_SET_LONG, TOMS_SIDE, 0
.LONG S_SET_LONG, WXBUFFER, 0580000H
LWL S_X_ACCEL_LIMIT,-1000H,-10000H ;Cruise across top
LLLW S_WAIT_FOR_COORD,XBASE,2EF0000H,1 ;Scroll to left side
LWL S_X_DECEL_LIMIT,800H,10000H ;Bounce off end
LLLW S_WAIT_FOR_COORD,XBASE,3CC0000H,1 ;Back to center
LW S_DECEL_TO_STOP,4
.LONG CLUB_TOP_PULLBACK+M_JUMP
CLUB_TOP_RIGHT
.LONG S_SET_LONG, TOMS_SIDE, -1
.LONG S_SET_LONG, WXBUFFER, 0580000H
LWL S_X_ACCEL_LIMIT,1000H,10000H ;Cruise across top
LLLW S_WAIT_FOR_COORD,XBASE,4CF0000H,1 ;Scroll to right side
LWL S_X_DECEL_LIMIT,-800H,-10000H ;Bounce off end
LLLW S_WAIT_FOR_COORD,XBASE,3EC0000H,1 ;Back to center
LW S_DECEL_TO_STOP,4
CLUB_TOP_PULLBACK
.LONG S_SET_LONG, WXBUFFER, 0400000H
.LONG S_KILL_ALL_PROCS ;KILL ALL DAMAGE CYCLES
.WORD PID_DAMCC
.LONG S_CREATE_PROCR ;DAMAGE COLOR CYCLES
.WORD PID_DAMCC
.LONG 4,124,115,WOODBRN1x,CYCLE16 ;X BOARD UP
.WORD PID_DAMCC
.LONG 4,124,117,STUFFB,CYCLE16 ;NEON SIGN
.WORD 0
.LONG S_Z_ACCEL_BURST ;PULL BACK AND DOWN TO THE WALL
.word -20h
.word 15
.LONG S_XYZ_ACCEL_BURST
.word 0,-2000h,-14h
.word 15
.LONG S_Y_ACCEL_BURST
.word -2000h
.word 10
.LONG S_SET_LONG
.LONG WYBUFFER
.LONG 0578000H
.LONG S_DECEL_TO_POINT
.word 110 ;DURATION
.WORD 03DCH,0 ;X, Y
.LONG -18000h ;Z DESTINATION
.WORD 10
; .ENDIF
.LONG S_SET_LONG
.LONG WYBUFFER
.LONG 0400000H
.LONG S_CREATE_PROC ;MAKE THE CAT-WALK
.word PID_IND
.LONG MAKE_CAT_PROC
.LONG S_WAIT_UNTIL_TRUE ;IS THE CAT GONE?
.LONG CAT_DONE
.long S_SET_ZSCROLL
.word 0100H ;Pull back from wall
.word 30
.LONG S_SOUND
.LONG SND_NO_TRESPASSING ;Get bitched at
.long S_WAIT_FOR_Z
.long -13700H ;Stop at wall and ...
.word 0
.LONG S_GOTO_POINTZ
.WORD 15
.LONG -18000H ;Jump back
.WORD 0
.LONG S_DISPATCH_HERE ;RUN THROUGH WALL NONBOYS
.long DSP_LA_COGBUST+M_WAIT
.word 0
.LONG S_CALL, START_SIGN_FLASH
.LONG S_CREATE_PROC ;COG BASTARD
.word PID_COG
.long COG_BUSTER
.LONG S_WAIT_HERE
.WORD 30 ;WAIT FOR ENEMY_QUOTA TO CLEAR
.LONG S_WAIT_HERE
.WORD 1+M_QUOTA ;WAIT FOR COG TO DIE
LWW S_SNDPRI_WAIT, 3, 0D0H ;Wait for this SndPri to go
; .LONG S_DISPATCH_HERE
; .long DSP_LA_STREET1+M_WAIT
; .word 0
.long S_SOUND
.long SND_ZOOM_IN
.long S_SOUND
.long SND_MUSICOFF
.LONG S_ACCEL_TO_POINT ;GO THROUGH HOLE IN WALL
.word 35
.word 3dch,0ah
.long -1274ah
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_DECEL_TO_POINT
.word 20
.word 3dch,0
.long -0f700h
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINT
.WORD 15 ; DURATION
.WORD 03DCH,0
.LONG -0F700h ;X, Y, Z DESTINATION
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_SOUND
.LONG SND_LA_STREET
.LONG GXCX3_LUPE+M_JUMP
CX_TODOOR:
.LONG S_GOTO_POINT0 ;GO IN FRONT OF THE DOORS?
.WORD 90 ; DURATION
.WORD 03DCH,0
.LONG -0F700h ;X, Y, Z DESTINATION
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG CX_INSIDE+M_JUMP
GXCX3_LUPE:
; .if 0
.LONG S_DISPATCH_HERE
.LONG DSP_LA_STREET2+M_WAIT ;Do a quota 'ting on NONBOYS
.WORD 0
LLW S_OR_WORD,OBJENEMIES,M_WINDOW|M_BW ;Start the window enemies
LW S_WAIT_HERE,2*60
LLW S_OR_WORD,OBJENEMIES,M_DOOR ;Add in the door enemies
LW S_WAIT_HERE, 3*60
.LONG S_CHANGE_ZFAR, 014000H
LLW S_SET_WORD, RUNOUT_TOTAL, 0 ;LOW BYTE IS NUMBER PER DOOR
;HIGH BYTE IS TIME BETWEEN
LW S_START_UID_DANIM, 2 << 8 + (28-1)
LW S_START_UID_DANIM, 2 << 8 + (30-1)
LWW S_SET_RUNOUT,1,30
LWL S_WAIT_OR_JUMP_QUOTA,3*60,RUNOUT_DONE
LWW S_SET_RUNOUT,1,30
LWL S_WAIT_OR_JUMP_QUOTA,3*60,RUNOUT_DONE
LWW S_SET_RUNOUT,3,30
LWL S_WAIT_OR_JUMP_QUOTA,4*60,RUNOUT_DONE
LLW S_SET_WORD, WAIT_VAR, 5*60
RUNOUT_LOOP
LWW S_SET_RUNOUT,5,30
RUNOUT_WAIT
LW S_WAIT_HERE,1
.LONG S_JUMP_IF_TRUE, RUNOUT_DONE, ENEMY_QUOTA
.LONG S_JUMP_IF_TRUE, RUNOUT_WAIT, RUNOUT_TOTAL
LW S_SUB_WAIT_VAR, 20
.LONG S_WAITR_OR_JUMP_QUOTA,WAIT_VAR,RUNOUT_DONE
.LONG RUNOUT_LOOP+M_JUMP
RUNOUT_DONE
; .LONG S_KILL_POWERUPS ;Whack those powers
LLW S_SET_WORD, OBJENEMIES, 0 ;Kill the enemy gens
LW S_WAIT_HERE, 60
.LONG S_CHANGE_ZFAR
.long 070000H
LWL S_CREATE_PROC,PID_IND,PROC_COG_BABBLE ;Cog head speech
.LONG S_DISPATCH_HERE
.LONG DSP_LA_STREET1+M_WAIT ;Circling CogHeads in street
.WORD 480
LLW S_OR_WORD,OBJENEMIES,M_WINDOW|M_BW ;Start the window enemies
LW S_WAIT_HERE, 30+M_QUOTA ;Wait for all enemies to go
.LONG S_KILL_POWERUPS ;Whack those powers
; LW S_WAIT_HERE, 60 ;Wait for all enemies to go
; .IF GEORGE
;LA_SCROLL_TEST
; .ENDIF
LW S_AUDIT, AUDLABTR
.LONG S_CREATE_PROC ;BTR
.word PID_IND
.long CREATE_TROOPTRANS
.LONG S_DISPATCH_HERE ;NO MORE ENEMIES FOR NOW
.LONG DSP_LA_STREET3+M_WAIT
.WORD 0
.long S_WAIT_HERE
.word 2*60
LLW S_SET_WORD,OBJENEMIES,M_WINDOW|M_BW ;Start the window enemies
; .LONG S_DISPATCH_HERE ;NO MORE ENEMIES FOR NOW
; .LONG WAVE1END+M_WAIT
; .WORD 0
.long S_WAIT_HERE
.word 4*60
LLW S_SET_WORD,OBJENEMIES,0 ;End the window enemies
.long S_WAIT_HERE
.word 10*60
LLW S_SET_WORD,OBJENEMIES,M_WINDOW|M_BW ;Start the window enemies
.LONG S_WAIT_UNTIL_TRUE ;IS THE BTR GONE YET?
.long BTR_GONE
LLW S_SET_WORD,OBJENEMIES,0 ;End the window enemies
.LONG S_CREATE_PROCR ;Start the left side Cogs
.WORD PID_COG
.LONG 0,[880H,780H],450,0,PROC_COG_NO_STOP
.WORD PID_COG
.LONG 0,[0A80H,980H],450,0,PROC_COG_NO_STOP
.WORD PID_COG
.LONG 0,[0C80H,0B80H],450,0,PROC_COG_NO_STOP
.WORD 0
.long S_WAIT_HERE
.word 80
.LONG S_CREATE_PROCR ;Start the left side Cogs
.WORD PID_COG
.LONG 0,[880H,780H],450,0,PROC_COG_NO_STOP
.WORD PID_COG
.LONG 0,[0A80H,980H],450,0,PROC_COG_NO_STOP
.WORD PID_COG
.LONG 0,[0C80H,0B80H],450,0,PROC_COG_NO_STOP
.WORD 0
.LONG S_SET_WORD ; Kill it (0) or
.long BTR_GONE ; Bring it back (neg)
.word -1
LW S_WAIT_HERE, 30+M_CLEANUP ;Wait for all enemies to go
; .long S_JUMP_IF_FALSE ;If kitty was killed, then
; .long CX_INSIDE ;Allow player to choose. If
; .long GITTEN_KITTEN ;not then just go inside.
; .else
;
; .LONG S_START_UID_DANIM
; .WORD 2 << 8 + (28-1)
;
; .LONG S_SET_WORD
; .LONG ENEMY_QUOTA
; .WORD 1
;
; LW S_WAIT_HERE, 30+M_CLEANUP ;Wait for all enemies to go
;
; .endif
; .if BILL
;LA_SCROLL_TEST_GO
; .endif
.LONG S_MAKE_DECISION ;FUNCTION
LA_Choice1
; LW CX_LEFTLP,1 ;-X, Count
LW CX_LEFTZIGZAG,1 ;-X, Count
LW CX_RTLP,1 ;+X, Count
LW 0,0 ;-Y, Count
LW 0,0 ;+Y, Count
LW 0,0 ;-Z, Count
LW CX_INSIDE,1 ;+Z, Count
CX_RTLP
.LONG S_SET_LONG
.LONG WXBUFFER
.LONG 0480000H
.LONG S_SET_LONG
.LONG WYBUFFER
.LONG 0680000H
.LONG S_ALLOW_PORTALS
.LONG S_CLEAR_CHOICE_COUNT
.LONG LA_Choice1 ;In this background
.WORD MDec_Left_Cnt ;No more going left
LLW S_SET_WORD, OBJENEMIES, -1 ;ACTIVATE ALL ENEMIES
.LONG S_DISPATCH_HERE ;NO MORE ENEMIES FOR NOW
.LONG WAVE1END+M_WAIT
.WORD 0
.LONG S_GOTO_POINT0
.WORD 60*3 ; DURATION
.WORD 051CH,0
.long -8000h
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINT
.WORD 5 ; DURATION
.WORD 051CH,0
.long -8000h
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINTXY
.WORD 90 ; DURATION
.WORD 04a6H,0
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINTXY
.WORD 60*6 ; DURATION
.WORD 04a6H,01d0H
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINTXY
.WORD 60*6 ; DURATION
.WORD 02e5H,01d0H
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINTXY
.WORD 60*6 ; DURATION
.WORD 02e5H,0
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_LOCKOUT_PORTALS
.LONG S_SET_LONG
.LONG WXBUFFER
.LONG 0400000H
.LONG S_SET_LONG
.LONG WYBUFFER
.LONG 0400000H
.LONG CX_TODOOR+M_JUMP
;CX_LEFTLP
; .LONG S_SET_LONG
; .LONG WYBUFFER
; .LONG 0640000H
;
; .LONG S_ALLOW_PORTALS
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD 02e5H,0
; .long -8000h
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT
; .WORD 5 ; DURATION
; .WORD 02e5H,0
; .long -8000h
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINTXY
; .WORD 60*6 ; DURATION
; .WORD 02e5H,01d0H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINTXY
; .WORD 60*6 ; DURATION
; .WORD 04a6H,01d0H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINTXY
; .WORD 60*6 ; DURATION
; .WORD 04a6H,0
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_LOCKOUT_PORTALS
;
; .LONG S_SET_LONG
; .LONG WYBUFFER
; .LONG 0400000H
;
; .LONG CX_TODOOR+M_JUMP
CX_INSIDE
.long S_SOUND
.long SND_ZOOM_IN
.long S_SOUND
.long SND_MUSICOFF
.LONG S_SET_WORD ;INIT PILLAR COUNT INSIDE
.LONG PILLAR_COUNT
.WORD 0
.LONG S_Z_ACCEL_LIMIT ;MOVE TOWARD DOORS
.WORD 030H ;Z ACCEL
.LONG 03CDH ;Z MAX. VELOCITY
.LONG S_WAIT_FOR_COORD
.LONG ZBASE
.LONG -07000H
.WORD 1
.LONG S_SET_VECTOR_TABLE
.LONG LA_LOBBY_BAR_VECT_TABLE
.LONG S_SET_LONG
.LONG WAVE_IPLANE
.LONG 0
.LONG S_SET_LONG ;SET ENEMY Z RANGE
.LONG UEP_Z
.LONG 09A00H
.LONG S_DISPATCH_HERE ;Bouncer Cog Head
.long DSP_LA_COGBUST+M_WAIT
.word 0
.LONG S_CREATE_PROCR
.WORD PID_COG
.LONG 0,0A2BBH,3D70000H,0,COG_BOUNCER ;Fire off the process
.WORD 0
.LONG S_SET_WORD
.LONG OBJENEMIES
.WORD 0
.LONG S_AT_PORTAL_ENTRANCE
.LONG S_SET_PORTAL ; Search For Portal we are centered on
.WORD 15 ; and store it in a9
.LONG S_ENTER_PORTAL ; Set up and enter new universe
.long GXOBOY2+M_EP_DONT_STOP ; name of universe
.long 01700H,03D70000h,050000h ; Z, X, Y offsets
.LONG S_SOUND, SND_CLUB_CLOSED ;Get bitched at, AGAIN!
.LONG S_DECEL_TO_STOP ;STOP IN FRONT OF WINDOWS
.WORD 4
LWWWLW S_GOTO_POINT0,20,3D7H,5H,4000H,0 ;Pull back
LW S_AUDIT, AUDLACLUB
.LONG S_SET_WORD
.LONG OBJENEMIES
.WORD -1
.LONG S_WAIT_HERE
.WORD 70 ;WAIT FOR ENEMY_QUOTA TO CLEAR
; .LONG S_SOUND, SND_RAVE_DRUMS ;Gimme a beat
.LONG S_SOUND, SND_RAVE ;Here we goooooo
.LONG S_WAIT_HERE
.WORD 1+M_QUOTA ;Wait for Cog to die
; .LONG S_SOUND, SND_RAVE ;Here we goooooo
; .LONG S_GOTO_POINT
; .WORD 30
; .WORD 03D7H,05H
; .LONG 06AC4H
; .WORD 0
.LONG S_SET_WORD
.LONG OBJENEMIES
.WORD -1
.LONG S_DISPATCH_HERE ;MAKE SOME RUNNING GUYS
.LONG WAVE1SUB1E+M_WAIT
.WORD 0
LWWWLW S_GOTO_POINT0,60,3D7H,5H,6AC4H,0 ;Go get your ticket
; .LONG S_WAIT_HERE
; .WORD 60*2
; .LONG S_DISPATCH_HERE ;MAKE SOME RUNNING GUYS
; .LONG WAVE1SUB1E+M_WAIT
; .WORD 0
.LONG S_KILL_ALL_PROCS
.WORD PID_DAMCC
.LONG S_CHECK_TICKET_WINDOWS ;WAIT FOR ALL WINDOWS DESTROYED
.LONG S_DISPATCH_HERE
.LONG WAVE1END+M_WAIT
.WORD 0
.LONG S_ALLOW_PORTALS
.LONG S_SET_WORD ;DEACTIVATE ALL ENEMIES
.LONG OBJENEMIES
.WORD 0
.LONG S_MAKE_DECISION ;FUNCTION
LW CX_HallLEFT,1 ;-X, Count
LW CX_HallRT,1 ;+X, Count
LW 0,0 ;-Y, Count
LW 0,0 ;+Y, Count
LW 0,0 ;-Z, Count
LW 0,0 ;+Z, Count
CX_HallLEFT
.LONG S_DISPATCH_HERE ;MAKE SOME RUNNING GUYS
.LONG WAVE1SUB1C+M_WAIT
.WORD 0
.LONG S_DISPATCH_SOON ;STOP 'EM IN A BIT
.WORD 90
.LONG WAVE1END+M_WAIT
.LONG S_GOTO_POINTXY ;GO TO LEFT BAR ENTRANCE
.WORD 120 ; DURATION
.WORD 031DH,0
.WORD 30 ; SLEEP UPON ARRIVAL
;LA_SCROLL_TEST
; .LONG S_SET_LONG ;SET ENEMY Z RANGE
; .LONG UNIV_ZOFF
; .LONG 0
;
; .LONG S_WAIT_HERE
; .WORD 60*3
;Inside club left
.IF GEORGE
LA_SCROLL_TEST
.LONG S_SET_LONG
.LONG WXBUFFER
.LONG 0400000H
.LONG S_SET_LONG
.LONG WYBUFFER
.LONG 0400000H
LW S_WAIT_HERE, 60
.ENDIF
.LONG S_LOCKOUT_PORTALS
.LONG S_SET_LONG
.LONG WAVE_UNIV
.LONG GXOBOY2
.LONG S_CREATE_PROCR ;START DAMAGE COLOR CYCLES
.WORD PID_DAMCC
.LONG 6,63,58,CAMTBLd1,CYCLE16 ;COCTAIL TABLE
.WORD PID_DAMCC
.LONG 4,124,117,STUFFB,CYCLE16 ;NEON SIGN
.WORD 0
.LONG S_SET_ZSCROLL ;START MOVING TOWARD DOORS
.word 0100H
.word 60
.LONG S_CHANGE_ZFAR
.long 02B19Fh
.LONG S_CLR_SCROLL_FLAG
.LONG -1
.LONG S_START_DANIM_DELTAZ ;OPEN DOORS
.long 8e00h
.LONG S_WAIT_FOR_ZABS ;WAIT TIL INSIDE DA BAR
.long 0FAC4H
.word 0
JAKE_ENTRY:
.long S_GOTO_POINTZ
.word 30
.long 0F7C4H
.word 0
.LONG S_SET_LONG ;SET ENEMY Z RANGE
.LONG UEP_Z
.LONG 9A00H
.LONG S_SET_WORD ;ACTIVATE ALL ENEMIES
.LONG OBJENEMIES
.WORD -1
;LA_SCROLL_TEST
; .LONG S_LOCKOUT_PORTALS
; .LONG S_CLR_SCROLL_FLAG
; .LONG -1
; .LONG S_CHANGE_ZFAR
; .long 02B19Fh
; .LONG S_WAIT_HERE
; .WORD 60*3
.long S_GOTO_POINTXY ;GO RIGHT, BEHIND THE WALL
.word 60*10 ; was 60*6
.word 0498H,0
.word 0
.LONG S_START_UID_DANIM ;RIGHT CURTAIN ENEMIES
.WORD 2 << 8 + (32-1)
.long S_GOTO_POINTZ ;GO FORWARD
.word 60
.long 015BC4H
.word 0
.LONG S_SET_LONG ;SET ENEMY Z RANGE
.LONG UEP_Z
.LONG 08A00H
.LONG S_ALLOW_PORTALS
; .long S_GOTO_POINTXY ;GO RIGHT, BEHIND THE WALL
; .word 60*6
; .word 0498H-040H,0
; .word 60
;
; .LONG S_ACCEL_TO_POINT
; .WORD 41
; .WORD 0498H,0
; .LONG 0129C4H
; .WORD 0
;
; .LONG S_ACCEL_TO_POINT
; .WORD 41
; .WORD 0498H-040H,0
; .LONG 015BC4H
; .WORD 0
;
; .LONG S_STOP_SCROLL
.long S_GOTO_POINTXY ;GO LEFT, 1ST SET OF TABLES
.word 60*6
.word 031DH,0
.word 0
.LONG S_START_UID_DANIM ;LEFT CURTAIN ENEMIES
.WORD 2 << 8 + (31-1)
.LONG S_SET_LONG ;SET ENEMY Z RANGE
.LONG UEP_Z
.LONG 0AE00H
.LONG S_CREATE_PROCR ;FLASH 1ST GITAR ON LEFT SIDE
.WORD PID_IND
.LONG 0,0,18,0
.LONG FLASH_GITAR_PROC
.WORD 0
.long S_GOTO_POINTZ ;GO FORWARD
.word 60*2
.long 0192C4H
.word 0
.LONG S_SET_LONG ;SET ENEMY Z RANGE
.LONG UEP_Z
.LONG 06B00H
.LONG S_JUMP_IF_BIT_CLR ;CONTINUE FORWARD IF FLAG CLEAR
.LONG GO_ON_L1
.LONG SCROLL_FLAG
.WORD 2
.long S_GOTO_POINTXY ;GO RIGHT, 2ND SET OF TABLES
.word 60*6
.word 0498H,0
.word 0
.LONG GO_ON_R1+M_JUMP
GO_ON_L1
.LONG S_CREATE_PROCR ;FLASH 2ND GITAR ON LEFT SIDE
.WORD PID_IND
.LONG 0,0,19,0
.LONG FLASH_GITAR_PROC
.WORD 0
.LONG S_SET_SCROLL_FLAG ;FLAG CURTAIN ANIMATION
.LONG 080000000H
.LONG S_START_UID_DANIM ;LEFT CURTAIN ENEMIES
.WORD 2 << 8 + (31-1)
.long S_GOTO_POINTZ ;GO FORWARD
.word 60*2
.long 01EEC4H
.word 0
.LONG S_SET_LONG ;SET ENEMY Z RANGE
.LONG UEP_Z
.LONG 012600H
.LONG S_JUMP_IF_BIT_CLR ;CONTINUE FORWARD IF FLAG CLEAR
.LONG GO_ON_L2
.LONG SCROLL_FLAG
.WORD 3
.long S_GOTO_POINTXY ;GO RIGHT, IN FRONT OF BAR
.word 60*6
.word 0498H,0
.word 0
.LONG GO_ON_R2+M_JUMP
GO_ON_L2
;LA_SCROLL_TEST
; .LONG S_CLR_SCROLL_FLAG
; .LONG -1
; .LONG S_CHANGE_ZFAR
; .long 02B19Fh
; .LONG S_WAIT_HERE
; .WORD 60*3
; .long S_GOTO_POINTZ ;GO TOWARD EXIT
; .word 60*2
; .long 02C5ADH
; .word 0
.LONG S_Z_ACCEL_LIMIT ;MOVE TOWARD CURTAINS
.WORD 07H ;Z ACCEL
.LONG 0350H ;Z MAX. VELOCITY
.LONG S_WAIT_HERE
.WORD 12
.LONG S_SOUND ;MAKE MUSIC
.LONG SND_EAT_THE_RICH
.LONG S_WAIT_FOR_COORD
.LONG ZBASE
.LONG 02C5ADH
.WORD 1
.LONG STAGE_LEFT+M_JUMP
CX_HallRT
.LONG S_DISPATCH_HERE ;MAKE SOME RUNNING GUYS
.LONG WAVE1SUB1C+M_WAIT
.WORD 0
.LONG S_DISPATCH_SOON ;STOP 'EM IN A BIT
.WORD 90
.LONG WAVE1END+M_WAIT
.LONG S_GOTO_POINTXY ;GO TO RIGHT BAR ENTRANCE
.WORD 120 ; DURATION
.WORD 0498H,0
.WORD 30 ; SLEEP UPON ARRIVAL
.LONG S_LOCKOUT_PORTALS
.LONG S_SET_LONG
.LONG WAVE_UNIV
.LONG GXOBOY2
.LONG S_CREATE_PROCR ;START DAMAGE COLOR CYCLES
.WORD PID_DAMCC
.LONG 6,63,58,CAMTBLd1,CYCLE16 ;COCTAIL TABLE
.WORD PID_DAMCC
.LONG 4,124,117,STUFFB,CYCLE16 ;NEON SIGN
.WORD 0
.LONG S_SET_ZSCROLL ;START MOVING TOWARD DOORS
.word 0100H
.word 60
.LONG S_CHANGE_ZFAR
.long 02B19Fh
.LONG S_CLR_SCROLL_FLAG
.LONG -1
.LONG S_START_DANIM_DELTAZ ;OPEN DOORS
.long 8e00h
.LONG S_WAIT_FOR_ZABS ;WAIT TIL INSIDE DA BAR
.long 0FAC4H
.word 0
.long S_GOTO_POINTZ
.word 30
.long 0F7C4H
.word 0
.LONG S_SET_LONG ;SET ENEMY Z RANGE
.LONG UEP_Z
.LONG 09A00H
.LONG S_SET_WORD ;ACTIVATE ALL ENEMIES
.LONG OBJENEMIES
.WORD -1
.long S_GOTO_POINTXY ;GO LEFT, BEHIND THE WALL
.word 60*10 ; was 60*6
.word 031DH,0
.word 0
.LONG S_START_UID_DANIM ;LEFT CURTAIN ENEMIES
.WORD 2 << 8 + (31-1)
.long S_GOTO_POINTZ ;GO FORWARD
.word 60
.long 015BC4H
.word 0
.LONG S_SET_LONG ;SET ENEMY Z RANGE
.LONG UEP_Z
.LONG 08A00H
.LONG S_ALLOW_PORTALS
.long S_GOTO_POINTXY ;GO RIGHT, 1ST SET OF TABLES
.word 60*6
.word 0498H,0
.word 0
.LONG S_CREATE_PROCR ;FLASH 1ST GITAR ON RIGHT SIDE
.WORD PID_IND
.LONG 0,0,16,0
.LONG FLASH_GITAR_PROC
.WORD 0
.LONG S_START_UID_DANIM ;RIGHT CURTAIN ENEMIES
.WORD 2 << 8 + (32-1)
.long S_GOTO_POINTZ ;GO FORWARD
.word 60*2
.long 0192C4H
.word 0
.LONG S_SET_LONG ;SET ENEMY Z RANGE
.LONG UEP_Z
.LONG 06B00H
.LONG S_JUMP_IF_BIT_CLR ;CONTINUE FORWARD IF FLAG CLEAR
.LONG GO_ON_R1
.LONG SCROLL_FLAG
.WORD 0
.long S_GOTO_POINTXY ;GO LEFT, 2ND SET OF TABLES
.word 60*6
.word 031DH,0
.word 0
.LONG GO_ON_L1+M_JUMP
GO_ON_R1
.LONG S_CREATE_PROCR ;FLASH 2ND GITAR ON LEFT SIDE
.WORD PID_IND
.LONG 0,0,17,0
.LONG FLASH_GITAR_PROC
.WORD 0
.LONG S_SET_SCROLL_FLAG ;FLAG CURTAIN ANIMATION
.LONG 080000000H
.LONG S_START_UID_DANIM ;RIGHT CURTAIN ENEMIES
.WORD 2 << 8 + (32-1)
.long S_GOTO_POINTZ ;GO FORWARD
.word 60*2
.long 01EEC4H
.word 0
.LONG S_SET_LONG ;SET ENEMY Z RANGE
.LONG UEP_Z
.LONG 012600H
.LONG S_JUMP_IF_BIT_CLR ;CONTINUE FORWARD IF FLAG CLEAR
.LONG GO_ON_R2
.LONG SCROLL_FLAG
.WORD 1
; .LONG S_ALLOW_PORTALS
.long S_GOTO_POINTXY ;GO LEFT, IN FRONT OF BAR
.word 60*6
.word 031DH,0
.word 0
.LONG GO_ON_L2+M_JUMP
GO_ON_R2
; .long S_GOTO_POINTZ ;GO TOWARD EXIT
; .word 60*2
; .long 02C5ADH
; .word 0
; .long S_GOTO_POINT ;GUARANTEE
; .word 1
; .word 0498H,0
; .long 01EF45H
; .word 0
.LONG S_Z_ACCEL_LIMIT ;MOVE TOWARD CURTAINS
.WORD 07H ;Z ACCEL
.LONG 0350H ;Z MAX. VELOCITY
.LONG S_WAIT_HERE
.WORD 12
.LONG S_SOUND ;MAKE MUSIC
.LONG SND_EAT_THE_RICH
.LONG S_WAIT_FOR_COORD
.LONG ZBASE
.LONG 02C5ADH
.WORD 1
.LONG STAGE_RIGHT+M_JUMP
STAGE_LEFT
.LONG S_SET_VECTOR_TABLE
.LONG LA_STAGE_VECT_TABLE
.LONG S_CREATE_PROC ;DON'T NEED THAT FAR SCAFFOLD
.WORD PID_IND
.LONG S_STAGE_ZFAR_PROC
.LONG S_CREATE_PROC
.word PID_IND
.LONG MAKE_AEROSMITH
.LONG S_AT_PORTAL_ENTRANCE
.LONG S_SET_PORTAL ; Search For Portal we are centered on
.WORD 15 ; and store it in a9
.LONG S_ENTER_PORTAL ; Set up and enter new universe
; .long GXSTAGE3+M_EP_DONT_STOP ; name of universe
.long GXSTG3BT+M_EP_DONT_STOP ; name of universe
.long -028A23H,-0ED9B00H,05B2800H ; Z, X, Y offsets
MUST_BE_IN_THE_FRONT_ROW
.LONG S_DISPATCH_SOON ;RUN UP AISLE NONBOYS
.WORD 60*4
.long WAVE1SUB1F+M_WAIT
.LONG S_SET_LONG ;SET ENEMY Z RANGE
.LONG UEP_Z
.LONG 06E00H
.LONG S_KILL_ALL_PROCS ;KILL ALL DAMAGE CYCLES
.WORD PID_DAMCC
.LONG S_CREATE_PROCR ;DAMAGE COLOR CYCLES
.WORD PID_DAMCC
.LONG 12,62,61,SPKR1p,CYCLE16 ;SPEAKER LIGHT
; .WORD PID_DAMCC
; .LONG 12,62,61,SPKR1pd,CYCLE16 ;DARKER SPEAKER LIGHT
.WORD PID_DAMCC
.LONG 12,45,44,NSTMON1p,CYCLE16 ;SPEAKER LIGHT
.WORD PID_DAMCC
.LONG 9,63,56,SPKDAM2p,CYCLE16 ;SPEAKER DAMAGE
.WORD PID_DAMCC
.LONG 12,62,56,CHRBRN1p,CYCLE16 ;SEATS DAMAGE
.WORD PID_DAMCC
.LONG 10,63,58,OBOXDAM1,CYCLE16 ;OPRA BOX DAMAGE
.WORD PID_DAMCC
.LONG 10,63,56,pdpal1,CYCLE16 ;PROSCENIUM DAMAGE
.WORD PID_DAMCC
.LONG 10,63,58,PILTOP2,CYCLE16 ;PILLAR TOP DAMAGE
.WORD PID_DAMCC
.LONG 10,63,58,PILBOT2,CYCLE16 ;PILLAR BOTTOM DAMAGE
.WORD 0
.LONG S_SOUND ;KILL SOUNDS
.LONG SND_CHAN1_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND
.LONG SND_CHAN2_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND
.LONG SND_CHAN3_OFF
.LONG S_WAIT_HERE
.WORD 1
; .LONG S_SOUND ;MAKE MUSIC
; .LONG SND_AUDITORIUM
.LONG S_CLR_SCROLL_FLAG
.LONG -1
.LONG S_Z_DECEL_LIMIT ;SLOW DOWN
.WORD -0D5H
.LONG 080H
STAGE_SCROLL
.LONG S_CLR_SCROLL_FLAG ;CLEAR SEATS BITS
.LONG 0FH
.LONG S_SET_ZSCROLL ;SET SCROLL TO STAGE
.WORD 080H
.WORD 0
.LONG S_SET_YSCROLL
; .LONG -01580H
.LONG -01780H
WAIT_FOR_FLOOR
.LONG S_WAIT_HERE
.WORD 1
.LONG S_AT_Z ;JUMP IF ON THE FLOOR
.LONG STAGE_FLOOR
.LONG 052B97H
.WORD 1
.LONG S_JUMP_IF_BIT_CLR ;DO WE GO LEFT?
.LONG CHECK_STAGE_CENTER
.LONG SCROLL_FLAG
.WORD 0
.LONG S_STOP_SCROLL
.LONG S_GOTO_XPOINT ;GO TO THE LEFT
.WORD 60*2
.LONG -0EC9B00H
.word 0
.LONG STAGE_SCROLL+M_JUMP
CHECK_STAGE_CENTER
.LONG S_JUMP_IF_BIT_CLR ;DO WE GO TO THE CENTER?
.LONG CHECK_STAGE_RIGHT
.LONG SCROLL_FLAG
.WORD 1
.LONG S_STOP_SCROLL
.LONG S_GOTO_XPOINT ;GO TO THE CENTER
.WORD 60*2
.LONG -0250B00H
.word 0
.LONG STAGE_SCROLL+M_JUMP
CHECK_STAGE_RIGHT
.LONG S_JUMP_IF_BIT_CLR ;DO WE GO RIGHT?
.LONG WAIT_FOR_FLOOR
.LONG SCROLL_FLAG
.WORD 2
.LONG S_STOP_SCROLL
.LONG S_GOTO_XPOINT ;GO TO THE RIGHT
.WORD 60*2
.LONG 0A37100H
.word 0
.LONG STAGE_SCROLL+M_JUMP
STAGE_FLOOR
.long S_GOTO_POINT0 ;GO TO CENTER FLOOR
.word 60*2
.word -022H,0
.long 054B97H
.word 0
.long S_GOTO_POINTZ ;BACK UP SOME!
.WORD 30
.long 05336CH
.word 0
.long S_GOTO_POINT
.word 10
.word -022H,0
.long 05336CH
.word 0
.LONG S_SET_ENEMIES ;TURN OFF GENERATORS
.WORD 0
.LONG S_DISPATCH_HERE
.LONG WAVE1SUB1H+M_WAIT
.WORD 0
LW S_WAIT_HERE, 100
LLW S_SET_WORD, BIGBOYS, 1000
LW S_WAIT_HERE, 260
; .long S_GOTO_POINT0 ;GO TO CENTER FLOOR
; .word 60*1
; .word -022H,5BH
; .long 06276CH
; .word 0
; .LONG S_WAIT_HERE
; .WORD 18*60
; .long S_GOTO_POINT
; .word 60*1
; .word -022H,0
; .long 05336CH
; .word 0
.LONG S_WAIT_HERE
.WORD 20
.LONG S_WAIT_HERE ;QUOTA YET?
; .WORD 20+M_QUOTA+M_CLEANUP
.WORD 100+M_QUOTA
.LONG S_SET_WORD
.long BTR_HANG_TIME ; don't stick around
.word 1h
.LONG S_SET_WORD ; make BTR come back
.long BTR_GONE
.word 0
.long S_WAIT_HERE
.word 200
.LONG S_JUMP_IF_TRUE, NO_BTR_COMEBACK, BTR_DEAD
.LONG S_WAIT_UNTIL_TRUE ;IS THE BTR GONE YET?
.long BTR_GONE
NO_BTR_COMEBACK
LLW S_SET_WORD, BTR_GONE, 0 ;Kill that fukker
.long S_GOTO_POINT0 ;Zoom up to see Aerosmith
.word 60*1
.word -022H,5BH
.long 062468H
.word 0
.long S_GOTO_POINT ;INSURANCE
.word 10
.word -022H,5BH
.long 062468H
.word 0
; .if BILL
;
;LA_SCROLL_TEST
;
; .LONG S_SOUND ;MAKE MUSIC
; .LONG SND_EAT_THE_RICH2
;
; .endif
.LONG S_SET_WORD
.LONG GUNS_OFF
.WORD 1
.long S_CLR_SCROLL_FLAG,-1
LW S_AUDIT, AUDLAAERO
LW S_WAIT_HERE, 60
.LONG S_DISPATCH_HERE
.LONG ONSTAGE_DISPATCH+M_WAIT
.WORD 0
.long S_WAIT_UNTIL_TRUE,SCROLL_FLAG
.LONG S_SET_WORD
.LONG GUNS_OFF
.WORD 0
; .IF GEORGE
;LA_SCROLL_TEST
; LW S_WAIT_HERE, 60
; .ENDIF
* Put Aerosmith abduction here
.LONG S_CREATE_PROC ;MAKE LADDER FALL
.word PID_IND
.LONG MAKE_ROPE_LADDER
; .LONG S_DISPATCH_HERE ;MAKE SOME MORE BADGUYS
; .LONG WAVE1SUB1H+M_WAIT
; .WORD 0
.LONG S_WAIT_HERE
.WORD 60
; .long S_GOTO_POINTZ ;GO TO LADDER
; .word 60
; .long 05AC1BH-0680H
; .long 06A01BH-0680H
; .word 0
; .long S_GOTO_POINT0
; .word 40
; .word -022H,5BH
;; .long 05AC1BH-0680H
; .long 064C64H
; .word 0
.LONG S_SET_LONG, WYBUFFER, 0700000H
LWL S_Y_ACCEL_LIMIT,01000H,18000H ;Go up ladder
LLLW S_WAIT_FOR_COORD,YBASE,1140000H,1 ;Wait for top
LW S_DECEL_TO_STOP,4
; .LONG S_SOUND, SND_GURU
.LONG S_SOUND, SND_EAT_THE_RICH3
; .long S_GOTO_POINTXY ;GO UP THE LADDER
; .word 60*3
; .word -022H,011CH
; .word 0
; .long S_GOTO_POINT
; .word 10
; .word -022H,011CH
;; .long 05AC1BH-0680H
; .long 064C64H
; .word 0
.if BILL
;LA_SCROLL_TEST
; .LONG S_CLR_SCROLL_FLAG
; .LONG -1
; .LONG S_WAIT_HERE
; .WORD 60*3
.endif
.LONG S_Z_ACCEL_LIMIT ;GO TOWARD 2ND CURTAIN
.WORD 010H
.LONG 0200H
.long S_WAIT_FOR_ZABS ;ARE WE THERE YET?
.LONG 062CADH
.WORD 1
.LONG ON_SCAFFOLD+M_JUMP ;CONTINUE ON SCAFFOLD
; .LONG S_SOUND
; .LONG SND_GURU
.if WARREN
WARREN_SCAFF:
.long S_GOTO_POINTZ
.word 60*2
.long 06DC8AH
.word 0
.endif
GET_DRESSED
.LONG S_CLR_SCROLL_FLAG
.LONG -1
; .LONG S_CREATE_PROCR
; .WORD PID_IND
; .LONG 60,0,[127,255],5,TRACK_FADE_PROC
; .WORD 0
.LONG S_SET_VECTOR_TABLE
.LONG LA_DRESS_VECT_TABLE
.LONG S_AT_PORTAL_ENTRANCE
.LONG S_SET_PORTAL ; Search For Portal we are centered on
.WORD 15 ; and store it in a9
.LONG S_ENTER_PORTAL ; Set up and enter new universe
.long GXDRESS3+M_EP_DONT_STOP ; name of universe
; .long GXDRESS3 ; name of universe
.long -3548H,0580000H,0 ; Z, X, Y offsets
; .LONG S_ACCEL_TO_POINT
; .WORD 60
; .WORD 058H,0
; .LONG 076F9DH
; .WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_DECEL_TO_POINT
; .WORD 90
.WORD 45
; .LONG S_GOTO_POINT
; .WORD 30
.WORD 058H,0
.LONG 076F9DH-0F00H
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINT
.WORD 10 ; DURATION
.WORD 058H,0
.LONG 076F9DH-0F00H
.WORD 0 ; SLEEP UPON ARRIVAL
;LA_SCROLL_TEST
.if BILL
; .LONG S_CLR_SCROLL_FLAG
; .LONG -1
;
; .LONG S_SET_LONG
; .LONG WXBUFFER
; .LONG 0400000H
;
; .LONG S_SET_LONG
; .LONG WYBUFFER
; .LONG 0400000H
;
; .LONG S_SOUND0 ;MAKE NO MUSIC
; .LONG SND_EAT_THE_RICH
;
; .LONG S_SET_TRACK_VOLUME
; .BYTE 0
;; .BYTE 127
; .BYTE 255
.endif
.LONG S_KILL_ALL_PROCS ;KILL ALL DAMAGE CYCLES
.WORD PID_DAMCC
.LONG S_CREATE_PROCR ;DAMAGE COLOR CYCLES
.WORD PID_DAMCC
.LONG 6,63,58,CAMTBLd1,CYCLE16 ;COCTAIL TABLE
.WORD PID_DAMCC
.LONG 5,62,56,SPKDAM2p,CYCLE16 ;SPEAKER
.WORD PID_DAMCC
.LONG 3,30,24,NGLAMP3p,CYCLE16 ;CEILING LAMP
.WORD PID_DAMCC
.LONG 2,7,1,SNOWp,CYCLE16 ;TV SNOW
.WORD 0
LW S_WAIT_HERE,2*60
.LONG S_DISPATCH_HERE
.LONG DSP_LA_DRESS1+M_WAIT
.WORD 0
LW S_WAIT_HERE,120
.LONG S_SET_WORD
.LONG BIGBOYS
.WORD 1000
MIRROR_WAIT
.LONG S_WAIT_HERE
.WORD 2
.LONG S_JUMP_IF_FALSE
.long MIRROR_WAIT
.LONG SCROLL_FLAG
.LONG S_DISPATCH_HERE
.LONG DSP_LA_DRESS2+M_WAIT
.WORD 0
LW S_WAIT_HERE, 30+M_QUOTA+M_CLEANUP ;Wait for quota and clean
.LONG S_START_DANIM ;OPEN CURTAINS
.LONG S_GOTO_POINT
.WORD 30 ; DURATION
.WORD 058H,0
.LONG 07A0A7H-0F00H
.WORD 60*5 ; SLEEP UPON ARRIVAL
.LONG S_JUMP_IF_FALSE
.long VIDEO_GO
.LONG SCROLL_FLAG
.LONG S_CALL
.LONG PUSH_BUTTON
.LONG S_CLR_SCROLL_FLAG
.LONG -1
VIDEO_GO
.LONG S_WAIT_HERE
.WORD 2
.LONG S_JUMP_IF_FALSE
.long VIDEO_GO
.LONG SCROLL_FLAG
.LONG S_CREATE_PROCR
.WORD PID_IND
; .LONG 30,0,[127,63],0,TRACK_FADE_PROC
.LONG 30,0,[255,63],0,TRACK_FADE_PROC
.WORD 0
.LONG S_GOTO_POINTZ
.WORD 30 ; DURATION
.LONG 07609DH
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINT
.WORD 10 ; DURATION
.WORD 058H,0
.LONG 07609DH
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_START_BGND
.LONG STAR_BGND
.LONG S_WAIT_HERE
.WORD 120
.long S_GOTO_POINT
.word 3
.word 058H,020H
.LONG 07609DH
.word 0
.LONG S_CREATE_PROC
.word PID_IND
.LONG MAKE_CEILING_DEBRIS
.long S_GOTO_POINT
.word 3
.word 058H,00H
.LONG 07609DH
.word 0
.long S_GOTO_POINT
.word 2
.word 058H,010H
.LONG 07609DH
.word 0
.long S_GOTO_POINT
.word 2
.word 058H,00H
.LONG 07609DH
.word 0
.long S_GOTO_POINT
.word 3
.word 058H,020H
.LONG 07609DH
.word 0
.long S_GOTO_POINT
.word 3
.word 058H,00H
.LONG 07609DH
.word 0
.long S_GOTO_POINT
.word 2
.word 058H,010H
.LONG 07609DH
.word 0
.long S_GOTO_POINT
.word 2
.word 058H,00H
.LONG 07609DH
.word 0
.LONG S_DISPATCH_HERE
.LONG WAVE1SUB1K+M_WAIT
.WORD 0
.long S_GOTO_POINT
.word 3
.word 058H,020H
.LONG 07609DH
.word 0
.long S_GOTO_POINT
.word 3
.word 058H,00H
.LONG 07609DH
.word 0
.long S_GOTO_POINT
.word 2
.word 058H,010H
.LONG 07609DH
.word 0
.long S_GOTO_POINT
.word 2
.word 058H,00H
.LONG 07609DH
.word 0
.LONG S_WAIT_HERE
.WORD 0+M_QUOTA
.LONG S_DISPATCH_HERE
.LONG WAVE1END+M_WAIT
.WORD 0
.LONG S_SET_WORD
.LONG ENEMY_HITALL
.WORD 0
; .LONG S_JUMP_IF_TRUE
; .LONG NO_WAIT
; .LONG SCROLL_FLAG
;
; .LONG S_SET_SCROLL_FLAG
; .LONG 1
;
; .LONG S_WAIT_HERE
; .WORD 120
;NO_WAIT
.LONG S_SET_LONG
.LONG YSACCEL
.LONG 04000H
.LONG S_SOUND
.LONG SND_BUST_UP
.LONG S_WAIT_HERE
.WORD 20
.LONG S_CREATE_PROC
.word PID_IND
.LONG MAKE_CEILING_SMOKE
.LONG S_WAIT_FOR_COORD
.LONG YBASE
.LONG 01F30000H
.WORD 0
.LONG S_STOP_SCROLL
*
* This is the end of the first section. Time to do bonus
*
.LONG S_SOUND,SND_SWEET_EMOTION
LLW S_SET_WORD, BONUS_DIRECTION, 0
LW S_AUDIT, AUDLAEND
.LONG S_CREATE_PROC
.word PID_IND
.LONG WAVE_END_IMM
.LONG S_DIE
SCROLL_FLITE
; .LONG S_SET_VECTOR_TABLE
; .LONG LA_OUTSIDE2_VECT_TABLE
.LONG S_ALLOW_PORTALS
; .LONG S_START_UNIVERSE
; .long GXROOF2 ; name of universe
; .long 03600000H,078E0000H,-0115F6H ; X, Y, Z
.LONG S_CREATE_PROC
.word PID_IND
.LONG MAKE_COPTER_ONTOP_PROC
.LONG S_WAIT_HERE
.WORD 3
.LONG S_SET_LONG
.LONG YSACCEL
.LONG -08000H
.LONG S_WAIT_FOR_COORD
.LONG YBASE
; .LONG 02580000H
.LONG 024A0000H
.WORD 0
.LONG S_SET_LONG
.LONG YSACCEL
.LONG 08000H
.LONG S_WAIT_FOR_COORD
.LONG YBASE
.LONG 02980000H
.WORD 0
.LONG S_SET_LONG
.LONG YSACCEL
.LONG -08000H
.LONG S_WAIT_FOR_COORD
.LONG YBASE
; .LONG 02580000H
.LONG 024A0000H
.WORD 0
.long S_GOTO_POINTXY
.word 10
; .word 0360H,0258H
.word 0360H,024AH
.word 0
.if BILL
;LA_SCROLL_TEST
.endif
.LONG S_SET_WORD ;ACTIVATE ALL ENEMIES
.LONG OBJENEMIES
.WORD -1
.LONG S_SET_LONG ;SET ENEMY Z RANGE
.LONG UEP_Z
.LONG 014000H
.if BILL
;LA_SCROLL_TEST
;
; .LONG S_CREATE_PROC
; .WORD PID_IND
; .LONG MAKE_COPTER_ONTOP_PROC
;
; .LONG S_WAIT_HERE
; .WORD 3*60+30
.endif
.LONG S_WAIT_HERE
.WORD 60*4
.LONG S_SET_LONG
.LONG WXBUFFER
.LONG 160*08000H
.LONG S_SET_LONG
.LONG WYBUFFER
.LONG 170*08000H
.LONG S_SET_WORD
.LONG UNIVERR
.WORD 1
; .LONG DSS_GO+M_JUMP
.LONG S_CREATE_PROC
.WORD PID_IND
.LONG COPTER_APPROACH_SND_PROC
; .LONG S_SOUND
; .LONG SND_CHOPPER_APPROACH
.long S_GOTO_POINT0
.word 60*2
; .word 0334H,024AH
.word 031DH,0258H
; .LONG 08780H
.LONG 0720AH
.word 0
; .LONG DSS_GO+M_JUMP
; .LONG S_SOUND
; .LONG SND_CHOPPER_INTERIOR
.LONG S_KILL_ALL_PROCS ;KILL ALL DAMAGE CYCLES
.WORD PID_DAMCC
.LONG S_CREATE_PROCR ;DAMAGE COLOR CYCLES
.WORD PID_DAMCC
.LONG 16,2,1,PSINE2,CYCLE16 ;PARKVERT
.WORD PID_DAMCC
.LONG 10,15,9,MVNPAL1,CYCLE16 ;MVNSINE1
.WORD PID_DAMCC
.LONG 20,2,1,CITY7x,CYCLE16 ;CTHEATRSINE1
.WORD PID_DAMCC
.LONG 7,8,2,MUD1p,CYCLE16 ;MUDFLAPS
.WORD PID_DAMCC
.LONG 10,7,6,RLITEp,CYCLE16 ;REDLITE2
.WORD 0
.LONG S_WAIT_HERE
.WORD 60
; .LONG S_SOUND
; .LONG SND_FLY_CHASE
.LONG S_CLR_SCROLL_FLAG
.LONG -1
.LONG S_DISPATCH_HERE ;MAKE DA COPTER
.long WAVE1SUB1M+M_WAIT
.word 0
; .LONG ENDLESS_LUPE+M_JUMP
.LONG S_WAIT_HERE
.WORD 60*3
.LONG S_SET_LONG
.LONG XSACCEL
.LONG 0800H
.LONG S_SET_LONG
.LONG YSCROLL
.LONG 010000H
.LONG S_WAIT_FOR_COORD
.LONG YBASE
; .LONG 02B00000H
; .WORD 0 ;I'M CHEATIN'
.LONG 02A00000H
.WORD 1 ;I'M CHEATIN'
.LONG S_SET_LONG
.LONG YSACCEL
; .LONG -0400H
.LONG -0860H
.LONG S_SET_LONG
.LONG XSACCEL
.LONG -0800H
.LONG S_WAIT_HERE
.WORD 30
; .LONG S_WAIT_UNTIL_TRUE
; .LONG SCROLL_FLAG ;FRONT HELICOPTER FLY OFF YET?
.LONG S_CREATE_PROC ;MAKE DA SIDE COPTER COME IN
.word PID_COPTER
.LONG COPTER_INTRO_2
.LONG S_WAIT_HERE
.WORD 30
; .LONG S_STOP_SCROLL
; .LONG ENDLESS_LUPE+M_JUMP
.LONG S_SET_LONG
.LONG YSACCEL
.LONG 01C0H
.LONG S_WAIT_FOR_VALUE
; .LONG XBASE
; .LONG -01080000H
.LONG YBASE
.LONG 02D00000H
.LONG S_SET_LONG
.LONG XSACCEL
.LONG 0
.LONG S_SET_LONG
.LONG YSCROLL
.LONG 0
.LONG S_SET_LONG
.LONG YSACCEL
.LONG 0
; .LONG S_GOTO_POINTXY
; .WORD 10 ; DURATION
; .WORD -0108H,02D0H
; .WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINT
.WORD 10 ; DURATION
.WORD -0108H,02D0H
.LONG 08780H
.WORD 0 ; SLEEP UPON ARRIVAL
; .long S_GOTO_POINT0
; .word 60
; .word 0314H,026BH
; .LONG -0973EH
; .word 30
;
; .long S_GOTO_POINT0
; .word 60*2
; .word 0E0H,035BH
; .LONG -0973EH
; .word 0
.LONG FLY_THROUGH_CITY+M_JUMP
CX_LEFTZIGZAG
.LONG S_SET_LONG
.LONG WXBUFFER
.LONG 0480000H
.LONG S_SET_LONG
.LONG WYBUFFER
.LONG 0640000H
.LONG S_ALLOW_PORTALS
.LONG S_CLEAR_CHOICE_COUNT
.LONG LA_Choice1 ;In this background
.WORD MDec_Right_Cnt ;No more going right
LLW S_SET_WORD, OBJENEMIES, -1 ;ACTIVATE ALL ENEMIES
.LONG S_DISPATCH_HERE ;NO MORE ENEMIES FOR NOW
.LONG WAVE1END+M_WAIT
.WORD 0
.LONG S_GOTO_POINT0
.WORD 60*3 ; DURATION
.WORD 02A4H,0
.LONG -08000H
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINT0
.WORD 60*3 ; DURATION
.WORD 0495H,092H
.LONG -0EAF1H
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINT0
.WORD 60*3 ; DURATION
.WORD 0304H,0F8H
.LONG -08000H
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINT0
.WORD 60*3 ; DURATION
.WORD 0495H,018BH
.LONG -0EAF1H
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINTXY
.WORD 60*3 ; DURATION
.WORD 0334H,018BH
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINTXY
.WORD 60*3 ; DURATION
.WORD 02F6H,0H
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_LOCKOUT_PORTALS
.LONG S_SET_LONG
.LONG WXBUFFER
.LONG 0400000H
.LONG S_SET_LONG
.LONG WYBUFFER
.LONG 0400000H
.LONG CX_TODOOR+M_JUMP
STAGE_RIGHT
.LONG S_SET_VECTOR_TABLE
.LONG LA_STAGE_VECT_TABLE
.LONG S_CREATE_PROC ;DON'T NEED THAT FAR SCAFFOLD
.WORD PID_IND
.LONG S_STAGE_ZFAR_PROC
.LONG S_CREATE_PROC
.word PID_IND
.LONG MAKE_AEROSMITH
.LONG S_AT_PORTAL_ENTRANCE
.LONG S_SET_PORTAL ; Search For Portal we are centered on
.WORD 15
.LONG S_ENTER_PORTAL ; Set up and enter new universe
; .long GXSTAGE3+M_EP_DONT_STOP ; name of universe
.long GXSTG3BT+M_EP_DONT_STOP ; name of universe
.long -028A23H,0A1E500H,05B2800H ; Z, X, Y offsets
.LONG MUST_BE_IN_THE_FRONT_ROW+M_JUMP
SECRET_STAGE_PALS
.LONG NEWTUN1d, NGLAMP1, ROPLDDR1, RDB2d1, RDB2d2, STEVEKERI
.LONG T2FIXED, BLUPLAYR, REDPLAYR, YELPLAYR, TEXTPAL, 0
BAR_SECRET
.LONG S_LOCKOUT_PORTALS
.LONG S_CLR_SCROLL_FLAG
.LONG -1
.LONG S_DISPATCH_HERE
.LONG WAVE1END+M_WAIT
.WORD 0
.LONG S_ACCEL_TO_POINT
.WORD 60 ; DURATION
.WORD 03DAH,02FH
; .LONG 024946H
; .LONG 01EF46H
.LONG 01C9CDH
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_DEL_ENEMY_NOAUD_OID
.WORD OID_NONBOY
.LONG S_SET_LONG
.LONG BUYIN_NOFADE
.LONG SECRET_STAGE_PALS
.LONG S_ACCEL_TO_POINT
.WORD 31 ; DURATION
.WORD 03DAH,02FH
.LONG 02F800H
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_SET_WORD
.LONG IRQSKYE
.WORD 0
.LONG S_SET_WORD
.LONG IRQGNDE
.WORD 0
.LONG S_WAIT_FOR_COORD
.LONG ZBASE
.LONG 02F801H
.WORD 0
.LONG S_STOP_SCROLL
.LONG S_SET_ENEMIES
.WORD 0
.LONG S_SET_VECTOR_TABLE
.LONG LA_STAGE_VECT_TABLE
.LONG S_SOUND ;KILL SOUNDS
.LONG SND_CHAN1_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND
.LONG SND_CHAN2_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND
.LONG SND_CHAN3_OFF
.LONG S_CREATE_PROCR
.WORD PID_IND
.LONG 30,0,[63,255],0,TRACK_FADE_PROC
.WORD 0
; .LONG S_WAIT_HERE
; .WORD 30
.LONG S_SET_LONG
.LONG WXBUFFER
.LONG 0
.LONG S_SET_LONG
.LONG WYBUFFER
.LONG 0
.LONG S_SET_WORD
.LONG UNIVERR
.WORD 1
.LONG S_CLR_SCROLL_FLAG
.LONG -1
.LONG S_DEL_ALL_UNIVOBJ_WAIT
.LONG S_BLACKOUT
.LONG S_SET_LONG
.LONG WXBUFFER
.LONG 0400000H
.LONG S_SET_LONG
.LONG WYBUFFER
.LONG 0400000H
; .LONG ENDLESS_LUPE+M_JUMP
.LONG S_START_UNIVERSE0
; .long GXSTAGE3 ; name of universe
.long GXSTG3TP ; name of universe
.long -0220000H,0,02888EH ; X NEW, Y NEW, Z CONTINUOUS
.LONG 05DE86H ; Z OFFSET
.LONG S_KILL_ALL_PROCS ;KILL ALL DAMAGE CYCLES
.WORD PID_DAMCC
;Bar secret
; .IF GEORGE
;LA_SCROLL_TEST
; LW S_WAIT_HERE, 60
; .ENDIF
.LONG S_CREATE_PROCR ;DAMAGE COLOR CYCLES
.WORD PID_DAMCC
.LONG 12,62,61,SPKR1p,CYCLE16 ;SPEAKER LIGHT
; .WORD PID_DAMCC
; .LONG 12,62,61,SPKR1pd,CYCLE16 ;DARKER SPEAKER LIGHT
.WORD PID_DAMCC
.LONG 12,45,44,NSTMON1p,CYCLE16 ;SPEAKER LIGHT
.WORD PID_DAMCC
.LONG 9,63,56,SPKDAM2p,CYCLE16 ;SPEAKER DAMAGE
.WORD PID_DAMCC
.LONG 12,62,56,CHRBRN1p,CYCLE16 ;SEATS DAMAGE
.WORD PID_DAMCC
.LONG 10,63,58,OBOXDAM1,CYCLE16 ;OPRA BOX DAMAGE
.WORD PID_DAMCC
.LONG 10,63,56,pdpal1,CYCLE16 ;PROSCENIUM DAMAGE
.WORD PID_DAMCC
.LONG 10,63,58,PILTOP2,CYCLE16 ;PILLAR TOP DAMAGE
.WORD PID_DAMCC
.LONG 10,63,58,PILBOT2,CYCLE16 ;PILLAR BOTTOM DAMAGE
.WORD PID_DAMCC
.LONG 3,30,24,NGLAMP3p,CYCLE16 ;CEILING LAMP
.WORD 0
.LONG S_WAIT_HERE
.WORD 2
; .LONG S_CHANGE_ZFAR
; .LONG 09000H
.LONG S_SET_GRND_COLOR
.WORD 0
.LONG S_WAIT_HERE
.WORD 10
.LONG S_WAIT_HERE
.WORD 30
.LONG S_SOUND0 ;MAKE NO MUSIC
.LONG SND_EAT_THE_RICH2
.LONG S_SET_TRACK_VOLUME
.BYTE 0
.BYTE 63
.LONG S_SECRET_PALS
.LONG S_SET_WORD
.LONG ENEMY_HITALL
.WORD 1
BLACKOUT_DUDES
.LONG S_DISPATCH_HERE
.LONG WAVE1SUB1I+M_WAIT
.WORD 0
QUOTA_CLEAR_WAIT
.LONG S_WAIT_HERE
.WORD 10
.LONG S_JUMP_IF_TRUE
.LONG QUOTA_CLEAR_WAIT
.LONG ENEMY_QUOTA
SWITCH_WAIT
.LONG S_WAIT_HERE
.WORD 10
.LONG S_JUMP_IF_FALSE
.LONG BS_LIGHTS_ON
.LONG BLACKOUT
.LONG S_JUMP_IF_TRUE
.LONG BLACKOUT_DUDES
.LONG ENEMY_QUOTA
.LONG SWITCH_WAIT+M_JUMP
BS_LIGHTS_ON
.LONG S_SET_LONG, BUYIN_NOFADE, 0
LW S_WAIT_HERE,M_CLEANUP
;ENEMY_LUPE
; .LONG S_WAIT_HERE
; .WORD 0+M_QUOTA
; .LONG S_JUMP_IF_TRUE
; .LONG GO_UP_NOW
; .LONG SCROLL_FLAG
; .LONG S_DISPATCH_HERE
; .LONG WAVE1SUB1I+M_WAIT
; .WORD 0
; .LONG ENEMY_LUPE+M_JUMP
;GO_UP_NOW
.LONG S_DISPATCH_HERE
.LONG WAVE1END+M_WAIT
.WORD 0
.LONG S_GOTO_POINTZ
.WORD 60 ; DURATION
.LONG 02DA92H-0F00H-0680H
; .LONG 02B000H
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_ZPOINT
.WORD 10 ; DURATION
.LONG 02DA92H-0F00H-0680H
; .LONG 02B000H
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_SET_WORD
.LONG UNIVERR
.WORD 1
.long S_GOTO_POINTXY
.word 60*3
.word -022H,011CH
.word 0
.LONG S_GOTO_POINT
.WORD 10 ; DURATION
.word -022H,011CH
.LONG 02DA92H-0F00H-0680H
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_CHANGE_ZFAR
.LONG 070000H
.LONG S_WAIT_HERE
.WORD 30
.LONG S_START_UID_DANIM
.WORD 2 << 8 + 12
.LONG S_SET_TRACK_VOLUME
.BYTE 0
.BYTE 255
LW S_START_UID_DANIM, 1 << 8 + 31
LW S_WAIT_HERE, 120
.LONG S_DISPATCH_HERE
.LONG WAVE1SUB1J+M_WAIT
.WORD 0
.LONG S_SET_WORD
.LONG ENEMY_HITALL
.WORD 1
LW S_WAIT_HERE, 30
.LONG S_Z_ACCEL_LIMIT
.WORD 08H
.LONG 0200H
.long S_WAIT_FOR_ZABS
.LONG 062CADH
.WORD 1
ON_SCAFFOLD
LLW S_SET_WORD, ENEMY_HITALL, 1 ;Do it again 'cause entrypoint
LLW S_DISPATCH_HERE, DSP_LA_SCAFFOLD2, 0
LW S_WAIT_HERE, 2
.LONG S_START_UID_DANIM
.WORD 2 << 8 + 13
.long S_DECEL_TO_POINT
.word 60*3
.word -022H,011CH
.long 071FADH-0F00H
.word 0
.LONG S_SET_LONG, WYBUFFER, 0400000H
.LONG S_GOTO_POINT
.WORD 10 ; DURATION
.word -022H,011CH
.long 071FADH-0F00H
.word 0
;LA_SCROLL_TEST
; .LONG S_SET_LONG
; .LONG UNIV_ZOFF
; .LONG 0
; .LONG S_SET_LONG
; .LONG UNIV_YOFF
; .LONG 0
; .LONG S_WAIT_HERE
; .WORD 60
.LONG S_CLR_SCROLL_FLAG
.LONG -1
.LONG S_DISPATCH_HERE
.long WAVE1SUB1L+M_WAIT
.word 15
LW S_WAIT_HERE,30+M_QUOTA
.LONG S_DISPATCH_HERE
.long DSP_LA_SCAFFOLD3+M_WAIT
.word 1
.LONG S_START_UID_DANIM
.WORD 2 << 8 + 14
STAR_LUPE
.LONG S_WAIT_HERE
.WORD 1
SCAFF2_LOOP
.LONG S_JUMP_ON_SHOOTING_NONBOYS, SCAFF2_WAIT
.LONG S_CREATE_PROCR ;Start the drop in Nonboys
.WORD PID_NONBOY
.LONG 077B5BH,-010C4000H,-018C4000H,-0528000H,CREATE_DROP_SHOOTING_NONBOY
.WORD PID_NONBOY
.LONG 077B5BH,-010C4000H,-018C4000H,-0228000H,CREATE_DROP_SHOOTING_NONBOY
.WORD PID_NONBOY
.LONG 077B5BH,-010C4000H,-018C4000H,0D8000H,CREATE_DROP_SHOOTING_NONBOY
.WORD 0
SCAFF2_WAIT
LW S_WAIT_HERE,1
.LONG S_JUMP_IF_TRUE, SCAFF2_DONE, SCROLL_FLAG
LW S_WAIT_HERE,15
.LONG SCAFF2_LOOP+M_JUMP
SCAFF2_DONE
; LW S_WAIT_HERE,30
; .LONG S_JUMP_IF_FALSE
; .LONG STAR_LUPE
; .LONG SCROLL_FLAG
; .LONG S_SOUND
; .LONG SND_GURU
.long S_GOTO_POINTZ
.word 60*1
.long 06DC8AH+02104H-0F00H
.word 0
.LONG GET_DRESSED+M_JUMP
FLY_THROUGH_CITY
.LONG S_START_UNIVERSE
.long GXFLITE4 ; name of universe
.long 01860000H,02D00000H,08780H
.LONG S_SET_LONG
.LONG NewGNDCol
.LONG 0
;LA_SCROLL_TEST
; .LONG S_WAIT_HERE
; .WORD 60
.LONG S_SET_LONG
.LONG XSCROLL
.LONG -060000H
.LONG S_SET_LONG
.LONG YSCROLL
; .LONG -025C00H
.LONG -021000H
.LONG S_SET_LONG
.LONG ZSCROLL
.LONG -021800H
.LONG S_DOZER_ACCEL
.WORD 60 << 8 + M_Z << 3 + M_Z + M_Y
.LONG -07800H ;Z BOUNDARY
.LONG 0 ;Y TARGET VELOCITY
.LONG 0 ;Z TARGET VELOCITY
;1ST TURN
.LONG S_WAIT_FOR_COORD
.LONG XBASE
.LONG -06000000H
.WORD 1
.LONG S_CREATE_PROC
.word PID_COPTER
.LONG COPTER_ATTACK_1
.LONG S_WAIT_FOR_COORD
.LONG XBASE
.LONG -07000000H
.WORD 1
.LONG S_DOZER_ACCEL
.WORD 48 << 8 + M_X << 3 + M_Z + M_Y + M_X
; .LONG -07960000H ;X BOUNDARY
.LONG -07A00000H ;X BOUNDARY
.LONG 0 ;X TARGET VELOCITY
; .LONG -03C00H ;Y TARGET VELOCITY
.LONG -05A00H ;Y TARGET VELOCITY
.LONG 01B600H ;Z TARGET VELOCITY
; .LONG 0 ;Y TARGET VELOCITY
; .LONG 010000H ;Z TARGET VELOCITY
; .LONG S_SET_LONG
; .LONG YSACCEL
; .LONG -0200H
;
; .LONG S_SET_LONG
; .LONG ZSACCEL
; .LONG 08E0H
;
; .LONG S_X_DECEL_LIMIT
; .WORD 02000H
; .LONG 0
;
; .LONG S_SET_LONG
; .LONG YSACCEL
; .LONG 0
;
; .LONG S_SET_LONG
; .LONG ZSACCEL
; .LONG 0
;2ND TURN
.LONG S_WAIT_FOR_COORD
.LONG ZBASE
.LONG 0
; .LONG 010000H
.WORD 1
.LONG S_DOZER_ACCEL
.WORD 107 << 8 + M_Z << 3 + M_Z + M_Y + M_X
.LONG 01B000H ;Z BOUNDARY
.LONG -06B000H ;X TARGET VELOCITY
.LONG 0 ;Y TARGET VELOCITY
.LONG 0 ;Z TARGET VELOCITY
; .LONG S_SET_LONG
; .LONG XSACCEL
; .LONG -01000H
;
; .LONG S_XYZ_DECEL_LIMIT
; .WORD 0,01000H,-010H
; .LONG 0,0,0
;
; .LONG S_SET_LONG
; .LONG XSACCEL
; .LONG 0
;3RD TURN
.LONG S_WAIT_FOR_COORD
.LONG XBASE
.LONG -0A500000H
.WORD 1
.LONG S_CREATE_PROC
.word PID_COPTER
.LONG COPTER_ATTACK_2
.LONG S_WAIT_FOR_COORD
.LONG XBASE
.LONG -0B800000H
.WORD 1
.LONG S_DOZER_ACCEL
.WORD 54 << 8 + M_X << 3 + M_Z + M_Y + M_X
.LONG -0C3F0000H ;X BOUNDARY
.LONG 0 ;X TARGET VELOCITY
; .LONG -010800H ;Y TARGET VELOCITY
.LONG -010300H ;Y TARGET VELOCITY
.LONG 01E100H ;Z TARGET VELOCITY
; .LONG S_SET_LONG
; .LONG YSACCEL
; .LONG -0400H
;
; .LONG S_SET_LONG
; .LONG ZSACCEL
; .LONG 0600H
;
; .LONG S_X_DECEL_LIMIT
; .WORD 02000H
; .LONG 0
;
; .LONG S_SET_LONG
; .LONG YSACCEL
; .LONG 0
;
; .LONG S_SET_LONG
; .LONG ZSACCEL
; .LONG 0
;4TH TURN
.LONG S_WAIT_FOR_COORD
.LONG ZBASE
.LONG 03F980H
.WORD 1
; .if GEORGE
;LA_SCROLL_TEST
; .LONG S_SET_LONG, WXBUFFER, 160*08000H
; .LONG S_SET_LONG, WYBUFFER, 170*08000H
; LW S_WAIT_HERE, 30
; .endif
.LONG S_DOZER_ACCEL
.WORD 67 << 8 + M_Z << 3 + M_Z + M_Y + M_X
.LONG 04F800H ;Z BOUNDARY
.LONG -053000H ;X TARGET VELOCITY
.LONG 0 ;Y TARGET VELOCITY
.LONG 0 ;Z TARGET VELOCITY
; .LONG S_SET_LONG
; .LONG XSACCEL
; .LONG -01000H
;
; .LONG S_XYZ_DECEL_LIMIT
; .WORD 0,0800H,-010H
; .LONG 0,0,0
;
; .LONG S_VSET_LONG
; .LONG XSACCEL
; .LONG 0
; .LONG S_CREATE_PROC
; .word PID_COPTER
; .LONG COPTER_FLY_1
;5TH TURN
.LONG S_WAIT_FOR_COORD
.LONG XBASE
.LONG -011800000H
.WORD 1
.LONG S_CREATE_PROC
.word PID_COPTER
.LONG COPTER_FLY_1
.LONG S_DOZER_ACCEL
.WORD 60 << 8 + M_X << 3 + M_Z + M_Y + M_X
.LONG -01214C79BH ;X BOUNDARY
.LONG 0 ;X TARGET VELOCITY
.LONG 09200H ;Y TARGET VELOCITY
.LONG 013000H ;Z TARGET VELOCITY
; .LONG S_SET_LONG
; .LONG YSACCEL
; .LONG 0200H
;
; .LONG S_SET_LONG
; .LONG ZSACCEL
; .LONG 0400H
;
; .LONG S_X_DECEL_LIMIT
; .WORD 01800H
; .LONG 0
;
; .LONG S_SET_LONG
; .LONG YSACCEL
; .LONG 0
;
; .LONG S_SET_LONG
; .LONG ZSACCEL
; .LONG 0
;6TH TURN
.LONG S_WAIT_FOR_COORD
.LONG ZBASE
.LONG 060000H
.WORD 1
.LONG S_DOZER_ACCEL
.WORD 56 << 8 + M_Z << 3 + M_Z + M_Y + M_X
.LONG 069000H ;Z BOUNDARY
.LONG -072000H ;X TARGET VELOCITY
.LONG 0 ;Y TARGET VELOCITY
.LONG 0 ;Z TARGET VELOCITY
; .LONG S_SET_LONG
; .LONG XSACCEL
; .LONG -02000H
;
; .LONG S_XYZ_DECEL_LIMIT
; .WORD 0,-0800H,-010H
; .LONG 0,0,0
;
; .LONG S_SET_LONG
; .LONG XSACCEL
; .LONG 0
;7TH TURN
.LONG S_WAIT_FOR_COORD
.LONG XBASE
.LONG -014620000H
.WORD 1
.LONG S_CREATE_PROC
.word PID_COPTER
.LONG COPTER_ATTACK_3
.LONG S_DOZER_ACCEL
.WORD 28 << 8 + M_X << 3 + M_Z + M_Y + M_X
.LONG -014C2C79BH ;X BOUNDARY
.LONG 0 ;X TARGET VELOCITY
.LONG -018400H ;Y TARGET VELOCITY
.LONG 016800H ;Z TARGET VELOCITY
; .LONG S_SET_LONG
; .LONG YSACCEL
; .LONG -0C80H
;
; .LONG S_SET_LONG
; .LONG ZSACCEL
; .LONG 0B80H
;
; .LONG S_X_DECEL_LIMIT
; .WORD 04000H
; .LONG 0
;
; .LONG S_SET_LONG
; .LONG YSACCEL
; .LONG 0
;
; .LONG S_SET_LONG
; .LONG ZSACCEL
; .LONG 0
.if BILL
;LA_SCROLL_TEST
; .LONG S_SET_LONG
; .LONG WXBUFFER
; .LONG 150*08000H
;
; .LONG S_SET_LONG
; .LONG WYBUFFER
; .LONG 170*08000H
;
; .LONG S_DISPATCH_HERE ;MAKE DA COPTER
; .long WAVE1SUB1M+M_WAIT
; .word 0
;
; .LONG S_CREATE_PROC
; .word PID_IND
; .LONG MAKE_COPTER_ONTOP_PROC
;
; .LONG S_CREATE_PROC
; .word PID_COPTER
; .LONG MAKE_SIDE_COPTER_PROC
;
; .LONG S_WAIT_HERE
; .WORD 60
;
; .LONG S_SET_LONG
; .LONG YSCROLL
; .LONG -018400H
;
; .LONG S_SET_LONG
; .LONG ZSCROLL
; .LONG 016800H
.endif
;8TH TURN
.LONG S_WAIT_FOR_COORD
.LONG ZBASE
.LONG 0A2800H
.WORD 1
.LONG S_DOZER_ACCEL
.WORD 90 << 8 + M_Z << 3 + M_Z + M_Y + M_X
.LONG 0B2800H ;Z BOUNDARY
.LONG 0A2000H ;X TARGET VELOCITY
.LONG 0C000H ;Y TARGET VELOCITY
.LONG 0 ;Z TARGET VELOCITY
; .LONG S_SET_LONG
; .LONG XSACCEL
; .LONG 02000H
;
; .LONG S_XYZ_DECEL_LIMIT
; .WORD 0,0800H,-010H
; .LONG 0,0,0
;
; .LONG S_SET_LONG
; .LONG XSACCEL
; .LONG 0
;
; .LONG S_Y_ACCEL_BURST
; .WORD 02000H
; .WORD 7
.if BILL
;LA_SCROLL_TEST
; .LONG S_SET_LONG
; .LONG WXBUFFER
; .LONG 150*08000H
;
; .LONG S_SET_LONG
; .LONG WYBUFFER
; .LONG 170*08000H
;
; .LONG S_CREATE_PROC
; .word PID_COPTER
; .LONG MAKE_SIDE_COPTER_PROC
;
; .LONG S_CREATE_PROC
; .word PID_COPTER
; .LONG MAKE_FRONT_COPTER_PROC
;
; .LONG S_WAIT_HERE
; .WORD 60
.endif
; .LONG S_SET_LONG
; .LONG WXBUFFER
; .LONG 150*08000H
;
; .LONG S_SET_LONG
; .LONG WYBUFFER
; .LONG 170*08000H
.LONG S_CREATE_PROC
.word PID_COPTER
.LONG COPTER_FLY_2
.if BILL
; .LONG S_SET_LONG
; .LONG XSCROLL
; .LONG 0A2000H
;
; .LONG S_SET_LONG
; .LONG YSCROLL
; .LONG 0C000H
.endif
;9TH CLIMB
; .LONG S_WAIT_FOR_COORD
; .LONG XBASE
; .LONG -08924000H
; .WORD 1
.LONG S_WAIT_FOR_COORD
.LONG XBASE
.LONG -06000000H
.WORD 1
.LONG S_DOZER_ACCEL
.WORD 28 << 8 + M_Y << 3 + M_Y
.LONG 02128800H ;Y BOUNDARY
.LONG 0 ;Y TARGET VELOCITY
; .LONG S_Y_DECEL_LIMIT
; .WORD -0200H
; .LONG 0
;
; .LONG S_WAIT_FOR_COORD
; .LONG XBASE
; .LONG -054EE800H
; .WORD 1
;
.LONG S_X_DECEL_LIMIT
.WORD -0800H
.LONG 040000H
;LA_SCROLL_TEST
; .LONG S_WAIT_HERE
; .WORD 60
; .LONG S_SET_LONG
; .LONG XSCROLL
; .LONG 040000H
.LONG S_WAIT_FOR_COORD
.LONG XBASE
.LONG 0C300000H
.WORD 1
.LONG S_CREATE_PROC
.word PID_COPTER
.LONG COPTER_ATTACK_4
;10TH TURN
.LONG S_WAIT_FOR_COORD
.LONG XBASE
.LONG 0D300000H
.WORD 1
;
; .LONG S_STOP_SCROLL
; .LONG ENDLESS_LUPE+M_JUMP
;
.LONG S_DOZER_ACCEL
.WORD 32 << 8 + M_X << 3 + M_Z + M_Y + M_X
.LONG 0D7573D0H ;X BOUNDARY
.LONG 0 ;X TARGET VELOCITY
.LONG -012000H ;Y TARGET VELOCITY
.LONG 016000H ;Z TARGET VELOCITY
; .LONG S_SET_LONG
; .LONG YSACCEL
; .LONG -0B00H
;
; .LONG S_SET_LONG
; .LONG ZSACCEL
; .LONG 0B00H
;
; .LONG S_X_DECEL_LIMIT
; .WORD -02000H
; .LONG 0
;
; .LONG S_SET_LONG
; .LONG YSACCEL
; .LONG 0
;
; .LONG S_SET_LONG
; .LONG ZSACCEL
; .LONG 0
;11TH TURN
.LONG S_WAIT_FOR_COORD
.LONG ZBASE
.LONG 0C928CH
.WORD 1
.LONG S_DOZER_ACCEL
.WORD 30 << 8 + M_Z << 3 + M_Z + M_Y + M_X
.LONG 0D128CH ;Z BOUNDARY
.LONG -048000H ;X TARGET VELOCITY
.LONG 0 ;Y TARGET VELOCITY
.LONG 0C000H ;Z TARGET VELOCITY
;12TH ZOOM
.LONG S_DOZER_ACCEL
.WORD 73 << 8 + M_Z << 3 + M_Z + M_Y + M_X
.LONG 0D928CH ;Z BOUNDARY
.LONG 058000H ;X TARGET VELOCITY
.LONG -02A00H ;Y TARGET VELOCITY
.LONG 02000H ;Z TARGET VELOCITY
; .LONG S_SET_LONG
; .LONG XSACCEL
; .LONG 01000H
;
; .LONG S_XYZ_DECEL_LIMIT
; .WORD 0,01000H,-010H
; .LONG 0,0,0
;
; .LONG S_SET_LONG
; .LONG XSACCEL
; .LONG 0
;;12TH ZOOM
; .LONG S_XYZ_ACCEL_BURST
; .WORD 0,0,028H
; .WORD 4
.LONG S_WAIT_FOR_COORD
.LONG XBASE
.LONG 0E000000H
.WORD 1
.LONG S_CREATE_PROC
.word PID_COPTER
.LONG COPTER_FLY_2_1
.LONG S_WAIT_FOR_COORD
.LONG XBASE
.LONG 011FBE800H
.WORD 1
.LONG S_DOZER_ACCEL
.WORD 30 << 8 + M_Z << 3 + M_Z + M_Y
.LONG 0E0A8CH ;Z BOUNDARY
.LONG 0 ;Y TARGET VELOCITY
.LONG 0 ;Z TARGET VELOCITY
; .LONG S_XYZ_DECEL_LIMIT
; .WORD 0,0,-010H
; .LONG 0,0,0
;13TH TURN
.LONG S_WAIT_FOR_COORD
.LONG XBASE
.LONG 014000000H
.WORD 1
; .if GEORGE
;LA_SCROLL_TEST
; .LONG S_SET_LONG, WXBUFFER, 160*08000H
; .LONG S_SET_LONG, WYBUFFER, 170*08000H
; LW S_WAIT_HERE, 30
; .endif
.LONG S_DOZER_ACCEL
.WORD 44 << 8 + M_Z << 3 + M_Z + M_Y + M_X
.LONG 0E929CH ;Z BOUNDARY
.LONG 0 ;X TARGET VELOCITY
.LONG -014000H ;Y TARGET VELOCITY
.LONG 01A200H ;Z TARGET VELOCITY
;14TH TURN
.LONG S_DOZER_ACCEL
.WORD 110 << 8 + M_Z << 3 + M_Z + M_Y + M_X
.LONG 010028CH ;Z BOUNDARY
; .LONG 069000H ;X TARGET VELOCITY
.LONG 040000H ;X TARGET VELOCITY
.LONG 0 ;Y TARGET VELOCITY
.LONG 0 ;Z TARGET VELOCITY
; .LONG S_CREATE_PROC
; .word PID_COPTER
; .LONG COPTER_FLY_3
.LONG S_CREATE_PROCR ;Start the left side Cogs
.WORD PID_IND
.LONG 10B000H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD PID_IND
.LONG 10F800H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD PID_IND
.LONG 118800H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD 0
LW S_WAIT_HERE, 30
.LONG S_CREATE_PROCR ;Start a second batch
.WORD PID_IND
.LONG 10B000H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD PID_IND
.LONG 10F800H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD PID_IND
.LONG 114000H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD PID_IND
.LONG 118800H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD 0
LW S_WAIT_HERE, 30
.LONG S_CREATE_PROCR ;Start a third batch
.WORD PID_IND
.LONG 10B000H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD PID_IND
.LONG 10F800H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD PID_IND
.LONG 114000H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD PID_IND
.LONG 118800H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD 0
LW S_WAIT_HERE, 30
.LONG S_CREATE_PROCR ;Start a fourth
; .WORD PID_IND
; .LONG 10B000H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD PID_IND
.LONG 10F800H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD PID_IND
.LONG 114000H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
; .WORD PID_IND
; .LONG 118800H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD 0
LW S_WAIT_HERE, 30
.LONG S_CREATE_PROCR ;Start a fifth batch
.WORD PID_IND
.LONG 10B000H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD PID_IND
.LONG 10F800H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD PID_IND
.LONG 114000H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
; .WORD PID_IND
; .LONG 118800H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD 0
LW S_WAIT_HERE, 80
.LONG S_CREATE_PROCR ;Start a sixth batch
.WORD PID_IND
.LONG 10B000H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD PID_IND
.LONG 10F800H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
; .WORD PID_IND
; .LONG 114000H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD PID_IND
.LONG 118800H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD 0
LW S_WAIT_HERE, 30
.LONG S_CREATE_PROCR ;Start a seventh batch
.WORD PID_IND
.LONG 10B000H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD PID_IND
.LONG 10F800H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD PID_IND
.LONG 114000H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
; .WORD PID_IND
; .LONG 118800H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD 0
LW S_WAIT_HERE, 30
.LONG S_CREATE_PROCR ;Start an eighth batch
.WORD PID_IND
.LONG 10B000H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD PID_IND
.LONG 10F800H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
; .WORD PID_IND
; .LONG 114000H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD PID_IND
.LONG 118800H,-1250000H,164B0000H,0,PROC_COG_GARAGE_LEFT
.WORD 0
; .LONG S_SET_LONG
; .LONG YSACCEL
; .LONG -01000H
;
; .LONG S_SET_LONG
; .LONG ZSACCEL
; .LONG 0980H
;
; .LONG S_X_DECEL_LIMIT
; .WORD -02000H
; .LONG 0
;
; .LONG S_SET_LONG
; .LONG YSACCEL
; .LONG 0
;
; .LONG S_SET_LONG
; .LONG ZSACCEL
; .LONG 0
;
;;14TH TURN
; .LONG S_WAIT_FOR_COORD
; .LONG ZBASE
; .LONG 0D0A8CH
; .WORD 1
;
; .LONG S_SET_LONG
; .LONG XSACCEL
; .LONG 01000H
;
; .LONG S_XYZ_DECEL_LIMIT
; .WORD 0,01000H,-010H
; .LONG 0,0,0
;
; .LONG S_SET_LONG
; .LONG XSACCEL
; .LONG 0
.LONG S_WAIT_FOR_COORD
.LONG XBASE
.LONG 019481557H
.WORD 1
; .LONG S_CREATE_PROC
; .word PID_COPTER
; .LONG COPTER_ATTACK_5
;15TH SLOWDOWN SPEEDUP
; .LONG S_WAIT_FOR_COORD
; .LONG XBASE
; .LONG 01AB7B000H
; .WORD 1
; .LONG S_X_DECEL_LIMIT
; .WORD -02000H
; .LONG 040000H
;
; .LONG S_X_ACCEL_LIMIT
; .WORD 02000H
; .LONG 069000H
.LONG S_WAIT_FOR_COORD
.LONG XBASE
.LONG 01E621557H
.WORD 1
; .LONG S_CREATE_PROC
; .word PID_COPTER
; .LONG COPTER_FLY_4
.LONG S_WAIT_FOR_COORD
.LONG XBASE
.LONG 020B21557H
.WORD 1
; .LONG S_CREATE_PROC
; .word PID_COPTER
; .LONG COPTER_ATTACK_6
;16TH SLOWDOWN SPEEDUP
; .LONG S_WAIT_FOR_COORD
; .LONG XBASE
; .LONG 022204000H
; .WORD 1
; .LONG S_X_DECEL_LIMIT
; .WORD -02000H
; .LONG 040000H
; .LONG S_X_ACCEL_LIMIT
; .WORD 02000H
; .LONG 069000H
;17TH TURN
.LONG S_WAIT_FOR_COORD
.LONG XBASE
; .LONG 027F80000H
.LONG 028340000H
.WORD 1
.LONG S_DOZER_ACCEL
.WORD 48 << 8 + M_X << 3 + M_Z + M_X
.LONG 028948000H ;X BOUNDARY
.LONG 0 ;X TARGET VELOCITY
.LONG 010000H ;Z TARGET VELOCITY
; .LONG S_SET_LONG
; .LONG ZSACCEL
; .LONG 0480H
;
; .LONG S_X_DECEL_LIMIT
; .WORD -02000H
; .LONG 0
;
; .LONG S_SET_LONG
; .LONG ZSACCEL
; .LONG 0
;18TH TURN
.LONG S_WAIT_FOR_COORD
.LONG ZBASE
.LONG 0D0A8CH
.WORD 1
.LONG S_DOZER_ACCEL
.WORD 56 << 8 + M_Z << 3 + M_Z + M_Y
.LONG 010D0A0H ;Z BOUNDARY
; .LONG 078000H ;Y TARGET VELOCITY
.LONG 068000H ;Y TARGET VELOCITY
.LONG 0 ;Z TARGET VELOCITY
; .LONG S_SET_LONG
; .LONG YSACCEL
; .LONG 02000H
;
; .LONG S_Z_DECEL_LIMIT
; .WORD -010H
; .LONG 0
;
; .LONG S_SET_LONG
; .LONG YSACCEL
; .LONG 0
.LONG S_CREATE_PROC
.word PID_COPTER
.LONG COPTER_ATTACK_FINAL
;19TH END
.LONG S_WAIT_FOR_COORD
.LONG YBASE
.LONG 06600000H
.WORD 1
.LONG S_SET_LONG
.LONG WYBUFFER
.LONG 0600000H
.LONG S_Y_DECEL_LIMIT
.WORD -02000H
.LONG 0
.if BILL
LA_SCROLL_TEST
.LONG S_SOUND
.LONG SND_FLY_CHASE
.LONG S_SET_LONG
.LONG WXBUFFER
.LONG 160*08000H
.LONG S_SET_LONG
.LONG WYBUFFER
.LONG 0600000H
.LONG S_SET_WORD
.LONG UNIVERR
.WORD 1
.LONG S_CREATE_PROC
.WORD PID_IND
.LONG MAKE_COPTER_ONTOP_PROC
.LONG S_DISPATCH_HERE ;MAKE DA COPTER
.long WAVE1SUB1M+M_WAIT
.word 0
.LONG S_WAIT_HERE
.WORD 10
.LONG S_CREATE_PROC
.WORD PID_COPTER
.LONG COPTER_ATTACK_FINAL
.endif
; .LONG S_GOTO_POINT0 ;GO IN FRONT OF THE DOORS?
; .WORD 30 ; DURATION
; .WORD 02893H,0743H
; .LONG 010D09Ah ;X, Y, Z DESTINATION
; .WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINT0
.WORD 45
.WORD 02893H,0743H
.LONG 010D09Ah ;X, Y, Z DESTINATION
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINT
.WORD 2
.WORD 02893H,0743H
.LONG 010D09Ah ;X, Y, Z DESTINATION
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_SET_LONG
.LONG SCROLL_FLAG
.LONG 0
.LONG S_CREATE_PROC
.WORD PID_IND
.LONG SCROLL_HOVER_PROC
LW S_AUDIT, AUDFLHELI
.LONG S_LOAD_BOSS_PUNISH
.LONG S_WAIT_HERE
.WORD 1+M_QUOTA ;WAIT FOR COPTER TO DIE
.LONG S_SOUND, SND_FLY_CHASE ;For good measure
.LONG S_SET_LONG
.LONG SCROLL_FLAG
.LONG 1
STOP_Y_DAMMIT
.LONG S_WAIT_HERE
.WORD 1
.LONG S_JUMP_IF_TRUE
.LONG STOP_Y_DAMMIT
.LONG SCROLL_FLAG
;LA_SCROLL_TEST
.if BILL
; .LONG S_CREATE_PROC
; .WORD PID_IND
; .LONG MAKE_COPTER_ONTOP_PROC
;
; .LONG S_SET_LONG
; .LONG WXBUFFER
; .LONG 0400000H
;
; .LONG S_SET_LONG
; .LONG WYBUFFER
; .LONG 0400000H
;
; .LONG S_SOUND
; .LONG SND_FLY_CHASE
;
; .LONG S_WAIT_HERE
; .WORD 60
.endif
; .LONG S_CREATE_PROCR
; .WORD PID_IND
; .LONG 97,0,[0,255],0,TRACK_FADE_PROC
; .WORD 0
.LONG S_DOZER_ACCEL
; .WORD 30 << 8 + M_Z << 3 + M_Z + M_Y
.WORD 30 << 8 + M_Z << 3 + M_Z
.LONG 012D0A0H ;Z BOUNDARY
; .LONG 08000H ;Y TARGET VELOCITY
.LONG 010000H ;Z TARGET VELOCITY
.LONG S_WAIT_FOR_COORD
.LONG ZBASE
.LONG 0124000H
.WORD 0
; .LONG S_DOZER_ACCEL
; .WORD 30 << 8 + M_Z << 3 + M_Z + M_Y
;; .LONG 012D0A0H ;Z BOUNDARY
; .LONG 0742D050H ;Y BOUNDARY
; .LONG -010000H ;Y TARGET VELOCITY
; .LONG 0 ;Z TARGET VELOCITY
.LONG S_START_UNIVERSE
.long GXCARLA1 ; name of universe
; .long 020000H,0742D050H,-09000H ; X, Y, Z
.long 020000H,0742D050H,-0B480H ; X, Y, Z
; .LONG S_SOUND0 ;MAKE NO MUSIC
; .LONG SND_SWEET_EMOTION
; .LONG S_CREATE_PROCR
; .WORD PID_IND
; .LONG 150,0,[25,255],0,TRACK_FADE_PROC
; .WORD 0
.LONG S_DOZER_ACCEL
.WORD 180 << 8 + M_Y << 3 + M_Y
.LONG 03185050H ;Y BOUNDARY
.LONG -0100000H ;Y TARGET VELOCITY
.LONG S_WAIT_FOR_COORD
.LONG YBASE
.LONG 03185050H
.WORD 1
.LONG S_DOZER_ACCEL
.WORD 100 << 8 + M_Y << 3 + M_Y
.LONG 0 ;Y BOUNDARY
.LONG 0 ;Y TARGET VELOCITY
.LONG S_GOTO_POINT
.WORD 1
.WORD 02H,0
; .LONG -09000H
.LONG -0B480H
.WORD 0 ; SLEEP UPON ARRIVAL
; .LONG S_SOUND0 ;MAKE NO MUSIC
; .LONG SND_SWEET_EMOTION
; .LONG S_CREATE_PROCR
; .WORD PID_IND
; .LONG 30,0,[255,0],0,TRACK_FADE_PROC
; .WORD 0
.LONG S_SOUND,SND_SWEET_EMOTION_X
.LONG S_WAIT_HERE
.WORD 60
LWL S_Z_ACCEL_LIMIT, 08H, 080H ;Rev up the Z
.LONG S_CALL
.LONG DELETE_COPTER_FRAME
LW S_DECEL_TO_STOP,4
LLW S_SET_WORD, GAME_STATE, INGAME
.LONG S_WAIT_HERE
.WORD 60
.LONG S_CAR_BEEPER
LW S_WAIT_HERE,40
.LONG S_START_UID_DANIM
.WORD 2 << 8 + (8-1)
LW S_WAIT_HERE,60
.LONG S_START_UID_DANIM
.WORD 1 << 8 + (7-1)
LW S_WAIT_HERE,80
; .LONG S_GOTO_POINT
; .WORD 60
; .WORD -036H,02H
; .LONG -03E00H
; .WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_XYZ_ACCEL_BURST
.WORD -01400H, 0CCH, 02FH
.WORD 10
.LONG S_WAIT_HERE
.WORD 50 ;<55
.LONG S_STOP_SCROLL
LLW S_SET_WORD, BONUS_DIRECTION, 3
LW S_AUDIT, AUDFLEND
.LONG S_CREATE_PROC
.word PID_IND
.LONG WAVE_END_IMM ;Force the wave to end
.LONG S_DIE
; .LONG S_FADE_TO_BLACK
; .LONG S_WAIT_HERE
; .WORD 20
; .LONG S_STOP_SCROLL
; .LONG S_CALL
; .LONG FADEBLAK_TEXT
; .LONG S_WAIT_HERE
; .WORD 1
; .LONG S_LM_PRINTF
; .LONG WAVE1_END_MESS
; .LONG S_CALL
; .LONG FADEIN_TEXT
; .LONG S_WAIT_HERE
; .WORD 240
; .LONG S_CALL
; .LONG FADEOUT_TEXT
; .LONG S_WAIT_HERE
; .WORD 10
; .LONG S_DELETE_TEXT
; .LONG S_WAIT_HERE
; .WORD 30
; .LONG S_GAME_OVER
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -05AH,0264H
; .LONG -0F740H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -0A8CH,0264H
; .LONG -010740H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -0DB6H,02A0H
; .LONG -022F40H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -010E0H,0220H
; .LONG -033740H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -012A2H,0220H
; .LONG -02BF40H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -01572H,0220H
; .LONG -01E740H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -017D7H,0293H
; .LONG -034F40H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -01B75H,0293H
; .LONG -034F40H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -01C1CH,0293H
; .LONG -018740H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -01FB7H,02CFH
; .LONG -036740H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -0233BH,02CFH
; .LONG -036740H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -0240CH,0202H
; .LONG -01E740H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -025D3H,0202H
; .LONG -021740H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -028A3H,023FH
; .LONG -02A740H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -02865H,019BH
; .LONG -037F40H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -0343DH,019BH
; .LONG -030740H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -03767H,019BH
; .LONG -030740H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -035A5H,01D7H
; .LONG -025F40H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -03767H,01D7H
; .LONG -01B740H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -03DBBH,0203H
; .LONG -01CF40H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -03F7DH,02B7H
; .LONG -01CF40H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -03F7DH,0203H
; .LONG -03740H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -03F7DH,01E4H
; .LONG 01F0C0H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -03F7DH,019FH
; .LONG 02C4B0H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -03F7DH,01BDH
; .LONG 042CB0H
; .WORD 0 ; SLEEP UPON ARRIVAL
;
; .LONG S_GOTO_POINT0
; .WORD 60*3 ; DURATION
; .WORD -03F7DH,0325H
; .LONG 057CB0H
; .WORD 0 ; SLEEP UPON ARRIVAL
**************************************************************************
* *
* FleaBagRm: *
* *
**************************************************************************
FLEAOFF EQU 0C00h
FLEAREL EQU 5b43h-FLEAOFF ; fudge to turn given numbers into
; Z RELATIVE values
FleaBagRm:
.LONG S_SET_WORD ;FLAG ENTRANCE TO PORTAL
.LONG GITTEN_KITTEN
.WORD 0
.LONG S_SET_LONG
.LONG WXBUFFER
.LONG 0640000H
.LONG S_SET_LONG
.LONG WAVE_IPLANE
.LONG 0
.LONG S_SET_LONG
.LONG WAVE_UNIV
.LONG GXPORTAL
.LONG S_SET_WORD
.LONG SCROLL_FLAG
.WORD 2 ;2 CHAIRBOYS
.LONG S_SET_WORD ;NO ENEMIES YET
.LONG OBJENEMIES
.WORD 0
.LONG S_GOTO_PORTAL_ENTRANCE
.word 447h,0ech ;X, Y
.word 30 ; Ticks to get there
.word 1 ; SLEEP UPON ARRIVAL
.LONG S_CREATE_PROCR
.WORD PID_IND
.LONG 02AE4H,0170000H,0220000H,15,MAKE_CHAIRBOY ;CHAIRBOY
.WORD PID_IND
.LONG 02AE6H,0128000H,0658000H,-15,MAKE_CHAIRBOY ;CHAIRBOY
.WORD 0
.LONG S_SET_PORTAL ; Search For Portal we are centered on
.WORD 15 ; and store it in a9
.LONG S_ENTER_PORTAL ; Set up and enter new universe
.long GXPORTAL+M_EP_WAIT ; name of universe
; .long GXPORTAL+M_EP_DONT_STOP ; name of universe
.long -4000H,0510000H,0H ; Z, X, Y offsets
.LONG S_KILL_ALL_PROCS ;KILL BATHROOM COLOR CYCLES
.WORD PID_DAMCC
.LONG S_CREATE_PROCR
.WORD PID_DAMCC
.LONG 3,30,24,NGLAMP3p,CYCLE16 ;CEILING LAMP
.WORD PID_DAMCC
.LONG 3,42,36,LMPBSE1p,CYCLE16 ;WALL LAMP
.WORD PID_DAMCC
.LONG 5,60,53,NONBXdm1p,CYCLE16 ;CRATE
.WORD 0
.LONG S_GOTO_POINT0
.WORD -60 ; Z is relative to this universe!
.WORD 051H,0
.LONG -4800h ;
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_SETUP_DSJ
.WORD 3*60
CHAIRS_WAIT
.LONG S_WAIT_HERE
.WORD 1
.LONG S_JUMP_IF_FALSE
.LONG OPEN_DOOR
.LONG SCROLL_FLAG
.LONG S_DSJ
.LONG CHAIRS_WAIT
.LONG FLEABAG_EXIT+M_JUMP
OPEN_DOOR
.LONG S_SET_WORD
.LONG ENEMY_HITALL ;HIT 'EM ALL
.WORD 1
.LONG S_DISPATCH_HERE ;RUN THROUGH HALL NONBOYS
.long WAVE1SUB1D+M_WAIT
.word 0
.LONG S_SET_WORD ;ACTIVATE ALL ENEMIES
.LONG OBJENEMIES
.WORD -1
.LONG S_CLR_SCROLL_FLAG
.LONG -1
.LONG S_SETUP_DSJ
.WORD 10*60
DOOR_WAIT
.LONG S_WAIT_HERE
.WORD 1
.LONG S_JUMP_IF_TRUE
.LONG GO_TO_HALLWAY
.LONG SCROLL_FLAG
.LONG S_DSJ
.LONG DOOR_WAIT
.LONG FLEABAG_EXIT+M_JUMP
GO_TO_HALLWAY
.LONG S_SET_WORD
.LONG ENEMY_HITALL ;DON'T HIT 'EM ALL
.WORD 0
.LONG S_CLR_SCROLL_FLAG
.LONG -1
.LONG S_ACCEL_TO_POINT
.WORD -60
.WORD 07AH,0
.LONG 0646AH-FLEAREL
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_DECEL_TO_POINT
.WORD -40
.WORD 08DH,0
.LONG 0916AH-FLEAREL
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINT
.WORD -30
.WORD 08DH,0
.LONG 0916AH-FLEAREL
.WORD 0
.LONG S_ALLOW_PORTALS
.LONG S_SETUP_DSJ
.WORD 60*5
SIGN_WAIT
.LONG S_WAIT_HERE
.WORD 1
.LONG S_JUMP_IF_TRUE
.LONG WERE_OUTTA_HERE
.LONG SCROLL_FLAG
.LONG S_DSJ
.LONG SIGN_WAIT
WERE_OUTTA_HERE
.LONG S_LOCKOUT_PORTALS
.LONG S_DISPATCH_HERE
.LONG WAVE1END+M_WAIT
.WORD 0
.LONG S_ACCEL_TO_POINT
.WORD -60
.WORD 08DH,0
.LONG 0746AH-FLEAREL
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_DECEL_TO_POINT
.WORD -40
.WORD 051H,0
.LONG 01F43H-FLEAREL
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG FLEABAG_KILL_CYCLES+M_JUMP
FLEABAG_EXIT
.LONG S_LOCKOUT_PORTALS
.LONG S_SET_WORD
.LONG ENEMY_HITALL ;DON'T HIT 'EM ALL
.WORD 0
.LONG S_SET_WORD ;ACTIVATE ALL ENEMIES
.LONG OBJENEMIES
.WORD -1
.LONG S_DISPATCH_HERE
.LONG WAVE1END+M_WAIT
.WORD 0
FLEABAG_KILL_CYCLES
.LONG S_KILL_ALL_PROCS ;KILL ALL DAMAGE CYCLES
.WORD PID_DAMCC
.LONG S_CREATE_PROCR ;DAMAGE COLOR CYCLES
.WORD PID_DAMCC
.LONG 4,124,115,WOODBRN1x,CYCLE16 ;X BOARD UP
.WORD PID_DAMCC
.LONG 4,124,117,STUFFB,CYCLE16 ;NEON SIGN
.WORD 0
.LONG S_SOUND ;KILL SOUNDS
.LONG SND_CHAN1_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND
.LONG SND_CHAN2_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND
.LONG SND_CHAN3_OFF
.LONG S_EXIT_PORTAL
.word 1 ; sleep upon exit
.LONG S_SET_LONG
.LONG WAVE_UNIV
.LONG GXCX3
.LONG S_SET_LONG
.LONG WXBUFFER
.LONG 0480000H
.LONG S_SET_WORD
.LONG UNIVERR
.WORD 1
.LONG S_START_BGND
.LONG STAR_BGND
.LONG 0 ;RETURN
**************************************************************************
* *
* PORTAL_BOYS_ROOM *
* *
**************************************************************************
PORTAL_BOYS_ROOM
.LONG S_GOTO_POINTXY
.WORD 60*3
.WORD 0199H,0
.WORD 0
.LONG S_SET_LONG
.LONG SCROLL_FLAG
.LONG 01AB3DH-FLEAOFF+2c00h
.LONG BOYS_ROOM_SUB+M_CALL
.LONG S_SET_VECTOR_TABLE
.LONG LA_OUTSIDE1_VECT_TABLE
.LONG S_EXIT_PORTAL ;JUST GO. LEAVE BATHROOM
.word 1
.LONG S_SOUND ;STOP WATER SOUND LOOPS
.LONG SND_BGND3_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND ;STOP BATHROOM SOUNDS
.LONG SND_CHAN1_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND
.LONG SND_CHAN2_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND
.LONG SND_CHAN3_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_CREATE_PROCR
.WORD PID_DAMCC
.LONG 3,30,24,NGLAMP3p,CYCLE16 ;CEILING LAMP
.WORD PID_DAMCC
.LONG 3,42,36,LMPBSE1p,CYCLE16 ;WALL LAMP
.WORD PID_DAMCC
.LONG 5,60,53,NONBXdm1p,CYCLE16 ;CRATE
.WORD 0
.LONG S_GOTO_POINTXY ;GO BACK TO LEFT BAR ENTRANCE
.WORD 60*2 ; DURATION
.WORD 08DH,0
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_SET_SCROLL_FLAG
.LONG 1
.LONG 0 ;RETURN
**************************************************************************
* *
* BOYS_ROOM *
* *
**************************************************************************
BOYS_ROOM
.LONG S_GOTO_POINTXY ;GO TO BATHROOM DOOR
.WORD 60*3 ; DURATION
.WORD 0268H,0
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_SET_LONG
.LONG SCROLL_FLAG
.LONG 01849AH
.LONG BOYS_ROOM_SUB+M_CALL
.LONG S_SET_VECTOR_TABLE
.LONG LA_LOBBY_BAR_VECT_TABLE
.LONG S_EXIT_PORTAL ;JUST GO. LEAVE BATHROOM
.word 1
.LONG S_SOUND ;STOP WATER SOUND LOOPS
.LONG SND_BGND3_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND ;STOP BATHROOM SOUNDS
.LONG SND_CHAN1_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND
.LONG SND_CHAN2_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND
.LONG SND_CHAN3_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_KILL_ALL_PROCS ;KILL BATHROOM COLOR CYCLES
.WORD PID_DAMCC
.LONG S_GOTO_POINTXY ;GO BACK TO LEFT BAR ENTRANCE
.WORD 60*2 ; DURATION
.WORD 031DH,0
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG 0 ;RETURN
**************************************************************************
* *
* BOYS_ROOM_SUB *
* *
**************************************************************************
BOYS_ROOM_SUB
.LONG S_KILL_ALL_PROCS ;KILL BATHROOM COLOR CYCLES
.WORD PID_DAMCC
.LONG S_CREATE_PROCR ;CREATE DAMAGE COLOR CYCLES
.WORD PID_DAMCC
.LONG 12,15,2,SOCYCLE2,CYCLE16 ;SOAPBOX
.WORD PID_DAMCC
.LONG 6,61,50,JDORSM1,CYCLE16 ;BOYS STALL DOOR
.WORD 0
.LONG S_SET_VECTOR_TABLE
.LONG LA_BATHROOM_VECT_TABLE
.LONG S_AT_PORTAL_ENTRANCE
.LONG S_SET_PORTAL ; Search For Portal we are centered on
.WORD 15 ; and store it in a9
.LONG S_ENTER_PORTAL ; Set up and enter new universe
.long GXBATHRM+M_EP_DONT_STOP+M_EP_WAIT ; name of universe
; .long 02000H,-022A800H,0 ; Z, X, Y offsets
.long 02509H,-022A800H,0 ; Z, X, Y offsets
.LONG S_NONBOY_BATHROOM ;PUT NONBOYS IN STALLS
.LONG S_CLR_SCROLL_FLAG, -1
.LONG S_SOUND ;STOP LOBBY SOUNDS
.LONG SND_CHAN1_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND
.LONG SND_CHAN2_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND
.LONG SND_CHAN3_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_DECEL_TO_STOP ;STOP AT ENTRANCE
.WORD 4
.LONG S_GOTO_POINT
; .WORD 30
.WORD -10
.WORD -023H,0
; .LONG 010433H-0509H
.LONG 040C8H
.WORD 0
.long S_GOTO_POINTXY ;GO LEFT
.word 60*15
.WORD -01B4H,0H
; .word 0
.word 30
.long S_GOTO_POINTXY ;GO RIGHT
.word 60*10
.WORD -023H,0
.word 0
.LONG S_SET_SCROLL_FLAG, 1
.LONG S_KILL_ALL_PROCS ;KILL BATHROOM COLOR CYCLES
.WORD PID_DAMCC
.LONG 0 ;RETURN
**************************************************************************
* *
* PORTAL_GIRLS_ROOM *
* *
**************************************************************************
PORTAL_GIRLS_ROOM
.LONG S_GOTO_POINTXY
.WORD 60*3
.WORD -06DH,0
.WORD 0
.LONG S_SET_LONG
.LONG SCROLL_FLAG
.LONG 01AB3DH-FLEAOFF+2c00h-1
.LONG S_KILL_ALL_PROCS ;KILL BATHROOM COLOR CYCLES
.WORD PID_DAMCC
.LONG S_CREATE_PROCR ;CREATE DAMAGE COLOR CYCLES
.WORD PID_DAMCC
.LONG 12,15,2,SOCYCLE2,CYCLE16 ;SOAPBOX
.WORD PID_DAMCC
.LONG 6,61,50,gJDORSM1,CYCLE16 ;GIRLS STALL DOOR
.WORD 0
.LONG S_SET_VECTOR_TABLE
.LONG LA_BATHROOM_VECT_TABLE
.LONG S_AT_PORTAL_ENTRANCE
.LONG S_SET_PORTAL ; Search For Portal we are centered on
.WORD 15 ; and store it in a9
.LONG S_ENTER_PORTAL ; Set up and enter new universe
.long GXBATHGI+M_EP_DONT_STOP+M_EP_WAIT ; Name of universe
.long 02569H,-02C81800H,0 ; Z, X, Y offsets
.IF AUSTRALIA
.LONG S_NONBOY_BATHROOM ;PUT NONBOYS IN STALLS
.ELSE
.LONG S_KERRI_BATHROOM ;PUT KERRIS IN STALLS
.ENDIF
.LONG GIRLS_ROOM_SUB+M_CALL
.LONG S_SET_VECTOR_TABLE
.LONG LA_OUTSIDE1_VECT_TABLE
.LONG S_EXIT_PORTAL ;JUST GO. LEAVE BATHROOM
.word 1
.LONG S_SOUND ;STOP WATER SOUND LOOPS
.LONG SND_BGND3_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND ;STOP BATHROOM SOUNDS
.LONG SND_CHAN1_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND
.LONG SND_CHAN2_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND
.LONG SND_CHAN3_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_CREATE_PROCR
.WORD PID_DAMCC
.LONG 3,30,24,NGLAMP3p,CYCLE16 ;CEILING LAMP
.WORD PID_DAMCC
.LONG 3,42,36,LMPBSE1p,CYCLE16 ;WALL LAMP
.WORD PID_DAMCC
.LONG 5,60,53,NONBXdm1p,CYCLE16 ;CRATE
.WORD 0
.LONG S_GOTO_POINTXY ;GO BACK TO RIGHT BAR ENTRANCE
.WORD 60*2 ; DURATION
.WORD 08DH,0
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_SET_SCROLL_FLAG
.LONG 1
.LONG 0 ;RETURN
**************************************************************************
* *
* GIRLS_ROOM *
* *
**************************************************************************
GIRLS_ROOM
.LONG S_GOTO_POINTXY ;GO TO BATHROOM DOOR
.WORD 60*3 ; DURATION
.WORD 054AH,0
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_SET_LONG
.LONG SCROLL_FLAG
.LONG 01849AH-1
.LONG S_KILL_ALL_PROCS ;KILL BATHROOM COLOR CYCLES
.WORD PID_DAMCC
.LONG S_CREATE_PROCR ;CREATE DAMAGE COLOR CYCLES
.WORD PID_DAMCC
.LONG 12,15,2,SOCYCLE2,CYCLE16 ;SOAPBOX
.WORD PID_DAMCC
.LONG 6,61,50,gJDORSM1,CYCLE16 ;GIRLS STALL DOOR
.WORD 0
.LONG S_SET_VECTOR_TABLE
.LONG LA_BATHROOM_VECT_TABLE
.LONG S_AT_PORTAL_ENTRANCE
.LONG S_SET_PORTAL ; Search For Portal we are centered on
.WORD 15 ; and store it in a9
.LONG S_ENTER_PORTAL ; Set up and enter new universe
.long GXBATHGI+M_EP_DONT_STOP+M_EP_WAIT ; Name of universe
.long 02569H,-02C81800H,0 ; Z, X, Y offsets
; .LONG S_KERRI_BATHROOM ;PUT KERRIS IN STALLS
.LONG S_NONBOY_BATHROOM ;PUT NONBOYS IN STALLS
.LONG GIRLS_ROOM_SUB+M_CALL
.LONG S_SET_VECTOR_TABLE
.LONG LA_LOBBY_BAR_VECT_TABLE
.LONG S_EXIT_PORTAL ;JUST GO. LEAVE BATHROOM
.word 1
.LONG S_SOUND ;STOP WATER SOUND LOOPS
.LONG SND_BGND3_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND ;STOP BATHROOM SOUNDS
.LONG SND_CHAN1_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND
.LONG SND_CHAN2_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND
.LONG SND_CHAN3_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_KILL_ALL_PROCS ;KILL BATHROOM COLOR CYCLES
.WORD PID_DAMCC
.LONG S_GOTO_POINTXY ;GO BACK TO RIGHT BAR ENTRANCE
.WORD 60*2 ; DURATION
.WORD 0498H,0
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG 0 ;RETURN
**************************************************************************
* *
* GIRLS_ROOM_SUB *
* *
**************************************************************************
GIRLS_ROOM_SUB
.LONG S_CLR_SCROLL_FLAG, -1
.LONG S_SOUND ;STOP LOBBY SOUNDS
.LONG SND_CHAN1_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND
.LONG SND_CHAN2_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_SOUND
.LONG SND_CHAN3_OFF
.LONG S_WAIT_HERE
.WORD 1
.LONG S_DECEL_TO_STOP ;STOP AT ENTRANCE
.WORD 4
.LONG S_GOTO_POINT
.WORD -10
.WORD -02C8H,0
; .LONG 0FD63H
.LONG 03F61H
.word 0
.long S_GOTO_POINTXY ;GO RIGHT
.word 60*15
.WORD -0FAH,0H
.word 30
.long S_GOTO_POINTXY ;GO LEFT
.word 60*10
.WORD -02C8H,0
.word 0
.LONG S_SET_SCROLL_FLAG, 1
.LONG S_KILL_ALL_PROCS ;KILL BATHROOM COLOR CYCLES
.WORD PID_DAMCC
.LONG 0 ;RETURN
**************************************************************************
* *
* Kerri's Bedroom - OOOOOO La La! *
* *
**************************************************************************
OOLALA_ROOM
.LONG S_GOTO_PORTAL_ENTRANCE
; .word -0EF3h,1D8h ;X, Y
.word -0EF3h,0203H ;X, Y
.word 90 ; Ticks to get there
.word 0 ; SLEEP UPON ARRIVAL
LW S_SET_PORTAL, 15 ; Search For Portal we are centered on
.LONG S_ENTER_PORTAL ; Set up and enter new universe
.long GXBEDRM+M_EP_WAIT ; name of universe
.long -02000H,0510000H,0H ; Z, X, Y offsets
.LONG S_CLR_SCROLL_FLAG, -1
.LONG S_GOTO_POINT0
.WORD 60
.WORD 051H,0
.LONG 05E800H
.WORD 5 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINT0
.WORD 10
.WORD 051H,0
.LONG 060A00H
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINT0
.WORD 10
.WORD 051H,0
.LONG 05E800H
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINT0
.WORD 10
.WORD 051H,0
.LONG 060A00H
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINT0
.WORD 10
.WORD 051H,0
.LONG 05E800H
.WORD 5 ; SLEEP UPON ARRIVAL
LW S_START_UID_DANIM, 1 << 8 + 31
LW S_WAIT_HERE, 100
.LONG S_GOTO_POINT0
.WORD 60
.WORD 051H,0
.LONG 060A00H
.WORD 10 ; SLEEP UPON ARRIVAL
.LONG S_GOTO_POINT0
.WORD 10
.WORD 051H,0
.LONG 05E800H
.WORD 0 ; SLEEP UPON ARRIVAL
.LONG S_SET_LONG, WAVE_IPLANE, STAR_BGND
.LONG S_LOCKOUT_PORTALS
LW S_EXIT_PORTAL,15
.LONG 0 ;RETURN
**************************************************************************
* *
* DSS_TEST *
* *
**************************************************************************
DSS_TEST
.LONG S_SET_LONG
.LONG ZFAR
.LONG 070000H
.LONG S_SET_WORD
.LONG UNIVERR
.WORD 1
DSS_GO
.LONG S_SET_WORD
.LONG DSSON
.WORD 1
DSS_TEST_LUPE
.LONG S_WAIT_HERE
.WORD 1
.LONG DSS_TEST_LUPE+M_JUMP
**************************************************************************
* *
* SECRET_TEST *
* *
**************************************************************************
SECRET_TEST
.LONG S_ALLOW_PORTALS
.LONG S_SET_LONG
.LONG ZFAR
.LONG 070000H
.LONG S_SET_WORD
.LONG UNIVERR
.WORD 1
.LONG ENDLESS_LUPE+M_JUMP
**************************************************************************
* *
* ENDLESS_LUPE *
* *
**************************************************************************
ENDLESS_LUPE
.LONG S_WAIT_HERE
.WORD 1
.LONG ENDLESS_LUPE+M_JUMP
*
* ATTRACT MODE SETUP
*
ATTRACT1
.LONG S_CREATE_PROCR ;START DAMAGE COLOR CYCLES
.WORD PID_DAMCC
.LONG 6,63,58,CAMTBLd1,CYCLE16 ;COCTAIL TABLE
.WORD PID_DAMCC
.LONG 4,124,117,STUFFB,CYCLE16 ;NEON SIGN
.WORD 0
.LONG S_CHANGE_ZFAR
.long 02B19Fh
.LONG S_SOUND, SND_RAVE ;Here we goooooo
.LONG JAKE_ENTRY+M_JUMP
ATTRACT4
.LONG S_SET_LONG
.LONG WYBUFFER
.LONG 0600000H
.LONG S_SET_LONG
.LONG WXBUFFER
.LONG 0400000H
.LONG S_CREATE_PROC
.word PID_IND
.LONG MAKE_AEROSMITH_2
LW S_WAIT_HERE, 10000
.end