3080 lines
55 KiB
NASM
3080 lines
55 KiB
NASM
.MLIB "GXMACS.LIB"
|
||
.FILE "GXJSCROL.ASM"
|
||
.TITLE " <<< GENERATION X -- SCROLL TABLE FOR JUNGLE >>>"
|
||
.WIDTH 132
|
||
.OPTION B,D,L,T
|
||
.MNOLIST
|
||
|
||
.include "gx.inc"
|
||
.INCLUDE "GXSTRING.H" ;String processor
|
||
.INCLUDE "IMGTBL.GLO"
|
||
.INCLUDE "UNIVTBL.GLO"
|
||
.include "gxbax.tbl"
|
||
.include "gxscrl.h"
|
||
.include "gxnatv.h"
|
||
|
||
OLD_HONEY .set 0
|
||
YES_SNAKE .set 0
|
||
YES_BUG .set 1
|
||
TEST_BUG .set 0
|
||
|
||
**************************************************************************
|
||
* *
|
||
* COPYRIGHT (C) 1992 MIDWAY MANUFACTURING COMPANY. *
|
||
* ALL RIGHTS RESERVED. *
|
||
* *
|
||
**************************************************************************
|
||
|
||
* SYMBOLS IN HERE
|
||
.def SUCK_ME_IN,BLOW_GLASS_OUT
|
||
.def ENTER_SECRET_ROOM,ENTER_DEADEND
|
||
.def JUNGLE_SCROLL,JOE_PERRY_TRIP
|
||
.DEF ELEVATOR_RIDE,ENTER_CHEM_RML
|
||
|
||
.DEF BILL_SCROLL,END_JUNGLE
|
||
|
||
.DEF ATTRACT2
|
||
|
||
* SYMBOLS FROM ?
|
||
.ref SUCK_INTO_DEADEND,DEADEND_RETURN,BTR_HANG_TIME,S_ADD_TMPOBJ
|
||
.ref S_START_GOOP,S_RESET_VIDCAM,S_CREATE_PILLAR_BOYS,BRIDGE_STATE
|
||
.ref S_CREATE_ATRIUM_BOYS,S_WAIT_FOR_ZIPOK,MORFGLASOUT
|
||
.ref SIGN_DOWN,S_INIT_JUNGLE,NMEEZ_GONE1,CHECK4_CHEM_DAM
|
||
.ref JXLIMIT,IN_SECRET,S_DELETE_ENEMY_OID,S_PUSH_WALL_IN
|
||
.ref CHEM_VECT_TABLE,FLOAT_ZFAR,BLDG_VECT_TABLE,S_WAIT_FOR_COUNTDOWN
|
||
.ref S_SET_IRQSTRT,S_MERGE_UNIV,MAX_ALLOWED,S_INIT_POPQUO
|
||
.ref SPRINKLE_POWERUPS,S_SHOCKER,BONUS_DIRECTION,S_KILL_ALL_PROCS
|
||
.ref S_SEND_ELEV_DOWN,S_INIT_NATIVES,PERRY_SKY_PROC,S_PERRY_FLY
|
||
.ref S_BRNCH_ON_WORD_VAL,S_CREATE_MASS_ATRIUM,S_CREATE_BZERKS
|
||
|
||
* SYMBOLS FROM GXBUG.ASM
|
||
.REF START_BUG_PROC, BLOW_COVER_PROC
|
||
|
||
***** from GXWAVE.ASM
|
||
.REF DSP_JUNG_3DOORS, DSP_JUNG_TREE1, DSP_JUNG_TREE2
|
||
.REF DSP_JUNG_ELEV,DSP_JUNG_ENDHALL ; ,DSP_JUNG_BIGWALL
|
||
|
||
***** from GXJUNGLE.ASM
|
||
.REF SPIN_SIGN_GONE, JUNGLE_VECT_TABLE, S_CLR_OU_OHITS
|
||
|
||
* SYMBOLS FROM GXUNISEQ.ASM
|
||
.REF SLDORCLOSE, DOORSWING_CLOSE
|
||
|
||
***** from GXSCROL3.ASM
|
||
.REF SND_SWEET_EMOTION
|
||
|
||
***** from GXRAM.ASM
|
||
.REF ENEMY_HITALL
|
||
|
||
***** from GXBEEK1.ASM
|
||
.REF S_START_MORFERS
|
||
|
||
***** from GXWARREN.ASM
|
||
.IF YES_SNAKE
|
||
.REF CREATE_A_SNAKE
|
||
.ENDIF
|
||
|
||
.data
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SOUND TABLES
|
||
* *
|
||
**************************************************************************
|
||
|
||
|
||
SND_JUNGLE:
|
||
.word 0F3fdh,1,5040h,0 ; jungle bg
|
||
SND_JUNGLE_END:
|
||
.word 0F3fdh,110,8041h,53e6h,0 ; jungle bg
|
||
SND_NATIVE_TUNE
|
||
.WORD 0F0FDH,1,08022H,0
|
||
|
||
SND_HONEY:
|
||
.word 0F0FDh,1,8023h,0 ; buzzing
|
||
SND_PLANT_MUSIC:
|
||
SND_HONEY_END:
|
||
; .WORD 0F0dcH,1,08010H,0 ; end of buzzing
|
||
.WORD 0F0dcH,1,08022H,0 ; end of buzzing
|
||
SND_CHEM_MUSIC
|
||
.word 0f0dch,1,8011h,0
|
||
SND_FACTORY_MUSIC
|
||
.word 0f0dch,1,8010h,0
|
||
SND_ESCAPE_MUSIC
|
||
; .word 0f0dch,1,8014h,0
|
||
.word 0f0dch,1,8004h,0
|
||
|
||
SND_NICE_SHOT
|
||
.word 0f3a0h,67,8813h,0
|
||
SND_WHOA
|
||
.word 0f3c4h,60,8805h,0
|
||
SND_KICKASS
|
||
.word 0f3f2h,53,0881dh,0
|
||
SND_MAMBY_PAMBY
|
||
.word 0f3f2h,58,08817h,0
|
||
SND_SQUASH:
|
||
.word 0F3c0h,171,8832h,0 ; squash em like bugs
|
||
SND_ST_GO:
|
||
.word 0F3c0h,26,880eh,0 ; Go!
|
||
|
||
SND_ELEV_MUSIC .word 0f0dch,1,8018h,0
|
||
;SND_HALL_BONK .word 0f3f0h,22,81ffh,0
|
||
SND_HALL_BONK .word 0f3c0h,22,0a40bh,0
|
||
|
||
SND_OUTA_HERE
|
||
.word 0f3f2h,62,08809h,0
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* MESSAGE MACROS *
|
||
* *
|
||
**************************************************************************
|
||
**************************************************************************
|
||
* *
|
||
* SCROLL TABLE FOR THE AMAZON *
|
||
* *
|
||
**************************************************************************
|
||
|
||
.ref ENAB3DRS
|
||
|
||
|
||
JUMP_IF_SET .macro bit,addr
|
||
.if DEBUG
|
||
.LONG S_JUMP_IF_BIT_SET
|
||
.long addr
|
||
.long SCRLFLOW
|
||
.word bit
|
||
.endif
|
||
.endm
|
||
|
||
|
||
JUMP_IF_CLR .macro bit,addr
|
||
.if DEBUG
|
||
.LONG S_JUMP_IF_BIT_CLR
|
||
.long addr
|
||
.long SCRLFLOW
|
||
.word bit
|
||
.endif
|
||
.endm
|
||
|
||
.if DEBUG
|
||
.def SCRLFLOW
|
||
.bss SCRLFLOW,16 ; bit flags to dynamically control
|
||
; scrolling through jungle
|
||
.bss dbgwaste,16 ; to keep long word aligned
|
||
.endif
|
||
|
||
.def SECRET_SCROLL
|
||
.bss SECRET_SCROLL,32 ; scroll table to jump to.
|
||
.bss SAVPLYRSEEN,16 ; for elevator
|
||
.bss filler,16
|
||
|
||
|
||
GET_BEFORE_MAIN_DOOR .set 0 ; go directly to main door
|
||
GET_TO_MAIN_DOOR .set 1 ; go directly to main door
|
||
GET_TO_OUTDECISION .set 2 ; go to decision point in jungle
|
||
SKIP_JUNGLE_CRUISE .set 3 ; go directly to first bldg
|
||
SKIP_FIRST_BLDG .set 4 ; skip first bldg and do honeycombs
|
||
SKIP_JUNG_BTR .set 5 ; no BTR in jungle
|
||
SKIP_FIRST_HALL .set 6 ; skip pillar guys
|
||
SKIP_SKULL .set 7 ; no skull
|
||
SKIP_GXHALL1 .set 8 ; go to arch entrance left
|
||
GOTO_HONEYCOMBS .set 9 ;
|
||
SKIP_GXHALL2 .set 10 ; go to arch entrance rt
|
||
SKIP_LOBBY .set 11 ; skip lobby
|
||
SKIP_PLANT .set 12 ; skip chem plant
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* S_MAKE_KICKASS *
|
||
* *
|
||
* Scroll func to make the kick ass sound if we can. *
|
||
* *
|
||
**************************************************************************
|
||
S_MAKE_KICKASS
|
||
ADJUST ADJPROFANITY
|
||
JRNZ SMK_PG13
|
||
|
||
SOUND1 SND_MAMBY_PAMBY ;Do mamby pamby sound
|
||
JAUC SCRL_DISPATCHER
|
||
|
||
SMK_PG13
|
||
SOUND1 SND_KICKASS
|
||
JAUC SCRL_DISPATCHER
|
||
|
||
**************************************************************************
|
||
* *
|
||
* Special tables for the Jungle universe
|
||
* *
|
||
**************************************************************************
|
||
SUCK_ME_IN: ; if you shoot the right door
|
||
.LONG S_MERGE_UNIV
|
||
.long gxjrtpt
|
||
|
||
.LONG S_SET_WORD
|
||
.long NMEEZ_GONE1
|
||
.word 0 ; forget those punks
|
||
|
||
.LONG S_SET_LONG ; don't enable enemy gens in dist yet
|
||
.long UEP_Z
|
||
.long 8000h
|
||
|
||
.LONG S_DISABLE_ENEMY_GENS ; disab natives and cogs in center
|
||
|
||
.LONG S_CLR_XMOTION
|
||
|
||
; .LONG S_ACCEL_TO_POINT
|
||
; .word -48
|
||
; .word 440h,0h
|
||
; .long -09000h
|
||
; .word 0
|
||
|
||
.LONG S_SET_WORD
|
||
.long IN_SECRET
|
||
.word 1 ; in a secret room
|
||
|
||
.long S_SET_ENEMIES ; noone to bother you
|
||
.word 0
|
||
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word -70
|
||
.word 41ch,0
|
||
.long -1000h
|
||
.word 0
|
||
|
||
.LONG S_DELETE_ENEMY_OID ; protection
|
||
.word OID_NONBOY
|
||
|
||
.LONG S_Z_ACCEL_BURST
|
||
.word 20H ;Z DESTINATION
|
||
.word 15 ;DURATION
|
||
|
||
.LONG S_DELETE_ENEMY_OID ; protection
|
||
.word OID_BZERK
|
||
|
||
.LONG S_CREATE_PROCR
|
||
.word PID_POWERUPD0
|
||
.word 3d0h,468h ; x range
|
||
.long 0,17800h,18 ; junk, zmax, num crates
|
||
.LONG SPRINKLE_POWERUPS
|
||
.word 0
|
||
|
||
|
||
.LONG S_DECEL_TO_STOP
|
||
.word 4
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 160 ; peruse the joint
|
||
|
||
.LONG S_Z_ACCEL_LIMIT
|
||
.word 0ah
|
||
.long 00a0h
|
||
|
||
JU_SECRET_HOOK:
|
||
.long S_WAIT_FOR_ZABS
|
||
.long 19660H ; Stop at wall and ...
|
||
.word 0
|
||
|
||
.long S_DECEL_TO_POINTZ
|
||
.word 10
|
||
.long 19660h ;Stop at wall and ...
|
||
.word 0
|
||
|
||
.LONG S_GOTO_POINTXY ;GO THROUGH HOLE IN WALL
|
||
.word 140
|
||
.word 329h,0h
|
||
.WORD 0 ; SLEEP UPON ARRIVAL
|
||
|
||
.LONG S_SET_WORD
|
||
.long IN_SECRET
|
||
.word 0 ; out of secret room
|
||
|
||
.LONG S_SET_WORD ; bonus for bypassing cameras
|
||
.long PLYR_SEEN
|
||
.word 0
|
||
|
||
.LONG M_JUMP+JU_BTR_HOOK
|
||
|
||
|
||
|
||
BLOW_GLASS_OUT: ; if you shoot the right door
|
||
.LONG S_MERGE_UNIV
|
||
.long gxjltpt
|
||
|
||
.LONG S_SET_LONG ; don't enable enemy gens in dist yet
|
||
.long UEP_Z
|
||
.long 8000h
|
||
|
||
.LONG S_DISABLE_ENEMY_GENS ; disab natives and cogs in center
|
||
|
||
.LONG S_SET_WORD
|
||
.long IN_SECRET
|
||
.word 1 ; in a secret room
|
||
|
||
.long S_SET_ENEMIES ; noone to bother you
|
||
.word 0
|
||
|
||
.LONG S_START_DANIM_VISIBLE ; open stained glass portals
|
||
|
||
.LONG S_STOP_SCROLL
|
||
|
||
.LONG S_GOTO_POINT0 ; get in front of stained glass
|
||
.word -60
|
||
.word 238h,20h
|
||
.long -05000h
|
||
.word 40 ; wait
|
||
|
||
.LONG S_Z_ACCEL_BURST
|
||
.word 70
|
||
.word 10
|
||
|
||
.LONG S_Y_ACCEL_BURST
|
||
.word -1000h ; neg means down
|
||
.word 30
|
||
|
||
; .LONG S_WAIT_FOR_ZREL
|
||
; .long -1700h
|
||
; .word 1 ; keep going
|
||
|
||
.LONG S_CREATE_PROCR
|
||
.word PID_POWERUPD0
|
||
.word 1e0h,280h
|
||
.long 0,17800h,18,SPRINKLE_POWERUPS
|
||
.word 0
|
||
|
||
.LONG S_DECEL_TO_STOP
|
||
.word 4
|
||
|
||
.LONG S_SOUND
|
||
.long SND_HONEY_END
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 110 ; peruse the joint
|
||
|
||
.LONG S_Z_ACCEL_LIMIT
|
||
.word 12
|
||
.long 0120h
|
||
|
||
|
||
.LONG M_JUMP+JU_SECRET_HOOK
|
||
|
||
|
||
********************************************************
|
||
* *
|
||
* START OF JUNGLE *
|
||
* *
|
||
********************************************************
|
||
JUNGLE_SCROLL:
|
||
|
||
|
||
********************************** TEST SHIT
|
||
; .ref SYNC_SOUND_TEST
|
||
;
|
||
; .LONG S_CREATE_PROC
|
||
; .word PID_JUNK
|
||
; .long SYNC_SOUND_TEST
|
||
;
|
||
; .long 0
|
||
;
|
||
********************************** TEST SHIT
|
||
|
||
|
||
.LONG S_INIT_JUNGLE
|
||
|
||
LW S_AUDIT, AUDJUNGLE
|
||
|
||
.LONG S_SET_LONG
|
||
.long UEP_Z ; world Z for enemies
|
||
.long 22000h
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 15
|
||
|
||
; .LONG S_ACCEL_TO_POINT ; cross bridge
|
||
; .word (60*3)+30
|
||
; .word -3e8h,0
|
||
; .long -28000h
|
||
; .word 0
|
||
|
||
.LONG S_Z_ACCEL_BURST
|
||
.word 6
|
||
.word 80
|
||
|
||
.LONG S_WAIT_FOR_ZABS
|
||
.long -28000h
|
||
.word 1
|
||
|
||
.LONG S_DECEL_TO_STOP
|
||
.word 6
|
||
|
||
.LONG S_AT_PORTAL_ENTRANCE
|
||
|
||
.LONG S_SET_PORTAL ; Search For Portal we are centered on
|
||
.word 18 ; tiks til portal animation starts
|
||
|
||
.LONG S_ENTER_PORTAL ; Set up and enter new universe
|
||
.long GXJUNG3+M_EP_SMOOTH ; name of universe
|
||
.long -1e000h,-3e80000h,0 ; Z, X, Y offsets
|
||
|
||
.LONG S_INIT_NATIVES
|
||
.word 4,6 ; natives allowed,spears allowed
|
||
|
||
.LONG S_Z_ACCEL_BURST
|
||
.word 1
|
||
.word 200
|
||
|
||
.LONG S_SET_LONG
|
||
.LONG WXBUFFER
|
||
.LONG 0200000H
|
||
|
||
**********************************************************
|
||
JUMP_IF_CLR GET_TO_OUTDECISION,JCONTIN1
|
||
|
||
.if DEBUG
|
||
|
||
.LONG S_SET_LONG
|
||
.long UEP_Z ; world Z for enemies
|
||
.long 14000h
|
||
|
||
.LONG S_SET_WORD
|
||
.long ENAB3DRS
|
||
.word 0 ; disable door shooting
|
||
|
||
.LONG S_GOTO_POINT0 ; goto decision point
|
||
.word -60*4
|
||
.word 0329h,30h
|
||
.long -0f000h
|
||
.word 10
|
||
|
||
; .long S_SET_VECTOR_TABLE
|
||
; .long BLDG_VECT_TABLE
|
||
|
||
.LONG S_CREATE_PROCR
|
||
.word PID_IND
|
||
.long 0,0,0,28000h,FLOAT_ZFAR ; behind wall
|
||
.word 0
|
||
|
||
.LONG M_JUMP+DECIS_PT
|
||
|
||
.endif
|
||
JCONTIN1:
|
||
JUMP_IF_CLR GOTO_HONEYCOMBS,JCONTIN5
|
||
|
||
.if DEBUG
|
||
|
||
JCONTIN5A:
|
||
.LONG S_SET_LONG
|
||
.LONG WYBUFFER
|
||
.LONG 0500000H
|
||
|
||
; .long S_SET_VECTOR_TABLE
|
||
; .long BLDG_VECT_TABLE
|
||
|
||
.LONG M_JUMP+DO_HONEY
|
||
.endif
|
||
JCONTIN5:
|
||
**********************************************************
|
||
|
||
**********************************************************
|
||
JUMP_IF_CLR GET_BEFORE_MAIN_DOOR,JCONTIN2
|
||
.if DEBUG
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word -200
|
||
.word 329h,0
|
||
.long 26000h
|
||
.word 60
|
||
|
||
.LONG S_SET_IRQSTRT
|
||
|
||
; .long S_SET_VECTOR_TABLE
|
||
; .long BLDG_VECT_TABLE
|
||
|
||
.LONG M_JUMP+JU_DO_BTR
|
||
.endif
|
||
|
||
JCONTIN2:
|
||
JUMP_IF_CLR GET_TO_MAIN_DOOR,JCONTIN3
|
||
.if DEBUG
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word -200
|
||
.word 329h,22h
|
||
.long 30000h
|
||
.word 0
|
||
|
||
; DUPLICATE CHANGE
|
||
; .LONG S_GOTO_POINT0
|
||
; .word -200
|
||
; .word 329h,0
|
||
; .long 033000H
|
||
; .word 0
|
||
;
|
||
; .LONG S_GOTO_ZPOINT
|
||
; .WORD -10
|
||
; .LONG 033000H
|
||
; .WORD 60
|
||
|
||
; .long S_SET_VECTOR_TABLE
|
||
; .long BLDG_VECT_TABLE
|
||
|
||
.LONG M_JUMP+AT_MAIN_DOOR
|
||
|
||
.endif
|
||
JCONTIN3:
|
||
**********************************************************
|
||
|
||
JUMP_IF_SET SKIP_JUNGLE_CRUISE,JCONTIN4
|
||
|
||
.LONG S_SOUND
|
||
.long SND_JUNGLE
|
||
|
||
.LONG S_SOUND, SND_NATIVE_TUNE
|
||
|
||
.long S_SET_ENEMIES ; set to tell natives and
|
||
.word M_OF_BUSH|M_OF_TREE|M_OF_SNAKE ; snake to activate
|
||
*
|
||
* START OF JUNGLE CRUISE
|
||
*
|
||
.if YES_SNAKE
|
||
.LONG S_CREATE_PROC
|
||
.word PID_IND
|
||
.long CREATE_A_SNAKE
|
||
.endif
|
||
|
||
.LONG S_DISPATCH_HERE, DSP_JUNG_TREE1+M_WAIT
|
||
.WORD 0
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word -3*60
|
||
.word -3f8h,0
|
||
.long -1f000h
|
||
.word 60 ; FIrst lockdown
|
||
|
||
LW S_WAIT_HERE,10
|
||
|
||
LW S_WAIT_HERE, 1+M_QUOTA ;Wait for quota on Natives
|
||
|
||
.LONG S_DISPATCH_HERE, DSP_JUNG_TREE2+M_WAIT
|
||
.WORD 0
|
||
|
||
JUNGLE_JUMP:
|
||
.LONG S_GOTO_POINT0 ; move in past vinetree
|
||
.word -6*60
|
||
.word -42eh,0
|
||
.long -13000h
|
||
.word 0
|
||
|
||
.LONG S_GOTO_POINT0 ; cut left and back
|
||
.word -6*60
|
||
.word -500h,0
|
||
.long -17000h
|
||
.word 0
|
||
|
||
.LONG S_GOTO_POINT0 ; move back
|
||
.word -12*60
|
||
.word -66bh,0
|
||
.long -1da1ch
|
||
.word 0
|
||
|
||
LLW S_SET_WORD, MAX_ALLOWED, 6
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word -12*60
|
||
.word -445h,0
|
||
.long -14000h
|
||
.word 0
|
||
|
||
LLW S_SET_WORD, MAX_ALLOWED, 8
|
||
|
||
.LONG S_GOTO_POINT0 ; first vidcam
|
||
.word -10*60
|
||
.word -231h,0
|
||
.long -1ca1ch
|
||
.word 200 ; 2nd lockdown
|
||
|
||
.LONG S_GOTO_POINT0 ; 2nd vidcam
|
||
.word -7*60
|
||
.word -139h,0
|
||
.long -2121ch
|
||
.word 0
|
||
|
||
.if YES_SNAKE
|
||
.LONG S_SET_WORD
|
||
.long SCROLLKILL
|
||
.word 1 ; number of processes to die now
|
||
; (CREATE_A_SNAKE)
|
||
.endif
|
||
|
||
LW S_WAIT_HERE, 1+M_QUOTA ;Wait for quota on Natives
|
||
|
||
JCONTIN4:
|
||
|
||
.LONG S_RESET_VIDCAM
|
||
|
||
JUMP_IF_SET SKIP_FIRST_BLDG,JCONTIN5A
|
||
|
||
.LONG S_SET_WORD
|
||
.long NUM_OUT_THERE
|
||
.word 0
|
||
|
||
.long S_SET_ENEMIES ; set to tell natives and
|
||
.word 0 ; snake to deactivate
|
||
|
||
.LONG S_GOTO_POINT0 ; get to bldg
|
||
.word -60*2
|
||
.word -0a0h,0
|
||
.long -1f000h
|
||
.word 0
|
||
|
||
; .long S_SET_VECTOR_TABLE
|
||
; .long BLDG_VECT_TABLE
|
||
|
||
.LONG S_GOTO_POINT0 ; move in to spinning sign
|
||
.word -60*4
|
||
.word 0bh,0
|
||
.long -10a00h
|
||
.word 1
|
||
|
||
.LONG S_SETUP_DSJ
|
||
.word 5
|
||
SPINSIGN_LP:
|
||
.LONG S_JUMP_IF_TRUE, GO_PAST_SIGN, SPIN_SIGN_GONE
|
||
LW S_WAIT_HERE, 20
|
||
|
||
.LONG S_DSJ,SPINSIGN_LP
|
||
|
||
GO_PAST_SIGN
|
||
.LONG S_SET_LONG
|
||
.long UEP_Z ; world Z for enemies
|
||
.long 1e000h
|
||
|
||
.LONG S_SET_WORD
|
||
.long JXLIMIT ; X dist for sideways runners
|
||
.word 88h
|
||
|
||
.LONG S_SET_LONG
|
||
.LONG WYBUFFER
|
||
.LONG 0500000H
|
||
|
||
.LONG S_INIT_POPQUO ; sets NMEEZ_GON,MAX_ALLOWED,OBJENEMIES
|
||
.word 3 ; number
|
||
|
||
.LONG S_KILL_POWERUPS ;Whack those powers
|
||
|
||
.LONG S_CREATE_PROC
|
||
.word PID_IND
|
||
.long SomeSoundStuff
|
||
|
||
.LONG S_GOTO_POINT0 ; go in towards bldg
|
||
.word -60*2
|
||
.word 0beh,64h
|
||
.long -9000h
|
||
.word 1*60
|
||
|
||
|
||
.LONG S_WAIT_FOR_COUNTDOWN ; wait until popup quotas done
|
||
.long NMEEZ_GONE1
|
||
|
||
.long S_SET_ENEMIES ; set to tell popups and
|
||
.word 0 ; siderunners to stop
|
||
|
||
DO_HONEY:
|
||
LLW S_SET_WORD, MAX_ALLOWED, 4
|
||
|
||
.LONG S_SET_LONG
|
||
.long UEP_Z ; world Z for enemies
|
||
.long 14000h
|
||
|
||
.LONG S_CREATE_PROCR
|
||
.word PID_IND
|
||
.long 0,0,0,28000h,FLOAT_ZFAR ; behind wall
|
||
.word 0
|
||
|
||
.long S_SET_ENEMIES ; set to tell honeycombs
|
||
.word M_OF_HONEY ; to activate (AU_CREATE_BUGEYZ)
|
||
|
||
.LONG S_SET_WORD
|
||
.long ENAB3DRS ; use for counting destroyed honeycombs
|
||
.word 0 ; to enable secret portal entry
|
||
|
||
.LONG S_GOTO_POINT0 ; go to honeycombs
|
||
.word -100
|
||
.word 01b8h,20h
|
||
.long -0b080h
|
||
.word 0
|
||
|
||
.LONG S_SET_WORD
|
||
.long NUM_OUT_THERE
|
||
.word 0
|
||
|
||
.LONG S_SOUND
|
||
.long SND_HONEY
|
||
|
||
.LONG S_DELETE_ENEMY_OID ; protection
|
||
.word OID_NONBOY
|
||
|
||
.LONG S_SOUND
|
||
.long SND_SQUASH
|
||
|
||
HONEY_LOOP:
|
||
.LONG S_GOTO_POINTXY ; go to honeycombs
|
||
.word 60*8
|
||
.word 0208h,180h
|
||
.word 0
|
||
|
||
.LONG S_GOTO_POINTXY ; go to honeycombs
|
||
.word 60*8
|
||
.word 0258h,20h
|
||
.word 0
|
||
|
||
.LONG S_SOUND
|
||
.long SND_HONEY_END
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 20
|
||
|
||
.LONG S_SET_WORD
|
||
.long ENAB3DRS
|
||
.word 0 ; disable door shooting
|
||
|
||
.long S_SET_ENEMIES ; set to tell honeycombs
|
||
.word 0 ; to disable (AU_CREATE_BUGEYZ)
|
||
|
||
.LONG S_GOTO_POINT0 ; goto decision point
|
||
.word -60*2
|
||
.word 0329h,30h
|
||
.long -0f000h
|
||
.word 10
|
||
|
||
DECIS_PT:
|
||
.LONG S_RESET_VIDCAM
|
||
|
||
.LONG S_MAKE_DECISION ;FUNCTION
|
||
LW 0,0 ;-X, Count
|
||
LW JU_3DOORS,1 ;+X, Count
|
||
LW 0,0 ;-Y, Count
|
||
LW 0,0 ;+Y, Count
|
||
LW 0,0 ;-Z, Count
|
||
LW JU_TOMAIN,1 ;+Z, Count
|
||
|
||
|
||
JU_3DOORS:
|
||
.LONG S_SET_WORD
|
||
.long JXLIMIT ; X dist for sideways runners
|
||
.word 120h
|
||
|
||
.LONG S_SET_WORD
|
||
.long NUM_OUT_THERE
|
||
.word 0
|
||
|
||
.LONG S_SET_WORD
|
||
.long NMEEZ_GONE1 ; tell us how many guys are out there
|
||
.word 5
|
||
|
||
LLW S_SET_WORD, MAX_ALLOWED, 1 ; for popups
|
||
|
||
.long S_SET_ENEMIES ; set to tell popups
|
||
.word M_OF_POPUP|M_OF_SIDER ; to activate
|
||
|
||
.LONG S_X_ACCEL_BURST ; goto window above 3 doors
|
||
.word 800h
|
||
.word 40
|
||
|
||
.LONG S_WAIT_FOR_COORD
|
||
.long XBASE
|
||
.long 4a00000h
|
||
.word 1
|
||
|
||
.LONG S_DECEL_TO_STOP
|
||
.word 6
|
||
|
||
.LONG S_GOTO_POINT0 ; back away
|
||
.word 60*2
|
||
.word 04A0h,0h
|
||
.long -10000h
|
||
.word 0
|
||
|
||
.LONG S_CREATE_PROCR
|
||
.WORD PID_POWERUPD0
|
||
.long 0b000h,07000h,300,200,PROC_DROP_PACK ; by berzerkers
|
||
.word 0
|
||
|
||
.long S_SET_ENEMIES ; set to tell popups to stop
|
||
.word M_OF_SIDER
|
||
|
||
.LONG S_DISPATCH_HERE
|
||
.LONG DSP_JUNG_3DOORS+M_WAIT ;Do the dispatch
|
||
.WORD 0
|
||
|
||
.LONG S_SET_WORD
|
||
.long ENAB3DRS
|
||
.word 1 ; enable door shooting
|
||
|
||
LW S_WAIT_HERE, 1+M_QUOTA ;Wait for all enemies to go
|
||
|
||
.LONG S_KILL_POWERUPS
|
||
|
||
.LONG S_GOTO_POINT0 ; goto decision point
|
||
.word 60*3
|
||
.word 0329h,3ch
|
||
.long -0f000h
|
||
.word 18
|
||
|
||
.long S_SET_ENEMIES ; set to tell popups
|
||
.word 0 ; to disable
|
||
|
||
.LONG S_SET_WORD
|
||
.long ENAB3DRS
|
||
.word 0 ; disable door shooting
|
||
|
||
.LONG S_DELETE_ENEMY_OID ; protection
|
||
.word OID_NONBOY
|
||
|
||
.LONG S_DELETE_ENEMY_OID ; protection
|
||
.word OID_BZERK
|
||
|
||
JU_TOMAIN:
|
||
LLW S_SET_WORD, MAX_ALLOWED, 5 ; for natives
|
||
LLW S_SET_WORD, NUM_OUT_THERE, 0 ; for natives
|
||
|
||
.long S_SET_ENEMIES ; set to tell natives
|
||
.word M_OF_CNATV ; to jump out (AU_CREATE_NATIVE)
|
||
|
||
.LONG S_SET_LONG
|
||
.long UEP_Z
|
||
.long 28000h
|
||
|
||
.LONG S_SET_WORD
|
||
.long JXLIMIT ; X dist for sideways runners
|
||
.word 1b0h
|
||
|
||
.LONG S_Z_ACCEL_BURST
|
||
.word 4
|
||
.word 25
|
||
|
||
LW S_WAIT_HERE,400
|
||
|
||
.LONG S_SET_LONG
|
||
.long UEP_Z ; cut it short
|
||
.long 8000h
|
||
|
||
LLW S_OR_WORD,OBJENEMIES,M_OF_BCOG ;Start the COGs
|
||
|
||
.LONG S_WAIT_FOR_ZREL
|
||
.long 0e000h
|
||
.word 1 ; keep going
|
||
|
||
.long S_SET_ENEMIES ; stop em all
|
||
.word 0 ;
|
||
|
||
.LONG S_DELETE_ENEMY_OID ; protection
|
||
.word OID_COG
|
||
|
||
JU_BTR_HOOK:
|
||
.LONG S_SET_LONG
|
||
.long WXBUFFER
|
||
.long 600000h
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word -60
|
||
.word 329h,0
|
||
.long 17800h
|
||
.word 0
|
||
|
||
.LONG S_SET_WORD ; kill float process
|
||
.long SCROLLKILL
|
||
.word 1
|
||
|
||
.LONG S_GOTO_POINT
|
||
.word -10
|
||
.word 329h,0
|
||
.long 17800h
|
||
.word 0
|
||
|
||
; SCALE THE WALL
|
||
; ALSO this is where you come if you got out of the secret rooms
|
||
|
||
; .LONG S_MAKE_DECISION ;FUNCTION
|
||
; LW LFT_MISTAKE,1 ;-X, Count
|
||
; LW RT_MISTAKE,1 ;+X, Count
|
||
; LW SCALE_WALL,1 ;-Y, Count
|
||
; LW 0,0 ;+Y, Count
|
||
; LW 0,0 ;-Z, Count
|
||
; LW 0,0 ;+Z, Count
|
||
;
|
||
; .LONG SCALE_WALL+M_JUMP
|
||
;
|
||
;LFT_MISTAKE:
|
||
; .long S_GOTO_POINTXY
|
||
; .word 120
|
||
; .word 328h-180h,0
|
||
; .word 120
|
||
;
|
||
;; .LONG S_DISPATCH_HERE
|
||
;; .LONG DSP_JUNG_BIGWALL+M_WAIT ;Do the dispatch
|
||
;; .WORD 0
|
||
;;
|
||
;; LW S_WAIT_HERE, 1+M_QUOTA ;Wait for quota on Berzerkers
|
||
;
|
||
; .LONG M_JUMP+MISTAKE_HOOK
|
||
;
|
||
;
|
||
;RT_MISTAKE:
|
||
; .long S_GOTO_POINTXY
|
||
; .word 120
|
||
; .word 328h+180h,0
|
||
; .word 120
|
||
;
|
||
|
||
;MISTAKE_HOOK
|
||
; .long S_GOTO_POINTXY
|
||
; .word 120
|
||
; .word 328h,0
|
||
; .word 0
|
||
|
||
SCALE_WALL:
|
||
.long S_SET_LONG
|
||
.long WYBUFFER
|
||
.long 1320000h
|
||
|
||
.LONG S_SET_LONG
|
||
.long ZSACCEL
|
||
.long 500
|
||
|
||
.LONG S_SET_LONG
|
||
.long YSACCEL ; POS MEANS UP!
|
||
.long 3000h
|
||
|
||
.LONG S_WAIT_FOR_COORD
|
||
.long YBASE
|
||
.long 7e0000h
|
||
.word 1
|
||
|
||
.LONG S_SET_LONG
|
||
.long YSACCEL
|
||
.long -3000h
|
||
|
||
.LONG S_WAIT_FOR_ZREL
|
||
.long 23800h
|
||
.word 1
|
||
|
||
.LONG S_SET_LONG
|
||
.long ZSACCEL
|
||
.long -800
|
||
|
||
.LONG S_WAIT_FOR_COORD
|
||
.long YBASE
|
||
.long 7e0000h
|
||
.word 1 ; maintain Y motion
|
||
|
||
.long S_CLR_ZMOTION
|
||
|
||
.LONG S_SET_LONG
|
||
.long YSACCEL
|
||
.long 3000h
|
||
|
||
.LONG S_WAIT_FOR_COORD
|
||
.long YBASE
|
||
.long 0h
|
||
.word 0 ; stop Y motion
|
||
|
||
.long S_SET_LONG
|
||
.long WYBUFFER
|
||
.long 320000h
|
||
|
||
.LONG S_SET_LONG
|
||
.long WXBUFFER
|
||
.long 200000h
|
||
|
||
JU_DO_BTR:
|
||
|
||
.LONG S_CREATE_PROCR
|
||
.WORD PID_POWERUPD0
|
||
.long 0b000h,07000h,200,100,PROC_DROP_PACK ; behind wall
|
||
.word 0
|
||
|
||
JUMP_IF_SET SKIP_JUNG_BTR,JCONTIN6
|
||
|
||
.LONG S_SET_LONG,UEP_Z,28000h
|
||
|
||
LLW S_SET_WORD, MAX_ALLOWED, 1 ; for popups
|
||
|
||
.long S_SET_ENEMIES ; set to tell popups and
|
||
.word M_OF_SIDER|M_OF_POPUP ; siderunners to activate
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word 90
|
||
.word 329h,0h
|
||
.long 2e000h
|
||
.word 0
|
||
|
||
.LONG S_CREATE_PROC ;BTR
|
||
.word PID_IND
|
||
.long CREATE_TROOPTRANS ; sets BTR_HANG_TIME to 1
|
||
|
||
LW S_AUDIT, AUDJUBTR
|
||
|
||
.LONG S_SET_WORD
|
||
.long BTR_HANG_TIME
|
||
.word 200h
|
||
|
||
BTR_LOOP:
|
||
.long S_WAIT_HERE
|
||
.word 150
|
||
|
||
.long S_SET_ENEMIES ; set to
|
||
.word M_OF_SIDER ; kill popups
|
||
|
||
.LONG S_SET_WORD
|
||
.long JXLIMIT ; X dist for sideways runners
|
||
.word 1b0h
|
||
|
||
.LONG S_WAIT_UNTIL_TRUE ;IS THE BTR GONE YET?
|
||
.long BTR_GONE
|
||
|
||
;;;; .LONG S_SET_WORD ; Kill it (0) or
|
||
;;;; .long BTR_GONE ; Bring it back (neg)
|
||
;;;; .word -1 ; Triggered by setting
|
||
; BTR_GONE to zero
|
||
|
||
;;;; .LONG S_WAIT_HERE
|
||
;;;; .word 300
|
||
|
||
|
||
.LONG S_SET_WORD
|
||
.long BTR_GONE
|
||
.word 0
|
||
|
||
;;;;;; .LONG M_JUMP+BTR_LOOP
|
||
|
||
|
||
JCONTIN6:
|
||
.long S_SET_ENEMIES ; set to tell popups and
|
||
.word M_OF_SIDER|M_OF_POPUP ; siderunners to activate
|
||
|
||
.LONG S_SET_LONG
|
||
.long UEP_Z ; world Z for enemies
|
||
.long 22000h
|
||
|
||
.LONG S_KILL_POWERUPS ;Whack those powers
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word -6*60
|
||
.word 329h,22h
|
||
.long 30000h
|
||
.word 30
|
||
|
||
AT_MAIN_DOOR:
|
||
.LONG S_SET_ENEMIES ; set to tell popups and
|
||
.word 0 ; siderunners to stop
|
||
|
||
.LONG S_SET_WORD
|
||
.long NUM_OUT_THERE
|
||
.word 0
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 20
|
||
|
||
.LONG S_SET_LONG
|
||
.long YSACCEL
|
||
.long -1800h
|
||
|
||
.LONG S_Z_ACCEL_LIMIT ;MOVE TOWARD DOORS
|
||
.WORD 020H ;Z ACCEL
|
||
.LONG 02c0H ;Z MAX. VELOCITY
|
||
|
||
.LONG S_CLR_ACCELS ; really for Y
|
||
|
||
.LONG S_WAIT_FOR_ZREL
|
||
.LONG 033000H
|
||
.WORD 1
|
||
|
||
; .if BILL
|
||
;
|
||
; .LONG BILL_REVERSE_TEST+M_JUMP
|
||
;
|
||
; .endif
|
||
|
||
.LONG S_RESET_VIDCAM
|
||
|
||
.LONG S_SET_LONG
|
||
.long WAVE_IPLANE,0 ; no infinity plane when we enter
|
||
|
||
.long S_SET_VECTOR_TABLE
|
||
.long BLDG_VECT_TABLE
|
||
|
||
.LONG S_AT_PORTAL_ENTRANCE
|
||
|
||
.LONG S_SET_PORTAL ; Search For Portal we are centered on
|
||
.word 19
|
||
|
||
.LONG S_ENTER_PORTAL ; Set up and enter new universe
|
||
.long GXEVLOB3+M_EP_SMOOTH+M_EP_WAIT ; name of universe
|
||
; .long -1c800h,188000h,0 ; Z, X, Y offsets
|
||
.long -1c000h,188000h,0 ; Z, X, Y offsets
|
||
|
||
.LONG S_SOUND
|
||
.long SND_CHEM_MUSIC
|
||
|
||
.LONG S_DELETE_ENEMY_OID ; protection
|
||
.word OID_NONBOY
|
||
|
||
JUNGLE_SCROLL_LOOP:
|
||
; .LONG S_WAIT_HERE
|
||
; .word 30
|
||
|
||
.LONG S_ALLOW_PORTALS
|
||
|
||
JUMP_IF_SET SKIP_LOBBY,AT_HALL1_ENTRANCE
|
||
|
||
.LONG S_CLR_OU_OHITS ; for hit counting
|
||
.word OID_UNIV|(1<<BIT_ID),OID_UNIV|(6<<BIT_ID)
|
||
; universe ID range of chains
|
||
.word 6 ; number of pieces to look for
|
||
|
||
.LONG S_DECEL_TO_POINTZ ; Lock down in front of desk
|
||
.word -90
|
||
.long -1c000h ;-1c400h
|
||
.word 0
|
||
|
||
LW S_AUDIT, AUDJUDESK
|
||
|
||
.LONG S_WAIT_UNTIL_FALSE
|
||
.long SIGN_DOWN
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 50
|
||
|
||
.LONG S_SOUND
|
||
.long SND_NICE_SHOT
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 50
|
||
|
||
.LONG S_ACCEL_TO_POINT ; start over desk
|
||
.word -25
|
||
.word 18h,20h
|
||
.long -19000h
|
||
.word 0
|
||
|
||
.LONG S_DECEL_TO_POINT ; come back down
|
||
.word -35
|
||
.word 18h,0
|
||
.long -016000h
|
||
.word 0
|
||
|
||
.LONG S_GOTO_POINTZ
|
||
.word -90
|
||
.long -10d00h
|
||
.word 0
|
||
|
||
JUMP_IF_SET SKIP_FIRST_HALL,JCONTIN7
|
||
|
||
.LONG S_CREATE_PROCR
|
||
.WORD PID_POWERUPD0
|
||
.long 0b000h,07000h,300,100,PROC_DROP_PACK ; behind wall
|
||
.word 0
|
||
|
||
.LONG S_BRNCH_ON_WORD_VAL ; branch based on value
|
||
LW PLYR_SEEN,2 ; variable, num choices
|
||
.long FH_0 ; if PLYR_SEEN = 0
|
||
.long FH_1 ; if PLYR_SEEN = 1
|
||
; fall through if none of the above
|
||
.LONG S_CREATE_BZERKS
|
||
.word 4 ; how many (subject to CURPLYR adjustment)
|
||
.word 30 ; ticks between creation
|
||
.word -2ch,2ch ; world X range
|
||
.long 9000h,18000h ; Z range
|
||
|
||
FH_1:
|
||
.LONG S_CREATE_MASS_ATRIUM
|
||
.word 0,-67h ; avail : Y
|
||
.word 46h,-12h ; right x ,left x range
|
||
.long -6000h ; start z
|
||
.long -6000h+(8*1800h) ; end Z
|
||
.word 18
|
||
|
||
FH_0:
|
||
.LONG S_RESET_VIDCAM
|
||
|
||
.LONG S_CREATE_PILLAR_BOYS
|
||
.word 0,6 ; Y, # pillars
|
||
.word 46h,-12h ; right x , left x
|
||
.long -8800h ; start z
|
||
.long 3000h ; delta Z
|
||
|
||
.LONG S_CREATE_ATRIUM_BOYS
|
||
.word 0,-67h ; avail : Y
|
||
.word 46h,-12h ; right x ,left x range
|
||
.long -6000h ; start z
|
||
.long -6000h+(8*1800h) ; end Z
|
||
|
||
.LONG S_KILL_ALL_PROCS ; kill flicker
|
||
.word PID_TCYCLE
|
||
|
||
.LONG S_CREATE_PROC
|
||
.word PID_IND
|
||
.long ROCK_IN_X
|
||
|
||
.LONG S_WAIT_FOR_ZIPOK
|
||
|
||
ZIP_LOOP:
|
||
.LONG ZIP_FWD+M_CALL
|
||
|
||
.LONG S_JUMP_IF_TRUE
|
||
.long ZIP_LOOP
|
||
.long NUM_PILLARS
|
||
|
||
.LONG S_SET_WORD
|
||
.long SCROLLKILL
|
||
.word 2 ; number of processes to die now
|
||
; (They know who they are)
|
||
|
||
JCONTIN7:
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word -30
|
||
.word 18h,0
|
||
.long -10d00h+(6*3000h)+1000h
|
||
.word 0
|
||
|
||
***********************************************************
|
||
JUMP_IF_CLR SKIP_FIRST_HALL,JCONTIN8
|
||
|
||
.if DEBUG
|
||
|
||
AT_HALL1_ENTRANCE:
|
||
.LONG S_GOTO_POINTZ
|
||
.word -90
|
||
.long -10d00h+(6*3000h)+1000h
|
||
.word 0
|
||
|
||
.endif
|
||
JCONTIN8:
|
||
***********************************************************
|
||
.LONG S_LOCKOUT_PORTALS ; disable elevator button
|
||
|
||
.LONG S_AT_PORTAL_ENTRANCE
|
||
|
||
.LONG S_SET_PORTAL ; Search For Portal we are centered on
|
||
.word 30
|
||
|
||
.LONG S_ENTER_PORTAL ; Set up and enter new universe
|
||
.long GXHALL3M+M_EP_SMOOTH+M_EP_WAIT ; name of universe
|
||
.long -18000h,105000h,0 ; Z, X, Y offsets
|
||
|
||
.LONG S_CREATE_PROCR
|
||
.word PID_IND
|
||
.long 0,0,0,0b040h,FLOAT_ZFAR
|
||
.word 0
|
||
|
||
.LONG S_RESET_VIDCAM
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 60
|
||
|
||
***********************************************************
|
||
JUMP_IF_CLR SKIP_GXHALL1,JCONTIN9
|
||
.if DEBUG
|
||
|
||
.LONG S_SET_WORD
|
||
.long SCROLLKILL
|
||
.word 1 ; kill float process
|
||
|
||
.LONG S_MERGE_UNIV
|
||
.long GXHALL3L
|
||
|
||
.LONG S_KILL_POWERUPS ;Whack those powers
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word -200
|
||
.word -33eh,0
|
||
.long 1b000h
|
||
.word 0
|
||
|
||
.LONG S_SET_WORD
|
||
.long ENEMY_QUOTA
|
||
.word 0
|
||
|
||
.LONG M_JUMP+TEST_KLUDGE_LFT
|
||
|
||
.endif
|
||
JCONTIN9:
|
||
***********************************************************
|
||
|
||
***********************************************************
|
||
JUMP_IF_CLR SKIP_GXHALL2,JCONT1
|
||
.if DEBUG
|
||
|
||
.LONG S_SET_WORD
|
||
.long SCROLLKILL
|
||
.word 1 ; kill float process
|
||
|
||
.LONG S_MERGE_UNIV
|
||
.long GXHALL3R
|
||
|
||
.LONG S_KILL_POWERUPS ;Whack those powers
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word -200
|
||
.word 306h,0
|
||
.long 1b000h
|
||
.word 0
|
||
|
||
.LONG S_SET_WORD
|
||
.long ENEMY_QUOTA
|
||
.word 0
|
||
|
||
.LONG M_JUMP+TEST_KLUDGE_RT
|
||
|
||
.endif
|
||
JCONT1:
|
||
***********************************************************
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 80 ; give player time to shoot VIDCAM
|
||
|
||
.LONG S_Z_ACCEL_BURST
|
||
.word 60h
|
||
.word 20
|
||
|
||
***********************************************************
|
||
JUMP_IF_CLR SKIP_SKULL,JCONTIN10
|
||
.if DEBUG
|
||
|
||
.LONG S_WAIT_FOR_ZREL
|
||
.long -4801h-3800h
|
||
.word 0 ; stop
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 15
|
||
|
||
.LONG S_GOTO_POINTZ
|
||
.word -60
|
||
.long -0fa0ch ;15694h
|
||
.word 90
|
||
|
||
.LONG M_JUMP+PAST_SKULL
|
||
.endif
|
||
***********************************************************
|
||
|
||
JCONTIN10:
|
||
.LONG S_SET_WORD
|
||
.long SCROLL_FLAG ; will be cleared by skull dying and last iball
|
||
.word 3
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 10
|
||
|
||
.LONG S_START_GOOP
|
||
.long -4801h ; ZPOS (lo bit is RETREAT flag, 0=morph to iballs)
|
||
.word 8 ; wait 8 tiks
|
||
|
||
.LONG S_WAIT_FOR_ZREL
|
||
.long -4801h-3800h
|
||
.word 0 ; stop
|
||
|
||
; .LONG S_DECEL_TO_STOP ; hit the brakes
|
||
; .word 5
|
||
|
||
.LONG S_SOUND
|
||
.long SND_WHOA
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 15
|
||
|
||
.LONG S_GOTO_POINTZ
|
||
.word -60
|
||
.long -0fa0ch ;15694h
|
||
.word 90
|
||
|
||
.long S_WAIT_UNTIL_FALSE ; bits cleared by skull retreat
|
||
.long SCROLL_FLAG ; and last eyeball gone
|
||
|
||
PAST_SKULL:
|
||
.LONG S_KILL_POWERUPS
|
||
|
||
LW S_AUDIT, AUDJUELEV
|
||
|
||
.LONG S_SET_ELEVATOR ; kills float proc,too.
|
||
.long EXIT_ELEVATOR,HALL1FLR2,HALL1FLR3
|
||
|
||
.LONG S_GOTO_POINTZ
|
||
.word -90
|
||
.long -1f00h ;20000h
|
||
.word 0
|
||
|
||
|
||
.LONG S_ALLOW_PORTALS
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 25 ; time to hit elevator button
|
||
|
||
.LONG S_LOCKOUT_PORTALS
|
||
|
||
.LONG S_CHANGE_ZFAR
|
||
.long 2a000h
|
||
|
||
.LONG S_MAKE_DECISION ;FUNCTION
|
||
LW J_LEFT,5 ;-X, Count
|
||
LW J_RT,5 ;+X, Count
|
||
LW 0,0 ;-Y, Count
|
||
LW 0,0 ;+Y, Count
|
||
LW 0,0 ;-Z, Count
|
||
LW 0,0 ;+Z, Count
|
||
|
||
*
|
||
* NOTE: Deadend hallway boundaries... -204h, -15eh left of elev.
|
||
* 133h, 1d8h rt of elev.
|
||
*
|
||
*
|
||
|
||
|
||
J_RT:
|
||
.long S_MERGE_UNIV
|
||
.long GXHALL3R
|
||
|
||
.LONG S_GOTO_POINTXY
|
||
.word 330
|
||
.word 306h,0
|
||
.word 2
|
||
|
||
.LONG S_BRNCH_ON_WORD_VAL ; branch based on value
|
||
LW PLYR_SEEN,2 ; variable, num choices
|
||
.long RH_0 ; if PLYR_SEEN = 0
|
||
.long RH_1 ; if PLYR_SEEN = 1
|
||
; fall through if none of the above
|
||
.LONG S_CREATE_MASS_ATRIUM
|
||
.word 0,-67h ; avail : Y
|
||
.word 32eh,2e2h ; right x ,left x range
|
||
.long 9000h ; start z
|
||
.long 1f000h ; end Z
|
||
.word 20
|
||
|
||
RH_1:
|
||
.LONG S_CREATE_MASS_ATRIUM
|
||
.word 0,-67h ; avail : Y
|
||
.word 32eh,2e2h ; right x ,left x range
|
||
.long 9000h ; start z
|
||
.long 1f000h ; end Z
|
||
.word 20
|
||
|
||
RH_0:
|
||
.LONG S_CREATE_PILLAR_BOYS
|
||
.word 0,7 ; Y, # pillars
|
||
.word 336h,2dah ; right x , left x
|
||
.long 0b001h ; start z
|
||
.long 3000h ; delta Z
|
||
|
||
.LONG S_CREATE_ATRIUM_BOYS
|
||
.word 0,-67h ; avail : Y
|
||
.word 32eh,2e2h ; right x ,left x range
|
||
.long 9000h ; start z
|
||
.long 1e000h ; end Z
|
||
|
||
.LONG S_GOTO_POINTZ_DELTA
|
||
.word 50
|
||
.long 3000h
|
||
.word 0
|
||
|
||
.LONG LAST_HALL+M_CALL
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word -60
|
||
.word 306h,0
|
||
.long 1a800h
|
||
.word 0
|
||
|
||
TEST_KLUDGE_RT:
|
||
.LONG S_GOTO_POINT
|
||
.word -10
|
||
.word 306h,0
|
||
.long 1a800h
|
||
.word 0
|
||
|
||
.long S_SET_VECTOR_TABLE
|
||
.long CHEM_VECT_TABLE
|
||
|
||
.LONG S_AT_PORTAL_ENTRANCE
|
||
|
||
.LONG S_SET_PORTAL ; Search For Portal we are centered on
|
||
.word 25
|
||
|
||
.LONG S_ENTER_PORTAL ; Set up and enter new universe
|
||
.long GXINNR+M_EP_SMOOTH ; name of universe
|
||
.long -1e900h,70c0000h,0 ; Z, X, Y offsets
|
||
|
||
.LONG S_SOUND, SND_FACTORY_MUSIC
|
||
|
||
.LONG S_SET_WORD
|
||
.long NUM_PILLARS ;use as morph chamber count
|
||
.word 0
|
||
|
||
.LONG S_DELETE_ENEMY_OID
|
||
.word OID_NONBOY
|
||
|
||
.if TEST_BUG
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 40
|
||
|
||
.LONG M_JUMP+J_HOOK ; TEST KLUDGE FOR BILL
|
||
|
||
.endif
|
||
|
||
.LONG S_CREATE_PROCR
|
||
.word PID_IND
|
||
.long 0,0,0,-03c00h,FLOAT_ZFAR
|
||
.word 0
|
||
|
||
.LONG S_RESET_VIDCAM
|
||
; .LONG S_LOCKOUT_PORTALS
|
||
|
||
|
||
.long S_SET_ENEMIES ; set to tell popups and
|
||
.word M_OF_BOXERS ; siderunners to stop
|
||
|
||
.LONG S_SET_WORD
|
||
.long MAX_ALLOWED
|
||
.word 8 ; set number of box carriers
|
||
|
||
.LONG S_CREATE_BEEKS ; create beekeepers
|
||
.word 0 ; index 0 = outside chamber right
|
||
|
||
.LONG S_Z_ACCEL_BURST ; move in
|
||
.word 6
|
||
.word 20
|
||
|
||
.LONG S_SOUND
|
||
.long SND_PLANT_MUSIC
|
||
|
||
.LONG S_WAIT_FOR_ZREL
|
||
.long -13000h
|
||
.word 1
|
||
|
||
.LONG S_CREATE_PROC
|
||
.word PID_BEEKPR
|
||
.long CHECK4_CHEM_DAM
|
||
|
||
*
|
||
* CHEM PLANT OUTER RIGHT CHAMBER START
|
||
*
|
||
.LONG S_DECEL_TO_STOP
|
||
.word 7
|
||
|
||
JUMP_IF_CLR SKIP_PLANT,JCONTIN11
|
||
.if DEBUG
|
||
|
||
.long S_SET_ENEMIES ; set to kill box carriers
|
||
.word 0 ;
|
||
|
||
.LONG M_JUMP+J_WARTEST ; TEST ONLY
|
||
.endif
|
||
|
||
JCONTIN11:
|
||
.LONG S_WAIT_HERE
|
||
.word 160
|
||
|
||
.LONG S_XYZ_ACCEL_BURST
|
||
.word -0a00h,0,15
|
||
.word 28
|
||
|
||
; .LONG S_GOTO_POINT0
|
||
; .word -200
|
||
; .word 670h,0
|
||
; .long -0b800h ; move in to wall between consoles
|
||
; .word 0
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 30
|
||
|
||
.LONG S_Z_ACCEL_BURST
|
||
.word -15
|
||
.word 28
|
||
|
||
.LONG S_WAIT_FOR_COORD
|
||
.long XBASE
|
||
.long 5e80000h
|
||
.word 1
|
||
|
||
; .LONG S_GOTO_POINT0 ; in closer
|
||
; .word -150
|
||
; .word 5ddh,0
|
||
; .long -0b000h
|
||
; .word 0
|
||
|
||
.LONG S_GOTO_POINT0 ; out to second console
|
||
.word -200
|
||
.word 637h,0
|
||
.long -12eebh
|
||
.word 90
|
||
|
||
.LONG S_Z_ACCEL_BURST ; back off
|
||
.word -30
|
||
.word 15
|
||
|
||
; .LONG S_WAIT_FOR_ZREL
|
||
; .long -15eebh
|
||
; .word 1 ; keep scrolling
|
||
|
||
.LONG S_SET_LONG
|
||
.long YSACCEL ; POS MEANS UP!
|
||
.long 1000h
|
||
|
||
.LONG S_WAIT_FOR_COORD
|
||
.long YBASE
|
||
.long 240000h
|
||
.word 1
|
||
|
||
; .LONG S_SET_LONG
|
||
; .long YSACCEL
|
||
; .long -2000h
|
||
|
||
.LONG S_GOTO_POINT0 ; after backwards jump over belt
|
||
.word -90
|
||
.word 6a0h,0
|
||
.long -1d000h
|
||
.word 300 ; shoot beeks and boxes
|
||
|
||
.LONG S_GOTO_POINTXY ; move left slowly
|
||
.word 500
|
||
.word 529h,0
|
||
.word 90
|
||
|
||
.long S_SET_ENEMIES ; set to kill box carriers
|
||
.word 0 ;
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word -300
|
||
.word 4b3h,0
|
||
.long -13000h ; bubblers
|
||
.word 90
|
||
|
||
.LONG S_GOTO_POINTZ ; move in between bubblers
|
||
.word -300
|
||
.long -0ec00h
|
||
.word 0
|
||
|
||
.LONG S_GOTO_POINTXY
|
||
.word 300
|
||
.word 53bh,0
|
||
.word 0
|
||
|
||
.LONG S_GOTO_POINTZ
|
||
.word -400
|
||
.long -136ebh
|
||
.word 0
|
||
J_WARTEST:
|
||
.LONG S_GOTO_POINT0
|
||
.word -400
|
||
.word 4e1h,0
|
||
.long -1c400h ; was -1c800h
|
||
.word 0
|
||
|
||
.LONG S_SET_LONG
|
||
.long SECRET_SCROLL
|
||
.long ENTER_CHEM_RMR
|
||
|
||
.LONG S_START_MORFERS
|
||
.word 44dh
|
||
.long -11800h
|
||
|
||
.LONG S_SET_SCROLL_FLAG
|
||
.long -1 ; set to all 1's to say it's okay
|
||
|
||
.LONG S_GOTO_POINTXY
|
||
.word 120
|
||
.word 448h,0 ; lock on morph chamber
|
||
.word 0
|
||
|
||
.LONG M_CALL+MORPH_CHMBR
|
||
|
||
*
|
||
* CHEM PLANT OUTER RIGHT CHAMBER END
|
||
*
|
||
|
||
.LONG J_HOOK+M_JUMP
|
||
|
||
J_LEFT:
|
||
.long S_MERGE_UNIV
|
||
.long GXHALL3L
|
||
|
||
.LONG S_GOTO_POINTXY
|
||
.word 330
|
||
.word -33eh,0
|
||
.word 2
|
||
|
||
.LONG S_GOTO_POINTZ_DELTA
|
||
.word 50
|
||
.long 3000h
|
||
.word 0
|
||
|
||
.LONG S_BRNCH_ON_WORD_VAL ; branch based on value
|
||
LW PLYR_SEEN,2 ; variable, num choices
|
||
.long LH_0 ; if PLYR_SEEN = 0
|
||
.long LH_1 ; if PLYR_SEEN = 1
|
||
; fall through if none of the above
|
||
.LONG S_CREATE_BZERKS
|
||
.word 4 ; how many (subject to CURPLYR adjustment)
|
||
.word 55 ; ticks between creation
|
||
.word -2ch,2ch ; world X range
|
||
.long 9000h,18000h ; Z range
|
||
LH_1:
|
||
.LONG S_CREATE_BZERKS
|
||
.word 4 ; how many (subject to CURPLYR adjustment)
|
||
.word 25 ; ticks between creation
|
||
.word -2ch,2ch ; world X range
|
||
.long 9000h,18000h ; Z range
|
||
LH_0:
|
||
|
||
.LONG S_CREATE_PILLAR_BOYS
|
||
.word 0,7 ; Y, # pillars
|
||
.word -30ah,-373h ; right x , left x
|
||
.long 0b003h ; start z
|
||
.long 3000h ; delta Z
|
||
|
||
.LONG S_CREATE_ATRIUM_BOYS
|
||
.word 0,-67h ; avail : Y
|
||
.word -30dh,-370h ; right x ,left x range
|
||
.long 09000h ; start z
|
||
.long 1e000h ; end Z
|
||
|
||
|
||
.LONG LAST_HALL+M_CALL
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word -60
|
||
.word -33eh,0
|
||
.long 1a800h
|
||
.word 0
|
||
TEST_KLUDGE_LFT:
|
||
.LONG S_GOTO_POINT
|
||
.word -10
|
||
.word -33eh,0
|
||
.long 1a800h
|
||
.word 0
|
||
|
||
.long S_SET_VECTOR_TABLE
|
||
.long CHEM_VECT_TABLE
|
||
|
||
.LONG S_AT_PORTAL_ENTRANCE
|
||
|
||
.LONG S_SET_PORTAL ; Search For Portal we are centered on
|
||
.word 25
|
||
|
||
.LONG S_ENTER_PORTAL ; Set up and enter new universe
|
||
.long GXINNL+M_EP_SMOOTH ; name of universe
|
||
.long -1e900h,0b0000h,0 ; Z, X, Y offsets
|
||
|
||
.LONG S_SOUND, SND_FACTORY_MUSIC
|
||
|
||
.LONG S_SET_WORD
|
||
.long NUM_PILLARS ;use as morph chamber count
|
||
.word 0
|
||
|
||
.LONG S_DELETE_ENEMY_OID
|
||
.word OID_NONBOY
|
||
|
||
.LONG S_CREATE_PROCR
|
||
.word PID_IND
|
||
.long 0,0,0,-03c00h,FLOAT_ZFAR
|
||
.word 0
|
||
|
||
.LONG S_RESET_VIDCAM
|
||
; .LONG S_LOCKOUT_PORTALS
|
||
|
||
.long S_SET_ENEMIES ; set to tell popups and
|
||
.word M_OF_BOXERS ; siderunners to stop
|
||
|
||
.LONG S_SET_WORD
|
||
.long MAX_ALLOWED
|
||
.word 8 ; set number of box carriers
|
||
|
||
.LONG S_CREATE_BEEKS ; create beekeepers
|
||
.word 1 ; index 1 = outside chamber left
|
||
|
||
.LONG S_Z_ACCEL_BURST ; move in
|
||
.word 10
|
||
.word 20
|
||
|
||
.LONG S_SOUND
|
||
.long SND_PLANT_MUSIC
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 40
|
||
|
||
|
||
*
|
||
* CHEM PLANT OUTER LEFT CHAMBER START
|
||
*
|
||
|
||
.LONG S_WAIT_FOR_ZREL
|
||
.long -13c00h
|
||
.word 1
|
||
|
||
.LONG S_CREATE_PROC
|
||
.word PID_BEEKPR
|
||
.long CHECK4_CHEM_DAM
|
||
|
||
.LONG S_DECEL_TO_STOP
|
||
.word 6
|
||
|
||
JUMP_IF_CLR SKIP_PLANT,JCONTIN12
|
||
.if DEBUG
|
||
|
||
.long S_SET_ENEMIES ; set to kill box carriers
|
||
.word 0 ;
|
||
|
||
.LONG M_JUMP+J_WARTESTL ; TEST ONLY
|
||
.endif
|
||
|
||
JCONTIN12:
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 160
|
||
|
||
.LONG S_GOTO_POINTZ
|
||
.word -250
|
||
.long -1d368h
|
||
.word 0
|
||
|
||
.LONG S_GOTO_POINTXY
|
||
.word 300
|
||
.word 0cbh,0
|
||
.word 0
|
||
|
||
.LONG S_GOTO_POINTZ
|
||
.word -400
|
||
.long -10e68h
|
||
.word 0
|
||
|
||
.long S_SET_ENEMIES ; set to kill box carriers
|
||
.word 0 ;
|
||
|
||
.LONG S_GOTO_POINTXY
|
||
.word 500
|
||
.word 018dh,0
|
||
.word 0
|
||
|
||
J_WARTESTL:
|
||
.LONG S_GOTO_POINT0
|
||
.word -400
|
||
.word 0133h,0
|
||
.long -17368h
|
||
.word 40
|
||
|
||
.LONG S_SET_LONG
|
||
.long SECRET_SCROLL
|
||
.long ENTER_CHEM_RML
|
||
|
||
.LONG S_START_MORFERS
|
||
.word 1c9h
|
||
.long -10fedh
|
||
|
||
.LONG S_SET_SCROLL_FLAG
|
||
.long -1 ; set to all 1's to say it's okay
|
||
; to destroy morph chamber
|
||
.LONG S_GOTO_POINT0
|
||
.word -400
|
||
.word 01d2h,0
|
||
.long -1c000h
|
||
.word 0
|
||
|
||
.LONG M_CALL+MORPH_CHMBR
|
||
|
||
*
|
||
* CHEM PLANT OUTER LEFT CHAMBER END
|
||
*
|
||
|
||
J_HOOK:
|
||
.LONG S_MERGE_UNIV ; add center part
|
||
.long GXINNM
|
||
J_HOOK2:
|
||
.long S_SET_ENEMIES ; stop morph chamber guys
|
||
.word 0 ;
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word -200
|
||
.word 31bh,0
|
||
.long -1c800h
|
||
.word 0
|
||
|
||
.LONG S_DELETE_ENEMY_OID
|
||
.word OID_BEEKPR
|
||
|
||
.LONG S_KILL_ALL_PROCS ; kill related processes
|
||
.word PID_BEEKPR
|
||
|
||
LW S_AUDIT, AUDJUBZERK
|
||
|
||
.if TEST_BUG==0
|
||
|
||
.LONG S_DISPATCH_HERE
|
||
.LONG DSP_JUNG_ENDHALL+M_WAIT ;Do the dispatch
|
||
.WORD 0
|
||
|
||
LW S_WAIT_HERE, 1+M_QUOTA ;Wait for quota on Berzerkers
|
||
|
||
.endif
|
||
|
||
.LONG S_Z_ACCEL_BURST ;PULL BACK AND DOWN TO THE WALL
|
||
.word 20h
|
||
.word 10
|
||
|
||
.LONG S_CHANGE_ZFAR
|
||
.long 02e000h
|
||
|
||
.long S_WAIT_FOR_ZREL
|
||
.long -0d800H ;Open doors
|
||
.word 1
|
||
|
||
.LONG S_CREATE_PROC
|
||
.word PID_BOSSBUG
|
||
.LONG START_BUG_PROC
|
||
|
||
.LONG S_KILL_POWERUPS
|
||
|
||
.LONG S_START_DANIM_VISIBLE
|
||
|
||
.long S_WAIT_FOR_ZREL
|
||
.long -1500H ;Stop at wall and ...
|
||
.word 0
|
||
|
||
.LONG S_DELETE_ENEMY_OID ; protection
|
||
.word OID_BZERK
|
||
|
||
BILL_SCROLL
|
||
.LONG S_SET_LONG
|
||
.LONG WXBUFFER
|
||
.LONG 0180000H
|
||
|
||
.LONG S_SET_WORD
|
||
.LONG UNIVERR
|
||
.WORD 1
|
||
|
||
.LONG S_GOTO_POINT
|
||
.WORD -10
|
||
.WORD 0318H,0
|
||
.LONG -013EFH
|
||
.WORD 0
|
||
|
||
.LONG S_SET_WORD
|
||
.long SCROLL_FLAG ; will be cleared by big iballs
|
||
.word 2
|
||
|
||
.if TEST_BUG==0
|
||
|
||
.LONG S_LOAD_BOSS_PUNISH
|
||
|
||
.LONG S_START_GOOP
|
||
.long 0d9c0h ; ZPOS (lo bit is RETREAT flag, 0=morph to iballs)
|
||
.word 0fffh ; wait forever (until external force moves us on)
|
||
|
||
.LONG S_WAIT_UNTIL_FALSE
|
||
.long SCROLL_FLAG ; wait for big iballs to be killed
|
||
|
||
.endif
|
||
|
||
.if YES_BUG==0
|
||
|
||
LLW S_SET_WORD, GAME_STATE, INGAME
|
||
|
||
.LONG S_WAIT_HERE
|
||
.WORD 60
|
||
|
||
.LONG S_SOUND,SND_SWEET_EMOTION
|
||
|
||
LLW S_SET_WORD, BONUS_DIRECTION, 3 ; END THE WAVE
|
||
|
||
.LONG S_CREATE_PROC
|
||
.word PID_IND
|
||
.LONG WAVE_END_IMM ;Force the wave to end
|
||
|
||
.LONG 0
|
||
|
||
.endif
|
||
|
||
.LONG S_SET_LONG
|
||
.LONG WAVE_UNIV
|
||
.LONG GXINNM
|
||
|
||
.LONG S_WAIT_HERE
|
||
.WORD 35
|
||
|
||
|
||
; .LONG S_SOUND
|
||
; .long SND_KICKASS
|
||
|
||
.LONG S_MAKE_KICKASS
|
||
|
||
.LONG S_WAIT_HERE
|
||
.WORD 75
|
||
|
||
LW S_AUDIT, AUDJUBUG
|
||
|
||
.LONG S_CREATE_PROC
|
||
.word PID_IND
|
||
.LONG BLOW_COVER_PROC
|
||
|
||
.LONG S_CLR_SCROLL_FLAG
|
||
.LONG -1
|
||
|
||
.LONG S_WAIT_UNTIL_TRUE
|
||
.LONG SCROLL_FLAG
|
||
|
||
.LONG S_SOUND
|
||
.long SND_ESCAPE_MUSIC
|
||
|
||
|
||
.long S_Z_ACCEL_LIMIT
|
||
.WORD -014H
|
||
.LONG -08800H >> ZFRAC
|
||
|
||
.LONG S_SOUND
|
||
.long SND_OUTA_HERE
|
||
|
||
.LONG S_WAIT_FOR_COORD_ZREL
|
||
; .LONG -0CC6FH
|
||
.LONG -0AC6FH
|
||
.WORD 1
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 30
|
||
|
||
.LONG S_START_DANIM_VISIBLE
|
||
|
||
.LONG S_WAIT_FOR_COORD_ZREL
|
||
.LONG -0ED6FH
|
||
.WORD 1
|
||
|
||
.LONG S_SET_LONG
|
||
.LONG WXBUFFER
|
||
.LONG 060000H
|
||
|
||
.LONG S_WAIT_FOR_COORD_ZREL
|
||
.LONG -01C52FH
|
||
.WORD 0
|
||
|
||
.LONG S_GOTO_POINT
|
||
.WORD -10
|
||
.WORD 0318H,0
|
||
.LONG -01C52FH
|
||
.WORD 0
|
||
|
||
; .LONG BILL_LUPE+M_JUMP
|
||
;
|
||
; .LONG S_GOTO_POINT
|
||
; .WORD -240
|
||
; .WORD 070CH,0
|
||
; .LONG -01C52FH
|
||
; .WORD 0
|
||
;
|
||
; .LONG BILL_LUPE+M_JUMP
|
||
|
||
.LONG S_SET_LONG
|
||
.LONG WXBUFFER
|
||
.LONG 0200000H
|
||
|
||
.LONG S_SET_LONG
|
||
.LONG WYBUFFER
|
||
.LONG 0320000H
|
||
|
||
.LONG S_GOTO_PORTAL_X
|
||
.word 160 ; how long to get there (ticks)
|
||
; .word 240 ; how long to get there (ticks)
|
||
.word 0 ; sleep upon arrival
|
||
|
||
.LONG S_SET_WORD ; kill float process
|
||
.long SCROLLKILL
|
||
.word 1
|
||
|
||
.long S_SET_VECTOR_TABLE
|
||
.long BLDG_VECT_TABLE
|
||
|
||
.LONG S_EXIT_PORTAL
|
||
.word 0 ; sleep upon exit
|
||
|
||
.LONG S_CREATE_PROCR
|
||
.word PID_IND
|
||
.long 0,0,0,024000H,FLOAT_ZFAR
|
||
.word 0
|
||
|
||
.LONG S_SET_WORD
|
||
.LONG SKYCOLOR
|
||
.WORD 0
|
||
|
||
.LONG S_SET_WORD
|
||
.LONG IRQSKYE
|
||
.WORD 0
|
||
|
||
.LONG S_SET_LONG
|
||
.LONG WXBUFFER
|
||
.LONG 080000H
|
||
|
||
.long S_Z_ACCEL_LIMIT
|
||
.WORD -016H
|
||
.LONG -09000H >> ZFRAC
|
||
|
||
.LONG S_SET_LONG ; place bug at next spot
|
||
.LONG WAVE_UNIV
|
||
.LONG GXHALL3M
|
||
|
||
.LONG S_JUMP_IF_BIT_SET ; jump if XBASE neg
|
||
.long PlaceINNL
|
||
.long XBASE+16
|
||
.word 15
|
||
|
||
.LONG S_ADD_TMPOBJ
|
||
.long INNR_INIT
|
||
.word 30c8h,310h
|
||
.long 24365h
|
||
.word 100
|
||
|
||
.LONG PlaceINNR+M_JUMP
|
||
|
||
PlaceINNL:
|
||
|
||
.LONG S_ADD_TMPOBJ
|
||
.long INNL_INIT
|
||
.word -33a0h,2d8h
|
||
.long 244fdh
|
||
.word 100
|
||
|
||
PlaceINNR:
|
||
|
||
.LONG S_START_UID_DANIM ; reopen doors to chem plant
|
||
.WORD 2 << 8 + (32-1) + M_START_UID_PORTAL
|
||
|
||
; .LONG S_START_UID_DANIM
|
||
; .WORD 2 << 8 + (6-1) + M_START_UID_PORTAL
|
||
|
||
.LONG S_WAIT_HERE
|
||
.WORD 60
|
||
|
||
.LONG S_START_UID_ANIM
|
||
.LONG SLDORCLOSE
|
||
.WORD 2 << 8 + (32-1) + M_START_UID_PORTAL
|
||
|
||
; .LONG S_START_UID_ANIM
|
||
; .LONG SLDORCLOSE
|
||
; .WORD 2 << 8 + (6-1) + M_START_UID_PORTAL
|
||
|
||
.LONG S_WAIT_HERE
|
||
.WORD 40
|
||
|
||
.LONG S_SET_WORD
|
||
.LONG SKYCOLOR
|
||
.WORD 024A0H
|
||
|
||
.LONG S_SET_WORD
|
||
.LONG IRQSKYE
|
||
.WORD 024A0H
|
||
|
||
.LONG S_WAIT_FOR_COORD_ZREL
|
||
.LONG -01F00H
|
||
.WORD 0
|
||
|
||
.LONG S_GOTO_ZPOINT
|
||
.WORD -10
|
||
.LONG -01F00H
|
||
.WORD 0
|
||
|
||
.LONG S_SET_LONG
|
||
.LONG WXBUFFER
|
||
.LONG 0100000H
|
||
|
||
.LONG S_CLR_SCROLL_FLAG
|
||
.LONG -1
|
||
|
||
.LONG S_GOTO_POINTXY ;GO TO ELEVATOR
|
||
.word 120
|
||
.word 010H,0
|
||
.WORD 0 ; SLEEP UPON ARRIVAL
|
||
|
||
.LONG S_SET_WORD ; kill float process
|
||
.long SCROLLKILL
|
||
.word 1
|
||
|
||
.LONG S_GOTO_POINT
|
||
.WORD -10
|
||
.WORD 010H,0
|
||
.LONG -01F00H
|
||
.WORD 0
|
||
|
||
.LONG S_CREATE_PROCR
|
||
.word PID_IND
|
||
.long 0,0,0,10000H,FLOAT_ZFAR
|
||
.word 0
|
||
|
||
.LONG S_SET_SCROLL_FLAG
|
||
.LONG 1
|
||
|
||
.LONG S_SET_LONG
|
||
.LONG WXBUFFER
|
||
.LONG 080000H
|
||
|
||
.LONG S_GOTO_POINT
|
||
.WORD -240
|
||
.WORD 010H,0
|
||
.LONG -0197B4H
|
||
.WORD 0
|
||
|
||
; .LONG S_GOTO_PORTAL_EXIT
|
||
; .word 300 ; how long to get there (ticks)
|
||
; .word 0 ; sleep upon arrival
|
||
|
||
.LONG S_SET_WORD ; kill float process
|
||
.long SCROLLKILL
|
||
.word 1
|
||
|
||
.LONG S_EXIT_PORTAL
|
||
.word 3 ; sleep upon exit
|
||
|
||
.LONG S_CREATE_PROCR
|
||
.word PID_IND
|
||
.long 0,0,0,10000H,FLOAT_ZFAR
|
||
.word 0
|
||
|
||
.long S_Z_ACCEL_LIMIT
|
||
.WORD -010H
|
||
.LONG -08000H >> ZFRAC
|
||
|
||
.LONG S_SET_LONG ; set bug at new position
|
||
.LONG WAVE_UNIV
|
||
.LONG GXEVLOB3
|
||
|
||
.LONG S_ADD_TMPOBJ
|
||
.long HALL3M_INIT
|
||
.word 170h,338h
|
||
.long 0cba8h
|
||
.word 100
|
||
|
||
.LONG S_START_UID_DANIM ; reopen door to hallway?
|
||
.WORD 2 << 8 + (32-1) + M_START_UID_PORTAL
|
||
|
||
.LONG S_WAIT_HERE
|
||
.WORD 60
|
||
|
||
.LONG S_START_UID_ANIM
|
||
.LONG SLDORCLOSE
|
||
.WORD 2 << 8 + (32-1) + M_START_UID_PORTAL
|
||
|
||
.LONG S_WAIT_FOR_COORD_ZREL
|
||
.long -014000H
|
||
.WORD 1
|
||
|
||
.LONG S_CLR_SCROLL_FLAG
|
||
.LONG -1
|
||
|
||
.LONG S_SET_LONG ; go over desk
|
||
.LONG YSCROLL
|
||
.LONG 020000H
|
||
|
||
.LONG S_DOZER_ACCEL
|
||
.WORD 25 << 8 + M_Y << 3 + M_Y + M_Z
|
||
.LONG 0200000H ;Y BOUNDARY
|
||
.LONG -1 ;Y TARGET VELOCITY
|
||
.LONG -08000H ;Z TARGET VELOCITY
|
||
|
||
.LONG S_DOZER_ACCEL
|
||
.WORD 35 << 8 + M_Y << 3 + M_Y
|
||
.LONG 0 ;Y TARGET VELOCITY
|
||
.LONG -030000H ;Y BOUNDARY
|
||
|
||
.LONG S_SET_LONG
|
||
.LONG YBASE
|
||
.LONG 0
|
||
|
||
.LONG S_SET_LONG
|
||
.LONG YSCROLL
|
||
.LONG 0
|
||
|
||
.LONG S_WAIT_FOR_COORD_ZREL
|
||
; .long -01EDEAH
|
||
.long -01b800H ; was -1b000h
|
||
.WORD 0
|
||
|
||
.LONG S_WAIT_UNTIL_TRUE
|
||
.LONG SCROLL_FLAG
|
||
|
||
|
||
.LONG S_SET_WORD ; kill float process
|
||
.long SCROLLKILL
|
||
.word 1
|
||
|
||
.long S_SET_LONG
|
||
.long WXBUFFER
|
||
.long 800000h
|
||
|
||
.LONG S_EXIT_PORTAL
|
||
.word 25 ; sleep upon exit
|
||
|
||
BILL_REVERSE_TEST
|
||
|
||
; .LONG S_CREATE_PROCR
|
||
; .word PID_IND
|
||
;; .long 0,0,0,03C801H,FLOAT_ZFAR
|
||
;; .long 0,0,0,03DFFFH,FLOAT_ZFAR
|
||
; .long 0,0,0,044000H,FLOAT_ZFAR
|
||
; .word 0
|
||
|
||
.LONG S_SET_WORD
|
||
.LONG SKYCOLOR
|
||
.WORD 0
|
||
|
||
.LONG S_SET_WORD
|
||
.LONG IRQSKYE
|
||
.WORD 0
|
||
|
||
.LONG S_SET_LONG ; set bug at new position
|
||
.LONG WAVE_UNIV
|
||
.LONG GXJUNG3
|
||
|
||
.long S_SET_VECTOR_TABLE
|
||
.long JUNGLE_VECT_TABLE
|
||
|
||
.long S_Z_ACCEL_LIMIT
|
||
.WORD -014H
|
||
.LONG -08000H >> ZFRAC
|
||
|
||
.LONG S_ADD_TMPOBJ
|
||
.long EVLOB_INIT
|
||
.word 3270h,310h
|
||
.long 0404cbh
|
||
.word 100
|
||
|
||
.LONG S_START_UID_DANIM ; reopen main doors?
|
||
.WORD 2 << 8 + (32-1) + M_START_UID_PORTAL
|
||
|
||
.LONG S_WAIT_HERE
|
||
.WORD 60
|
||
|
||
.LONG S_START_UID_ANIM
|
||
.LONG DOORSWING_CLOSE
|
||
.WORD 2 << 8 + (32-1) + M_START_UID_PORTAL
|
||
|
||
; .LONG S_WAIT_HERE
|
||
; .WORD 20
|
||
|
||
.LONG S_SET_WORD
|
||
.LONG SKYCOLOR
|
||
.WORD 02974H
|
||
|
||
.LONG S_SET_WORD
|
||
.LONG IRQSKYE
|
||
.WORD 02974H
|
||
|
||
; .LONG S_SET_WORD ; kill float process
|
||
; .long SCROLLKILL
|
||
; .word 1
|
||
|
||
.LONG S_WAIT_FOR_COORD_ZREL
|
||
.LONG 024931H
|
||
.WORD 0
|
||
|
||
.LONG S_GOTO_ZPOINT
|
||
.WORD -10
|
||
.LONG 024931H
|
||
.WORD 0
|
||
|
||
.long S_SET_LONG ; go over wall
|
||
.long WYBUFFER
|
||
.long 1320000h
|
||
|
||
.LONG S_SET_LONG
|
||
.long ZSACCEL
|
||
.long -500
|
||
|
||
.LONG S_SET_LONG
|
||
.long YSACCEL ; POS MEANS UP!
|
||
.long 3000h
|
||
|
||
.LONG S_WAIT_FOR_COORD
|
||
.long YBASE
|
||
.long 780000h
|
||
.word 1
|
||
|
||
.LONG S_SET_LONG
|
||
.long YSACCEL
|
||
.long -3000h
|
||
|
||
.LONG S_WAIT_FOR_ZREL
|
||
.long 0199A8H+024931H-023800H
|
||
.word 1
|
||
|
||
.LONG S_SET_LONG
|
||
.long ZSACCEL
|
||
.long 800
|
||
|
||
.LONG S_WAIT_FOR_COORD
|
||
.long YBASE
|
||
.long 780000h
|
||
.word 1 ; maintain Y motion
|
||
|
||
.long S_CLR_ZMOTION
|
||
|
||
.LONG S_SET_LONG
|
||
.long YSACCEL
|
||
.long 3000h
|
||
|
||
.LONG S_WAIT_FOR_COORD
|
||
.long YBASE
|
||
.long 0h
|
||
.word 0 ; stop Y motion
|
||
|
||
.LONG S_SET_LONG
|
||
.LONG YBASE
|
||
.LONG 0
|
||
|
||
.long S_SET_LONG
|
||
.long WYBUFFER
|
||
.long 320000h
|
||
|
||
.LONG S_SET_LONG
|
||
.long WXBUFFER
|
||
.long 200000h
|
||
|
||
.LONG S_CREATE_PROCR
|
||
.word PID_IND
|
||
.long 0,0,0,024000H,FLOAT_ZFAR
|
||
.word 0
|
||
|
||
.long S_Z_ACCEL_LIMIT
|
||
.WORD -016H
|
||
.LONG -09000H >> ZFRAC
|
||
|
||
.LONG S_WAIT_FOR_COORD_ZREL
|
||
.LONG -0CCD9H
|
||
.WORD 0
|
||
|
||
.LONG S_GOTO_ZPOINT
|
||
.WORD -10
|
||
.LONG -0CCD9H
|
||
.WORD 0
|
||
|
||
.LONG S_CLR_SCROLL_FLAG
|
||
.LONG -1
|
||
|
||
.LONG S_GOTO_POINT
|
||
.WORD -210 ; was 240
|
||
.WORD -03E8H,0
|
||
; .LONG -0CCD9H
|
||
.LONG -020CF0H
|
||
.WORD 0
|
||
|
||
.long S_SET_ENEMIES ; set to tell popups and
|
||
.word M_OF_PILE ; ok to destroy rope bridge
|
||
|
||
.LONG S_EXIT_PORTAL
|
||
.word 0 ; sleep upon exit
|
||
|
||
.LONG S_SET_SCROLL_FLAG
|
||
.LONG 1
|
||
|
||
.LONG S_SET_WORD
|
||
.long BRIDGE_STATE ; initialize
|
||
.word 0
|
||
|
||
.LONG S_GOTO_POINT
|
||
.WORD -680 ; was 640
|
||
.WORD -03E8H,0
|
||
.LONG -03F800H
|
||
.WORD 0
|
||
|
||
BILL_LUPE
|
||
.LONG S_WAIT_HERE
|
||
.WORD 1
|
||
.LONG BILL_LUPE+M_JUMP
|
||
|
||
|
||
END_JUNGLE:
|
||
.LONG S_SET_SCROLL_FLAG
|
||
.long 0deadbeefh ; set some bits
|
||
|
||
.LONG S_DECEL_TO_STOP
|
||
.word 3
|
||
|
||
.long S_WAIT_UNTIL_FALSE ; wait for bug gone signal
|
||
.long SCROLL_FLAG
|
||
|
||
LLW S_SET_WORD, GAME_STATE, INGAME
|
||
|
||
.LONG S_SOUND,SND_SWEET_EMOTION
|
||
|
||
LW S_AUDIT, AUDJUEND
|
||
|
||
LLW S_SET_WORD, BONUS_DIRECTION, 3 ; END THE WAVE
|
||
|
||
.LONG S_CREATE_PROC
|
||
.word PID_IND
|
||
.LONG WAVE_END_IMM ;Force the wave to end
|
||
|
||
|
||
|
||
MORPH_CHMBR:
|
||
.LONG S_CLR_OU_OHITS ; for dummy-mode hit counting
|
||
.word OID_UNIV|(9<<BIT_ID),OID_UNIV|(9<<BIT_ID)
|
||
; universe ID of inside of chamber
|
||
.word 2 ; number of pieces to look for
|
||
|
||
.LONG S_SET_WORD
|
||
.long SCROLLKILL ; kill FLOAT_ZFAR proc,CHECK4_DAM proc
|
||
.word 3 ; and GEN_BOXER proc
|
||
|
||
.LONG S_SET_ZSCROLL ; move in toward chamber
|
||
.word 50
|
||
.word 300
|
||
|
||
.LONG S_CLR_ZMOTION
|
||
|
||
.LONG S_JUMP_IF_TRUE ; if glass shot out, back off
|
||
.long MC_1 ; quicker and wait longer
|
||
.long MORFGLASOUT
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 300
|
||
MC_1:
|
||
.LONG S_SET_ZSCROLL
|
||
.word -500
|
||
.word 30
|
||
|
||
.LONG S_CLR_ZMOTION
|
||
|
||
.LONG S_JUMP_IF_FALSE ; if glass shot out,
|
||
.long MC_2 ; wait longer
|
||
.long MORFGLASOUT
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 300
|
||
MC_2:
|
||
.LONG S_WAIT_HERE
|
||
.word 600
|
||
|
||
.LONG S_CLR_SCROLL_FLAG
|
||
.long -1 ; set to all 0's to say it's too late
|
||
; to destroy morph chamber
|
||
.LONG 0 ; return
|
||
|
||
|
||
ZIP_FWD:
|
||
.LONG S_Z_ACCEL_BURST
|
||
.word 20h
|
||
.word 20
|
||
|
||
.LONG S_Z_ACCEL_BURST
|
||
.word -20h
|
||
.word 20
|
||
|
||
.LONG S_CLR_ZMOTION
|
||
|
||
.LONG S_WAIT_FOR_ZIPOK
|
||
|
||
.LONG 0 ; terminate call
|
||
|
||
|
||
LAST_HALL:
|
||
|
||
.LONG S_CREATE_PROCR
|
||
.WORD PID_POWERUPD0
|
||
.long 0b000h,07000h,200,70,PROC_DROP_PACK ; behind wall
|
||
.word 0
|
||
|
||
.LONG S_CREATE_PROC
|
||
.word PID_IND
|
||
.long ROCK_IN_X
|
||
|
||
.LONG S_WAIT_FOR_ZIPOK
|
||
|
||
ZIP_LOOP2:
|
||
.LONG ZIP_FWD+M_CALL
|
||
|
||
.LONG S_JUMP_IF_TRUE
|
||
.long ZIP_LOOP2
|
||
.long NUM_PILLARS
|
||
|
||
.LONG S_KILL_POWERUPS ;Whack those powers
|
||
|
||
.LONG S_SET_WORD
|
||
.long SCROLLKILL
|
||
.word 2 ; kill ROCK & ATRIUM boy proc and reset SCROLLKILL
|
||
|
||
.LONG 0 ; terminate call
|
||
|
||
|
||
ELEVATOR_RIDE:
|
||
.LONG S_PUSH_PLYRSEEN
|
||
|
||
LLW S_SET_WORD,ENEMY_HITALL,1
|
||
|
||
.LONG S_START_DANIM_DELTAZ
|
||
.long 13000h
|
||
|
||
.LONG S_GOTO_POINTZ_DELTA
|
||
.word 60
|
||
.long 6e00h+0900h
|
||
.word 0
|
||
|
||
.LONG S_SOUND
|
||
.long SND_ELEV_MUSIC
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 200 ; wait for floor to be hit
|
||
*
|
||
* Get Out Of elevator
|
||
*
|
||
EXIT_ELEVATOR:
|
||
.LONG S_PULL_PLYRSEEN
|
||
|
||
LLW S_SET_WORD,ENEMY_HITALL,0
|
||
|
||
.LONG S_LOCKOUT_PORTALS ; can't go back in
|
||
|
||
.LONG S_GOTO_POINTZ_DELTA
|
||
.word 40
|
||
.long -6e00h
|
||
.word 0
|
||
|
||
.LONG S_SOUND
|
||
.long SND_CHEM_MUSIC
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 10
|
||
|
||
.LONG S_UNGREEN
|
||
|
||
.LONG 0
|
||
|
||
|
||
HALL1FLR2:
|
||
.long S_SET_VECTOR_TABLE
|
||
.long CHEM_VECT_TABLE
|
||
|
||
.LONG S_AT_PORTAL_ENTRANCE
|
||
.LONG S_SET_PORTAL
|
||
.word 20
|
||
|
||
.LONG S_SET_LONG
|
||
.long ZSACCEL
|
||
.long 200
|
||
|
||
.LONG S_SET_ZSCROLL
|
||
.word 100
|
||
.word 0
|
||
|
||
.LONG S_SHOCKER ; if vidcam not hit, start a scary guy
|
||
.long DSP_JUNG_ELEV+M_WAIT
|
||
|
||
.LONG S_ENTER_PORTAL ; Set up and enter new universe
|
||
.long GXELRM2+M_EP_SMOOTH+M_EP_WAIT ; name of universe
|
||
.long -0a800h,-0bd0000h,0h ; Z, X, Y offsets
|
||
|
||
.LONG S_SOUND
|
||
.long SND_CHEM_MUSIC
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 300+M_QUOTA
|
||
|
||
.LONG M_JUMP+JOE_PERRY_HOOK
|
||
|
||
; .LONG S_WAIT_HERE
|
||
; .word 300 ; sleep upon exit, wait for floor sel hit
|
||
;
|
||
; .LONG M_JUMP+HALL1FLR2
|
||
|
||
|
||
HALL1FLR3:
|
||
.long S_SET_VECTOR_TABLE
|
||
.long CHEM_VECT_TABLE
|
||
|
||
.LONG S_AT_PORTAL_ENTRANCE
|
||
.LONG S_SET_PORTAL
|
||
.word 20
|
||
|
||
.LONG S_SET_LONG
|
||
.long ZSACCEL
|
||
.long 200
|
||
|
||
.LONG S_SET_ZSCROLL
|
||
.word 100
|
||
.word 0
|
||
|
||
.LONG S_ALLOW_PORTALS ; for grate shooting
|
||
|
||
.LONG S_CLR_SCROLL_FLAG
|
||
.long -1 ; set to all 0's to say it's too late
|
||
|
||
.LONG S_SHOCKER ; if vidcam not hit, start a scary guy
|
||
.long DSP_JUNG_ELEV+M_WAIT
|
||
|
||
.LONG S_ENTER_PORTAL ; Set up and enter new universe
|
||
.long GXELRM1+M_EP_SMOOTH+M_EP_WAIT ; name of universe
|
||
.long -0b000H,-0be0000H,0 ; Z, X, Y offsets
|
||
|
||
.LONG S_SOUND
|
||
.long SND_CHEM_MUSIC
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 1+M_QUOTA
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word -90
|
||
.word -0d8h,0
|
||
.long -380h
|
||
.word 0
|
||
|
||
.LONG S_GOTO_POINTXY
|
||
.word 90
|
||
.word -090h,0
|
||
.word 0
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word 90
|
||
.word -0beh,0
|
||
.long 8c000h
|
||
.word 0
|
||
|
||
.LONG S_LOCKOUT_PORTALS ; for grate shooting
|
||
|
||
JOE_PERRY_HOOK:
|
||
.LONG S_SET_VECTOR_TABLE
|
||
.LONG BLDG_VECT_TABLE
|
||
|
||
.LONG S_EXIT_PORTAL
|
||
.word 0
|
||
|
||
.LONG S_SOUND
|
||
.long SND_ELEV_MUSIC
|
||
|
||
.LONG S_SET_BYTE
|
||
.long ELEV_MOVING
|
||
.word 0 ; short time to select another floor
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 30 ; time to select other floor
|
||
|
||
|
||
.LONG S_SEND_ELEV_DOWN ; 1 room only, then you go back
|
||
|
||
; .LONG S_WAIT_HERE
|
||
; .word 300 ; sleep upon exit, wait for floor sel hit
|
||
;
|
||
; .LONG M_JUMP+HALL1FLR3
|
||
|
||
|
||
JOE_PERRY_TRIP:
|
||
.LONG S_CREATE_PROC
|
||
.word PID_IND
|
||
.long PERRY_SKY_PROC
|
||
|
||
.LONG S_SET_LONG
|
||
.LONG WYBUFFER
|
||
.LONG 0640000H
|
||
|
||
.LONG S_START_DANIM_VISIBLE
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word -120
|
||
.word -0c4h,3ch
|
||
.long 4000h
|
||
.word 0
|
||
|
||
.LONG S_SOUND,SND_SWEET_EMOTION
|
||
|
||
.LONG S_PERRY_FLY
|
||
.long -1600000h,2a0000h
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 300
|
||
|
||
.LONG S_CREATE_PROC
|
||
.word PID_IND
|
||
.long RESTORE_GRNDCOL_PROC
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word 110
|
||
.word -0beh,0
|
||
.long 8c000h
|
||
.word 0
|
||
|
||
.LONG M_JUMP+JOE_PERRY_HOOK
|
||
|
||
RESTORE_GRNDCOL_PROC:
|
||
sleep 40
|
||
|
||
SOUND1 SND_CHEM_MUSIC
|
||
move @GROUNDCOLOR,@IRQGNDE
|
||
MOVIM 320000h,@WYBUFFER,L
|
||
DIE
|
||
|
||
|
||
|
||
************************************
|
||
*
|
||
* SCROLL TABLE TO ENTER SECRET ROOMS IN CHEM PLANT
|
||
*
|
||
************************************
|
||
ENTER_CHEM_RML:
|
||
.LONG S_MERGE_UNIV ; add center part
|
||
.long GXINNM
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 35
|
||
|
||
.LONG S_SET_WORD
|
||
.long IN_SECRET
|
||
.word 1 ; in a secret room
|
||
|
||
.LONG S_SET_LONG
|
||
.long XSACCEL
|
||
.long 0a00h
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 35
|
||
|
||
.LONG S_Z_ACCEL_BURST
|
||
.word 10h
|
||
.word 15
|
||
|
||
.LONG S_X_ACCEL_BURST
|
||
.word -0a00h
|
||
.word 50
|
||
|
||
.LONG S_START_DANIM
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word -100
|
||
.word 25eh,0
|
||
.long -0d900h
|
||
.word 0
|
||
|
||
.LONG M_JUMP+CHEM_RM_HK
|
||
|
||
|
||
ENTER_CHEM_RMR:
|
||
.LONG S_MERGE_UNIV ; add center part
|
||
.long GXINNM
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 35
|
||
|
||
.LONG S_SET_WORD
|
||
.long IN_SECRET
|
||
.word 1 ; in a secret room
|
||
|
||
.LONG S_SET_LONG
|
||
.long XSACCEL
|
||
.long -0a00h
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 35
|
||
|
||
.LONG S_Z_ACCEL_BURST
|
||
.word 10h
|
||
.word 15
|
||
|
||
.LONG S_X_ACCEL_BURST
|
||
.word 0a00h
|
||
.word 50
|
||
|
||
.LONG S_START_DANIM
|
||
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word -85
|
||
.word 3d6h,0
|
||
.long -0fc00h
|
||
.word 0
|
||
CHEM_RM_HK:
|
||
.LONG S_CREATE_PROCR
|
||
.word PID_POWERUPD0
|
||
.word -40h,40h ; x range (world)
|
||
.long 1,-5000h,12 ; (world flg), zmax, num crates
|
||
.LONG SPRINKLE_POWERUPS
|
||
.word 0
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 180
|
||
|
||
; .LONG S_DECEL_TO_STOP
|
||
; .word 7
|
||
;
|
||
; .LONG S_WAIT_HERE
|
||
; .word 180
|
||
|
||
.LONG S_Z_ACCEL_BURST
|
||
.word -15
|
||
.word 45
|
||
|
||
.LONG S_WAIT_FOR_ZREL
|
||
.long -1b000h
|
||
.word 0
|
||
|
||
.LONG S_SET_WORD
|
||
.long IN_SECRET
|
||
.word 0
|
||
|
||
.LONG M_JUMP+J_HOOK2
|
||
|
||
|
||
************************************
|
||
*
|
||
* SUBROUTINE TO ENTER DEAD END HALLWAYS
|
||
*
|
||
************************************
|
||
ENTER_DEADEND:
|
||
.long SUCK_INTO_DEADEND
|
||
.word 0 ; sleep upon arrival
|
||
|
||
.long S_Z_ACCEL_BURST
|
||
.word 40h
|
||
.word 40
|
||
|
||
.long S_WAIT_FOR_ZREL
|
||
.long 1c000h
|
||
.word 1 ; don't stop
|
||
|
||
.long S_SOUND
|
||
.long SND_HALL_BONK
|
||
.long S_PUSH_WALL_IN
|
||
.long S_REVERSE_Z
|
||
|
||
.LONG S_DECEL_TO_STOP
|
||
.word 5
|
||
|
||
.LONG S_WAIT_HERE
|
||
.word 30
|
||
|
||
.long S_GOTO_POINTZ
|
||
.word -130
|
||
.long -1f00h
|
||
.word 0
|
||
|
||
.long DEADEND_RETURN
|
||
|
||
|
||
S_REVERSE_Z:
|
||
move @ZSCROLL,a14,L
|
||
neg a14
|
||
move a14,@ZSCROLL,L
|
||
jauc SCRL_DISPATCHER
|
||
|
||
ENTER_SECRET_ROOM:
|
||
.long S_DECEL_TO_STOP
|
||
.word 4
|
||
|
||
.long S_GOTO_POINTZ
|
||
.word -30
|
||
.long 17000h ; stop at door
|
||
.word 0
|
||
|
||
.long S_WAIT_HERE ; give jewel time to get in place
|
||
.word 60
|
||
|
||
.long S_START_DANIM_VISIBLE ; end of DANIM clears SCROLL_FLAG
|
||
|
||
.long S_SET_SCROLL_FLAG
|
||
.long -1
|
||
|
||
.LONG S_SET_WORD
|
||
.long IN_SECRET
|
||
.word 1 ; in a secret room
|
||
|
||
.long S_WAIT_UNTIL_FALSE
|
||
.long SCROLL_FLAG
|
||
|
||
.long S_GOTO_POINTZ ; go into room
|
||
.word -60
|
||
.long 1d000h
|
||
.word 200
|
||
|
||
.long S_GOTO_POINTZ ;
|
||
.word -150
|
||
.long -01f00h
|
||
.word 0
|
||
|
||
.LONG S_SET_WORD
|
||
.long IN_SECRET
|
||
.word 0 ; in a secret room
|
||
|
||
.long DEADEND_RETURN
|
||
|
||
|
||
ATTRACT2
|
||
.LONG S_INIT_JUNGLE
|
||
|
||
.LONG S_SET_LONG
|
||
.long UEP_Z ; world Z for enemies
|
||
.long 22000h
|
||
|
||
.LONG S_INIT_NATIVES
|
||
.word 4,6 ; natives allowed,spears allowed
|
||
|
||
.LONG S_SET_LONG
|
||
.LONG WXBUFFER
|
||
.LONG 0200000H
|
||
|
||
.long S_SET_ENEMIES ; set to tell natives and
|
||
.word M_OF_BUSH|M_OF_TREE|M_OF_SNAKE ; snake to activate
|
||
|
||
.LONG S_GOTO_POINT0
|
||
.word -3*60
|
||
.word -3f8h,0
|
||
.long -1f000h
|
||
.word 60 ; FIrst lockdown
|
||
|
||
|
||
.LONG JUNGLE_JUMP+M_JUMP
|
||
|
||
|
||
DUMMY_VEC_TABLE:
|
||
.long 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
.long 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
.long 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
.long 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
|
||
S_PUSH_PLYRSEEN:
|
||
move @PLYR_SEEN,@SAVPLYRSEEN
|
||
CLRM @PLYR_SEEN,W
|
||
jauc SCRL_DISPATCHER
|
||
|
||
S_PULL_PLYRSEEN:
|
||
move @SAVPLYRSEEN,@PLYR_SEEN
|
||
jauc SCRL_DISPATCHER
|
||
|
||
SomeSoundStuff:
|
||
SOUND1 SND_ST_GO
|
||
|
||
sleep 30
|
||
|
||
SOUND1 SND_JUNGLE_END
|
||
|
||
sleep 160
|
||
|
||
SOUND1 SND_BGND3_OFF
|
||
|
||
DIE
|
||
|
||
|
||
EVLOB_INIT
|
||
.long EVLOBbak
|
||
.word DMAWNZ,M_DBLSCL,0
|
||
|
||
HALL3M_INIT
|
||
.long HALL3Mbak
|
||
.word DMAWNZ,M_DBLSCL,0
|
||
|
||
INNR_INIT
|
||
.long INNRbak
|
||
.word DMAWNZ,M_DBLSCL,0
|
||
|
||
INNL_INIT
|
||
.long INNLbak
|
||
.word DMAWNZ,M_DBLSCL,0
|
||
|
||
|
||
.end
|
||
|