933 lines
20 KiB
NASM
933 lines
20 KiB
NASM
|
**************************************************************
|
|||
|
*
|
|||
|
* Software: Mike Lynch, Jason Skiles, Mark Turmell
|
|||
|
* Initiated: 05/12/95
|
|||
|
*
|
|||
|
* Modified:
|
|||
|
*
|
|||
|
* COPYRIGHT (C) 1992 WILLIAMS ELECTRONICS GAMES, INC.
|
|||
|
*
|
|||
|
**************************************************************
|
|||
|
|
|||
|
.file "fireword.asm"
|
|||
|
.title "wrestling game program"
|
|||
|
.width 132
|
|||
|
.option b,d,l,t
|
|||
|
.mnolist
|
|||
|
|
|||
|
|
|||
|
.include "macros.h"
|
|||
|
.include "mproc.equ" ;Mproc equates
|
|||
|
.include "display.equ" ;Display proc equates
|
|||
|
.include "gsp.equ" ;Gsp asm equates
|
|||
|
.include "sys.equ"
|
|||
|
.include "wwfsec.equ"
|
|||
|
.include "game.equ"
|
|||
|
.include "audit.equ"
|
|||
|
.include "plyr.equ"
|
|||
|
.include "anim.equ"
|
|||
|
.include "sound.h"
|
|||
|
.include "ring.equ"
|
|||
|
.include "sound.equ"
|
|||
|
.include "damage.equ"
|
|||
|
.include "jjxm.h"
|
|||
|
|
|||
|
.include "imgtbl.glo"
|
|||
|
.include "fontsimg.glo"
|
|||
|
.include "bgndtbl.glo"
|
|||
|
.include "miscimg.glo"
|
|||
|
|
|||
|
.ref RNDRNG0
|
|||
|
.ref BEGINOBJP
|
|||
|
.ref PRCSLP
|
|||
|
.ref DELOBJA8
|
|||
|
.ref obj_aniq
|
|||
|
.ref flash_white
|
|||
|
.ref pal_clean
|
|||
|
.ref fade_up
|
|||
|
.ref fade_down
|
|||
|
.ref BGND_UD1
|
|||
|
.ref crowd_anim
|
|||
|
.ref crowd_cheer
|
|||
|
.ref reduce_bog
|
|||
|
.ref is_8_on_1
|
|||
|
.ref print_message
|
|||
|
.ref wsf14_ascii
|
|||
|
.ref royal_rumble
|
|||
|
.ref print_string_C2
|
|||
|
.ref print_string_C
|
|||
|
.ref font9_ascii
|
|||
|
.ref setup_message
|
|||
|
.ref mess_objid
|
|||
|
.ref SNDSND
|
|||
|
.ref crowd_process
|
|||
|
.ref process_ptrs
|
|||
|
.ref ogmd10_ascii
|
|||
|
|
|||
|
.bss fizzle_flare,16
|
|||
|
.bss pan_down,16
|
|||
|
|
|||
|
EXP_FW_SND .equ 1252
|
|||
|
FLR_FW_SND .equ 1244
|
|||
|
|
|||
|
#**********************************************************************
|
|||
|
*
|
|||
|
SUBRP #fwexa_anim
|
|||
|
.long FWEXPA01
|
|||
|
.long FWEXPA02
|
|||
|
.long FWEXPA03
|
|||
|
.long FWEXPA04
|
|||
|
.long FWEXPA05
|
|||
|
.long FWEXPA06
|
|||
|
.long FWEXPA07
|
|||
|
.long FWEXPA08
|
|||
|
.long FWEXPA09
|
|||
|
.long FWEXPA10
|
|||
|
.long FWEXPA11
|
|||
|
.long 0
|
|||
|
|
|||
|
SUBRP #fwexb_anim
|
|||
|
.long FWEXPB01
|
|||
|
.long FWEXPB02
|
|||
|
.long FWEXPB03
|
|||
|
.long FWEXPB04
|
|||
|
.long FWEXPB05
|
|||
|
.long FWEXPB06
|
|||
|
.long FWEXPB07
|
|||
|
.long FWEXPB08
|
|||
|
.long FWEXPB09
|
|||
|
.long FWEXPB10
|
|||
|
.long FWEXPB11
|
|||
|
.long 0
|
|||
|
|
|||
|
SUBRP #fwexp_tbl
|
|||
|
.long #fwexa_anim
|
|||
|
.long #fwexb_anim
|
|||
|
|
|||
|
SUBRP #flare_anim
|
|||
|
.long FWFLAR01
|
|||
|
.long FWFLAR02
|
|||
|
.long FWFLAR03
|
|||
|
.long FWFLAR04
|
|||
|
.long FWFLAR05
|
|||
|
SUBRP #flare_anim2
|
|||
|
.long FWFLAR06
|
|||
|
.long FWFLAR07
|
|||
|
.long FWFLAR08
|
|||
|
.long FWFLAR09
|
|||
|
.long FWFLAR10
|
|||
|
.long FWFLAR11
|
|||
|
.long FWFLAR12
|
|||
|
.long FWFLAR13
|
|||
|
.long 0
|
|||
|
|
|||
|
SUBRP #fw_pals
|
|||
|
.long FWWHT_P
|
|||
|
.long FWBLV_P
|
|||
|
.long FWPNK_P
|
|||
|
.long FWBLU_P
|
|||
|
.long FWYEL_P
|
|||
|
|
|||
|
EXP_FWY .equ -260
|
|||
|
|
|||
|
SUBRP #animate_fwexp
|
|||
|
|
|||
|
; First Get a random position to place the explosion
|
|||
|
movi 96,a0 ; Get a random vertical position
|
|||
|
calla RNDRNG0
|
|||
|
addi EXP_FWY-48,a0
|
|||
|
move a0,a9 ; Save it away
|
|||
|
|
|||
|
movi 350,a0 ; Get a random horizontal postion
|
|||
|
calla RNDRNG0
|
|||
|
addi 850,a0
|
|||
|
move a0,a10
|
|||
|
|
|||
|
movi 200h,a0 ; Get a random Zpos
|
|||
|
calla RNDRNG0
|
|||
|
addi 700h,a0 ; Make sure we can see it
|
|||
|
move a0,a3
|
|||
|
|
|||
|
; Now get a random firework explosion to use
|
|||
|
movi 1,a0 ; Get a random explosion to use
|
|||
|
calla RNDRNG0
|
|||
|
sll 5,a0
|
|||
|
addi #fwexp_tbl,a0
|
|||
|
move *a0,a11,L ; Get pointer to image table
|
|||
|
move *a11+,a2,L ; Get the first image
|
|||
|
|
|||
|
; Set up some additional object creation junk
|
|||
|
movi DMAWNZ|M_3D,a4
|
|||
|
movi CLSNEUT,a5 ; Set the Object ID
|
|||
|
clr a6 ; Set the X velocity
|
|||
|
clr a7 ; Set the Y velocity
|
|||
|
|
|||
|
; Get a random palette to use
|
|||
|
movi 4,a0 ; Get a random palette number
|
|||
|
calla RNDRNG0
|
|||
|
move a0,b0 ; Get entry from palette table
|
|||
|
sll 5,b0
|
|||
|
addi #fw_pals,b0
|
|||
|
move *b0,b0,L
|
|||
|
|
|||
|
; Set up the x and y positions for the object
|
|||
|
move a9,a1 ; Get saved YPOS
|
|||
|
sll 16,a1 ; Shift it for object creation
|
|||
|
move a10,a0 ; Get saved XPOS
|
|||
|
sll 16,a0 ; Shift it for object creattion
|
|||
|
|
|||
|
; Now create the first image
|
|||
|
calla BEGINOBJP ; Create the object
|
|||
|
|
|||
|
; Make an explosion sound
|
|||
|
movi EXP_FW_SND,a3
|
|||
|
calla SNDSND
|
|||
|
|
|||
|
; And animate the whole works
|
|||
|
move *a8(OCTRL),a10
|
|||
|
move *a8(OYPOS),a9
|
|||
|
#animate_loop
|
|||
|
SLEEPK 1
|
|||
|
move *a11+,a0,L ; Get the next image
|
|||
|
jrz #fwanim_done ; Are we done ? - br = yes
|
|||
|
move a10,a1
|
|||
|
calla obj_aniq ; Change the image
|
|||
|
addk 4,a9
|
|||
|
move a9,*a8(OYPOS)
|
|||
|
jruc #animate_loop ; Go do next image
|
|||
|
|
|||
|
; We all done - soooo get rid of the object and die
|
|||
|
#fwanim_done
|
|||
|
calla DELOBJA8 ; Kill off the object
|
|||
|
DIE ; And die
|
|||
|
|
|||
|
|
|||
|
SUBRP firework_flare
|
|||
|
movk 25,a0
|
|||
|
calla RNDRNG0
|
|||
|
addk 1,a0
|
|||
|
calla PRCSLP
|
|||
|
|
|||
|
movk 4,a0
|
|||
|
calla RNDRNG0
|
|||
|
move a0,b0
|
|||
|
sll 5,b0
|
|||
|
addi #fw_pals,b0
|
|||
|
move *b0,b0,L
|
|||
|
|
|||
|
move a9,a0
|
|||
|
srl 16,a0
|
|||
|
sll 16,a0
|
|||
|
|
|||
|
move a9,a1
|
|||
|
sll 16,a1
|
|||
|
|
|||
|
movi #flare_anim,a9
|
|||
|
move *a9+,a2,L
|
|||
|
|
|||
|
movi 810h,a3
|
|||
|
movi DMAWNZ|M_3D,a4
|
|||
|
movi CLSFRWK,a5
|
|||
|
clr a6
|
|||
|
clr a7
|
|||
|
|
|||
|
calla BEGINOBJP
|
|||
|
|
|||
|
|
|||
|
|
|||
|
; PUSH a0,a1,a2,a3,a4,a5,a6,a7
|
|||
|
; calla flash_white
|
|||
|
; movi FLR_FW_SND,a3
|
|||
|
; calla SNDSND
|
|||
|
; PULL a0,a1,a2,a3,a4,a5,a6,a7
|
|||
|
|
|||
|
|
|||
|
|
|||
|
move *a8(OCTRL),a10
|
|||
|
#flare_loop
|
|||
|
SLEEPK 2
|
|||
|
#fl_loop
|
|||
|
move *a9+,a0,L
|
|||
|
jrz #reset_flare
|
|||
|
move a10,a1
|
|||
|
calla obj_aniq
|
|||
|
jruc #flare_loop
|
|||
|
|
|||
|
#reset_flare
|
|||
|
move @fizzle_flare,a9
|
|||
|
jrnz #flare_fizzle
|
|||
|
movi #flare_anim2,a9
|
|||
|
jruc #fl_loop
|
|||
|
|
|||
|
#flare_fizzle
|
|||
|
|
|||
|
movi #flare_anim2,a9
|
|||
|
#ff_loop
|
|||
|
SLEEPK 4
|
|||
|
cmpi #flare_anim,a9
|
|||
|
jrz #ff_exit
|
|||
|
move -*a9,a0,L
|
|||
|
move a10,a1
|
|||
|
calla obj_aniq
|
|||
|
jruc #ff_loop
|
|||
|
#ff_exit
|
|||
|
|
|||
|
calla DELOBJA8
|
|||
|
DIE
|
|||
|
|
|||
|
|
|||
|
|
|||
|
SUBR do_fireworks
|
|||
|
|
|||
|
; RETP
|
|||
|
PUSHP a9,a10
|
|||
|
|
|||
|
calla pal_clean ; Get rid of extra palettes
|
|||
|
|
|||
|
clr a10 ; Fade down the lights
|
|||
|
move a10,@fizzle_flare
|
|||
|
movk 32,a11
|
|||
|
CREATE0 fade_down
|
|||
|
SLEEPK 30
|
|||
|
|
|||
|
movi ANNC_PID,a0
|
|||
|
calla KIL1C ; Kill off any announcer processes
|
|||
|
|
|||
|
movi METER_PID,a0
|
|||
|
calla KIL1C ; Kill off meter processes
|
|||
|
|
|||
|
movi TIMER_PID,a0
|
|||
|
calla KIL1C ; Kill off match timer process
|
|||
|
|
|||
|
movi FLASH_PID,a0
|
|||
|
calla KIL1C ; Kill off any flasher processes
|
|||
|
|
|||
|
movi ICON_PID,a0
|
|||
|
calla KIL1C ; Kill off any icon flashers
|
|||
|
|
|||
|
movi SMOVE_PID,a0
|
|||
|
calla KIL1C ; Kill off special move processes
|
|||
|
|
|||
|
movi PINHIM_ANIM_PID,a0
|
|||
|
calla KIL1C ; Kill off pin him processes
|
|||
|
|
|||
|
movi REWIRE_PID,a0
|
|||
|
calla KIL1C ; Kill off rewire processes
|
|||
|
|
|||
|
movi ZSHIFT_PID,a0
|
|||
|
calla KIL1C ; Kill off something to do with progress ladder
|
|||
|
|
|||
|
movi GETUP_PID,a0
|
|||
|
calla KIL1C ; Kill off getup meter processes
|
|||
|
|
|||
|
movi FLASH_COMBO_PID,a0
|
|||
|
calla KIL1C ; Kill off any combo flashers
|
|||
|
|
|||
|
|
|||
|
;Jake adds 1 to FLASH_COMBO_PID to point at plyr 2!
|
|||
|
movi FLASH_COMBO_PID+1,a0
|
|||
|
calla KIL1C ; Kill off any combo flashers
|
|||
|
|
|||
|
|
|||
|
movi CYCPID,a0
|
|||
|
calla KIL1C ; Kill any cyclers
|
|||
|
|
|||
|
movi FX_PID,a0
|
|||
|
calla KIL1C ; Kill and FX processes
|
|||
|
|
|||
|
movi ADD_INIT_PID,a0
|
|||
|
calla KIL1C ; Kill any perfect processes
|
|||
|
|
|||
|
movi OVRHED_PID,a0
|
|||
|
calla KIL1C ; Kill any of these that are laying around
|
|||
|
|
|||
|
.if DEBUG
|
|||
|
movi CDEBUG_PID,a0
|
|||
|
calla KIL1C ; Kill off collision box debug processes
|
|||
|
.endif
|
|||
|
|
|||
|
; movi ROPE_PID,a0
|
|||
|
; calla KIL1C ; Kill off any rope processes
|
|||
|
|
|||
|
callr knockout_drones ; Knock out any wrestler process that are drone wrestlers
|
|||
|
|
|||
|
movi CLSNEUT|TYPTEXT|SUBMES1,a0
|
|||
|
calla obj_del1c ; Kill off any announcer objects
|
|||
|
|
|||
|
movi CLSNEUT|TYPNEUT|SUBMFRAME,a0
|
|||
|
calla obj_del1c ; Kill off the meter objects
|
|||
|
|
|||
|
movi CLSNEUT|TYPNEUT|SUBLBAR,a0
|
|||
|
calla obj_del1c ; Kill off meter bars
|
|||
|
|
|||
|
movi TYPTIMERDIGIT,a0
|
|||
|
calla obj_del1c ; Kill off the match timer objects
|
|||
|
|
|||
|
movi TYPWWFICON,a0
|
|||
|
calla obj_del1c ; Kill off any WWF Icon objects
|
|||
|
|
|||
|
movi CLSDEAD,a0
|
|||
|
calla obj_del1c ; Kill off winstreak number
|
|||
|
|
|||
|
movi TYPPINHIM,a0
|
|||
|
calla obj_del1c ; Kill off any pin him objects
|
|||
|
|
|||
|
movi TYPPERFECT,a0
|
|||
|
calla obj_del1c ; Kill off any perfect objects
|
|||
|
|
|||
|
clr a0 ; Turn off bog reduction
|
|||
|
move a0,@reduce_bog ; Animate the crowd
|
|||
|
; CREATE CROWD_PID,crowd_anim
|
|||
|
|
|||
|
;wake up the crowd
|
|||
|
move @crowd_process,a0,L
|
|||
|
movk 1,a14
|
|||
|
move a14,*a0(PTIME)
|
|||
|
|
|||
|
calla pal_clean ; Clean any other palettes we freed by
|
|||
|
; Getting rid of all of the above shit
|
|||
|
|
|||
|
;ORIGINAL MIKE CODE
|
|||
|
;JASON'S QUICK-HACK VERSION
|
|||
|
|
|||
|
|
|||
|
|
|||
|
calla flash_white
|
|||
|
movi FLR_FW_SND,a3
|
|||
|
calla SNDSND
|
|||
|
|
|||
|
|
|||
|
; Back of ring flares
|
|||
|
movk 12,a10 ; Make 12 flares
|
|||
|
movi [798,128],a9 ; [sx,y] of flare positions
|
|||
|
#do_flare
|
|||
|
CREATE FIREWRK_PID,firework_flare
|
|||
|
addi [50,0],a9 ; Increment x position
|
|||
|
dsjs a10,#do_flare ; go do next flare
|
|||
|
|
|||
|
; Left Side flares
|
|||
|
movi [770,148],a9
|
|||
|
CREATE FIREWRK_PID,firework_flare
|
|||
|
movi [753,168],a9
|
|||
|
CREATE FIREWRK_PID,firework_flare
|
|||
|
movi [736,188],a9
|
|||
|
CREATE FIREWRK_PID,firework_flare
|
|||
|
movi [719,208],a9
|
|||
|
CREATE FIREWRK_PID,firework_flare
|
|||
|
movi [702,228],a9
|
|||
|
CREATE FIREWRK_PID,firework_flare
|
|||
|
|
|||
|
; Right Side flares
|
|||
|
movi [1372,148],a9
|
|||
|
CREATE FIREWRK_PID,firework_flare
|
|||
|
movi [1389,168],a9
|
|||
|
CREATE FIREWRK_PID,firework_flare
|
|||
|
movi [1406,188],a9
|
|||
|
CREATE FIREWRK_PID,firework_flare
|
|||
|
movi [1423,208],a9
|
|||
|
CREATE FIREWRK_PID,firework_flare
|
|||
|
movi [1440,228],a9
|
|||
|
CREATE FIREWRK_PID,firework_flare
|
|||
|
|
|||
|
clr a10 ; Lights back on
|
|||
|
movi 64,a11
|
|||
|
CREATE0 fade_up
|
|||
|
SLEEPK 16
|
|||
|
|
|||
|
calla flash_white
|
|||
|
movi FLR_FW_SND,a3
|
|||
|
calla SNDSND
|
|||
|
|
|||
|
;sleep while flares go off
|
|||
|
SLEEP TSEC
|
|||
|
|
|||
|
;now slowly pan up
|
|||
|
clr a14
|
|||
|
move a14,@pan_down
|
|||
|
CREATE0 pan_around
|
|||
|
|
|||
|
;do fireworks
|
|||
|
|
|||
|
movi TSEC*6,a8
|
|||
|
|
|||
|
#do_exfw_loop
|
|||
|
CREATE0 #animate_fwexp ; Create an exploding firework
|
|||
|
|
|||
|
movk 6,a0 ; Sleep a random amount of time
|
|||
|
calla RNDRNG0
|
|||
|
addk 1,a0 ; Make sure we sleep at least 1
|
|||
|
sub a0,a8
|
|||
|
calla PRCSLP ; Sleep
|
|||
|
move a8,a8
|
|||
|
jrgt #do_exfw_loop
|
|||
|
|
|||
|
;Kill text on scrn
|
|||
|
|
|||
|
movk 1,a0
|
|||
|
move a0,@pan_down
|
|||
|
movi TSEC*2,a9
|
|||
|
jruc #cheer_lp
|
|||
|
#no_exp_fw
|
|||
|
movi TSEC*5,a9
|
|||
|
#cheer_lp
|
|||
|
move a9,a9
|
|||
|
jrle #clp_done
|
|||
|
PUSH a0,a1,a2,a3,a4,a5,a6,a7,a8,a9
|
|||
|
movk 1,a3 ; And make 'em do something
|
|||
|
calla crowd_cheer
|
|||
|
PULL a0,a1,a2,a3,a4,a5,a6,a7,a8,a9
|
|||
|
SLEEPK 15
|
|||
|
subk 15,a9
|
|||
|
jruc #cheer_lp
|
|||
|
#clp_done
|
|||
|
|
|||
|
|
|||
|
movk 1,a0 ; Tell flares to fizzle out
|
|||
|
move a0,@fizzle_flare
|
|||
|
|
|||
|
|
|||
|
SLEEP TSEC ; Give flares time to die out
|
|||
|
|
|||
|
|
|||
|
PULLP a9,a10
|
|||
|
RETP
|
|||
|
|
|||
|
.bss pan_status,16
|
|||
|
|
|||
|
panning_points ; figure 8
|
|||
|
|
|||
|
INIT_PAN_SPEED .equ TSEC
|
|||
|
|
|||
|
.long INIT_PAN_SPEED,[850,0],[EXP_FWY+0,0]
|
|||
|
.long 3,[848,0],[EXP_FWY-10,0]
|
|||
|
.long 3,[844,0],[EXP_FWY-20,0]
|
|||
|
.long 3,[836,0],[EXP_FWY-28,0]
|
|||
|
.long 3,[825,0],[EXP_FWY-36,0]
|
|||
|
.long 3,[812,0],[EXP_FWY-42,0]
|
|||
|
.long 3,[798,0],[EXP_FWY-46,0]
|
|||
|
.long 3,[783,0],[EXP_FWY-48,0]
|
|||
|
.long 3,[767,0],[EXP_FWY-48,0]
|
|||
|
.long 3,[752,0],[EXP_FWY-46,0]
|
|||
|
.long 3,[738,0],[EXP_FWY-42,0]
|
|||
|
.long 3,[725,0],[EXP_FWY-36,0]
|
|||
|
.long 3,[714,0],[EXP_FWY-28,0]
|
|||
|
.long 3,[706,0],[EXP_FWY-20,0]
|
|||
|
.long 3,[702,0],[EXP_FWY-10,0]
|
|||
|
.long 3,[700,0],[EXP_FWY+0,0]
|
|||
|
.long 3,[702,0],[EXP_FWY+10,0]
|
|||
|
.long 3,[706,0],[EXP_FWY+20,0]
|
|||
|
.long 3,[714,0],[EXP_FWY+28,0]
|
|||
|
.long 3,[725,0],[EXP_FWY+36,0]
|
|||
|
.long 3,[737,0],[EXP_FWY+42,0]
|
|||
|
.long 3,[752,0],[EXP_FWY+46,0]
|
|||
|
.long 3,[767,0],[EXP_FWY+48,0]
|
|||
|
.long 3,[783,0],[EXP_FWY+48,0]
|
|||
|
.long 3,[798,0],[EXP_FWY+46,0]
|
|||
|
.long 3,[812,0],[EXP_FWY+42,0]
|
|||
|
.long 3,[825,0],[EXP_FWY+36,0]
|
|||
|
.long 3,[836,0],[EXP_FWY+28,0]
|
|||
|
.long 3,[844,0],[EXP_FWY+20,0]
|
|||
|
.long 3,[848,0],[EXP_FWY+10,0]
|
|||
|
.long 3,[850,0],[EXP_FWY+0,0]
|
|||
|
.long 3,[852,0],[EXP_FWY-10,0]
|
|||
|
.long 3,[856,0],[EXP_FWY-20,0]
|
|||
|
.long 3,[864,0],[EXP_FWY-28,0]
|
|||
|
.long 3,[875,0],[EXP_FWY-36,0]
|
|||
|
.long 3,[888,0],[EXP_FWY-42,0]
|
|||
|
.long 3,[902,0],[EXP_FWY-46,0]
|
|||
|
.long 3,[917,0],[EXP_FWY-48,0]
|
|||
|
.long 3,[933,0],[EXP_FWY-48,0]
|
|||
|
.long 3,[948,0],[EXP_FWY-46,0]
|
|||
|
.long 3,[962,0],[EXP_FWY-42,0]
|
|||
|
.long 3,[975,0],[EXP_FWY-36,0]
|
|||
|
.long 3,[986,0],[EXP_FWY-28,0]
|
|||
|
.long 3,[994,0],[EXP_FWY-20,0]
|
|||
|
.long 3,[998,0],[EXP_FWY-10,0]
|
|||
|
.long 3,[1000,0],[EXP_FWY+0,0]
|
|||
|
.long 3,[998,0],[EXP_FWY+10,0]
|
|||
|
.long 3,[994,0],[EXP_FWY+20,0]
|
|||
|
.long 3,[986,0],[EXP_FWY+28,0]
|
|||
|
.long 3,[975,0],[EXP_FWY+36,0]
|
|||
|
.long 3,[963,0],[EXP_FWY+42,0]
|
|||
|
.long 3,[948,0],[EXP_FWY+46,0]
|
|||
|
.long 3,[933,0],[EXP_FWY+48,0]
|
|||
|
.long 3,[917,0],[EXP_FWY+48,0]
|
|||
|
.long 3,[902,0],[EXP_FWY+46,0]
|
|||
|
.long 3,[888,0],[EXP_FWY+42,0]
|
|||
|
.long 3,[875,0],[EXP_FWY+36,0]
|
|||
|
.long 3,[864,0],[EXP_FWY+28,0]
|
|||
|
.long 3,[856,0],[EXP_FWY+20,0]
|
|||
|
.long 3,[852,0],[EXP_FWY+10,0]
|
|||
|
.long 3,[850,0],[EXP_FWY+0,0]
|
|||
|
.long 0
|
|||
|
|
|||
|
.bss ticks,32 ; Ticks for this move
|
|||
|
.bss dx,32 ; X movement per tick
|
|||
|
.bss dy,32 ; Y movement per tick
|
|||
|
.bss targ_x,16 ; Target X position
|
|||
|
.bss targ_y,16 ; Target Y position
|
|||
|
.bss final_x,32 ; Final X position to pan to
|
|||
|
.bss final_y,32 ; Final Y position to pan to
|
|||
|
.bss p1x,32 ; Start X point
|
|||
|
.bss p1y,32 ; Start Y point
|
|||
|
.bss p2x,32 ; End X point
|
|||
|
.bss p2y,32 ; End Y point
|
|||
|
|
|||
|
#*************************************************************
|
|||
|
*
|
|||
|
SUBRP calc_dxdy
|
|||
|
PUSH a8,a9,a10,a11
|
|||
|
|
|||
|
movi p1x,a8 ; Get pointer to start and end points
|
|||
|
|
|||
|
move @ticks,a10,L ; Get ticks for this move
|
|||
|
|
|||
|
move *a8,a11,L ; Get start X position
|
|||
|
move *a8(64),a9,L ; Get End X position
|
|||
|
sub a11,a9 ; Get X difference
|
|||
|
divs a10,a9 ; Divide by ticks to get there
|
|||
|
move a9,@dx,L ; Store delta X
|
|||
|
|
|||
|
move *a8(32),a11,L ; Get start Y position
|
|||
|
move *a8(96),a9,L ; Get End Y position
|
|||
|
sub a11,a9 ; Get Y difference
|
|||
|
divs a10,a9 ; Divide by ticks to get there
|
|||
|
move a9,@dy,L ; Store delta Y
|
|||
|
|
|||
|
PULL a8,a9,a10,a11
|
|||
|
rets
|
|||
|
|
|||
|
|
|||
|
#*************************************************************
|
|||
|
*
|
|||
|
SUBRP move_camera
|
|||
|
PUSH a0
|
|||
|
|
|||
|
move @WORLDTLX,a14,L ; Get Current X position
|
|||
|
move @dx,a0,L ; Get Delta X
|
|||
|
add a0,a14 ; Add to Current X postion
|
|||
|
move a14,@WORLDTLX,L ; Write new position
|
|||
|
|
|||
|
|
|||
|
move @WORLDTLY,a14,L ; Get Current Y position
|
|||
|
move @dy,a0,L ; Get Delta Y
|
|||
|
add a0,a14 ; Add to Current Y position
|
|||
|
move a14,@WORLDTLY,L ; Write new Y position
|
|||
|
|
|||
|
PULL a0
|
|||
|
rets
|
|||
|
|
|||
|
#**************************************************************
|
|||
|
*
|
|||
|
SUBRP check_camera_position
|
|||
|
PUSH a0
|
|||
|
|
|||
|
move @WORLDTLX,a14,L ; Get current X position
|
|||
|
sra 16,a14 ; Get rid of fractional portion
|
|||
|
move @targ_x,a0 ; Get current target X position
|
|||
|
sub a0,a14 ; Subtract the two
|
|||
|
abs a14 ; Make sure it is positive
|
|||
|
cmpi 3,a14 ; Are we within 3 ?
|
|||
|
jrgt #check_y ; br = no
|
|||
|
clr a14
|
|||
|
move a14,@dx,L ; Stop X movement
|
|||
|
|
|||
|
#check_y
|
|||
|
move @WORLDTLY,a14,L ; Get current Y position
|
|||
|
sra 16,a14 ; Get rid of fractional portion
|
|||
|
move @targ_y,a0 ; Get current target Y position
|
|||
|
sub a0,a14 ; Subtract the two
|
|||
|
abs a14 ; Make sure it is positive
|
|||
|
cmpi 3,a14 ; Are we within 3 ?
|
|||
|
jrgt #check_done ; br = no
|
|||
|
clr a14
|
|||
|
move a14,@dy,L ; Stop Y movement
|
|||
|
|
|||
|
#check_done
|
|||
|
PULL a0
|
|||
|
rets
|
|||
|
|
|||
|
#*******************************************************************
|
|||
|
*
|
|||
|
SUBRP pan_around
|
|||
|
|
|||
|
SLEEP TSEC/2
|
|||
|
|
|||
|
clr a14
|
|||
|
move a14,@pan_status
|
|||
|
|
|||
|
move @WORLDTLX,a14,L ; Get current X position
|
|||
|
move a14,@final_x,L ; Save off for pan back
|
|||
|
move a14,@p1x,L ; Set as the starting X point
|
|||
|
move @WORLDTLY,a14,L ; Get current Y position
|
|||
|
move a14,@final_y,L ; Save off for pan back
|
|||
|
move a14,@p1y,L ; Set as the starting Y point
|
|||
|
|
|||
|
#pan_again
|
|||
|
movi panning_points,a8 ; Get pointer to pan points table
|
|||
|
|
|||
|
#p1on8_lp
|
|||
|
move *a8+,a14,L ; Get Ticks for the move
|
|||
|
move a14,@ticks,L ; Set ticks for this move
|
|||
|
move *a8+,a14,L ; Get Target X position
|
|||
|
move a14,@p2x,L ; Set Ending X position
|
|||
|
srl 16,a14 ; Lop off fractional part
|
|||
|
move a14,@targ_x ; Store it as the target X position
|
|||
|
move *a8+,a14,L ; Get Target Y position
|
|||
|
move a14,@p2y,L ; Set Ending Y position
|
|||
|
srl 16,a14 ; Lop off fractional part
|
|||
|
move a14,@targ_y ; Store it as the target Y position
|
|||
|
movk 15,a10 ; Number of ticks for this move
|
|||
|
callr calc_dxdy ; Calculate dx and dy
|
|||
|
#next_move
|
|||
|
callr move_camera ; Move the camera
|
|||
|
calla BGND_UD1 ; Update the background
|
|||
|
SLEEPK 1 ; Let it actually move
|
|||
|
PUSH a0,a1,a2,a3,a4,a5,a6,a7,a8,a9
|
|||
|
movk 1,a3
|
|||
|
calla crowd_cheer ; Make the crowd cheer
|
|||
|
PULL a0,a1,a2,a3,a4,a5,a6,a7,a8,a9
|
|||
|
callr check_camera_position ; Adjust dx and dy
|
|||
|
|
|||
|
move @dx,a14,L ; Get current dx
|
|||
|
move @dy,a0,L ; Get current dy
|
|||
|
or a0,a14 ; Or 'em together
|
|||
|
jrnz #next_move ; Done with this segment ? - br - no
|
|||
|
|
|||
|
; This is probably where I want to put up different lines of text
|
|||
|
move @pan_status,a14
|
|||
|
jrnz #text_is_up
|
|||
|
|
|||
|
SLEEPK 5
|
|||
|
|
|||
|
movk 1,a14
|
|||
|
move a14,@pan_status
|
|||
|
move @royal_rumble,a14
|
|||
|
jrnz #do_8_on_2
|
|||
|
calla is_8_on_1
|
|||
|
jrc #do_8_on_1
|
|||
|
|
|||
|
#do_3_on_1
|
|||
|
; Print 1vs3 congrats message - GAWD IS THIS UUUUGGGLY
|
|||
|
clr a14
|
|||
|
jruc #pcx
|
|||
|
#do_8_on_2
|
|||
|
; Print 2vs8 congrats message - GAWD IS THIS UUUUGGGLY
|
|||
|
movk 2,a14
|
|||
|
jruc #pcx
|
|||
|
#do_8_on_1
|
|||
|
; Print 1vs8 congrats message - GAWD IS THIS UUUUGGGLY
|
|||
|
movk 1,a14
|
|||
|
#pcx callr print_congrats
|
|||
|
SLEEPK 2
|
|||
|
#text_is_up
|
|||
|
|
|||
|
|
|||
|
move @p2x,a14,L ; Get Last End X position
|
|||
|
move a14,@p1x,L ; Store as new Start X position
|
|||
|
move @p2y,a14,L ; Get Last End Y position
|
|||
|
move a14,@p1y,L ; Store as new Start Y position
|
|||
|
move @pan_down,a14
|
|||
|
jrnz #pan_done
|
|||
|
move *a8,a14,L ; Get next X target
|
|||
|
jrnz #p1on8_lp ; Done ? - br = no
|
|||
|
|
|||
|
move @pan_down,a14
|
|||
|
jrz #pan_again
|
|||
|
|
|||
|
#pan_done
|
|||
|
|
|||
|
movi CLSMK3,a0
|
|||
|
calla obj_del1c ; Get rid of the text when we pan back down
|
|||
|
|
|||
|
move @final_x,a14,L ; Get final X position
|
|||
|
move a14,@p2x,L ; Store it as new End Y postion
|
|||
|
srl 16,a14 ; Lop off fractional part
|
|||
|
move a14,@targ_x ; Store it as the target X position
|
|||
|
move @final_y,a14,L ; Get final Y position
|
|||
|
move a14,@p2y,L ; Store it as new End Y postion
|
|||
|
srl 16,a14 ; Lop off fractional part
|
|||
|
move a14,@targ_y ; Store it as the target Y position
|
|||
|
|
|||
|
movi INIT_PAN_SPEED,a14
|
|||
|
move a14,@ticks,L ; Store ticks for this move
|
|||
|
|
|||
|
callr calc_dxdy ; Calculate dx and dy
|
|||
|
#npb_move
|
|||
|
callr move_camera ; Move the camera
|
|||
|
calla BGND_UD1 ; Update the background
|
|||
|
SLEEPK 1 ; Let it actually move
|
|||
|
PUSH a0,a1,a2,a3,a4,a5,a6,a7,a8,a9
|
|||
|
movk 1,a3
|
|||
|
calla crowd_cheer ; Make the crowd cheer
|
|||
|
PULL a0,a1,a2,a3,a4,a5,a6,a7,a8,a9
|
|||
|
callr check_camera_position ; Adjust dx and dy
|
|||
|
|
|||
|
move @dx,a14,L ; Get current dx
|
|||
|
move @dy,a0,L ; Get current dy
|
|||
|
or a0,a14 ; Or 'em together
|
|||
|
jrnz #npb_move ; Done with last segment ? - br = no
|
|||
|
|
|||
|
DIE
|
|||
|
|
|||
|
#*****************************************
|
|||
|
*
|
|||
|
SUBRP knockout_drones
|
|||
|
movi process_ptrs,a9
|
|||
|
#next
|
|||
|
move *a9+,a8,L
|
|||
|
jrz #ko_done
|
|||
|
move *a8(PLYR_TYPE),a14
|
|||
|
jrz #next
|
|||
|
movi 7fffh,a14
|
|||
|
move a14,*a8(PTIME)
|
|||
|
jruc #next
|
|||
|
#ko_done
|
|||
|
rets
|
|||
|
|
|||
|
#***************************************
|
|||
|
*
|
|||
|
SUBRP #c1v3s_tbl
|
|||
|
.long #congrat_1v8_1
|
|||
|
.long #congrat_1v8_2
|
|||
|
.long #congrat_1v8_3
|
|||
|
; .long #congrat_1v8_4
|
|||
|
; .long #congrat_1v8_5
|
|||
|
.long #congrat_1v8_5
|
|||
|
.long #congrat_1v8_6
|
|||
|
.long 0
|
|||
|
|
|||
|
SUBRP #c1v8s_tbl
|
|||
|
.long #congrat_1v8_1
|
|||
|
.long #congrat_1v8_2
|
|||
|
.long #congrat_1v8_3
|
|||
|
.long #congrat_1v8_4
|
|||
|
.long #congrat_1v8_6
|
|||
|
.long 0
|
|||
|
|
|||
|
SUBRP #c2v8s_tbl
|
|||
|
.long #congrat_1v8_1
|
|||
|
.long #congrat_1v8_2
|
|||
|
.long #congrat_1v8_3
|
|||
|
.long #congrat_1v8_6
|
|||
|
.long 0
|
|||
|
|
|||
|
SUBRP #congrats_setup_tbl
|
|||
|
.long #c1v3s_tbl
|
|||
|
.long #c1v8s_tbl
|
|||
|
.long #c2v8s_tbl
|
|||
|
|
|||
|
|
|||
|
SUBRP #c1v3_tbl
|
|||
|
.long #congrat_1v8_1_str
|
|||
|
.long #congrat_1v3_2_str
|
|||
|
.long #congrat_1v3_3_str
|
|||
|
.long #congrat_1v3_4_str
|
|||
|
.long #congrat_1v8_5_str
|
|||
|
|
|||
|
SUBRP #c1v8_tbl
|
|||
|
.long #congrat_1v8_1_str
|
|||
|
.long #congrat_1v8_2_str
|
|||
|
.long #congrat_1v8_3_str
|
|||
|
.long #congrat_1v8_4_str
|
|||
|
.long #congrat_1v8_5_str
|
|||
|
|
|||
|
SUBRP #c2v8_tbl
|
|||
|
.long #congrat_1v8_1_str
|
|||
|
.long #congrat_2v8_2_str
|
|||
|
.long #congrat_2v8_3_str
|
|||
|
.long #congrat_2v8_4_str
|
|||
|
|
|||
|
SUBRP #congrats_str_tbl
|
|||
|
.long #c1v3_tbl
|
|||
|
.long #c1v8_tbl
|
|||
|
.long #c2v8_tbl
|
|||
|
|
|||
|
; a14 = 0 - 1v3, 1 - 1vs8, 2 - 2vs 8
|
|||
|
SUBRP print_congrats
|
|||
|
PUSH a8,a9,a10,a11
|
|||
|
sll 5,a14
|
|||
|
move a14,a9
|
|||
|
move a14,a10
|
|||
|
addi #congrats_setup_tbl,a9
|
|||
|
addi #congrats_str_tbl,a10
|
|||
|
move *a9,a9,L
|
|||
|
move *a10,a10,L
|
|||
|
#print_clp
|
|||
|
move *a9+,a8,L
|
|||
|
jrz #c_done
|
|||
|
move *a10+,a11,L
|
|||
|
move a8,a2
|
|||
|
calla setup_message
|
|||
|
movi CLSMK3,a4
|
|||
|
move a4,@mess_objid
|
|||
|
move a11,a4
|
|||
|
calla print_string_C2
|
|||
|
jruc #print_clp
|
|||
|
#c_done
|
|||
|
PULL a8,a9,a10,a11
|
|||
|
rets
|
|||
|
|
|||
|
#congrat_1v3_2_str
|
|||
|
.string "YOU ARE THE INTERCONTINENTAL CHAMPION!",0
|
|||
|
.even
|
|||
|
#congrat_1v3_3_str
|
|||
|
.string "IT'S TIME TO SEEK A BIGGER CHALLENGE:",0
|
|||
|
.even
|
|||
|
#congrat_1v3_4_str
|
|||
|
.string "COMPETE FOR THE WORLD CHAMPIONSHIP!",0
|
|||
|
.even
|
|||
|
|
|||
|
|
|||
|
#congrat_1v8_1_str
|
|||
|
.string "CONGRATULATIONS!!!",0
|
|||
|
.even
|
|||
|
#congrat_1v8_2_str
|
|||
|
.string "YOU ARE THE NEW WWF WORLD CHAMPION!",0
|
|||
|
.even
|
|||
|
#congrat_1v8_3_str
|
|||
|
.string "YOUR NAME WILL LIVE FOREVER AMONG THE",0
|
|||
|
.even
|
|||
|
#congrat_1v8_4_str
|
|||
|
.string "GREATEST WRESTLERS OF ALL TIME!!!",0
|
|||
|
.even
|
|||
|
#congrat_1v8_5_str
|
|||
|
.string "...THANK YOU FOR PLAYING...",0
|
|||
|
.even
|
|||
|
|
|||
|
|
|||
|
#congrat_2v8_2_str
|
|||
|
.string "YOU ARE THE NEW WORLD WRESTLING",0
|
|||
|
.even
|
|||
|
#congrat_2v8_3_str
|
|||
|
.string "FEDERATION TAG TEAM CHAMPIONS!!!",0
|
|||
|
.even
|
|||
|
#congrat_2v8_4_str
|
|||
|
.string "PREPARE TO BATTLE EACH OTHER!!!",0
|
|||
|
.even
|
|||
|
|
|||
|
|
|||
|
#congrat_1v8_1
|
|||
|
JAM_STR wsf14_ascii,10,0,200,60,WSF_R_P,print_string_C2
|
|||
|
.even
|
|||
|
#congrat_1v8_2
|
|||
|
JAM_STR ogmd10_ascii,10,0,200,100,SGMD8YEL,print_string_C2
|
|||
|
.even
|
|||
|
#congrat_1v8_3
|
|||
|
JAM_STR ogmd10_ascii,10,0,200,113,SGMD8YEL,print_string_C2
|
|||
|
.even
|
|||
|
#congrat_1v8_4
|
|||
|
JAM_STR ogmd10_ascii,10,0,200,126,SGMD8YEL,print_string_C2
|
|||
|
.even
|
|||
|
#congrat_1v8_5
|
|||
|
JAM_STR ogmd10_ascii,10,0,200,152,SGMD8WHT,print_string_C2
|
|||
|
.even
|
|||
|
#congrat_1v8_6
|
|||
|
JAM_STR ogmd10_ascii,10,0,200,178,SGMD8BLU,print_string_C2
|
|||
|
.even
|
|||
|
|
|||
|
|
|||
|
******************************************************************************
|
|||
|
|
|||
|
.end
|
|||
|
|