209 lines
4.7 KiB
NASM
209 lines
4.7 KiB
NASM
.MLIB "GXMACS.LIB"
|
||
.FILE "GXNOBOY2.ASM"
|
||
.TITLE "<<< GENERATION X -- MORE NONBOY ROUTINES >>>"
|
||
.WIDTH 132
|
||
.OPTION B,D,L,T
|
||
.MNOLIST
|
||
|
||
**************************************************************************
|
||
* *
|
||
* COPYRIGHT (C) 1992 MIDWAY MANUFACTURING COMPANY. *
|
||
* ALL RIGHTS RESERVED. *
|
||
* *
|
||
**************************************************************************
|
||
|
||
* GET THE SYSTEM STUFF
|
||
; .INCLUDE "GX.INC"
|
||
.INCLUDE "GXENEMY.INC"
|
||
.INCLUDE "GXGLO.H"
|
||
.INCLUDE "IMGTBL.GLO"
|
||
.INCLUDE "UNIVTBL.GLO"
|
||
.INCLUDE "GXNONBOY.H"
|
||
.INCLUDE "GXNOBOY2.TBL"
|
||
|
||
* SYMBOLS IN HERE
|
||
.DEF MAKE_CHAIRBOY
|
||
|
||
* SYMBOLS FROM ?
|
||
|
||
* SYMBOLS FROM GXNONBOY.ASM
|
||
.REF SND_BODY_THUD
|
||
|
||
* SYMBOLS FROM GXBLOOD.ASM
|
||
.REF BLOODY_BULLET_HIT
|
||
|
||
.TEXT
|
||
|
||
**************************************************************************
|
||
* *
|
||
* MAKE_CHAIRBOY - MAKE A NONBOY SITTIN' IN A CHAIR. THE NONBOY DELETES *
|
||
* ITSELF WHEN WAVE_UNIV CHANGES FROM THE TIME OF CREATION*
|
||
* *
|
||
* PASS: *
|
||
* A8 = INITIAL SLEEP TIME BEFORE CREATION (NEGATE TO FLIP CHAIRBOY) *
|
||
* A9 = UNIVERSE X *
|
||
* A10 = UNIVERSE Y *
|
||
* A11 = UNIVERSE Z (RELATIVE) *
|
||
* RETURN: *
|
||
* NUTIN' *
|
||
* *
|
||
**************************************************************************
|
||
|
||
OUNIV EQU ODATA ;UHL UNIVERSE OF CREATION
|
||
|
||
MAKE_CHAIRBOY
|
||
MOVE A8,A0
|
||
ABS A0
|
||
SLEEPR A0 ;INITIAL SLEEP
|
||
MOVE A8,A4 ;SAVE TO CHECKING FLIP
|
||
|
||
MOVI CHAIRBOY_INIT,B0
|
||
CALLA MULTIMAKE
|
||
MOVE A9,A1
|
||
MOVE A10,A2
|
||
MOVE @ZREL_OFF,A3,L
|
||
SRA ZFRAC,A3
|
||
ADD A11,A3
|
||
CALLA SET_ANIPU
|
||
|
||
MOVE @WAVE_UNIV,A14,L
|
||
MOVE A14,*A8(OUNIV),L ;SAVE CURRENT UNIVERSE
|
||
|
||
MOVE A4,A4
|
||
JRNN MC_INSERT ;BR=NO FLIP
|
||
|
||
MOVE A8,A0
|
||
MC_FLIP_LUPE
|
||
MOVE *A0(OCTRL),A14,W
|
||
ORI M_FLIPH,A14 ;FLIP IT!
|
||
MOVE A14,*A0(OCTRL),W
|
||
|
||
MOVE *A0(OPARTS),A0,L
|
||
JRNZ MC_FLIP_LUPE ;BR=NO MO PARTS
|
||
MC_INSERT
|
||
CALLA INSERT_OBJ
|
||
|
||
CALLA GET_SHAD_MULTI
|
||
|
||
DIE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* CHAIRBOY VECTORS *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CHAIRBOY_CVECT
|
||
WWL OID_PEXPLOSION,~MASK_PLAYER,CHAIRBOY_EXPLO_COLLVECT
|
||
WL 0,DUMCRETS
|
||
|
||
CHAIRBOY_EXPLO_COLLVECT
|
||
MOVE *A0(OID),A0,W ;GET PLAYER DATA ADDRESS
|
||
CALLA POID_TO_PDATA
|
||
JRUC CBG_GO
|
||
CHAIRBOY_GUNVECT
|
||
SOUND1 SND_BODY_THUD
|
||
CALLA BLOODY_BULLET_HIT
|
||
CBG_GO
|
||
CALLA GET_HEAD_PART
|
||
|
||
MOVE *A8(OFLAGS),A14,W ;IS THIS OBJECT DEAD?
|
||
BTST B_DEAD,A14
|
||
JRNZ CBG_DONE ;BR = YES
|
||
|
||
ORI M_DEAD,A14
|
||
MOVE A14,*A8(OFLAGS),W ;DEAD AS A DOOR KNOB
|
||
|
||
MOVI DUMCOLL,A14
|
||
MOVE A14,*A8(OCVECT),L
|
||
|
||
MOVI CHAIRBOY_FALL_ANIM,A1
|
||
CALLA STRT_ANIM
|
||
|
||
MOVK NUM_GRUNT_SNDS,A0 ;RANDOM GRUNT SOUND
|
||
CALLA RAND0
|
||
SLL 5,A0
|
||
ADDI GRUNT_HIT_TBL,A0
|
||
MOVE *A0,A0,L
|
||
CALLA ONESND_Z ;Do the volume sound
|
||
|
||
MOVE @WAVE_UNIV,A14,L
|
||
CMPI GXPORTAL,A14
|
||
JRNE CBG_DONE ;BR=NOT THE PORTAL
|
||
|
||
MOVE @SCROLL_FLAG,A14,L
|
||
DEC A14
|
||
MOVE A14,@SCROLL_FLAG,L ;FLAG KILL
|
||
CBG_DONE
|
||
RETS
|
||
|
||
**************************************************************************
|
||
* *
|
||
* A_CHECK_UNIV *
|
||
* *
|
||
**************************************************************************
|
||
|
||
A_CHECK_UNIV
|
||
MOVE *A8(OUNIV),A0,L
|
||
MOVE @WAVE_UNIV,A14,L
|
||
CMP A0,A14
|
||
JREQ ACU_DONE ;BR=SAME UNIVERSE
|
||
CALLA DELETE_OBJ
|
||
ACU_DONE
|
||
RETS
|
||
|
||
CHAIRBOY_INIT
|
||
.byte 5, 0, 0, 1 ;OBJCNT, PRCCNT, IMGPALCNT, PALCNT
|
||
.long P_NONBOYY ;IMGPAL
|
||
.word OID_NONBOY, OM_COLL ;OID, GLOBAL_OPTIONS
|
||
.LONG CHAIRBOY_CVECT
|
||
* .long IMG
|
||
* .word OCTRL, OFLAGS, OZOFF
|
||
* .word OPTIONS
|
||
LWWWW G_H3CHAFALC1, DMAWNZ, 0, 0, OM_GUNV|OM_ANIM
|
||
.LONG CHAIRBOY_GUNVECT
|
||
.LONG CHAIRBOY_WATCH_ANIM
|
||
LWWWW G_T3CHAFALC1, DMAWNZ, 0, 0, OM_PRVGUNV
|
||
LWWWW G_L3CHAFALC1, DMAWNZ, 0, 0, OM_PRVGUNV
|
||
LWWWW G_Z3CHAFALC1, DMAWNZ, 0, 0, OM_PRVGUNV
|
||
LWWWW G_Z3CHAFALC1, DMAWNZ, M_NODISP, 0, OM_PRVGUNV
|
||
|
||
|
||
CHAIRBOY_WATCH_ANIM
|
||
LWL 1,1|AFunc,A_CHECK_UNIV
|
||
.long 0
|
||
|
||
CHAIRBOY_FALL_ANIM
|
||
LW 1,6
|
||
|
||
LW G_H3CHAFALC2,1|AMulti
|
||
LW G_T3CHAFALC2,1|AMulti
|
||
LW G_L3CHAFALC2,1|AMulti
|
||
LW G_Z3CHAFALC2,1|AMulti
|
||
LWL 1,5|AFunc,OBJ_ON
|
||
|
||
LW G_H3CHAFALC3,1|AMulti
|
||
LW G_T3CHAFALC3,1|AMulti
|
||
LW G_L3CHAFALC3,1|AMulti
|
||
LW G_Z3CHAFALC3,1|AMulti
|
||
LW G_A3CHAFALC3,4
|
||
|
||
LW G_H3CHAFALC5,1|AMulti
|
||
LW G_T3CHAFALC5,1|AMulti
|
||
LW G_L3CHAFALC5,1|AMulti
|
||
LW G_Z3CHAFALC5,1|AMulti
|
||
LWL 1,5|AFunc,OBJ_OFF
|
||
|
||
LW G_H3CHAFALC6,1|AMulti
|
||
LW G_T3CHAFALC6,1|AMulti
|
||
LW G_L3CHAFALC6,1|AMulti
|
||
LW G_Z3CHAFALC6,2
|
||
|
||
LWLL G_H3CHAFALC7,1|AMulti|AFunc,A_AnimGo+2,CHAIRBOY_WATCH_ANIM
|
||
LW G_T3CHAFALC7,1|AMulti
|
||
LW G_L3CHAFALC7,1|AMulti
|
||
LW G_Z3CHAFALC7,1|AMulti
|
||
LWL G_A3CHAFALC7,1|AFunc,OBJ_ON
|
||
|
||
.END
|
||
|