5196 lines
105 KiB
NASM
5196 lines
105 KiB
NASM
|
;******************************************************************************
|
|||
|
;** **
|
|||
|
;** P I N B A L L F A N T A S I E S **
|
|||
|
;** TABLE: SPEED DEVILS **
|
|||
|
;** **
|
|||
|
;******************************************************************************
|
|||
|
|
|||
|
INCLUDELIB Sdev.LIB
|
|||
|
|
|||
|
flipgfxfilesize=168
|
|||
|
FIRSTMASK_GFXADR=BPL*(SPLH+BANH)
|
|||
|
GFXADR_FOR_FLIP_ANIM_DATA=FIRSTMASK_GFXADR+BPL*40
|
|||
|
springsourceadr=GFXADR_FOR_FLIP_ANIM_DATA-3*23 ;3*23 <20>R F<>R FJ<46>DERNS GFX
|
|||
|
springdestadr=(splh+556)*bpl+304/4
|
|||
|
std_lgt_speed=15 ;som pilarna blinkar i ju . . .
|
|||
|
TurboDelay=60*3
|
|||
|
blet=1 ;hur m<>nga ggr f<>r l<>nge mellan looparna
|
|||
|
|
|||
|
DATAFLIP SEGMENT PARA PUBLIC 'DATA'
|
|||
|
MAXDIFS1=114+5
|
|||
|
MAXDIFS2=114+5
|
|||
|
MAXDIFS3=114+5
|
|||
|
maxdifs=114
|
|||
|
if create_flip_data
|
|||
|
LEFTFLIPTAB DW 42*(2*MAXDIFS1) DUP (1)
|
|||
|
RIGHTFLIPTAB DW 42*(2*MAXDIFS2) DUP (1)
|
|||
|
LEFTFLIP2TAB DW 30*(2*MAXDIFS3) DUP (1)
|
|||
|
TEMPTAB DW 2*MAXDIFS DUP (1)
|
|||
|
else
|
|||
|
extrn leftfliptab,rightfliptab,leftflip2tab
|
|||
|
endif
|
|||
|
DATAFLIP ENDS
|
|||
|
|
|||
|
DATA SEGMENT PARA PUBLIC 'DATA'
|
|||
|
ASSUME CS:CODE,DS:DATA
|
|||
|
MODUL DB 'TABLE2.MOD',0,'$'
|
|||
|
if create_flip_data
|
|||
|
flipdatafil_L DB 'flipdata.2L',0
|
|||
|
flipdatafil_R DB 'flipdata.2R',0
|
|||
|
flipdatafil_L2 DB 'flipdata.2L2',0
|
|||
|
flipgfxfil DB 'flipgfx.2',0
|
|||
|
flipSTRUCfil DB 'flipSTRU.2',0
|
|||
|
endif
|
|||
|
hi_score_file db 'table2.hi',0
|
|||
|
hi_score_list db 0,0,0, 1,0,0, 0,0,0, 0,0,0,'TSP',0
|
|||
|
db 0,0,0, 0,5,0, 0,0,0, 0,0,0,'J L',0
|
|||
|
db 0,0,0, 0,2,5, 0,0,0, 0,0,0,'ICE',0
|
|||
|
db 0,0,0, 0,1,0, 0,0,0, 0,0,0,'ANY',0
|
|||
|
|
|||
|
;******************************************************************************
|
|||
|
;******************************** DEFINITIONS *********************************
|
|||
|
;******************************************************************************
|
|||
|
stones=0 ;true
|
|||
|
TOTCENT=16
|
|||
|
CYCLONECOUNTER DW ? ;HEXADECIMAL
|
|||
|
cyclonecounterBCD DB ?,?,?, ?,?,?, ?,?,?, ?,?,? ;BCD CODED
|
|||
|
CYCLONESCOREBCD DB ?,?,?, ?,?,?, ?,?,?, ?,?,? ;BCD CODED
|
|||
|
XXBALLE DB ?
|
|||
|
|
|||
|
;******************** SYSTEM **********************
|
|||
|
RGB_BUFFER_LEN=1500
|
|||
|
MAX_NO_OF_LIGHTS_FLASHING=64
|
|||
|
MAX_NO_OF_WAIT_SYNCS=50
|
|||
|
NOOFTASKS=20
|
|||
|
|
|||
|
;******************** FLIPPER & BALL **********************
|
|||
|
BALLH=16
|
|||
|
BANH=576
|
|||
|
STARTX=310-BALLH/2+3
|
|||
|
STARTY=543-BALLH/2
|
|||
|
|
|||
|
F3TOP=168
|
|||
|
F3HEIGHT=53
|
|||
|
|
|||
|
;******************** FLASHING **********************
|
|||
|
MATRIXHI=62H
|
|||
|
MATRIXLO=80H
|
|||
|
MATRIXCOLS=MATRIXHI*256+MATRIXLO
|
|||
|
BIT2COL DB 0,0,0,0,31,1,52,0 ;flipper f<>rgerna
|
|||
|
|
|||
|
PARTY_ON_SPEED=3 ;?
|
|||
|
SHOOT_AGAIN_SPEED=3 ;?
|
|||
|
|
|||
|
POS_SYNCER DB ? ;LIGHT SYNC
|
|||
|
|
|||
|
;******************** GAME TIMING ********************
|
|||
|
|
|||
|
;******************** HOLES **********************
|
|||
|
|
|||
|
;******************************************************************************
|
|||
|
;****************************** GENERAL VARS **********************************
|
|||
|
;******************************************************************************
|
|||
|
if create_flip_data
|
|||
|
FlipLInfo DB FlipperL,222
|
|||
|
DW 80,510,4,53,0,142,400,576,95,536,0,(53*8*3)
|
|||
|
DW 0,0,0,20,20*ADJUST,-7*tt/nn,4*tt/nn,-68*tt/nn,48*tt/nn
|
|||
|
DW ?,?,?,?,LEFTFLIPTAB,LEFTFLIPTAB,maxdifs1*4
|
|||
|
DW FLIPLEFT
|
|||
|
|
|||
|
DB FlipperR,222
|
|||
|
DW 160,510,4,53,143,320,400,576,204,536,0,(53*8*3)
|
|||
|
DW 0,0,0,20,20*ADJUST,-7*tt/nn,4*tt/nn,-68*tt/nn,48*tt/nn
|
|||
|
DW ?,?,?,?,RIGHTFLIPTAB,RIGHTFLIPTAB,maxdifs2*4
|
|||
|
DW FLIPRIGHT
|
|||
|
|
|||
|
DB FlipperR,222
|
|||
|
DW 144,168,4,53,0,320,100,300,188,198,0,(53*8*3)
|
|||
|
DW 0,0,0,14,14*ADJUST,-5*tt/nn,4*tt/nn,-68*tt/nn,48*tt/nn
|
|||
|
DW ?,?,?,?,LEFTFLIP2TAB,LEFTFLIP2TAB,maxdifs3*4
|
|||
|
DW FLIPLEFT2+(4*(53*8*3))/16
|
|||
|
DB 0,0
|
|||
|
else
|
|||
|
extrn fliplinfo:flipstruc
|
|||
|
endif
|
|||
|
no_of_ramps equ 6
|
|||
|
RAMPTABLE DW 0,10*tt/nn
|
|||
|
DW 0,15*tt/nn
|
|||
|
DW 0,25*tt/nn
|
|||
|
DW -1,10*tt/nn
|
|||
|
DW 0,20*tt/nn
|
|||
|
DW 12*tt/nn,10*tt/nn
|
|||
|
DW 0,0
|
|||
|
|
|||
|
RAMPTABLE_hi DW 0,10
|
|||
|
DW 0,15
|
|||
|
DW 0,25
|
|||
|
DW -1,10
|
|||
|
DW 0,20
|
|||
|
DW 12,10
|
|||
|
DW 0,0
|
|||
|
|
|||
|
PLAYER_STRUC STRUC
|
|||
|
P_SIFFRORNA DB 12 DUP(?)
|
|||
|
P_BONUSSIFFRORNA DB 12 DUP(?)
|
|||
|
p_cyclonecounterBCD db 12 dup(?)
|
|||
|
p_cyclonecount dw ?
|
|||
|
p_speeden dw ?
|
|||
|
p_gearet dw ?
|
|||
|
p_nextjump dw ?
|
|||
|
p_nextoffroad dw ?
|
|||
|
p_pos_light dw ?
|
|||
|
p_pos_flash dw ?
|
|||
|
p_goallight db ?
|
|||
|
p_gear db ? ;Gyllenhammar??
|
|||
|
p_ear db ?
|
|||
|
p_aron db ?
|
|||
|
p_rapa db ? ;Ja hoppas den e bra . .
|
|||
|
p_part1 db ?
|
|||
|
p_part2 db ?
|
|||
|
p_part3 db ?
|
|||
|
p_part4 db ?
|
|||
|
p_part5 db ?
|
|||
|
p_part1_l db ?
|
|||
|
p_part2_l db ?
|
|||
|
p_part3_l db ?
|
|||
|
p_part4_l db ?
|
|||
|
p_part5_l db ?
|
|||
|
p_Carparten DW ?
|
|||
|
p_hbcount db ?
|
|||
|
p_tm_total db 12 dup (?)
|
|||
|
p_or_total DB 12 dup (?)
|
|||
|
ENDS
|
|||
|
PLAYER_AREA DB SIZE PLAYER_STRUC * NO_OF_PLAYERS DUP(0)
|
|||
|
;******************************************************************************
|
|||
|
;********************************* EFFECTS ************************************
|
|||
|
;******************************************************************************
|
|||
|
|
|||
|
EFFECT_STRUC STRUC
|
|||
|
THEJINGLE DW ?
|
|||
|
TSCORE DB 0,0,0, 0,0,0, 0,0,0, 0,0,0 ;12 ST!!
|
|||
|
TBONUS DB 0,0,0, 0,0,0, 0,0,0, 0,0,0 ;12 ST!!
|
|||
|
DOTMATRIX DW ?
|
|||
|
ENDS
|
|||
|
|
|||
|
Turboeffect dw SJingle21
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
dw 0
|
|||
|
|
|||
|
jump_at dw 0
|
|||
|
db 35
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
dw Jump_At_TS
|
|||
|
|
|||
|
offroad_at_10 dw 0
|
|||
|
db 35
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
dw offroad_At_10_TS
|
|||
|
|
|||
|
xball_at_20 dw 0
|
|||
|
db 35
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
dw Xball_At_20_TS
|
|||
|
|
|||
|
OffRoad_at dw 0
|
|||
|
db 35
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
dw OffRoad_At_TS
|
|||
|
|
|||
|
|
|||
|
SuperJack dw SJingle3
|
|||
|
db 0,0,0, 0,5,0, 0,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,1, 0,0,0, 0,0,0
|
|||
|
dw SuperJackTS
|
|||
|
|
|||
|
JackPot dw SJingle2
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
dw JackPotTS
|
|||
|
|
|||
|
SuperJack2 dw SJingle3
|
|||
|
db 0,0,0, 0,5,0, 0,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,1, 0,0,0, 0,0,0
|
|||
|
dw superJack2TS
|
|||
|
|
|||
|
|
|||
|
HoldBonus dw S_Lock
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
dw BonusHeldTS
|
|||
|
|
|||
|
|
|||
|
NumberOne dw SJingle18
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
dw 0
|
|||
|
|
|||
|
XBall dw SJingle4
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW XballTS
|
|||
|
|
|||
|
litXBall dw 0
|
|||
|
db 90
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW litXballTS
|
|||
|
dw 0
|
|||
|
|
|||
|
|
|||
|
Jump dw SJingle11
|
|||
|
db 0,0,0, 0,1,0, 0,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW JumpTS
|
|||
|
|
|||
|
lgt_Jump dw SJingle10
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW litJumpTS
|
|||
|
|
|||
|
Part1 dw SJingle15
|
|||
|
db 0,0,0, 0,0,0, 5,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,5,0, 0,0,0
|
|||
|
dw Part1TS
|
|||
|
Part2 dw SJingle15
|
|||
|
db 0,0,0, 0,0,0, 5,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,5,0, 0,0,0
|
|||
|
dw Part2TS
|
|||
|
Part3 dw SJingle15
|
|||
|
db 0,0,0, 0,0,0, 5,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,5,0, 0,0,0
|
|||
|
dw Part3TS
|
|||
|
Part4 dw SJingle15
|
|||
|
db 0,0,0, 0,0,0, 5,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,5,0, 0,0,0
|
|||
|
dw Part4TS
|
|||
|
Part5 dw SJingle15
|
|||
|
db 0,0,0, 0,0,0, 5,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,5,0, 0,0,0
|
|||
|
dw Part5TS
|
|||
|
|
|||
|
GearChange dw SJingle16
|
|||
|
db 0,0,0, 0,0,0, 5,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,2,5, 0,0,0
|
|||
|
dw GearTS
|
|||
|
|
|||
|
Speedo dw Sjingle8 ;CP! Olika f<>r varje speed!!
|
|||
|
db 0,0,0, 0,0,0, 2,5,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,2,5, 0,0,0
|
|||
|
DW PedalTS
|
|||
|
|
|||
|
|
|||
|
OverTake dw SJingle17
|
|||
|
db 0,0,0, 0,0,0, 5,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,5,0, 0,0,0
|
|||
|
dw OverTakeTS
|
|||
|
|
|||
|
GoalLit dw SJingle12
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW 0
|
|||
|
|
|||
|
GetGoal dw SJingle7 ;13
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW TurboTS
|
|||
|
|
|||
|
LOSTBALL DW 0 ;S_LOSTBALL
|
|||
|
DB 255
|
|||
|
; DD 0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW ball_lostTS
|
|||
|
|
|||
|
|
|||
|
BygelSetA DW S_Tilt ;sidotrill ned . .
|
|||
|
db 0,0,0, 0,0,0, 0,5,0, 0,7,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW 0
|
|||
|
|
|||
|
BygelSetB dw 0
|
|||
|
db 200 ;r<>rnedfall . .
|
|||
|
db 0,0,0, 0,0,0, 0,1,0, 0,1,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,1, 0,3,0
|
|||
|
DW 0
|
|||
|
|
|||
|
BygelSetC dw 0
|
|||
|
db 200 ;P I T
|
|||
|
db 0,0,0, 0,0,0, 0,1,0, 0,2,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,1, 0,1,0
|
|||
|
DW 0
|
|||
|
MBLit dw Sjingle9 ;Multi Bonus Lit
|
|||
|
db 0,0,0, 0,0,0, 0,1,0, 0,2,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,1, 0,1,0
|
|||
|
DW 0
|
|||
|
|
|||
|
BygelSetD dw 0
|
|||
|
db 200 ;Ut ur OffRoad . .
|
|||
|
db 0,0,0, 0,0,0, 0,1,0, 0,4,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,1, 0,5,0
|
|||
|
DW 0
|
|||
|
|
|||
|
BygelSetE dw 0
|
|||
|
db 200 ;In i offroad . .
|
|||
|
db 0,0,0, 0,0,0, 0,1,0, 0,4,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,1, 0,9,0
|
|||
|
DW 0
|
|||
|
DB ?
|
|||
|
Million dw Sjingle6 ;In i offroad, full bonus
|
|||
|
db 0,0,0, 0,0,1, 0,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,1,0, 0,0,0
|
|||
|
dw MillionTS
|
|||
|
DB ?
|
|||
|
;Speeds (Loops get higher score for higher speeds)
|
|||
|
SScore1 dw 0
|
|||
|
db 30
|
|||
|
db 0,0,0, 0,0,0, 0,2,5, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW MilesTS
|
|||
|
SScore2 dw 0
|
|||
|
db 30
|
|||
|
db 0,0,0, 0,0,0, 0,5,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW MilesTS
|
|||
|
SScore3 dw 0
|
|||
|
db 30
|
|||
|
db 0,0,0, 0,0,0, 0,7,5, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW MilesTS
|
|||
|
SScore4 dw 0
|
|||
|
db 30
|
|||
|
db 0,0,0, 0,0,0, 1,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW MilesTS
|
|||
|
SScore5 dw 0
|
|||
|
db 30
|
|||
|
db 0,0,0, 0,0,0, 1,2,5, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW MilesTS
|
|||
|
SScore6 dw 0
|
|||
|
db 30
|
|||
|
db 0,0,0, 0,0,0, 1,5,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW MilesTS
|
|||
|
SScore7 dw 0
|
|||
|
db 30
|
|||
|
db 0,0,0, 0,0,0, 1,7,5, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW MilesTS
|
|||
|
SScore8 dw 0
|
|||
|
db 30
|
|||
|
db 0,0,0, 0,0,0, 2,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW MilesTS
|
|||
|
SScore9 dw 0
|
|||
|
db 30
|
|||
|
db 0,0,0, 0,0,0, 2,2,5, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW MilesTS
|
|||
|
SScore10 dw 0
|
|||
|
db 30
|
|||
|
db 0,0,0, 0,0,0, 2,5,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW MilesTS
|
|||
|
SScore11 dw 0
|
|||
|
db 30
|
|||
|
db 0,0,0, 0,0,0, 2,7,5, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW MilesTS
|
|||
|
SScore12 dw 0
|
|||
|
db 30
|
|||
|
db 0,0,0, 0,0,0, 3,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW MilesTS
|
|||
|
|
|||
|
|
|||
|
;Multiply Bonus vill ligga t<>tt ihop ;-)
|
|||
|
M2 DW SJingle1
|
|||
|
db 0,0,0, 0,0,0, 0,1,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,1, 0,0,0
|
|||
|
DW m2TS
|
|||
|
|
|||
|
M3 DW SJingle1
|
|||
|
db 0,0,0, 0,0,0, 0,1,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,1, 0,0,0
|
|||
|
DW m3TS
|
|||
|
M4 DW SJingle1
|
|||
|
db 0,0,0, 0,0,0, 0,1,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,2, 0,0,0
|
|||
|
DW m4TS
|
|||
|
M5 DW SJingle1
|
|||
|
db 0,0,0, 0,0,0, 0,1,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,3, 0,0,0
|
|||
|
DW m5TS
|
|||
|
M6 DW SJingle1
|
|||
|
db 0,0,0, 0,0,0, 0,1,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,4, 0,0,0
|
|||
|
DW m6TS
|
|||
|
M7 DW SJingle1
|
|||
|
db 0,0,0, 0,0,0, 0,1,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,5, 0,0,0
|
|||
|
DW m7TS
|
|||
|
M8 DW SJingle1
|
|||
|
db 0,0,0, 0,0,0, 0,1,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,6, 0,0,0
|
|||
|
DW m8TS
|
|||
|
M9 DW SJingle1
|
|||
|
db 0,0,0, 0,0,0, 0,1,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,7, 0,0,0
|
|||
|
DW m9TS
|
|||
|
|
|||
|
if demover
|
|||
|
MINUTE5 DW S_GAMEOVER2
|
|||
|
; DD 0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 0,0,0
|
|||
|
DW minute5TS
|
|||
|
endif
|
|||
|
BONUS_X DB ?
|
|||
|
TEMPBONUSBCD DB ?,?,?, ?,?,?, ?,?,?, ?,?,?
|
|||
|
|
|||
|
JACKVALUE DB ?,?,?, ?,?,?, ?,?,?, ?,?,? ;JACKPOT CURRENT
|
|||
|
JACKRAISE DB 0,0,0, 0,0,0, 1,0,0, 0,0,0 ;JACKPOT STEP
|
|||
|
JACKINIT DB 0,0,0, 0,0,5, 0,0,0, 0,0,0 ;JACKPOT START
|
|||
|
|
|||
|
etta db 0,0,0,0,0,0,0,0,0,0,0,1
|
|||
|
HUNDRATUSEN db 0,0,0,0,0,0,1,0,0,0,0,0
|
|||
|
BCDfemmillioner db 0,0,0,0,0,5,0,0,0,0,0,0
|
|||
|
bcd7510 db 0,0,0,0,0,0,0,0,7,5,1,0
|
|||
|
bcd7520 db 0,0,0,0,0,0,0,0,7,5,2,0
|
|||
|
bcd550 db 0,0,0,0,0,0,0,0,0,5,5,0
|
|||
|
bcd570 db 0,0,0,0,0,0,0,0,0,5,7,0
|
|||
|
bcdhundratusen db 0,0,0,0,0,0,1,0,0,0,0,0
|
|||
|
;******************************************************************************
|
|||
|
;**************************** SOUND STRUCTURES ********************************
|
|||
|
;******************************************************************************
|
|||
|
|
|||
|
;SAMPLE,PERIOD,EFFECT,CHANNEL
|
|||
|
|
|||
|
sbase Equ 21+1
|
|||
|
|
|||
|
SBrickNer db (sbase+0),18,0,3
|
|||
|
SBrickUpp db (sbase+1),18,0,3
|
|||
|
SBumper db (sbase+2),18,0,3
|
|||
|
SFlippUpp db (sbase+3),22,0,3
|
|||
|
SRinner db (sbase+4),18,0,3
|
|||
|
SNewBall db (sbase+6),18,0,3
|
|||
|
SKicker db (sbase+7),18,0,3
|
|||
|
SFjader db (sbase+8),18,0,3
|
|||
|
SGrop db (sbase+1),18,0,3
|
|||
|
|
|||
|
|
|||
|
|
|||
|
;***********************************************************************
|
|||
|
|
|||
|
ebase Equ 26+1
|
|||
|
|
|||
|
;????????????????????????????????????????????
|
|||
|
S_AddPlayer2 db (ebase+0),20,0,3
|
|||
|
;????????????????????????????????????????????
|
|||
|
|
|||
|
SBygel1 db (ebase+0),10,0,3
|
|||
|
SBygel2 db (ebase+0),12,0,3
|
|||
|
SBygel3 db (ebase+0),8,0,3
|
|||
|
SBygel4 db (ebase+0),17,0,3
|
|||
|
SBygel5 db (ebase+0),8,0,3
|
|||
|
S_Touch1 db (ebase+0),14,0,3
|
|||
|
S_Touch2 db (ebase+0),10,0,3
|
|||
|
S_MultiLjud db (ebase+0),10,0,3
|
|||
|
S_ScoreLjud db (ebase+0),18,0,3
|
|||
|
S_TripCount db (ebase+0),15,0,3
|
|||
|
|
|||
|
;***********************************************************************
|
|||
|
;* Here comes the jingles . . . *
|
|||
|
;***********************************************************************
|
|||
|
emptyjingle equ 55
|
|||
|
springjingle equ 0
|
|||
|
mainjingle equ 2
|
|||
|
lastmainpos equ 9
|
|||
|
|
|||
|
S_Empty db 55,0,0
|
|||
|
S_Spring db 0,0,0
|
|||
|
S_Main db 2,0,0
|
|||
|
S_NoHigh db 10,0,0
|
|||
|
S_Danger db 40,1,250
|
|||
|
S_Tilt db 39,1,250
|
|||
|
S_GameOver db 26,0,0
|
|||
|
S_GameOver2 db 61,0,255 ;0
|
|||
|
S_LostBall db 24,1,255 ;200 ???
|
|||
|
S_AddPlayer db 0,0,0
|
|||
|
S_Lock db 27,1,90 ;Bonus Locked
|
|||
|
S_Mystery db 0,0,0
|
|||
|
S_EndFig db 50,1,0
|
|||
|
S_Knacket db 51,1,230
|
|||
|
S_BEATEN DB 51,1,249
|
|||
|
|
|||
|
;***********************************************************************
|
|||
|
|
|||
|
SJingle1 db 25,1,60 ;Multi Bonus
|
|||
|
SJingle2 db 38,1,190 ;Jackpot
|
|||
|
SJingle3 db 41,4,200 ;Super Jackpot
|
|||
|
SJingle4 db 28,1,180 ;Extra Ball
|
|||
|
SJingle5 db 30,1,100 ;Jackpot Lit
|
|||
|
SJingle6 db 44,1,61 ;Million
|
|||
|
SJingle7 db 34,0,255 ;Turbo (0)
|
|||
|
SJingle8 db 42,1,50 ;Add Speed
|
|||
|
SJingle9 db 48,1,60 ;Multi Bonus Lit
|
|||
|
SJingle10 db 32,1,40 ;Jump Lit
|
|||
|
SJingle11 db 43,1,70 ;Jump
|
|||
|
SJingle12 db 45,1,100 ;Goal Lit
|
|||
|
SJingle13 db 46,1,200 ;Goal
|
|||
|
SJingle15 db 33,1,110 ;Extra Features
|
|||
|
SJingle16 db 29,1,80 ;Change Gear
|
|||
|
SJingle17 db 37,1,62 ;Overtake
|
|||
|
SJingle18 db 49,1,200 ;Number One
|
|||
|
SJingle19 db 31,1,100 ;Double Bonus
|
|||
|
SJingle20 db 36,1,255 ;Turbo End (0)
|
|||
|
SJingle21 db 24,1,30 ;Ramps
|
|||
|
SJingle22 db 56,0,254 ;Off Road (0)
|
|||
|
SJingle23 db 60,1,255 ;Off Road End (60)
|
|||
|
|
|||
|
;******************************************************************************
|
|||
|
;***************************** DETECTION AREAS ********************************
|
|||
|
;******************************************************************************
|
|||
|
|
|||
|
BumperLista_L dw 52,193,76,217
|
|||
|
dw Bumper1
|
|||
|
dw 5,223,28,247
|
|||
|
dw Bumper2
|
|||
|
dw 52,253,67,274
|
|||
|
dw Bumper3
|
|||
|
dw 5,283,28,307
|
|||
|
dw Bumper4
|
|||
|
BumperLista_U dw -1,-1,-1,-1
|
|||
|
dw 0
|
|||
|
|
|||
|
Bumper2Lista_L dw 50,415,80,470 ;Just to add power
|
|||
|
dw Kicker1 ;No Scores or effects
|
|||
|
dw 219,415,249,470
|
|||
|
dw Kicker2
|
|||
|
Bumper2Lista_U dw -1,-1,-1,-1
|
|||
|
dw 0
|
|||
|
|
|||
|
bumper1 dw sbumper
|
|||
|
db 0,0,0, 0,0,0, 0,0,1, 0,3,0 ;1,030
|
|||
|
bumper2 dw sbumper
|
|||
|
db 0,0,0, 0,0,0, 0,0,1, 0,3,0 ;1,030
|
|||
|
bumper3 dw sbumper
|
|||
|
db 0,0,0, 0,0,0, 0,0,1, 0,3,0 ;1,030
|
|||
|
bumper4 dw sbumper
|
|||
|
db 0,0,0, 0,0,0, 0,0,1, 0,3,0 ;1,030
|
|||
|
|
|||
|
kicker1 dw skicker
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 5,1,0 ;510
|
|||
|
kicker2 dw skicker
|
|||
|
db 0,0,0, 0,0,0, 0,0,0, 5,1,0 ;510
|
|||
|
|
|||
|
|
|||
|
ZonLista_L label word
|
|||
|
|
|||
|
|
|||
|
DW 168,235,183,250,bricka_b
|
|||
|
DW 183,246,199,258,bricka_u
|
|||
|
DW 199,254,215,266,bricka_r
|
|||
|
|
|||
|
DW 261,261,271,278,bricka_n
|
|||
|
DW 271,278,278,294,bricka_i
|
|||
|
DW 278,294,290,310,bricka_nn
|
|||
|
|
|||
|
|
|||
|
dw 0
|
|||
|
comment\
|
|||
|
dw 168,235,215,265
|
|||
|
dw TouchSetA ;B U R
|
|||
|
dw 261,261,290,310
|
|||
|
dw TouchSetB ;N I N'
|
|||
|
\
|
|||
|
ZonLista_U label word
|
|||
|
dw 0
|
|||
|
|
|||
|
AreaLista_L label word
|
|||
|
dw 260,35,275,60 ;PITSTOP
|
|||
|
dw GropA
|
|||
|
|
|||
|
dw 295,50,320,70 ;Game On
|
|||
|
dw Close1
|
|||
|
|
|||
|
dw 140,50,170,70 ;Jump
|
|||
|
dw Bygel16
|
|||
|
|
|||
|
dw 10,65,40,95
|
|||
|
dw Bygel9 ;OffRoad . .
|
|||
|
|
|||
|
; dw 255,85,285,110 ;ing<6E>ng till P I T
|
|||
|
; dw Close2
|
|||
|
|
|||
|
dw 140,90,160,110 ;ing<6E>ng under jump
|
|||
|
dw Bygel17
|
|||
|
|
|||
|
;P I T
|
|||
|
dw 253,124,263,130
|
|||
|
dw Bygel7
|
|||
|
dw 228,132,238,138
|
|||
|
dw Bygel6
|
|||
|
dw 205,140,215,146
|
|||
|
dw Bygel5
|
|||
|
;Utg<74>ng Offroad
|
|||
|
dw 25,310,35,320
|
|||
|
dw Bygel8
|
|||
|
|
|||
|
;H<>ger och V<>nster R<>r
|
|||
|
dw 25,435,35,445
|
|||
|
dw Bygel3
|
|||
|
dw 263,435,273,445
|
|||
|
dw Bygel4
|
|||
|
;Sidelanes
|
|||
|
dw 5,455,15,465
|
|||
|
dw Bygel1
|
|||
|
dw 284,455,294,465
|
|||
|
dw Bygel2
|
|||
|
;Spring Invalid
|
|||
|
dw 300,480,320,500
|
|||
|
dw Open2
|
|||
|
|
|||
|
dw 305,512,320,576 ;Spring Valid
|
|||
|
dw Bygel28
|
|||
|
dw 0
|
|||
|
|
|||
|
AreaLista_U label word
|
|||
|
dw 145,13,180,35
|
|||
|
dw Bygel10 ;<3B>vre loop
|
|||
|
|
|||
|
dw 295,50,320,60 ;nedsl<73>pp
|
|||
|
dw nedslapp
|
|||
|
|
|||
|
dw 120,64,150,78
|
|||
|
dw Bygel12 ;Jump
|
|||
|
|
|||
|
dw 1,250,20,290
|
|||
|
dw Bygel11 ;nedre loop
|
|||
|
|
|||
|
dw 0
|
|||
|
|
|||
|
AREALISTA_L_T LABEL WORD
|
|||
|
AREALISTA_U_T LABEL WORD
|
|||
|
DW 0
|
|||
|
|
|||
|
level1lista label word
|
|||
|
dw 160,40,195,70
|
|||
|
; dw 295,50,320,70 ;nedsl<73>pp
|
|||
|
|
|||
|
|
|||
|
dw 70,140,100,180
|
|||
|
dw 295,200,320,250
|
|||
|
dw 230,210,280,250
|
|||
|
dw 100,270,130,360
|
|||
|
dw 60,320,100,350
|
|||
|
dw 260,450,277,470
|
|||
|
dw 0,450,50,470
|
|||
|
dw -1
|
|||
|
|
|||
|
level2lista label word
|
|||
|
dw 70,115,100,140
|
|||
|
dw 295,150,320,200
|
|||
|
dw 245,170,290,200
|
|||
|
dw 60,280,80,320
|
|||
|
dw -1
|
|||
|
|
|||
|
|
|||
|
|
|||
|
;******************************************************************************
|
|||
|
;************************ DEMO MODE LIGHT FLASHING ****************************
|
|||
|
;******************************************************************************
|
|||
|
|
|||
|
FLASHLIST LABEL WORD
|
|||
|
T1=5
|
|||
|
T2=T1*10
|
|||
|
DW 0,T1*0,T2,T2,42 ;BONUS
|
|||
|
DW 0,T1*1,T2,T2,43
|
|||
|
DW 0,T1*2,T2,T2,44
|
|||
|
DW 0,T1*3,T2,T2,45
|
|||
|
DW 0,T1*4,T2,T2,46
|
|||
|
DW 0,T1*5,T2,T2,47
|
|||
|
DW 0,T1*6,T2,T2,48
|
|||
|
DW 0,T1*7,T2,T2,49
|
|||
|
|
|||
|
T2=10 ;BURNIN'
|
|||
|
DW 0,0,T2,T2,16
|
|||
|
DW 0,0,T2,T2,18
|
|||
|
DW 0,T2,T2,T2,17
|
|||
|
DW 0,0,T2,T2,19
|
|||
|
DW 0,0,T2,T2,21
|
|||
|
DW 0,T2,T2,T2,20
|
|||
|
|
|||
|
T2=12 ;P I T
|
|||
|
DW 0,0,T2,T2,6
|
|||
|
DW 0,0,T2,T2,8
|
|||
|
DW 0,T2,T2,T2,7
|
|||
|
|
|||
|
T2=13 ;G E A R
|
|||
|
DW 0,0,T2,T2,22
|
|||
|
DW 0,T2,T2,T2,23
|
|||
|
DW 0,0,T2,T2,24
|
|||
|
DW 0,T2,T2,T2,25
|
|||
|
|
|||
|
T2=10 ;V<>XELL<4C>DAN
|
|||
|
DW 0,0,T2,T2,26
|
|||
|
DW 0,T2,T2,T2,27
|
|||
|
DW 0,0,T2,T2,28
|
|||
|
DW 0,T2,T2,T2,29
|
|||
|
DW 0,0,T2,T2,30
|
|||
|
DW 0,T2,T2,T2,31
|
|||
|
|
|||
|
T2=15 ;T<>NDSTIFT
|
|||
|
DW 0,0,T2,T2,55
|
|||
|
|
|||
|
DW -1
|
|||
|
|
|||
|
;******************************************************************************
|
|||
|
;**************************** LIGHT PALETTE DATA ******************************
|
|||
|
;******************************************************************************
|
|||
|
|
|||
|
NOOFLIGHTS=67
|
|||
|
|
|||
|
LON1 DB 253 ;XBALL
|
|||
|
DB 3
|
|||
|
DB 77,0,0
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
|
|||
|
LON2 DB 250 ;HOLDBONUS
|
|||
|
DB 3
|
|||
|
DB 77,0,0
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
|
|||
|
LON3 DB 247 ;SUPER
|
|||
|
DB 3
|
|||
|
DB 77,0,0
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
|
|||
|
LON4 DB 244 ;MB
|
|||
|
DB 3
|
|||
|
DB 58,0,0
|
|||
|
DB 77,0,0
|
|||
|
DB 95,0,0
|
|||
|
|
|||
|
LON14 DB 242 ;GET PART 3
|
|||
|
DB 2
|
|||
|
DB 95,77,0
|
|||
|
DB 95,95,52
|
|||
|
|
|||
|
LON6 DB 240 ;P
|
|||
|
DB 2
|
|||
|
DB 58,58,58
|
|||
|
DB 95,95,95
|
|||
|
LON7 DB 238 ;I
|
|||
|
DB 2
|
|||
|
DB 58,58,58
|
|||
|
DB 95,95,95
|
|||
|
LON8 DB 236 ;T
|
|||
|
DB 2
|
|||
|
DB 58,58,58
|
|||
|
DB 95,95,95
|
|||
|
LON9 DB 234 ;GOAL
|
|||
|
DB 2
|
|||
|
DB 95,95,95
|
|||
|
DB 58,58,58
|
|||
|
|
|||
|
LON10 DB 232 ;GET PART 5
|
|||
|
DB 2
|
|||
|
DB 95,77,0
|
|||
|
DB 95,95,52
|
|||
|
LON11 DB 230 ;GET PART 1
|
|||
|
DB 2
|
|||
|
DB 95,77,0
|
|||
|
DB 95,95,52
|
|||
|
LON12 DB 228 ;GET PART 4
|
|||
|
DB 2
|
|||
|
DB 95,77,0
|
|||
|
DB 95,95,52
|
|||
|
LON13 DB 226 ;GET PART 2
|
|||
|
DB 2
|
|||
|
DB 95,77,0
|
|||
|
DB 95,95,52
|
|||
|
|
|||
|
LON5 DB 224 ;JUMP
|
|||
|
DB 2
|
|||
|
DB 70,70,70
|
|||
|
DB 95,95,95
|
|||
|
|
|||
|
LON15 DB 221 ;JP
|
|||
|
DB 3
|
|||
|
DB 77,0,0
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
LON16 DB 219 ;B
|
|||
|
DB 2
|
|||
|
DB 70,70,70
|
|||
|
DB 95,95,95
|
|||
|
LON17 DB 217 ;U
|
|||
|
DB 2
|
|||
|
DB 70,70,70
|
|||
|
DB 95,95,95
|
|||
|
LON18 DB 215 ;R
|
|||
|
DB 2
|
|||
|
DB 70,70,70
|
|||
|
DB 95,95,95
|
|||
|
LON19 DB 213 ;N
|
|||
|
DB 2
|
|||
|
DB 27,64,39
|
|||
|
DB 14,83,72
|
|||
|
LON20 DB 211 ;I
|
|||
|
DB 2
|
|||
|
DB 27,64,39
|
|||
|
DB 14,83,72
|
|||
|
LON21 DB 209 ;N'
|
|||
|
DB 2
|
|||
|
DB 27,64,39
|
|||
|
DB 14,83,72
|
|||
|
LON22 DB 207 ;G
|
|||
|
DB 2
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
LON23 DB 205 ;E
|
|||
|
DB 2
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
LON24 DB 203 ;A
|
|||
|
DB 2
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
LON25 DB 201 ;R
|
|||
|
DB 2
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
LON26 DB 199 ;V<>XEL 1
|
|||
|
DB 2
|
|||
|
DB 95,89,0
|
|||
|
DB 95,95,52
|
|||
|
LON27 DB 197 ;V<>XEL 2
|
|||
|
DB 2
|
|||
|
DB 95,89,0
|
|||
|
DB 95,95,52
|
|||
|
LON28 DB 195 ;V<>XEL 3
|
|||
|
DB 2
|
|||
|
DB 95,89,0
|
|||
|
DB 95,95,52
|
|||
|
LON29 DB 193 ;V<>XEL 4
|
|||
|
DB 2
|
|||
|
DB 95,89,0
|
|||
|
DB 95,95,52
|
|||
|
LON30 DB 191 ;V<>XEL 5
|
|||
|
DB 2
|
|||
|
DB 95,89,0
|
|||
|
DB 95,95,52
|
|||
|
LON31 DB 189 ;V<>XEL 6
|
|||
|
DB 2
|
|||
|
DB 95,89,0
|
|||
|
DB 95,95,52
|
|||
|
|
|||
|
LON41 DB 188 ;POS 1
|
|||
|
DB 1
|
|||
|
DB 95,95,52
|
|||
|
LON40 DB 187 ;POS 2
|
|||
|
DB 1
|
|||
|
DB 95,95,52
|
|||
|
|
|||
|
LON39 DB 186 ;POS 3
|
|||
|
DB 1
|
|||
|
DB 95,89,0
|
|||
|
LON38 DB 185 ;POS 4
|
|||
|
DB 1
|
|||
|
DB 95,89,0
|
|||
|
|
|||
|
LON37 DB 184 ;POS 5
|
|||
|
DB 1
|
|||
|
DB 95,77,0
|
|||
|
LON36 DB 183 ;POS 6
|
|||
|
DB 1
|
|||
|
DB 95,77,0
|
|||
|
|
|||
|
LON35 DB 182 ;POS 7
|
|||
|
DB 1
|
|||
|
DB 58,58,83
|
|||
|
LON34 DB 181 ;POS 8
|
|||
|
DB 1
|
|||
|
DB 58,58,83
|
|||
|
|
|||
|
LON33 DB 180 ;POS 9
|
|||
|
DB 1
|
|||
|
DB 70,39,64
|
|||
|
LON32 DB 179 ;POS 10
|
|||
|
DB 1
|
|||
|
DB 70,39,64
|
|||
|
LON42 DB 177 ;BONUS X2
|
|||
|
DB 2
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
LON43 DB 175 ;BONUS X3
|
|||
|
DB 2
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
LON44 DB 173 ;BONUS X4
|
|||
|
DB 2
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
LON45 DB 171 ;BONUS X5
|
|||
|
DB 2
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
LON46 DB 169 ;BONUS X6
|
|||
|
DB 2
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
LON47 DB 167 ;BONUS X7
|
|||
|
DB 2
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
LON48 DB 165 ;BONUS X8
|
|||
|
DB 2
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
LON49 DB 163 ;BONUS X9
|
|||
|
DB 2
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
LON53 DB 162 ;MOTOR
|
|||
|
DB 1
|
|||
|
DB 95,0,0
|
|||
|
LON50 DB 160 ;KJOLAR
|
|||
|
DB 2
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
LON51 DB 158 ;FJ<46>DRING
|
|||
|
DB 2
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
LON54 DB 156 ;RATT
|
|||
|
DB 2
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
LON52 DB 154 ;SPOJLER VINGE
|
|||
|
DB 2
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
|
|||
|
LON55 DB 153 ;T<>NDSTIFT
|
|||
|
DB 1
|
|||
|
DB 95,0,0
|
|||
|
|
|||
|
LON56 DB 152-1 ;speedometer
|
|||
|
DB 2
|
|||
|
DB 58,58,58
|
|||
|
DB 95,95,95
|
|||
|
LON57 DB 150-1 ;speedometer
|
|||
|
DB 2
|
|||
|
DB 58,58,58
|
|||
|
DB 95,95,95
|
|||
|
LON58 DB 148-1 ;speedometer
|
|||
|
DB 2
|
|||
|
DB 58,58,58
|
|||
|
DB 95,95,95
|
|||
|
LON59 DB 146-1 ;speedometer
|
|||
|
DB 2
|
|||
|
DB 58,58,58
|
|||
|
DB 95,95,95
|
|||
|
LON60 DB 144-1 ;speedometer
|
|||
|
DB 2
|
|||
|
DB 58,58,58
|
|||
|
DB 95,95,95
|
|||
|
LON61 DB 142-1 ;speedometer
|
|||
|
DB 2
|
|||
|
DB 58,58,58
|
|||
|
DB 95,95,95
|
|||
|
|
|||
|
LON62 DB 140-1 ;speedometer
|
|||
|
DB 2
|
|||
|
DB 95,77,0
|
|||
|
DB 95,95,52
|
|||
|
|
|||
|
LON63 DB 138-1 ;speedometer
|
|||
|
DB 2
|
|||
|
DB 95,77,0
|
|||
|
DB 95,95,52
|
|||
|
|
|||
|
|
|||
|
LON64 DB 136-1 ;speedometer
|
|||
|
DB 2
|
|||
|
DB 83,58,0
|
|||
|
DB 95,77,0
|
|||
|
|
|||
|
LON65 DB 134-1 ;speedometer
|
|||
|
DB 2
|
|||
|
DB 83,58,0
|
|||
|
DB 95,77,0
|
|||
|
|
|||
|
|
|||
|
LON66 DB 132-1 ;speedometer
|
|||
|
DB 2
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
|
|||
|
LON67 DB 130-1 ;speedometer
|
|||
|
DB 2
|
|||
|
DB 58,0,0
|
|||
|
DB 95,0,0
|
|||
|
|
|||
|
MATRIXON DB matrixlo ;(MATRIXCOL LOW BYTE)
|
|||
|
DB 1
|
|||
|
DB 95,70,27
|
|||
|
|
|||
|
LONEND DB 0
|
|||
|
|
|||
|
LONINDEX LABEL WORD
|
|||
|
DW OFFSET LON1
|
|||
|
DW OFFSET LON2
|
|||
|
DW OFFSET LON3
|
|||
|
DW OFFSET LON4
|
|||
|
DW OFFSET LON5
|
|||
|
DW OFFSET LON6
|
|||
|
DW OFFSET LON7
|
|||
|
DW OFFSET LON8
|
|||
|
DW OFFSET LON9
|
|||
|
DW OFFSET LON10
|
|||
|
DW OFFSET LON11
|
|||
|
DW OFFSET LON12
|
|||
|
DW OFFSET LON13
|
|||
|
DW OFFSET LON14
|
|||
|
DW OFFSET LON15
|
|||
|
DW OFFSET LON16
|
|||
|
DW OFFSET LON17
|
|||
|
DW OFFSET LON18
|
|||
|
DW OFFSET LON19
|
|||
|
DW OFFSET LON20
|
|||
|
DW OFFSET LON21
|
|||
|
DW OFFSET LON22
|
|||
|
DW OFFSET LON23
|
|||
|
DW OFFSET LON24
|
|||
|
DW OFFSET LON25
|
|||
|
DW OFFSET LON26
|
|||
|
DW OFFSET LON27
|
|||
|
DW OFFSET LON28
|
|||
|
DW OFFSET LON29
|
|||
|
DW OFFSET LON30
|
|||
|
DW OFFSET LON31
|
|||
|
DW OFFSET LON32
|
|||
|
DW OFFSET LON33
|
|||
|
DW OFFSET LON34
|
|||
|
DW OFFSET LON35
|
|||
|
DW OFFSET LON36
|
|||
|
DW OFFSET LON37
|
|||
|
DW OFFSET LON38
|
|||
|
DW OFFSET LON39
|
|||
|
DW OFFSET LON40
|
|||
|
DW OFFSET LON41
|
|||
|
DW OFFSET LON42
|
|||
|
DW OFFSET LON43
|
|||
|
DW OFFSET LON44
|
|||
|
DW OFFSET LON45
|
|||
|
DW OFFSET LON46
|
|||
|
DW OFFSET LON47
|
|||
|
DW OFFSET LON48
|
|||
|
DW OFFSET LON49
|
|||
|
DW OFFSET LON50
|
|||
|
DW OFFSET LON51
|
|||
|
DW OFFSET LON52
|
|||
|
DW OFFSET LON53
|
|||
|
DW OFFSET LON54
|
|||
|
DW OFFSET LON55
|
|||
|
DW OFFSET LON56
|
|||
|
DW OFFSET LON57
|
|||
|
DW OFFSET LON58
|
|||
|
DW OFFSET LON59
|
|||
|
DW OFFSET LON60
|
|||
|
DW OFFSET LON61
|
|||
|
DW OFFSET LON62
|
|||
|
DW OFFSET LON63
|
|||
|
DW OFFSET LON64
|
|||
|
DW OFFSET LON65
|
|||
|
DW OFFSET LON66
|
|||
|
DW OFFSET LON67
|
|||
|
|
|||
|
MATRIXOFF DB matrixlo
|
|||
|
DB 3
|
|||
|
DB 3 DUP(33*64/100)
|
|||
|
|
|||
|
;******************************************************************************
|
|||
|
;************************* GATES & BYGLARS DATA AREOR *************************
|
|||
|
;******************************************************************************
|
|||
|
;*****************
|
|||
|
SNACKX=263-7 ;? ;CP! CP-METOD ATT H<>LLA FAST BOLLEN!
|
|||
|
SNACKY=48-7 ;?
|
|||
|
SNACKXS=-420*6*TT/NN ;?
|
|||
|
SNACKYS=160*6*TT/NN ;?
|
|||
|
;*****************
|
|||
|
b_flashin db ?
|
|||
|
u_flashin db ?
|
|||
|
r_flashin db ?
|
|||
|
n_flashin db ?
|
|||
|
i_flashin db ?
|
|||
|
nn_flashin db ?
|
|||
|
|
|||
|
flash7down dw ?
|
|||
|
flash6down dw ?
|
|||
|
flash5down dw ?
|
|||
|
flash_pit_down dw ?
|
|||
|
jackdown dw ?
|
|||
|
mb_pa_lager db ?
|
|||
|
mb_gjorda db ?
|
|||
|
pos_light dw ?
|
|||
|
pos_flash dw ?
|
|||
|
loop_h dw ?
|
|||
|
loop_l dw ?
|
|||
|
loop_h_ dw ?
|
|||
|
loop_l_ dw ?
|
|||
|
jump_ dw ?
|
|||
|
gearet dw ?
|
|||
|
gear_down dw ?
|
|||
|
speeden dw ?
|
|||
|
PartList dw part1,11
|
|||
|
dw part2,13
|
|||
|
dw part3,14 ;cp!! 5??
|
|||
|
dw part4,12
|
|||
|
dw part5,10
|
|||
|
CarParten dw ?
|
|||
|
NextOffRoad dw 40 ;?
|
|||
|
NextJump dw 30 ;?
|
|||
|
MilesCount equ cyclonecounter ;dw ?
|
|||
|
OffRoadMode db ?
|
|||
|
TurboMode db ?
|
|||
|
SnackDisabled db ?
|
|||
|
HOLDBONUSFLAG DB ?
|
|||
|
holdbonuscount db ?
|
|||
|
NISSAN DB 0
|
|||
|
PARTYFLASH DB FALSE
|
|||
|
MUSICOK DB ?
|
|||
|
|
|||
|
;******************************************************************************
|
|||
|
;****************************** DOT MATRIX ************************************
|
|||
|
;******************************************************************************
|
|||
|
clearit macro
|
|||
|
assume ds:data2
|
|||
|
dw _CLEAR1
|
|||
|
assume ds:data
|
|||
|
endm
|
|||
|
|
|||
|
;*********************************************************
|
|||
|
;******* OBS!!! KOM IH<49>G ATT ASSUMERA ANIMATIONER TILL DATA2 OCH
|
|||
|
;******* SCROLLAR TILL DATA !!!!!
|
|||
|
ASSUME DS:DATA2
|
|||
|
|
|||
|
BEATENSCROLL DB 21 DUP (1),'YOU HAVE BEATEN THE HIGHSCORE',21 DUP(1),255
|
|||
|
EXTRABALLTEXT DB 'EXTRA BALL',0
|
|||
|
|
|||
|
Beaten_bh_TS LABEL WORD ;I BALL LOST SEKVENSEN
|
|||
|
DW _WAIT,1
|
|||
|
DW _DOBEATEN,?
|
|||
|
DW _WAIT,1
|
|||
|
CLEARIT
|
|||
|
DW _JINGLE,S_BEATEN
|
|||
|
DW _LASTJINGLE,EMPTYJINGLE
|
|||
|
DW _SCROLL,BEATENSCROLL
|
|||
|
DW _FLASHON,10
|
|||
|
DW _PRINT13,EXTRABALLTEXT,SW*4/4+TOTCENT+4
|
|||
|
DW _SETDECCOR,90
|
|||
|
DW _WAITJINGLE2,?
|
|||
|
CLEARIT
|
|||
|
DW _FLASHOFF,?
|
|||
|
DW _JMP,No_Bonus2TS
|
|||
|
|
|||
|
BeatenTS LABEL WORD ;I SPELET
|
|||
|
DW _WAIT,1
|
|||
|
DW _DOBEATEN,?
|
|||
|
DW _WAIT,1
|
|||
|
CLEARIT
|
|||
|
DW _JINGLE,S_BEATEN
|
|||
|
DW _LASTJINGLE,3
|
|||
|
DW _SCROLL,BEATENSCROLL
|
|||
|
DW _FLASHON,10
|
|||
|
DW _PRINT13,EXTRABALLTEXT,SW*4/4+TOTCENT+4
|
|||
|
DW _WAIT,10*2*10
|
|||
|
CLEARIT
|
|||
|
DW _FLASHOFF,?
|
|||
|
DW 0
|
|||
|
|
|||
|
|
|||
|
BCD50000000 DB 0,0,0, 0,5,0, 0,0,0, 0,0,0
|
|||
|
supertext db 'SUPER',0
|
|||
|
|
|||
|
SuperJackTS LABEL WORD
|
|||
|
CLEARIT
|
|||
|
DW _FLASHON,1
|
|||
|
DW _PRINT13,SUPERTEXT,SW*4/4+7*4
|
|||
|
DW _WAIT,100
|
|||
|
DW _FLASHOFF,?
|
|||
|
CLEARIT
|
|||
|
ASSUME DS:DATA2
|
|||
|
DW _ANIMATION,_JACKPOT
|
|||
|
CLEARIT
|
|||
|
DW _FLASHON,1
|
|||
|
DW _PRINT13_NUMBER_CENT,BCD50000000,2*2*SW/4+TOTCENT
|
|||
|
DW _WAIT,100
|
|||
|
CLEARIT
|
|||
|
DW _FLASHOFF,?
|
|||
|
dw _return_of_the_evil_supermode,?
|
|||
|
dw 0
|
|||
|
|
|||
|
SuperJack2TS LABEL WORD
|
|||
|
CLEARIT
|
|||
|
DW _FLASHON,1
|
|||
|
DW _PRINT13,SUPERTEXT,SW*4/4+7*4
|
|||
|
DW _WAIT,100
|
|||
|
DW _FLASHOFF,?
|
|||
|
CLEARIT
|
|||
|
ASSUME DS:DATA2
|
|||
|
DW _ANIMATION,_JACKPOT
|
|||
|
CLEARIT
|
|||
|
DW _FLASHON,1
|
|||
|
DW _PRINT13_NUMBER_CENT,BCD50000000,2*2*SW/4+TOTCENT
|
|||
|
DW _WAIT,100
|
|||
|
CLEARIT
|
|||
|
DW _FLASHOFF,?
|
|||
|
dw _turnonturbo
|
|||
|
dw 0
|
|||
|
|
|||
|
JackPotTS label word
|
|||
|
dw _CLEAR4
|
|||
|
dw _animation,_jackpot
|
|||
|
dw _CLEAR4
|
|||
|
dw _return_of_the_evil_supermode,?
|
|||
|
dw 0
|
|||
|
|
|||
|
OverTakeTS label word
|
|||
|
dw _CLEAR4
|
|||
|
dw _animation,_overtake
|
|||
|
dw _CLEAR4
|
|||
|
dw 0
|
|||
|
|
|||
|
millionTS label word
|
|||
|
dw _CLEAR4
|
|||
|
dw _animation,_million
|
|||
|
dw _CLEAR4
|
|||
|
dw 0
|
|||
|
|
|||
|
xballTS label word
|
|||
|
dw _CLEAR4
|
|||
|
dw _animation,_xballa
|
|||
|
DW _WAIT,30 ;CPW!
|
|||
|
dw _CLEAR3
|
|||
|
dw 0
|
|||
|
GEARTS label word
|
|||
|
dw _CLEAR4
|
|||
|
dw _animation,_gear
|
|||
|
dw _CLEAR4
|
|||
|
dw 0
|
|||
|
|
|||
|
|
|||
|
m2TS label word
|
|||
|
dw _CLEAR4
|
|||
|
dw _animation,_multi
|
|||
|
dw _animation,_m2
|
|||
|
dw _CLEAR4
|
|||
|
dw 0
|
|||
|
m3TS label word
|
|||
|
dw _CLEAR4
|
|||
|
dw _animation,_multi
|
|||
|
dw _animation,_m3
|
|||
|
dw _CLEAR4
|
|||
|
dw 0
|
|||
|
m4TS label word
|
|||
|
dw _CLEAR4
|
|||
|
dw _animation,_multi
|
|||
|
dw _animation,_m4
|
|||
|
dw _CLEAR4
|
|||
|
dw 0
|
|||
|
m5tS label word
|
|||
|
dw _CLEAR4
|
|||
|
dw _animation,_multi
|
|||
|
dw _animation,_m5
|
|||
|
dw _CLEAR4
|
|||
|
dw 0
|
|||
|
m6TS label word
|
|||
|
dw _CLEAR4
|
|||
|
dw _animation,_multi
|
|||
|
dw _animation,_m6
|
|||
|
dw _CLEAR4
|
|||
|
dw 0
|
|||
|
m7TS label word
|
|||
|
dw _CLEAR4
|
|||
|
dw _animation,_multi
|
|||
|
dw _animation,_m7
|
|||
|
dw _CLEAR4
|
|||
|
dw 0
|
|||
|
m8TS label word
|
|||
|
dw _CLEAR4
|
|||
|
dw _animation,_multi
|
|||
|
dw _animation,_m8
|
|||
|
dw _CLEAR4
|
|||
|
dw 0
|
|||
|
m9TS label word
|
|||
|
dw _CLEAR4
|
|||
|
dw _animation,_multi
|
|||
|
dw _animation,_m9
|
|||
|
dw _CLEAR4
|
|||
|
dw 0
|
|||
|
|
|||
|
|
|||
|
;*****************************************
|
|||
|
party_onTS LABEL BYTE ;Turn on party on . . .
|
|||
|
CLEARIT
|
|||
|
DW _FLASHON,PARTY_ON_SPEED
|
|||
|
DW _PARTYONN,1
|
|||
|
DW _PRINT13,PARTY_ON_TEXT,SW*4/4 ;+16*3/4 ;CP!
|
|||
|
DW _PARTYON,1
|
|||
|
DW 0
|
|||
|
|
|||
|
party_offTS LABEL WORD ;Turn it off
|
|||
|
CLEARIT
|
|||
|
DW _PARTYOFF,1
|
|||
|
DW _FLASHOFF,1
|
|||
|
DW 0
|
|||
|
|
|||
|
;*****************************************
|
|||
|
ASSUME DS:DATA2
|
|||
|
clearTS dw _CLEAR4
|
|||
|
dw 0
|
|||
|
|
|||
|
tomTS dw _CLEAR4
|
|||
|
dw _wait,32767
|
|||
|
dw 0
|
|||
|
|
|||
|
assume ds:data
|
|||
|
|
|||
|
OffRoadTS LABEL WORD
|
|||
|
clearIT
|
|||
|
dw _scroll,go_for_some_text
|
|||
|
clearIT
|
|||
|
DW _PRINT13,ZEROQ,SW*(2+2)/4+16*13/4
|
|||
|
dw _countdown,2,5,OR_total ;(the final?)
|
|||
|
clearIT
|
|||
|
OffRoad_endingTS Label Word
|
|||
|
DW _JBCDZ,OR_TOTAL,no_orTS
|
|||
|
dw _rullgardin_upp,or_total_text,1
|
|||
|
|
|||
|
dw _wait,60 ;CPW!
|
|||
|
|
|||
|
clearIT
|
|||
|
DW _FLASHON,1
|
|||
|
DW _PRINT13_NUMBER,OR_total,SW*4/4+16*2/4 ;CP! RUTCENT
|
|||
|
dw _wait,80 ;CPW!
|
|||
|
DW _FLASHOFF,1
|
|||
|
clearIT
|
|||
|
dw _TurnOffSpecialMode,?
|
|||
|
dw 0
|
|||
|
no_orTS DW _PRINT13,NO_or_TEXT,SW*4/4
|
|||
|
dw _wait,80 ;CPW!
|
|||
|
CLEARIT
|
|||
|
dw _TurnOffSpecialMode,?
|
|||
|
DW 0
|
|||
|
go_for_some_text db 21 dup (' '),'GO FOR SOME OFFROAD',21 dup (' '),255
|
|||
|
OR_total_Text db ' OFFROAD TOTAL ',0
|
|||
|
ASSUME DS:DATA
|
|||
|
no_or_text db ' NO BONUS',0
|
|||
|
or_total db ?,?,?,?,?,?,?,?,?,?,?,?
|
|||
|
|
|||
|
;**********************************************************
|
|||
|
BACK_2_TURBOTS LABEL WORD
|
|||
|
CLEARIT
|
|||
|
DW _COUNTDOWNCONTINUE,?,?,TM_TOTAL
|
|||
|
DW _JMP,AFTER_TMCDTS
|
|||
|
DW 0
|
|||
|
|
|||
|
TurboTS LABEL WORD
|
|||
|
clearIT
|
|||
|
dw _rullgardin_upp,go_for_NISSE_text,1
|
|||
|
dw _wait,40
|
|||
|
ClearIT
|
|||
|
DW _PRINT13,ZEROQ,SW*(2+2)/4+16*13/4
|
|||
|
dw _countdown,2,5,tm_total ;(the final?)
|
|||
|
AFTER_TMCDTS LABEL WORD
|
|||
|
clearIT
|
|||
|
TurboMode_endingTS Label Word
|
|||
|
DW _JBCDZ,TM_TOTAL,no_tmTS
|
|||
|
dw _rullgardin_upp,tm_total_text,1
|
|||
|
|
|||
|
dw _wait,60 ;CPW!
|
|||
|
|
|||
|
clearIT
|
|||
|
DW _FLASHON,1
|
|||
|
DW _PRINT13_NUMBER,tm_total,SW*4/4+16*2/4 ;CP! RUTCENT
|
|||
|
dw _wait,80 ;CPW!
|
|||
|
DW _FLASHOFF,1
|
|||
|
clearIT
|
|||
|
dw _TurnOffSpecialMode,?
|
|||
|
dw 0
|
|||
|
no_tmTS DW _PRINT13,NO_tm_TEXT,SW*4/4
|
|||
|
dw _wait,80 ;CPW!
|
|||
|
CLEARIT
|
|||
|
dw _TurnOffSpecialMode,?
|
|||
|
DW 0
|
|||
|
|
|||
|
go_for_nisse_text db ' TURBO MODE ',0
|
|||
|
tm_total_Text db ' TURBO MODE TOTAL ',0
|
|||
|
no_tm_text db ' NO BONUS',0
|
|||
|
tm_total db ?,?,?,?,?,?,?,?,?,?,?,?
|
|||
|
|
|||
|
;*********************** NYA BALL LOST *******************
|
|||
|
|
|||
|
ASSUME DS:DATA
|
|||
|
show_cyclones_text db ' MILES X ',0
|
|||
|
show_or_text db ' OFFROAD TOTAL',0
|
|||
|
show_mega_text db ' TURBOMODE TOTAL',0
|
|||
|
|
|||
|
|
|||
|
|
|||
|
ball_lostTS LABEL WORD
|
|||
|
CLEARIT
|
|||
|
|
|||
|
DW _PRINT13,GETTING_SICK_TEXT,SW*2/4*2
|
|||
|
DW _JINGLE,S_LOSTBALL
|
|||
|
DW _LASTJINGLE,55
|
|||
|
DW _SETDECCOR,70
|
|||
|
DW _WAITJINGLE2,?
|
|||
|
DW _JINGLE,S_Empty
|
|||
|
CLEARIT
|
|||
|
|
|||
|
DW _JBCDZ,BONUSSIFFRORNA,no_bonusTS
|
|||
|
DW _PRINT5,show_bonus_TEXT,SW*1*2/4+16*7/4
|
|||
|
DW _PRINT8_NUMBER_CENT,BONUSSIFFRORNA,7*2*SW/4+TOTCENT
|
|||
|
DW _WAIT,60 ;CPW!
|
|||
|
dw _Sound_Effect,s_MultiLjud,0
|
|||
|
|
|||
|
DW _JBONUSX1,NoBonusXTS
|
|||
|
CLEARIT ;CP! CLEARIT <20>R ON<4F>DIGT BRUTAL!
|
|||
|
DW _BONUS_X_CALCS,?
|
|||
|
DW _PRINT5,BONUS_X_TEXT,SW*1*2/4+16*7/4-4*2
|
|||
|
DW _PRINT8_NUMBER_CENT,BONUSSIFFRORNA,7*2*SW/4+TOTCENT
|
|||
|
DW _WAIT,60 ;CPW!
|
|||
|
dw _Sound_Effect,s_MultiLjud,0
|
|||
|
NoBonusXTS LABEL WORD
|
|||
|
|
|||
|
no_bonusTS LABEL WORD
|
|||
|
DW _JBCDZ,CYCLONECOUNTERBCD,no_cyclonesTS
|
|||
|
CLEARIT
|
|||
|
DW _CALC_CYCLO ;CYCLONESCOREBCD & SIFFRORNA UPPDATERAS!
|
|||
|
DW _PRINT5_NUMBER,CYCLONECOUNTERBCD,SW*1*2/4-16*9/4
|
|||
|
DW _PRINT5_number,HUNDRATUSEN,SW*1*2/4+13*8/4
|
|||
|
DW _PRINT5,show_CYCLONES_TEXT,SW*1*2/4-16*1/4
|
|||
|
DW _PRINT8_NUMBER_CENT,CYCLONESCOREBCD,SW*2*7/4+TOTCENT
|
|||
|
DW _WAIT,120 ;CPW!
|
|||
|
dw _Sound_Effect,s_MultiLjud,0
|
|||
|
CLEARIT
|
|||
|
no_cyclonesTS LABEL WORD
|
|||
|
DW _JBCDZ,OR_TOTAL,no_happy_stewartTS
|
|||
|
CLEARIT
|
|||
|
DW _CALC_HAPPY ;CYCLONESCOREBCD & SIFFRORNA UPPDATERAS!
|
|||
|
DW _PRINT5,show_or_TEXT,SW*1*2/4+16/4/2
|
|||
|
DW _PRINT8_NUMBER_CENT,or_TOTAL,SW*2*7/4+TOTCENT
|
|||
|
DW _WAIT,120 ;CPW!
|
|||
|
dw _Sound_Effect,s_MultiLjud,0
|
|||
|
CLEARIT
|
|||
|
|
|||
|
no_happy_stewartTS LABEL WORD
|
|||
|
DW _JBCDZ,tm_TOTAL,no_MEGA_LAUGHTS
|
|||
|
CLEARIT
|
|||
|
DW _CALC_MEGA ;CYCLONESCOREBCD & SIFFRORNA UPPDATERAS!
|
|||
|
DW _PRINT5,show_MEGA_TEXT,SW*1*2/4+16/4/2
|
|||
|
DW _PRINT8_NUMBER_CENT,tm_TOTAL,SW*2*7/4+TOTCENT
|
|||
|
DW _WAIT,120 ;CPW!
|
|||
|
dw _Sound_Effect,s_MultiLjud,0
|
|||
|
CLEARIT
|
|||
|
|
|||
|
no_MEGA_LAUGHTS LABEL WORD
|
|||
|
DW _JBCDZ,BONUSSIFFRORNA,no_bonus2TS
|
|||
|
DW _PRINT5,show_totalbonus_TEXT,SW*1*2/4+16*4/4
|
|||
|
|
|||
|
DW _PRINT8_NUMBER_CENT,BONUSSIFFRORNA,7*2*SW/4+TOTCENT
|
|||
|
|
|||
|
DW _WAIT,60 ;CPW!
|
|||
|
CLEARIT
|
|||
|
DW _PRINT8_NUMBER,BONUSSIFFRORNA,7*2*SW/4-16*4/4
|
|||
|
DW _FLORPA
|
|||
|
DW _WAIT,25 ;CPW!
|
|||
|
dw _beaten_matrix
|
|||
|
no_bonus2TS LABEL WORD
|
|||
|
DW _KOLLA_XXBALL
|
|||
|
dw _waitifmulti,2*60 ;cpgnu? (visa poeng lite lengre)
|
|||
|
DW _MATRIXLGT,0
|
|||
|
clearit
|
|||
|
|
|||
|
DW _CHANGE_PLAYER
|
|||
|
CLEARIT
|
|||
|
dw _wait,32000
|
|||
|
DW 0
|
|||
|
SORRYNOBONUSTEXT DB ' SORRY ',94,' NO BONUS ',0
|
|||
|
|
|||
|
shoot_again_onTS LABEL BYTE ;Turn on shoot again . . .
|
|||
|
CLEARIT
|
|||
|
DW _FLASHON,SHOOT_AGAIN_SPEED
|
|||
|
DW _SHOOT_AGAIN_ONN,1
|
|||
|
DW _PRINT13,SHOOT_AGAIN_TEXT,SW*4/4 ;+16*3/4 ;CP!
|
|||
|
DW _NEW_BALL2
|
|||
|
DW _PARTYON,1 ;CP?
|
|||
|
DW 0
|
|||
|
|
|||
|
|
|||
|
out_of_ballsTS LABEL WORD ;<3B>r Stewarts fortfarande borta kanske?
|
|||
|
CLEARIT
|
|||
|
dw _matrixlgt,1
|
|||
|
dw _knacket,?
|
|||
|
DW _SETDECCOR,75
|
|||
|
DW _WAITJINGLE2,?
|
|||
|
|
|||
|
check_xxballTS LABEL WORD
|
|||
|
DW _check_xxballs ;utf<74>r ev xxballs, hoppar sedan till after_xxballs!
|
|||
|
|
|||
|
after_xxballTS LABEL WORD
|
|||
|
|
|||
|
clearit
|
|||
|
dw _check_high,?
|
|||
|
DW _MATRIXLGT,0
|
|||
|
DW _2_DEMO_MODE
|
|||
|
dw _wait,20000
|
|||
|
|
|||
|
AfterDemoModeTS Label Word
|
|||
|
DW _MATRIXLGT,0
|
|||
|
dw _wait,20
|
|||
|
dw _setloop,2,?
|
|||
|
DW _INIT_SCORE,?
|
|||
|
DW _JMP,UrbanOverTS
|
|||
|
|
|||
|
Once_MoreTS LABEL WORD
|
|||
|
DW _INIT_SCORE,?
|
|||
|
|
|||
|
GameOverTS LABEL WORD
|
|||
|
SHOWTIME=80
|
|||
|
DW _WAIT,SHOWTIME
|
|||
|
|
|||
|
UrbanOverTS LABEL WORD
|
|||
|
CLEARIT
|
|||
|
DW _FLASHON,1
|
|||
|
DW _PRINT13,GAME_OVER_TEXT,SW*2*2/4
|
|||
|
DW _WAIT,30
|
|||
|
DW _FLASHOFF,?
|
|||
|
CLEARIT
|
|||
|
DW _SHOW_SCORE,OFFSET GAMEOVERTS
|
|||
|
dw _loop_,2,offset once_morets
|
|||
|
DW _WAIT,SHOWTIME
|
|||
|
CLEARIT
|
|||
|
DW _WAIT,20
|
|||
|
DW _JMP,ShowHighsTS
|
|||
|
DW 0
|
|||
|
GAME_OVER_TEXT DB ' GAME OVER',0
|
|||
|
;TUBORG!
|
|||
|
|
|||
|
;********************** SLUT P<> BALL LOST *******************
|
|||
|
ASSUME DS:DATA
|
|||
|
|
|||
|
showithi macro
|
|||
|
DW _PRINT13,ALLTIME_TEXT,SW*2/4*2+16/4/2
|
|||
|
dw _wait,60
|
|||
|
|
|||
|
DW _CLEAR2
|
|||
|
DW _FLASHOFF,1
|
|||
|
DW _MATRIXLGT,0
|
|||
|
DW _PRINT13,hi_1,SW*2/4*2
|
|||
|
DW _PRINT13_NUMBER,(offset hi_score_list+(12+3+1)*0),4*SW/4+8*16/4
|
|||
|
DW _PRINT13,(offset hi_score_list+(12+3+1)*0+12),SW*2/4*2+2*16/4
|
|||
|
DW _FLASHON,1
|
|||
|
dw _wait,140
|
|||
|
DW _CLEAR3
|
|||
|
|
|||
|
DW _FLASHOFF,1
|
|||
|
DW _MATRIXLGT,0
|
|||
|
DW _PRINT13,hi_2,SW*2/4*2
|
|||
|
DW _PRINT13_NUMBER,(offset hi_score_list+(12+3+1)*1),4*SW/4+8*16/4
|
|||
|
DW _PRINT13,(offset hi_score_list+(12+3+1)*1+12),SW*2/4*2+2*16/4
|
|||
|
DW _FLASHON,1
|
|||
|
dw _wait,140
|
|||
|
DW _CLEAR2
|
|||
|
|
|||
|
DW _FLASHOFF,1
|
|||
|
DW _MATRIXLGT,0
|
|||
|
DW _PRINT13,hi_3,SW*2/4*2
|
|||
|
DW _PRINT13_NUMBER,(offset hi_score_list+(12+3+1)*2),4*SW/4+8*16/4
|
|||
|
DW _PRINT13,(offset hi_score_list+(12+3+1)*2+12),SW*2/4*2+2*16/4
|
|||
|
DW _FLASHON,1
|
|||
|
dw _wait,140
|
|||
|
DW _CLEAR3
|
|||
|
|
|||
|
DW _FLASHOFF,1
|
|||
|
DW _MATRIXLGT,0
|
|||
|
DW _PRINT13,hi_4,SW*2/4*2
|
|||
|
DW _PRINT13_NUMBER,(offset hi_score_list+(12+3+1)*3),4*SW/4+8*16/4
|
|||
|
DW _PRINT13,(offset hi_score_list+(12+3+1)*3+12),SW*2/4*2+2*16/4
|
|||
|
DW _FLASHON,1
|
|||
|
dw _wait,140
|
|||
|
DW _CLEAR2
|
|||
|
DW _FLASHOFF,1
|
|||
|
endm
|
|||
|
|
|||
|
|
|||
|
ShowInfoTS LABEL WORD
|
|||
|
CLEARIT
|
|||
|
clearit
|
|||
|
DW _rullgardin_ned,PLAY_TEXT,1
|
|||
|
dw _wait,40*3
|
|||
|
DW _MATRIXLGT,0
|
|||
|
CLEARIT
|
|||
|
DW _PRINT13,JACK_TEXT,SW*4/4
|
|||
|
dw _print13_number,jackvalue,SW*4/4+8*16/4
|
|||
|
DW _FLASHON,1
|
|||
|
dw _wait,40*3
|
|||
|
DW _FLASHOFF,1
|
|||
|
CLEARIT
|
|||
|
dw _rullgardin_upp,BONUS_TEXT,1
|
|||
|
dw _wait,40*3
|
|||
|
CLEARIT
|
|||
|
showithi
|
|||
|
CLEARIT
|
|||
|
|
|||
|
dw _print5,playerstext,sw*2*2/4+16*1/4
|
|||
|
dw _print5,ballstext,sw*2*10/4+16*1/4
|
|||
|
|
|||
|
DW 0
|
|||
|
|
|||
|
ShowHighsTS LABEL WORD
|
|||
|
;TEXTER
|
|||
|
CLEARIT
|
|||
|
DW _FLASHON,1
|
|||
|
DW _PRINT13,PF_TEXT,SW*2/4*2-2
|
|||
|
dw _wait,120
|
|||
|
DW _CLEAR2
|
|||
|
DW _FLASHOFF,1
|
|||
|
dw _rullgardin_upp,TRS_TEXT,1
|
|||
|
dw _wait,90
|
|||
|
CLEARIT
|
|||
|
DW _FLASHON,1
|
|||
|
DW _PRINT13,PL_TEXT,SW*2/4*2
|
|||
|
dw _wait,90
|
|||
|
DW _CLEAR3
|
|||
|
DW _FLASHOFF,1
|
|||
|
;SCROLLA
|
|||
|
DW _SCROLL,SCROLL_TEXT1
|
|||
|
;VISA HIGHSCORE
|
|||
|
showithi
|
|||
|
;DI UPP <20> NED!
|
|||
|
CLEARIT
|
|||
|
; dw _rullgardin_NED,DIGITAL_TEXT,16
|
|||
|
; dw _rullgardin_upp,DIGITAL_TEXT,-13
|
|||
|
; dw _wait,40
|
|||
|
; CLEARIT
|
|||
|
dw _rullgardin_NED,fld_TEXT,16
|
|||
|
dw _rullgardin_upp,fld_TEXT,-13
|
|||
|
dw _wait,40
|
|||
|
;SCROLLA SISTA
|
|||
|
DW _SCROLL,SCROLL_TEXT2
|
|||
|
CLEARIT
|
|||
|
DW _JMP,ShowHighsTS
|
|||
|
dw 0
|
|||
|
|
|||
|
ShowPlayersTS label word
|
|||
|
clearit
|
|||
|
dw _print5,playerstext,sw*2*2/4+16*1/4
|
|||
|
dw _print5,ballstext,sw*2*10/4+16*1/4
|
|||
|
dw 0
|
|||
|
|
|||
|
first_no_of_playersTS LABEL WORD
|
|||
|
clearit
|
|||
|
dw _print5,playerstext,sw*2*2/4+16*1/4
|
|||
|
DW _PRINT13,NOLLA,SW*2*2/4+16*19/4
|
|||
|
no_of_playersTS label word
|
|||
|
dw _print5,no_of_players_text,sw*2*10/4+16*1/4
|
|||
|
DW _WAIT_GAME_ON,?
|
|||
|
dw 0
|
|||
|
mileswait=40
|
|||
|
MilesTS label word
|
|||
|
clearit
|
|||
|
; DW _SCROLL,miles_text
|
|||
|
dw _rullgardin_upp,miles_text,1
|
|||
|
dw _wait,mileswait-16
|
|||
|
DW _CLEAR2
|
|||
|
; clearit
|
|||
|
dw 0
|
|||
|
PedalTS label word
|
|||
|
clearit
|
|||
|
DW _SCROLL,Pedal_text
|
|||
|
dw 0
|
|||
|
Part1TS label word
|
|||
|
clearit
|
|||
|
DW _SCROLL,PART1_text
|
|||
|
dw 0
|
|||
|
Part2TS label word
|
|||
|
clearit
|
|||
|
DW _SCROLL,PART2_text
|
|||
|
dw 0
|
|||
|
Part3TS label word
|
|||
|
clearit
|
|||
|
DW _SCROLL,PART3_text
|
|||
|
dw 0
|
|||
|
Part4TS label word
|
|||
|
clearit
|
|||
|
DW _SCROLL,PART4_text
|
|||
|
dw 0
|
|||
|
Part5TS label word
|
|||
|
clearit
|
|||
|
DW _SCROLL,PART5_text
|
|||
|
dw 0
|
|||
|
|
|||
|
Jump_At_TS label word
|
|||
|
clearit
|
|||
|
; DW _SCROLL,miles_text
|
|||
|
dw _rullgardin_upp,miles_text,1
|
|||
|
dw _wait,mileswait
|
|||
|
clearit
|
|||
|
dw _flashon,10
|
|||
|
dw _print11,jump_at_text,sw*2*3/4+4
|
|||
|
DW _WAIT,160
|
|||
|
dw _flashoff,1
|
|||
|
clearit
|
|||
|
dw 0
|
|||
|
|
|||
|
offroad_At_10_TS label word
|
|||
|
clearit
|
|||
|
; DW _SCROLL,miles_text
|
|||
|
dw _rullgardin_upp,miles_text,1
|
|||
|
dw _wait,mileswait
|
|||
|
clearit
|
|||
|
dw _flashon,10
|
|||
|
dw _print11,or_at_10_text,sw*2*3/4+4
|
|||
|
DW _WAIT,160
|
|||
|
dw _flashoff,1
|
|||
|
clearit
|
|||
|
dw 0
|
|||
|
|
|||
|
Xball_At_20_TS label word
|
|||
|
clearit
|
|||
|
dw _rullgardin_upp,miles_text,1
|
|||
|
dw _wait,mileswait
|
|||
|
clearit
|
|||
|
; DW _SCROLL,miles_text
|
|||
|
dw _flashon,10
|
|||
|
dw _print11,xb_at_20_text,sw*2*3/4+4
|
|||
|
DW _WAIT,160
|
|||
|
dw _flashoff,1
|
|||
|
clearit
|
|||
|
dw 0
|
|||
|
|
|||
|
OffRoad_At_TS label word
|
|||
|
clearit
|
|||
|
; DW _SCROLL,miles_text
|
|||
|
dw _rullgardin_upp,miles_text,1
|
|||
|
dw _wait,mileswait
|
|||
|
clearit
|
|||
|
dw _flashon,10
|
|||
|
dw _print11,OffRoad_at_text,sw*2*3/4+4
|
|||
|
DW _WAIT,160
|
|||
|
dw _flashoff,1
|
|||
|
clearit
|
|||
|
dw 0
|
|||
|
|
|||
|
LitJumpTS label word
|
|||
|
clearit
|
|||
|
dw _print11,lit_jump_text,sw*2*3/4+4
|
|||
|
DW _WAIT,160
|
|||
|
DW _CLEAR2
|
|||
|
dw 0
|
|||
|
LitXBallTS label word
|
|||
|
clearit
|
|||
|
dw _print11,lit_XBALL_text,sw*2*3/4
|
|||
|
DW _WAIT,160
|
|||
|
clearit
|
|||
|
dw 0
|
|||
|
BonusHeldTS label word
|
|||
|
clearit
|
|||
|
DW _PRINT13,BonusHeld_Text,SW*2/4*2
|
|||
|
DW _WAIT,90
|
|||
|
DW _CLEAR2
|
|||
|
dw 0
|
|||
|
|
|||
|
jump_at_text db 'XXX LITES THE JUMP',0
|
|||
|
offroad_at_text db 'XXX LITES OFF ROAD',0
|
|||
|
xb_at_20_text db '7'+2,'7 LITES EXTRA BALL',0
|
|||
|
or_at_10_text db ' ','7'+1,'7 LITES OFF ROAD',0
|
|||
|
BonusHeld_text db ' B O N U S H E L D ',0
|
|||
|
lit_jump_text db ' GO FOR THE JUMP ',0
|
|||
|
LIT_XBALL_TEXT DB ' GET THE EXTRA BALL ',0
|
|||
|
;miles_text db 21 dup (' '),'xXXX MILES',21 dup (' '),255
|
|||
|
miles_text db ' XXX MILES ',0
|
|||
|
pedal_text db 21 dup (' '),'PRESS THE PEDAL TO THE METAL',21 dup (' '),255
|
|||
|
PART1_text db 21 dup (' '),'YOU HAVE THE SPOILER KIT',21 dup (' '),255
|
|||
|
PART2_text db 21 dup (' '),'YOU HAVE THE TURBO CHARGER',21 dup (' '),255
|
|||
|
PART3_text db 21 dup (' '),'YOU HAVE THE HI',94,'SPEED WING',21 dup (' '),255
|
|||
|
PART4_text db 21 dup (' '),'YOU HAVE THE SPORTS BUMPERS',21 dup (' '),255
|
|||
|
PART5_text db 21 dup (' '),'YOU HAVE THE POWER STEERING',21 dup (' '),255
|
|||
|
jmp_t=3
|
|||
|
|
|||
|
JumpTS label word
|
|||
|
clearit
|
|||
|
DW _PRINT13,JUMP1,SW*2/4*2
|
|||
|
DW _WAIT,JMP_T
|
|||
|
DW _PRINT13,JUMP2,SW*2/4*2
|
|||
|
DW _WAIT,JMP_T
|
|||
|
DW _PRINT13,JUMP3,SW*2/4*2
|
|||
|
DW _WAIT,JMP_T
|
|||
|
DW _PRINT13,JUMP4,SW*2/4*2
|
|||
|
DW _WAIT,JMP_T*2
|
|||
|
DW _PRINT13,JUMP5,SW*2/4*2
|
|||
|
DW _WAIT,JMP_T*2
|
|||
|
DW _PRINT13,JUMP6,SW*2/4*2
|
|||
|
DW _WAIT,JMP_T
|
|||
|
DW _PRINT13,JUMP7,SW*2/4*2
|
|||
|
DW _WAIT,JMP_T
|
|||
|
DW _PRINT13,JUMP8,SW*2/4*2
|
|||
|
DW _WAIT,JMP_T
|
|||
|
DW _PRINT13,JUMP9,SW*2/4*2
|
|||
|
DW _WAIT,JMP_T*2
|
|||
|
DW _PRINT13,JUMP10,SW*2/4*2
|
|||
|
DW _WAIT,JMP_T*2
|
|||
|
DW _PRINT13,JUMP11,SW*2/4*2
|
|||
|
DW _WAIT,JMP_T
|
|||
|
DW _PRINT13,JUMP12,SW*2/4*2
|
|||
|
DW _WAIT,JMP_T
|
|||
|
DW _PRINT13,JUMP13,SW*2/4*2
|
|||
|
DW _WAIT,JMP_T
|
|||
|
DW _PRINT13,JUMP14,SW*2/4*2
|
|||
|
DW _WAIT,JMP_T
|
|||
|
DW _FLASHON,15
|
|||
|
dw _wait,15*3-1
|
|||
|
dw _flashoff,?
|
|||
|
|
|||
|
DW _clear3
|
|||
|
DW 0
|
|||
|
|
|||
|
JUMP1 DB ' J ',0
|
|||
|
JUMP2 DB ' U ',0
|
|||
|
JUMP3 DB ' M ',0
|
|||
|
JUMP4 DB ' P ',0
|
|||
|
JUMP5 DB ' ^ ',0
|
|||
|
JUMP6 DB ' J ',0
|
|||
|
JUMP7 DB ' U ',0
|
|||
|
JUMP8 DB ' M ',0
|
|||
|
JUMP9 DB ' P ',0
|
|||
|
JUMP10 DB ' ^ ',0
|
|||
|
JUMP11 DB ' J ',0
|
|||
|
JUMP12 DB ' U ',0
|
|||
|
JUMP13 DB ' M ',0
|
|||
|
JUMP14 DB ' P',0
|
|||
|
|
|||
|
tiltTS LABEL WORD
|
|||
|
CLEARIT
|
|||
|
dw _lastjingle,55
|
|||
|
DW _PRINT13,TILT_TEXT,sw*2/4*2+16*0/4
|
|||
|
DW _WAIT,32767
|
|||
|
DW 0
|
|||
|
TILT_TEXT DB ' TILT TILT TILT',0
|
|||
|
last_text db ' ',0
|
|||
|
flashlast db ' ',0
|
|||
|
slutsiffra db '0',0
|
|||
|
startext db '*',0
|
|||
|
last_pos dw 0
|
|||
|
|
|||
|
if demover
|
|||
|
MINUTE5TS LABEL WORD
|
|||
|
CLEARIT
|
|||
|
dw _scroll,MINUTE5TEXT
|
|||
|
DW _FLASHON,1
|
|||
|
dw _print13_number,offset SIFFRORNA,SW*4/4+16*2/4
|
|||
|
DW _WAIT,100
|
|||
|
DW _FLASHOFF,1
|
|||
|
dw _scroll,MINUTE5TEXTB
|
|||
|
DW _FADE,256
|
|||
|
DW _WAIT,100
|
|||
|
DW QUIT,?
|
|||
|
dw 0
|
|||
|
MINUTE5TEXT DB 21 DUP (1)
|
|||
|
DB "WELL DONE PLAYER 1 - YOU HAVE ACHEIVED THE MEGA SCORE OF"
|
|||
|
DB 21 DUP (1),255
|
|||
|
MINUTE5TEXTB DB 21 DUP (1)
|
|||
|
DB "LOOK OUT FOR PINBALL FANTASIES PC - FULL GAME AVAILABLE SOON"
|
|||
|
DB 21 DUP (1),255
|
|||
|
endif
|
|||
|
;***********************************************************
|
|||
|
GETTING_SICK_TEXT DB 'SLIDING OFF THE ROAD',0
|
|||
|
|
|||
|
PARTY_ON_TEXT DB ' PARTY ON PLAYER ',0
|
|||
|
ZEROQ DB '0'+7,0
|
|||
|
SHOOT_AGAIN_TEXT DB 'SHOOT AGAIN PLAYER ',0
|
|||
|
|
|||
|
NO_OF_PLAYERS_TEXT DB 'PLAYERS X',0
|
|||
|
NOLLA DB '7',0
|
|||
|
show_bonus_TEXT DB 'BONUS',0
|
|||
|
show_totalbonus_TEXT DB 'TOTAL*BONUS',0
|
|||
|
BONUS_X_TEXT DB 'BONUS*X*?',0
|
|||
|
|
|||
|
|
|||
|
fld_TEXT DB ' FRONTLINE DESIGN',0
|
|||
|
|
|||
|
PF_TEXT DB ' PINBALL FANTASIES',0
|
|||
|
TRS_TEXT DB ' THE REAL SIMULATOR',0
|
|||
|
PL_TEXT DB ' SPEED DEVILS',0
|
|||
|
SCROLL_TEXT1 DB 21 DUP (' '),'ADD PLAYERS WITH F1 TO F8 OR ENTER',21 DUP (' ')
|
|||
|
DB 'WINNERS DO NOT USE DRUGS',21 DUP (' '),255
|
|||
|
ALLTIME_TEXT DB 'ALL TIME HIGHSCORES',0
|
|||
|
SCROLL_TEXT2 DB 21 DUP (' '),'FLIP WITH LEFT AND RIGHT ALT SHIFT OR CTRL KEYS',21 DUP (' ')
|
|||
|
DB 'PUSH TABLE WITH SPACE',21 DUP (' ')
|
|||
|
DB 'CONTROL SPRING WITH DOWN ARROW KEY OR MOUSE',21 DUP (' ')
|
|||
|
DB 'WINNERS DO NOT USE DRUGS',21 DUP (' ')
|
|||
|
DB 'P PAUSES GAME AND M TOGGLES INGAME MUSIC ON AND OFF',21 DUP (' ')
|
|||
|
DB 'ESC EXITS AND SAVES NEW HIGHSCORES',21 DUP (' '),255
|
|||
|
DIGITAL_TEXT DB ' DIGITAL ILLUSIONS',0
|
|||
|
|
|||
|
JACK_TEXT DB 'JACKPOT IS',0
|
|||
|
BONUS_TEXT DB ' YOU HAVE XX BONUS',0 ;10
|
|||
|
PLAY_TEXT DB ' PLAYER 8 BALL 8 ',0 ;8,18
|
|||
|
|
|||
|
INFO_TEXT DB 21 DUP (' ')
|
|||
|
db ''
|
|||
|
DB 21 DUP (1),255
|
|||
|
|
|||
|
playerstext db 'PLAYER 8',0 ;8=1 (L<>S EKVATIONEN!)
|
|||
|
BALLSTEXT DB 'BALL 8',0 ;8=1
|
|||
|
|
|||
|
hajjskar db 'HIGHSCORE PL X ',92,' ',93,0
|
|||
|
stjaernor db '********************',0
|
|||
|
|
|||
|
;******************************************************************************
|
|||
|
|
|||
|
DATA ENDS
|
|||
|
;*************************** Animations **************************************
|
|||
|
DATA2 SEGMENT PARA PUBLIC 'DATA'
|
|||
|
;*********************ANIMATIONS MALL*************************
|
|||
|
comment\
|
|||
|
dw 1*4 ;loop pos
|
|||
|
dw 15 ;number of loops
|
|||
|
dw 5*4-4 ;length of anim (5 frames * 4 bytes!)
|
|||
|
_happy dw happy_1,1;<---start!
|
|||
|
dw happy_2,2;<-, loop!
|
|||
|
dw happy_3,2; I
|
|||
|
dw happy_4,2; I
|
|||
|
dw happy_5,2;__I
|
|||
|
\
|
|||
|
multispeed=3
|
|||
|
dw 1
|
|||
|
dw 4*8
|
|||
|
_multi dw a_02_00,multispeed
|
|||
|
dw a_02_01,multispeed
|
|||
|
dw a_02_02,multispeed
|
|||
|
dw a_02_03,multispeed
|
|||
|
dw a_02_04,multispeed
|
|||
|
dw a_02_05,multispeed
|
|||
|
dw a_02_06,multispeed
|
|||
|
dw a_02_07,50
|
|||
|
|
|||
|
multispeed=3
|
|||
|
dw 1
|
|||
|
dw 4*7
|
|||
|
_m2 dw a_03_00,multispeed
|
|||
|
dw a_03_01,multispeed
|
|||
|
dw a_03_02,multispeed
|
|||
|
dw a_03_03,multispeed
|
|||
|
dw a_03_04,multispeed
|
|||
|
dw a_03_05,multispeed
|
|||
|
dw a_03_06,50
|
|||
|
multispeed=3
|
|||
|
dw 1
|
|||
|
dw 4*7
|
|||
|
_m3 dw a_04_00,multispeed
|
|||
|
dw a_04_01,multispeed
|
|||
|
dw a_04_02,multispeed
|
|||
|
dw a_04_03,multispeed
|
|||
|
dw a_04_04,multispeed
|
|||
|
dw a_04_05,multispeed
|
|||
|
dw a_04_06,50
|
|||
|
multispeed=3
|
|||
|
dw 1
|
|||
|
dw 4*7
|
|||
|
_m4 dw a_05_00,multispeed
|
|||
|
dw a_05_01,multispeed
|
|||
|
dw a_05_02,multispeed
|
|||
|
dw a_05_03,multispeed
|
|||
|
dw a_05_04,multispeed
|
|||
|
dw a_05_05,multispeed
|
|||
|
dw a_05_06,50
|
|||
|
multispeed=3
|
|||
|
dw 1
|
|||
|
dw 4*7
|
|||
|
_m5 dw a_06_00,multispeed
|
|||
|
dw a_06_01,multispeed
|
|||
|
dw a_06_02,multispeed
|
|||
|
dw a_06_03,multispeed
|
|||
|
dw a_06_04,multispeed
|
|||
|
dw a_06_05,multispeed
|
|||
|
dw a_06_06,50
|
|||
|
multispeed=3
|
|||
|
dw 1
|
|||
|
dw 4*7
|
|||
|
_m6 dw a_07_00,multispeed
|
|||
|
dw a_07_01,multispeed
|
|||
|
dw a_07_02,multispeed
|
|||
|
dw a_07_03,multispeed
|
|||
|
dw a_07_04,multispeed
|
|||
|
dw a_07_05,multispeed
|
|||
|
dw a_07_06,50
|
|||
|
multispeed=3
|
|||
|
dw 1
|
|||
|
dw 4*7
|
|||
|
_m7 dw a_08_00,multispeed
|
|||
|
dw a_08_01,multispeed
|
|||
|
dw a_08_02,multispeed
|
|||
|
dw a_08_03,multispeed
|
|||
|
dw a_08_04,multispeed
|
|||
|
dw a_08_05,multispeed
|
|||
|
dw a_08_06,50
|
|||
|
multispeed=3
|
|||
|
dw 1
|
|||
|
dw 4*7
|
|||
|
_m8 dw a_09_00,multispeed
|
|||
|
dw a_09_01,multispeed
|
|||
|
dw a_09_02,multispeed
|
|||
|
dw a_09_03,multispeed
|
|||
|
dw a_09_04,multispeed
|
|||
|
dw a_09_05,multispeed
|
|||
|
dw a_09_06,50
|
|||
|
multispeed=3
|
|||
|
dw 1
|
|||
|
dw 4*7
|
|||
|
_m9 dw a_10_00,multispeed
|
|||
|
dw a_10_01,multispeed
|
|||
|
dw a_10_02,multispeed
|
|||
|
dw a_10_03,multispeed
|
|||
|
dw a_10_04,multispeed
|
|||
|
dw a_10_05,multispeed
|
|||
|
dw a_10_06,50
|
|||
|
|
|||
|
millionspeed=2
|
|||
|
dw 1
|
|||
|
dw 4*16
|
|||
|
_million dw a_01_00,millionspeed
|
|||
|
dw a_01_01,millionspeed
|
|||
|
dw a_01_02,millionspeed
|
|||
|
dw a_01_03,millionspeed
|
|||
|
dw a_01_04,millionspeed
|
|||
|
dw a_01_05,millionspeed
|
|||
|
dw a_01_06,millionspeed
|
|||
|
dw a_01_07,millionspeed
|
|||
|
dw a_01_08,millionspeed
|
|||
|
dw a_01_09,millionspeed
|
|||
|
dw a_01_10,millionspeed
|
|||
|
dw a_01_11,millionspeed
|
|||
|
dw a_01_12,millionspeed
|
|||
|
dw a_01_13,millionspeed
|
|||
|
dw a_01_14,millionspeed
|
|||
|
dw a_01_15,50
|
|||
|
|
|||
|
overtakespeed=3
|
|||
|
|
|||
|
dw 23*4 ;loop pos
|
|||
|
dw 4 ;number of loops
|
|||
|
dw 33*4-4 ;length of anim
|
|||
|
_overtake dw a_15_00,overtakespeed
|
|||
|
dw a_15_01,overtakespeed
|
|||
|
dw a_15_02,overtakespeed
|
|||
|
dw a_15_03,overtakespeed
|
|||
|
dw a_15_04,overtakespeed
|
|||
|
dw a_15_05,overtakespeed
|
|||
|
dw a_15_06,overtakespeed
|
|||
|
dw a_15_07,overtakespeed
|
|||
|
dw a_15_08,overtakespeed
|
|||
|
dw a_15_09,overtakespeed
|
|||
|
dw a_15_10,overtakespeed
|
|||
|
dw a_15_11,overtakespeed
|
|||
|
dw a_15_12,overtakespeed
|
|||
|
dw a_15_13,overtakespeed
|
|||
|
dw a_15_14,overtakespeed
|
|||
|
dw a_15_15,overtakespeed
|
|||
|
dw a_15_16,overtakespeed
|
|||
|
dw a_15_17,overtakespeed
|
|||
|
dw a_15_18,overtakespeed
|
|||
|
dw a_15_19,overtakespeed
|
|||
|
dw a_15_20,overtakespeed
|
|||
|
dw a_15_21,overtakespeed
|
|||
|
dw a_15_22,overtakespeed
|
|||
|
dw a_15_23,overtakespeed
|
|||
|
dw a_15_24,overtakespeed
|
|||
|
dw a_15_25,overtakespeed
|
|||
|
dw a_15_26,overtakespeed
|
|||
|
dw a_15_27,overtakespeed
|
|||
|
dw a_15_28,overtakespeed
|
|||
|
dw a_15_29,overtakespeed
|
|||
|
dw a_15_30,overtakespeed
|
|||
|
dw a_15_31,overtakespeed
|
|||
|
dw a_15_32,overtakespeed
|
|||
|
|
|||
|
|
|||
|
xballspeed=3
|
|||
|
|
|||
|
dw 1 ;loop pos (1=none)
|
|||
|
; dw 4 ;number of loops (Only if loop enabled)
|
|||
|
dw 27*4 ;length of anim (-1*4 if loop enabled)
|
|||
|
_xballa dw a_12_00,xballspeed
|
|||
|
dw a_12_01,xballspeed
|
|||
|
dw a_12_02,xballspeed
|
|||
|
dw a_12_03,xballspeed
|
|||
|
dw a_12_04,xballspeed
|
|||
|
dw a_12_05,xballspeed
|
|||
|
dw a_12_06,xballspeed
|
|||
|
dw a_12_07,xballspeed
|
|||
|
dw a_12_08,xballspeed
|
|||
|
dw a_12_09,xballspeed
|
|||
|
dw a_12_10,xballspeed
|
|||
|
dw a_12_11,xballspeed
|
|||
|
dw a_12_12,xballspeed
|
|||
|
dw a_12_13,xballspeed
|
|||
|
dw a_12_14,xballspeed
|
|||
|
dw a_12_15,xballspeed
|
|||
|
dw a_12_16,xballspeed
|
|||
|
dw a_12_17,xballspeed
|
|||
|
dw a_12_18,xballspeed
|
|||
|
dw a_12_19,xballspeed
|
|||
|
dw a_12_20,xballspeed
|
|||
|
dw a_12_21,xballspeed
|
|||
|
dw a_12_22,xballspeed
|
|||
|
dw a_12_23,xballspeed
|
|||
|
dw a_12_24,xballspeed
|
|||
|
dw a_12_25,xballspeed
|
|||
|
dw a_12_26,50
|
|||
|
|
|||
|
|
|||
|
jackpotspeed=3
|
|||
|
|
|||
|
dw 1 ;loop pos (1=none)
|
|||
|
; dw 4 ;number of loops (Only if loop enabled)
|
|||
|
dw 26*4 ;length of anim (-1*4 if loop enabled)
|
|||
|
_jackpot dw a_11_00,jackpotspeed
|
|||
|
dw a_11_01,jackpotspeed
|
|||
|
dw a_11_02,jackpotspeed
|
|||
|
dw a_11_03,jackpotspeed
|
|||
|
dw a_11_04,jackpotspeed
|
|||
|
dw a_11_05,jackpotspeed
|
|||
|
dw a_11_06,jackpotspeed
|
|||
|
dw a_11_07,jackpotspeed
|
|||
|
dw a_11_08,jackpotspeed
|
|||
|
dw a_11_09,jackpotspeed
|
|||
|
dw a_11_10,jackpotspeed
|
|||
|
dw a_11_11,jackpotspeed
|
|||
|
dw a_11_12,jackpotspeed
|
|||
|
dw a_11_13,jackpotspeed
|
|||
|
dw a_11_14,jackpotspeed
|
|||
|
dw a_11_15,jackpotspeed
|
|||
|
dw a_11_16,jackpotspeed
|
|||
|
dw a_11_17,jackpotspeed
|
|||
|
dw a_11_18,jackpotspeed
|
|||
|
dw a_11_19,jackpotspeed
|
|||
|
dw a_11_20,jackpotspeed
|
|||
|
dw a_11_21,jackpotspeed
|
|||
|
dw a_11_22,jackpotspeed
|
|||
|
dw a_11_23,jackpotspeed
|
|||
|
dw a_11_24,jackpotspeed
|
|||
|
dw a_11_25,50
|
|||
|
|
|||
|
gearspeeds=3
|
|||
|
|
|||
|
dw 0*4 ;loop pos (1=none)
|
|||
|
dw 4 ;number of loops (Only if loop enabled)
|
|||
|
dw 6*4-4 ;length of anim (-1*4 if loop enabled)
|
|||
|
_gear dw a_14_00,gearspeeds
|
|||
|
dw a_14_01,gearspeeds
|
|||
|
dw a_14_02,gearspeeds
|
|||
|
dw a_14_03,gearspeeds
|
|||
|
dw a_14_04,gearspeeds
|
|||
|
dw a_14_05,gearspeeds
|
|||
|
|
|||
|
;****************************************************************
|
|||
|
extrn a_01_00,a_01_01,a_01_02 ,a_01_03 ,a_01_04 ,a_01_05 ,a_01_06 ,a_01_07 ,a_01_08 ,a_01_09 ,a_01_10 ,a_01_11 ,a_01_12 ,a_01_13 ,a_01_14 ,a_01_15
|
|||
|
extrn a_02_00,a_02_01,a_02_02 ,a_02_03 ,a_02_04 ,a_02_05 ,a_02_06 ,a_02_07
|
|||
|
extrn a_03_00,a_03_01,a_03_02 ,a_03_03 ,a_03_04 ,a_03_05 ,a_03_06
|
|||
|
extrn a_04_00,a_04_01,a_04_02 ,a_04_03 ,a_04_04 ,a_04_05 ,a_04_06
|
|||
|
extrn a_05_00,a_05_01,a_05_02 ,a_05_03 ,a_05_04 ,a_05_05 ,a_05_06
|
|||
|
extrn a_06_00,a_06_01,a_06_02 ,a_06_03 ,a_06_04 ,a_06_05 ,a_06_06
|
|||
|
extrn a_07_00,a_07_01,a_07_02 ,a_07_03 ,a_07_04 ,a_07_05 ,a_07_06
|
|||
|
extrn a_08_00,a_08_01,a_08_02 ,a_08_03 ,a_08_04 ,a_08_05 ,a_08_06
|
|||
|
extrn a_09_00,a_09_01,a_09_02 ,a_09_03 ,a_09_04 ,a_09_05 ,a_09_06
|
|||
|
extrn a_10_00,a_10_01,a_10_02 ,a_10_03 ,a_10_04 ,a_10_05 ,a_10_06
|
|||
|
extrn a_11_00,a_11_01,a_11_02 ,a_11_03 ,a_11_04 ,a_11_05 ,a_11_06 ,a_11_07 ,a_11_08 ,a_11_09 ,a_11_10 ,a_11_11 ,a_11_12 ,a_11_13 ,a_11_14 ,a_11_15 ,a_11_16 ,a_11_17 ,a_11_18 ,a_11_19 ,a_11_20 ,a_11_21 ,a_11_22 ,a_11_23 ,a_11_24 ,a_11_25
|
|||
|
extrn a_12_00,a_12_01,a_12_02 ,a_12_03 ,a_12_04 ,a_12_05 ,a_12_06 ,a_12_07 ,a_12_08 ,a_12_09 ,a_12_10 ,a_12_11 ,a_12_12 ,a_12_13 ,a_12_14 ,a_12_15 ,a_12_16 ,a_12_17 ,a_12_18 ,a_12_19 ,a_12_20 ,a_12_21 ,a_12_22 ,a_12_23 ,a_12_24 ,a_12_25 ,a_12_26
|
|||
|
extrn a_14_00,a_14_01,a_14_02 ,a_14_03 ,a_14_04 ,a_14_05
|
|||
|
extrn a_15_00,a_15_01,a_15_02 ,a_15_03 ,a_15_04 ,a_15_05 ,a_15_06 ,a_15_07 ,a_15_08 ,a_15_09 ,a_15_10 ,a_15_11 ,a_15_12 ,a_15_13 ,a_15_14 ,a_15_15 ,a_15_16 ,a_15_17 ,a_15_18 ,a_15_19 ,a_15_20 ,a_15_21 ,a_15_22 ,a_15_23 ,a_15_24 ,a_15_25 ,a_15_26 ,a_15_27 ,a_15_28 ,a_15_29 ,a_15_30 ,a_15_31 ,a_15_32
|
|||
|
comment\
|
|||
|
extrn a_01_00,a_01_01,a_01_02 ,a_01_03 ,a_01_04 ,a_01_05 ,a_01_06 ,a_01_07 ,a_01_08 ,a_01_09 ,a_01_10 ,a_01_11 ,a_01_12 ,a_01_13 ,a_01_14 ,a_01_15 ,a_01_16 ,a_01_17 ,a_01_18 ,a_01_19 ,a_01_20 ,a_01_21 ,a_01_22
|
|||
|
extrn a_03_00,a_03_01,a_03_02 ,a_03_03 ,a_03_04 ,a_03_05 ,a_03_06 ,a_03_07
|
|||
|
extrn a_04_00,a_04_01,a_04_02 ,a_04_03 ,a_04_04 ,a_04_05 ,a_04_06 ,a_04_07
|
|||
|
extrn a_05_00,a_05_01,a_05_02 ,a_05_03 ,a_05_04 ,a_05_05 ,a_05_06 ,a_05_07
|
|||
|
extrn a_06_00,a_06_01,a_06_02 ,a_06_03 ,a_06_04 ,a_06_05 ,a_06_06 ,a_06_07
|
|||
|
extrn a_08_00,a_08_01,a_08_02 ,a_08_03 ,a_08_04 ,a_08_05 ,a_08_06 ,a_08_07 ,a_08_08 ,a_08_09 ,a_08_10 ,a_08_11 ,a_08_12 ,a_08_13 ,a_08_14 ,a_08_15 ,a_08_16 ,a_08_17 ,a_08_18 ,a_08_19 ,a_08_20 ,a_08_21 ,a_08_22 ,a_08_23 ,a_08_24 ,a_08_25 ,a_08_26 ,a_08_27 ,a_08_28 ,a_08_29 ,a_08_30 ,a_08_31 ,a_08_32 ,a_08_33 ,a_08_34
|
|||
|
extrn a_09_00,a_09_01,a_09_02 ,a_09_03 ,a_09_04 ,a_09_05 ,a_09_06 ,a_09_07 ,a_09_08 ,a_09_09 ,a_09_10 ,a_09_11 ,a_09_12 ,a_09_13 ,a_09_14 ,a_09_15
|
|||
|
extrn a_12_00,a_12_01,a_12_02 ,a_12_03 ,a_12_04 ,a_12_05 ,a_12_06 ,a_12_07 ,a_12_08 ,a_12_09 ,a_12_10 ,a_12_11 ,a_12_12 ,a_12_13 ,a_12_14 ,a_12_15 ,a_12_16 ,a_12_17 ,a_12_18 ,a_12_19 ,a_12_20 ,a_12_21 ,a_12_22 ,a_12_23 ,a_12_24 ,a_12_25 ,a_12_26
|
|||
|
extrn a_15_00,a_15_01,a_15_02 ,a_15_03 ,a_15_04 ,a_15_05 ,a_15_06 ,a_15_07 ,a_15_08 ,a_15_09 ,a_15_10 ,a_15_11 ,a_15_12 ,a_15_13 ,a_15_14 ,a_15_15 ,a_15_16 ,a_15_17 ,a_15_18
|
|||
|
\
|
|||
|
DATA2 ENDS
|
|||
|
|
|||
|
;******************************************************************************
|
|||
|
|
|||
|
|
|||
|
;******************************************************************************
|
|||
|
;** **
|
|||
|
;** C O D E **
|
|||
|
;** **
|
|||
|
;******************************************************************************
|
|||
|
|
|||
|
CODE SEGMENT PARA PUBLIC 'CODE'
|
|||
|
ASSUME CS:CODE,DS:DATA
|
|||
|
|
|||
|
|
|||
|
;*********************************** INITS ************************************
|
|||
|
|
|||
|
JUST_ONE_TIME_RESET_TABLE:
|
|||
|
CALL SLACK_LIGHTS
|
|||
|
RETN
|
|||
|
|
|||
|
|
|||
|
WHEN_NEW_GAME_RESET_TABLE:
|
|||
|
CALL SLACK_LIGHTS
|
|||
|
CALL RESETFLASHLIST
|
|||
|
CALL INIT_jack
|
|||
|
CALL RESET_VARS
|
|||
|
CALL UPDATE_P_STRUC_4_ALL_PLAYERS
|
|||
|
MOV XxballE,FALSE
|
|||
|
MOV MUSICOK,FALSE
|
|||
|
|
|||
|
;cleara slutsiffrorna (di alla!) (F<>r knacket allts<74>!!!)
|
|||
|
push es
|
|||
|
move es,ds
|
|||
|
MOV di,offset last_text
|
|||
|
mov al,' '
|
|||
|
mov cx,8*2
|
|||
|
rep stosb
|
|||
|
MOV di,offset flashlast
|
|||
|
mov al,' '
|
|||
|
mov cx,8*2
|
|||
|
rep stosb
|
|||
|
pop es
|
|||
|
RETN
|
|||
|
|
|||
|
|
|||
|
WHEN_NEW_BALL_RESET_TABLE:
|
|||
|
CALL SLACK_LIGHTS
|
|||
|
CALL RESETFLASHLIST
|
|||
|
CALL RESET_VARS
|
|||
|
CALL P_STRUC_2_VARS
|
|||
|
RETN
|
|||
|
|
|||
|
;************************ variables reset (allways!!) *********************
|
|||
|
RESET_VARS:
|
|||
|
NIL AX
|
|||
|
MOVE ES,DS
|
|||
|
MOV BONUS_TEXT[11],'8'
|
|||
|
MOV play_TEXT[18],'8'
|
|||
|
MOV play_TEXT[8],'8'
|
|||
|
MOV DI,OFFSET SIFFRORNA
|
|||
|
MOV CX,6
|
|||
|
REP STOSW
|
|||
|
MOV DI,OFFSET BONUSSIFFRORNA
|
|||
|
MOV CX,6
|
|||
|
REP STOSW
|
|||
|
MOV DI,OFFSET or_total
|
|||
|
MOV CX,6
|
|||
|
REP STOSW
|
|||
|
MOV DI,OFFSET tm_total
|
|||
|
MOV CX,6
|
|||
|
REP STOSW
|
|||
|
|
|||
|
MOV POS_SYNCER,0 ;SYNCER VARS
|
|||
|
mov carparten,0
|
|||
|
mov b_flashin,false
|
|||
|
mov u_flashin,false
|
|||
|
mov r_flashin,false
|
|||
|
mov n_flashin,false
|
|||
|
mov i_flashin,false
|
|||
|
mov nn_flashin,false
|
|||
|
mov flash7down,0
|
|||
|
mov flash6down,0
|
|||
|
mov flash5down,0
|
|||
|
mov gear_down,0
|
|||
|
mov flash_pit_down,0
|
|||
|
mov mb_pa_lager,0
|
|||
|
mov mb_gjorda,0
|
|||
|
mov loop_l,0
|
|||
|
mov loop_h,0
|
|||
|
mov loop_l_,false
|
|||
|
mov loop_h_,false
|
|||
|
mov jump_,false
|
|||
|
MOV BALLHIGH,FALSE
|
|||
|
MOV HOLDBONUSFLAG,FALSE
|
|||
|
mov holdbonuscount,0
|
|||
|
MOV BONUS_X,1
|
|||
|
|
|||
|
mov ax,0
|
|||
|
MOV DI,OFFSET cyclonecounterbcd
|
|||
|
MOV CX,6
|
|||
|
REP STOSW
|
|||
|
mov cyclonecounter,0
|
|||
|
|
|||
|
mov nextjump,30
|
|||
|
mov nextoffroad,40
|
|||
|
mov speeden,0
|
|||
|
mov gearet,0
|
|||
|
mov pos_flash,0
|
|||
|
mov pos_light,0
|
|||
|
|
|||
|
mov specialmode,false
|
|||
|
mov turbomode,false
|
|||
|
mov offroadmode,false
|
|||
|
;H<>R VAR DEN! ; MOV PARTYFLASH,false
|
|||
|
|
|||
|
retn
|
|||
|
;******************************************************************************
|
|||
|
|
|||
|
|
|||
|
|
|||
|
DEMO_MUSIC PROC NEAR
|
|||
|
CMP HIGHSCORE,TRUE
|
|||
|
; JE OOPS_HIGH ;CP!
|
|||
|
PLAYJINGLE S_NOHIGH
|
|||
|
MOV AL,S_NOHIGH[2]
|
|||
|
MOV LASTPRIORITY,AL
|
|||
|
MOV LASTJINGLE,9 ;9=NOHIGH
|
|||
|
RETN
|
|||
|
DEMO_MUSIC ENDP
|
|||
|
|
|||
|
GAME_MUSIC PROC NEAR
|
|||
|
PLAYJINGLE S_SPRING
|
|||
|
MOV AL,S_SPRING+2
|
|||
|
MOV LASTPRIORITY,AL
|
|||
|
MOV LASTJINGLE,0
|
|||
|
RETN
|
|||
|
GAME_MUSIC ENDP
|
|||
|
|
|||
|
;******************************** LOOSE BALL **********************************
|
|||
|
LOOSE_BALL PROC NEAR
|
|||
|
MOV LOOSING,TRUE
|
|||
|
MOV SCREENFORCE2,576-SH_LO+SPLH ;CP?
|
|||
|
CMP HI_RES,TRUE
|
|||
|
JNE NOTHIRES16
|
|||
|
MOV SCREENFORCE2,576-SH_HI+SPLH ;CP?
|
|||
|
NOTHIRES16:
|
|||
|
SETBALLPOS 280,560,0,0,FALSE
|
|||
|
MOV HOLDSTILL,TRUE
|
|||
|
MOV ALLOWFLIP,FALSE ;KILL FLIPPERS!
|
|||
|
|
|||
|
MOV SPECIALMODE,FALSE
|
|||
|
|
|||
|
MOV CURRENT_PRIORITY,0
|
|||
|
EFFECT LOSTBALL
|
|||
|
ADDTASK SOUNDRINNER
|
|||
|
RETN
|
|||
|
|
|||
|
SOUNDRINNER:
|
|||
|
WAITSYNCS 5
|
|||
|
SOUNDEFFECT SRINNER,0
|
|||
|
SUICIDE
|
|||
|
|
|||
|
INIT_JACK PROC NEAR ;FN: JACKVALUE = JACKINIT
|
|||
|
MOVE ES,DS
|
|||
|
MOV CX,12/2
|
|||
|
MOV SI,OFFSET JACKINIT
|
|||
|
MOV DI,OFFSET JACKVALUE
|
|||
|
REP MOVSW
|
|||
|
RETN
|
|||
|
INIT_JACK ENDP
|
|||
|
|
|||
|
JACKADD PROC NEAR ;FN: JACKVALUE += JACKRAISE
|
|||
|
MOV SI,OFFSET JACKRAISE
|
|||
|
MOV DI,OFFSET JACKVALUE
|
|||
|
CALL ADDSCOREBCD
|
|||
|
RETN
|
|||
|
JACKADD ENDP
|
|||
|
|
|||
|
_FLORPA:
|
|||
|
MOV CS:LB6CNT,0 ;RESET F<>RDR<44>JNINGS-R<>KNAREN
|
|||
|
MOV ADDORPEK,OFFSET ADDOR ;STARTA MED SISTA NUFFRAN
|
|||
|
MOV BONUSPEK,OFFSET BONUSSIFFRORNA+11
|
|||
|
|
|||
|
MOV SI,OFFSET BONUSSIFFRORNA ;SPARA BONUSSIFFRORNA
|
|||
|
MOV DI,OFFSET TEMPSIFFRORNA
|
|||
|
MOVE ES,DS
|
|||
|
MOV CX,6
|
|||
|
REP MOVSW
|
|||
|
|
|||
|
MOV DOTRUT,OFFSET DO_FLORPA
|
|||
|
|
|||
|
ADD BX,2
|
|||
|
CMP WORD PTR [BX],0
|
|||
|
JNE _NEXTp_5
|
|||
|
MOV BX,0
|
|||
|
_NEXTp_5:
|
|||
|
MOV NEXT_A,BX
|
|||
|
RETN
|
|||
|
PLIPPA_SCORE:
|
|||
|
mov si,offset siffrorna
|
|||
|
mov bx,336*2/4+(320-12*16)/4 ;h<>ger justerad!
|
|||
|
MOVE ES,CS
|
|||
|
CALL DWORD PTR ES:PEKOR
|
|||
|
MOV SI,0
|
|||
|
RETN
|
|||
|
|
|||
|
LB6CNT DW ?
|
|||
|
DO_FLORPA:
|
|||
|
INC CS:LB6CNT
|
|||
|
CMP CS:LB6CNT,4 ;CPW!
|
|||
|
JE LB6CNTOK
|
|||
|
MOV SI,75
|
|||
|
RETN
|
|||
|
LB6CNTOK:
|
|||
|
MOV CS:LB6CNT,0
|
|||
|
|
|||
|
DO_IT_AGAIN_AND_DO_IT_NOW:
|
|||
|
MOV BX,BONUSPEK
|
|||
|
MOV AL,[BX]
|
|||
|
OR AL,AL ;IS DIGIT ZERO?
|
|||
|
JZ DIGIT_IS_ZERO
|
|||
|
DEC BYTE PTR [BX] ;R<>KNA NED BONUSEN
|
|||
|
JNZ NO_WAITS_TODAY
|
|||
|
|
|||
|
IFZEROBCD BONUSSIFFRORNA
|
|||
|
JNC NO_WAITS_TODAY
|
|||
|
|
|||
|
MOV CS:LB6CNT,-10 ;CPW!
|
|||
|
NO_WAITS_TODAY:
|
|||
|
|
|||
|
MOV SI,ADDORPEK ;R<>KNA UPP PO<50>NGEN
|
|||
|
MOV DI,OFFSET SIFFRORNA
|
|||
|
CALL ADDSCOREBCD
|
|||
|
|
|||
|
SOUNDEFFECT S_SCORELJUD,0
|
|||
|
|
|||
|
JMP STEP_DONE
|
|||
|
|
|||
|
DIGIT_IS_ZERO:
|
|||
|
;FLER SIFFROR?
|
|||
|
INC ADDORPEK ;NEXT DIGIT IN PO<50>NGEN
|
|||
|
CMP ADDORPEK,OFFSET ADDOR+12
|
|||
|
JE NO_MORE_NUFFROR
|
|||
|
DEC BONUSPEK ;NEXT DIGIT IN BONUS
|
|||
|
JMP DO_IT_AGAIN_AND_DO_IT_NOW
|
|||
|
|
|||
|
STEP_DONE:
|
|||
|
;SHOW BONUSSIFFRORNA & SIFFRORNA
|
|||
|
MOV SI_siffror,OFFSET BONUSSIFFRORNA
|
|||
|
MOV DI_siffror,7*2*SW/4-16*4/4 ;10 RADER NED, 8 (12-4) TECKEN IN P<> RADEN!!
|
|||
|
MOV TABORT_DIOVRE_FNT,0
|
|||
|
MOV PRINTTASK,OFFSET PRINT8_task
|
|||
|
CALL PLIPPA_SCORE
|
|||
|
MOV SI,75 ;AVINSTALLERA EJ!
|
|||
|
RETN
|
|||
|
|
|||
|
NO_MORE_NUFFROR:
|
|||
|
mov clear_box_start,7*2*SW/4
|
|||
|
mov clear_box_bredd,16*(12-1)/4-16*4/4
|
|||
|
mov clear_box_hojd,10
|
|||
|
CALL clear_box2
|
|||
|
MOV SI,0 ;AVINSTALLERA!
|
|||
|
RETN
|
|||
|
|
|||
|
;******************************* ARNESSON
|
|||
|
|
|||
|
|
|||
|
;*******************************
|
|||
|
disa dw ?
|
|||
|
playerQ db ?
|
|||
|
hi_pos dw ?
|
|||
|
_check_high:
|
|||
|
MOV SISA,1
|
|||
|
mov al,players
|
|||
|
mov cs:playerQ,0
|
|||
|
MOV CS:DISA,0
|
|||
|
MOV DOTRUT,offset SPINTSEL_IN_HIGH
|
|||
|
JMP NORMAL_END
|
|||
|
|
|||
|
spintsel_in_high:
|
|||
|
|
|||
|
LEA SI,PLAYER_AREA.P_SIFFRORNA
|
|||
|
|
|||
|
MOV CX,4
|
|||
|
|
|||
|
add si,cs:disa
|
|||
|
add cs:disa,size player_struc
|
|||
|
|
|||
|
mov di,offset hi_score_list
|
|||
|
|
|||
|
inc cs:playerQ
|
|||
|
mov al,cs:playerQ
|
|||
|
cmp al,players
|
|||
|
jna check_list
|
|||
|
mov first_high,false
|
|||
|
cmp highscore,true
|
|||
|
je no_sad_jingle
|
|||
|
|
|||
|
mov current_priority,0
|
|||
|
mov jinglejumpcnt,1
|
|||
|
PLAYJINGLE S_GameOver
|
|||
|
mov current_priority,0
|
|||
|
mov no_demomusic,true
|
|||
|
no_sad_jingle:
|
|||
|
mov highscore,false
|
|||
|
mov si,0
|
|||
|
retn ;f<>rdig!
|
|||
|
|
|||
|
check_list:
|
|||
|
push cx
|
|||
|
mov cx,12
|
|||
|
mov bx,0
|
|||
|
check_num:
|
|||
|
mov al,[di+bx]
|
|||
|
cmp [si+bx],al
|
|||
|
jb not_beaten
|
|||
|
ja beaten
|
|||
|
inc bx
|
|||
|
loop check_num
|
|||
|
not_beaten:
|
|||
|
mov bp,false
|
|||
|
jmp poppera
|
|||
|
beaten:
|
|||
|
pop cx
|
|||
|
mov cs:hi_pos,cx
|
|||
|
;play the happy highscore jingle . . .
|
|||
|
;But only the first time!!
|
|||
|
cmp first_high,true
|
|||
|
je noplay_of_this
|
|||
|
mov first_high,true
|
|||
|
mov current_priority,0
|
|||
|
mov jinglejumpcnt,1
|
|||
|
mov highscore,true
|
|||
|
playjingle_PENETRATE S_GameOver2 ;(HiScore jingle)
|
|||
|
noplay_of_this:
|
|||
|
mov sisa,1
|
|||
|
mov bp,true
|
|||
|
jmp done_hi_check
|
|||
|
|
|||
|
poppera:
|
|||
|
pop cx
|
|||
|
add di,12+3+1 ;12 nuffror, 3 bokst<73>ver
|
|||
|
loop check_list
|
|||
|
|
|||
|
done_hi_check:
|
|||
|
mov si,1
|
|||
|
cmp bp,true
|
|||
|
jne dont_getit
|
|||
|
;*****************
|
|||
|
;Print 'highscore pl x ( )' and install key-reader TS
|
|||
|
|
|||
|
mov al,cs:playerQ
|
|||
|
mov hajjskar[13],al
|
|||
|
add hajjskar[13],'7'
|
|||
|
|
|||
|
mov dotrut,offset get_it_from_keyboard
|
|||
|
|
|||
|
mov hojd_1,13
|
|||
|
mov tabort_diovre,0
|
|||
|
mov tabort_diovre_fnt,0
|
|||
|
mov hojd_add,bredd_1/4-sw*13*2/4
|
|||
|
mov font_adr,offset font13
|
|||
|
MOV AX,offset hajjskar
|
|||
|
MOVE DI,sw*2*2/4
|
|||
|
call PRINT_TEXT
|
|||
|
|
|||
|
;*****************
|
|||
|
mov si,1
|
|||
|
retn
|
|||
|
|
|||
|
dont_getit:
|
|||
|
retn
|
|||
|
|
|||
|
get_it_from_keyboard:
|
|||
|
;************ insert in list
|
|||
|
push es
|
|||
|
move es,ds
|
|||
|
mov cx,cs:hi_pos
|
|||
|
|
|||
|
mov si,offset hi_score_list+(12+3+1)*3-1
|
|||
|
mov di,offset hi_score_list+(12+3+1)*4-1
|
|||
|
dec cx
|
|||
|
jcxz pos4
|
|||
|
|
|||
|
mov ax,12+3+1
|
|||
|
mul cx
|
|||
|
mov cx,ax
|
|||
|
|
|||
|
std
|
|||
|
rep movsb
|
|||
|
|
|||
|
pos4: sub di,(12+3+1)-1
|
|||
|
cld
|
|||
|
lea si,player_area.p_siffrorna
|
|||
|
MOV CX,SIZE PLAYER_STRUC
|
|||
|
MOV AL,CS:PLAYERQ
|
|||
|
dec al
|
|||
|
NIL AH
|
|||
|
MUL CX
|
|||
|
ADD SI,AX
|
|||
|
mov cx,12
|
|||
|
rep movsb ;mov in new hiscore
|
|||
|
pop es
|
|||
|
;di pekar d<>r namnet ska petas in!!
|
|||
|
mov cs:nof_chars_to_read,3
|
|||
|
mov cs:place_hi,di
|
|||
|
mov scan_code,-1 ;l<>s ev. tidigare tangenttryck!
|
|||
|
mov dotrut,offset read_keyboardet
|
|||
|
mov si,1
|
|||
|
retn
|
|||
|
;*****************
|
|||
|
place_hi dw ?
|
|||
|
nof_chars_to_read dw ?
|
|||
|
|
|||
|
read_keyboardet:
|
|||
|
push es
|
|||
|
mov al,scan_code
|
|||
|
cmp al,-1
|
|||
|
je feltecken_du ;ej tryckt!
|
|||
|
mov scan_code,-1
|
|||
|
mov bx,offset alfa_keys
|
|||
|
xlat
|
|||
|
cmp al,0
|
|||
|
je feltecken_du ;felaktigt tecken!
|
|||
|
move es,ds
|
|||
|
mov di,cs:place_hi
|
|||
|
stosb
|
|||
|
push ax
|
|||
|
mov cs:place_hi,di
|
|||
|
mov ax,3
|
|||
|
sub ax,cs:nof_chars_to_read
|
|||
|
mov di,offset hajjskar+16
|
|||
|
add di,ax
|
|||
|
pop ax
|
|||
|
stosb ;skriv te sk<73>rm texten . .
|
|||
|
dec cs:nof_chars_to_read
|
|||
|
jnz kvar_svar
|
|||
|
mov sisa,60 ;cpw!
|
|||
|
mov dotrut,offset wait_a_little
|
|||
|
pop es
|
|||
|
|
|||
|
mov hojd_1,13
|
|||
|
mov tabort_diovre,0
|
|||
|
mov tabort_diovre_fnt,0
|
|||
|
mov hojd_add,bredd_1/4-sw*13*2/4
|
|||
|
mov font_adr,offset font13
|
|||
|
MOV AX,offset hajjskar
|
|||
|
MOVE DI,sw*2*2/4
|
|||
|
call PRINT_TEXT
|
|||
|
|
|||
|
;cleara namnet!
|
|||
|
push es
|
|||
|
move es,ds
|
|||
|
mov al,' '
|
|||
|
mov cx,3
|
|||
|
mov di,offset hajjskar+16
|
|||
|
rep stosb ;skriv te sk<73>rm texten . .
|
|||
|
pop es
|
|||
|
jmp dont_write_play
|
|||
|
kvar_svar:
|
|||
|
pop es
|
|||
|
mov hojd_1,13
|
|||
|
mov tabort_diovre,0
|
|||
|
mov tabort_diovre_fnt,0
|
|||
|
mov hojd_add,bredd_1/4-sw*13*2/4
|
|||
|
mov font_adr,offset font13
|
|||
|
MOV AX,offset hajjskar
|
|||
|
MOVE DI,sw*2*2/4
|
|||
|
call PRINT_TEXT
|
|||
|
|
|||
|
dont_write_play:
|
|||
|
mov si,sisa
|
|||
|
retn
|
|||
|
feltecken_du:
|
|||
|
pop es
|
|||
|
mov si,sisa
|
|||
|
retn
|
|||
|
|
|||
|
wait_a_little:
|
|||
|
dec si
|
|||
|
cmp si,30 ;cpw!
|
|||
|
jne dont_blame_me
|
|||
|
push si
|
|||
|
mov hojd_1,13
|
|||
|
mov tabort_diovre,0
|
|||
|
mov tabort_diovre_fnt,0
|
|||
|
mov hojd_add,bredd_1/4-sw*13*2/4
|
|||
|
mov font_adr,offset font13
|
|||
|
MOV AX,offset stjaernor
|
|||
|
MOVE DI,sw*2*2/4
|
|||
|
call PRINT_TEXT
|
|||
|
pop si
|
|||
|
dont_blame_me:
|
|||
|
cmp si,2
|
|||
|
jnbe retta_oooo
|
|||
|
mov dotrut,offset spintsel_in_high
|
|||
|
mov si,1
|
|||
|
retta_oooo:
|
|||
|
retn
|
|||
|
_loop_:
|
|||
|
dec cs:looper
|
|||
|
JZ NOJUMPER_tomorrow
|
|||
|
add bx,4
|
|||
|
mov bx,[bx]
|
|||
|
MOV NEXT_A,BX
|
|||
|
jmp [bx]
|
|||
|
|
|||
|
looper dw ?
|
|||
|
_setloop:
|
|||
|
NOJUMPER_tomorrow:
|
|||
|
;reinstall loop val
|
|||
|
mov ax,[bx+2]
|
|||
|
mov cs:looper,ax
|
|||
|
|
|||
|
MOV SISA,1
|
|||
|
mov dotrut,offset WAITRUT
|
|||
|
jmp print_end
|
|||
|
|
|||
|
_turnonturbo:
|
|||
|
endflash 9
|
|||
|
lightoff 9
|
|||
|
call getthegoalyoufool
|
|||
|
mov bx,offset turboTS
|
|||
|
mov next_A,bx
|
|||
|
jmp [bx]
|
|||
|
|
|||
|
_return_of_the_evil_supermode:
|
|||
|
CMP INHIBIT_COUNT_DOWN,TRUE
|
|||
|
JNE INGA_KONSTIGHETER
|
|||
|
MOV INHIBIT_COUNT_DOWN,FALSE
|
|||
|
MOV BX,OFFSET BACK_2_TURBOTS
|
|||
|
MOV NEXT_A,BX
|
|||
|
MOV TURBOMODE,TRUE
|
|||
|
READY_2_CALL:
|
|||
|
JMP [BX]
|
|||
|
INGA_KONSTIGHETER:
|
|||
|
JMP NORMAL_END
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
SHOWER DB ?
|
|||
|
player_adr dw ?
|
|||
|
_INIT_SCORE:
|
|||
|
mov cs:player_adr,0
|
|||
|
sub cs:player_adr,size player_struc
|
|||
|
MOV PLAYERSTEXT[7],0+'7'
|
|||
|
MOV PLAY_TEXT[8],0+'7'
|
|||
|
MOV AL,PLAYERS
|
|||
|
MOV CS:SHOWER,AL
|
|||
|
inc CS:SHOWER
|
|||
|
|
|||
|
MOV SISA,1
|
|||
|
mov dotrut,offset WAITRUT
|
|||
|
jmp normal_end
|
|||
|
_SHOW_SCORE:
|
|||
|
INC PLAYERSTEXT[7]
|
|||
|
INC PLAY_TEXT[8]
|
|||
|
add cs:player_adr,size player_struc
|
|||
|
DEC CS:SHOWER
|
|||
|
JZ NOJUMPER
|
|||
|
|
|||
|
|
|||
|
MOV SISA,1
|
|||
|
mov dotrut,offset ShowIt
|
|||
|
|
|||
|
cmp CS:SHOWER,1
|
|||
|
je normal_end
|
|||
|
|
|||
|
add bx,2
|
|||
|
mov bx,[bx]
|
|||
|
MOV NEXT_A,BX
|
|||
|
RETN
|
|||
|
|
|||
|
NOJUMPER:
|
|||
|
MOV SISA,1
|
|||
|
mov dotrut,offset WAITRUT
|
|||
|
jmp normal_end
|
|||
|
|
|||
|
ShowIt:
|
|||
|
mov hojd_1,5
|
|||
|
mov tabort_diovre,0
|
|||
|
mov tabort_diovre_fnt,0
|
|||
|
mov hojd_add,bredd_1/4-sw*5*2/4
|
|||
|
mov font_adr,offset font5
|
|||
|
MOV AX,offset PLAYERSTEXT
|
|||
|
MOVE DI,sw*2*2/4
|
|||
|
call PRINT_TEXT
|
|||
|
; mov si,offset siffrorna
|
|||
|
|
|||
|
mov bx,cs:player_adr
|
|||
|
LEA SI,PLAYER_AREA[BX].P_SIFFRORNA
|
|||
|
|
|||
|
mov bx,336*2/4+(320-12*16)/4 ;h<>ger justerad!
|
|||
|
MOVE ES,CS
|
|||
|
CALL DWORD PTR ES:PEKOR
|
|||
|
MOV SI,0
|
|||
|
RETN
|
|||
|
|
|||
|
_TurnOffSpecialMode:
|
|||
|
MOVE SISA,1
|
|||
|
MOV DOTRUT,OFFSET WAITRUT
|
|||
|
mov specialmode,false
|
|||
|
mov current_priority,0
|
|||
|
jmp Normal_End
|
|||
|
|
|||
|
_knacket:
|
|||
|
MOVE CS:KNACKTIDEN,KNACKTID_LO
|
|||
|
CMP HI_RES,TRUE
|
|||
|
JNE NOTHIRES34
|
|||
|
MOVE CS:KNACKTIDEN,KNACKTID_HI
|
|||
|
NOTHIRES34:
|
|||
|
mov dotrut,offset knackrut1
|
|||
|
mov sisa,1
|
|||
|
MOV PLAYER,1 ;F<>R CHECK_XXBALL
|
|||
|
jmp normal_end
|
|||
|
|
|||
|
|
|||
|
;tid mellan knack samt antal knack . . .
|
|||
|
knacktid_HI=13 ;CPW!
|
|||
|
knacktid_LO=11 ;CPW!
|
|||
|
nof_banks=18 ;CPW!
|
|||
|
knack_d_tid=5 ;CPW!
|
|||
|
|
|||
|
knackrut1:
|
|||
|
PLAYJINGLE_PENETRATE S_endfig
|
|||
|
MOV LASTJINGLE,55 ;TYST EFTER FULLGJORD PENETRERING
|
|||
|
mov dotrut,offset knackrut2
|
|||
|
;g<>r text me sista nuffrerna!!
|
|||
|
mov cl,players
|
|||
|
nil ch
|
|||
|
mov di,offset last_text
|
|||
|
mov ah,' '
|
|||
|
mov bx,10 ;n<>st sista!
|
|||
|
LEA SI,PLAYER_AREA[BX].P_SIFFRORNA
|
|||
|
push es
|
|||
|
move es,data
|
|||
|
mov bx,0
|
|||
|
make_last:
|
|||
|
mov al,ds:[si]
|
|||
|
add si,size player_struc
|
|||
|
add al,'7'
|
|||
|
stosw
|
|||
|
mov word ptr offset [flashlast+bx],ax ;kopiera texten f<>r senare blink
|
|||
|
|
|||
|
add bx,2
|
|||
|
loop make_last
|
|||
|
|
|||
|
pop es
|
|||
|
mov hojd_1,5
|
|||
|
mov tabort_diovre,0
|
|||
|
mov tabort_diovre_fnt,0
|
|||
|
mov hojd_add,bredd_1/4-sw*5*2/4
|
|||
|
mov font_adr,offset font5
|
|||
|
MOV AX,offset last_text
|
|||
|
MOVE DI,sw*2/4
|
|||
|
call PRINT_TEXT
|
|||
|
|
|||
|
MOV SI,NOF_BANKS
|
|||
|
MOV SISA,NOF_BANKS
|
|||
|
|
|||
|
MOVE CS:TIMGLAS,KNACKTID_LO
|
|||
|
MOVE CS:KNACKTIDEN,KNACKTID_LO
|
|||
|
CMP HI_RES,TRUE
|
|||
|
JNE NOTHIRES33
|
|||
|
MOVE CS:TIMGLAS,KNACKTID_HI
|
|||
|
MOVE CS:KNACKTIDEN,KNACKTID_HI
|
|||
|
NOTHIRES33:
|
|||
|
retn
|
|||
|
|
|||
|
TIMGLAS DW ?
|
|||
|
KNACKTIDEN DW KNACKTID_LO
|
|||
|
|
|||
|
knackrut2:
|
|||
|
dec cs:timglas
|
|||
|
jz no_ret
|
|||
|
ret
|
|||
|
no_ret:
|
|||
|
push si
|
|||
|
move cs:timglas,cs:knacktiden
|
|||
|
mov ax,last_pos
|
|||
|
;ax=linje adress, ett steg=32 pixel=> 1 steg= 8 adr.(mcgab)
|
|||
|
;(1 char=8*2 pix, 1 steg=2 char)
|
|||
|
shl ax,3
|
|||
|
mov hojd_1,5
|
|||
|
mov tabort_diovre,0
|
|||
|
mov tabort_diovre_fnt,0
|
|||
|
mov hojd_add,bredd_1/4-sw*5*2/4
|
|||
|
mov font_adr,offset font5
|
|||
|
MOVE DI,sw*2*8/4
|
|||
|
add di,ax
|
|||
|
MOV AX,offset startext
|
|||
|
call PRINT_TEXT
|
|||
|
mov si,1
|
|||
|
|
|||
|
;knacka(????) fram en ny slutsiffra!
|
|||
|
mov ax,slump_countern
|
|||
|
mov dx,0
|
|||
|
mov cx,10
|
|||
|
div cx
|
|||
|
;resten i de<64>ks e mellan n<>ll <20> ti<74>
|
|||
|
|
|||
|
if stones
|
|||
|
inc last_pos
|
|||
|
cmp last_pos,10
|
|||
|
jnae over_iii
|
|||
|
mov last_pos,0
|
|||
|
sub cs:knacktiden,knack_d_tid
|
|||
|
over_iii:
|
|||
|
|
|||
|
else
|
|||
|
mov last_pos,dx
|
|||
|
endif
|
|||
|
mov ax,last_pos
|
|||
|
add ax,'7'
|
|||
|
mov slutsiffra[0],al
|
|||
|
sub ax,'7'
|
|||
|
shl ax,3
|
|||
|
mov hojd_1,5
|
|||
|
mov tabort_diovre,0
|
|||
|
mov tabort_diovre_fnt,0
|
|||
|
mov hojd_add,bredd_1/4-sw*5*2/4
|
|||
|
mov font_adr,offset font5
|
|||
|
MOV AX_PRINT,offset slutsiffra
|
|||
|
MOVE DI_PRINT,sw*2*8/4
|
|||
|
add di_print,ax
|
|||
|
MOV PRINTTASK,OFFSET PRINT_TEXT
|
|||
|
pop si
|
|||
|
dec si
|
|||
|
cmp si,0
|
|||
|
jne retta_nuda
|
|||
|
|
|||
|
;kolla om siffrorna st<73>mmer f<>r n<>en . . .
|
|||
|
|
|||
|
mov cl,players
|
|||
|
nil ch
|
|||
|
mov si,offset last_text
|
|||
|
mov bx,last_pos
|
|||
|
add bx,'7'
|
|||
|
|
|||
|
mov di,offset flashlast
|
|||
|
|
|||
|
move es,data
|
|||
|
mov cs:alla_glada,false
|
|||
|
READ_NUFFROR:
|
|||
|
lodsw
|
|||
|
cmp al,bl
|
|||
|
jne gladgnu_tu
|
|||
|
mov cs:alla_glada,true
|
|||
|
add di,2
|
|||
|
loop READ_NUFFROR
|
|||
|
jmp ture_sventton_kravdes_har
|
|||
|
gladgnu_tu:
|
|||
|
mov ax,'**'
|
|||
|
stosw
|
|||
|
loop READ_NUFFROR
|
|||
|
ture_sventton_kravdes_har:
|
|||
|
cmp cs:alla_glada,true
|
|||
|
je gladgnu
|
|||
|
mov si,0
|
|||
|
jmp retta_nuda ;-( ingen glad )-:
|
|||
|
|
|||
|
;Om javisst, spela glad gnu <20> flasha!
|
|||
|
gladgnu:
|
|||
|
MOV MATRIX_SPEED,3
|
|||
|
MOV MATRIX_CNT,3
|
|||
|
MOV MATRIX_ONOFF,TRUE
|
|||
|
MOV MATRIX_IS_FLASHING,TRUE
|
|||
|
|
|||
|
mov hojd_1,5
|
|||
|
mov tabort_diovre,0
|
|||
|
mov tabort_diovre_fnt,0
|
|||
|
mov hojd_add,bredd_1/4-sw*5*2/4
|
|||
|
mov font_adr,offset font5
|
|||
|
MOV AX,offset flashlast
|
|||
|
MOVE DI,sw*2/4
|
|||
|
call PRINT_TEXT
|
|||
|
|
|||
|
|
|||
|
mov current_priority,0
|
|||
|
PLAYJINGLE S_Knacket
|
|||
|
MOV JINGLEJUMPCNT,1
|
|||
|
mov current_priority,0
|
|||
|
mov lastjingle,55
|
|||
|
mov si,0
|
|||
|
retta_nuda:
|
|||
|
retn
|
|||
|
|
|||
|
alla_glada db ?
|
|||
|
|
|||
|
|
|||
|
_CHECK_XXBALLS: ;OBS! TV<54> ING<4E>NGAR TILL DENNA RUTIN
|
|||
|
;INPUT: LAST_TEXT, LAST_POS, PLAYER, PLAYERS
|
|||
|
;OUTPUT: FT_PEKARE, PLAYER
|
|||
|
TESTNEXTPL:
|
|||
|
PUSH BX
|
|||
|
|
|||
|
MOV BL,PLAYER
|
|||
|
NIL BH
|
|||
|
SHL BX,1
|
|||
|
ADD BX,OFFSET LAST_TEXT-2 ;bx pekar p<> spelare n's slutsiffra
|
|||
|
|
|||
|
MOV AL,[BX]
|
|||
|
MOV WORD PTR [BX],'XX' ;DESTROY HIM MY ROBOTS!
|
|||
|
SUB AL,'7'
|
|||
|
NIL AH
|
|||
|
|
|||
|
POP BX
|
|||
|
|
|||
|
CMP LAST_POS,AX
|
|||
|
JE THIS_ONE ;HAN SKA F<> XXBALL!!!
|
|||
|
|
|||
|
INC PLAYER ;INGEN XXBALL F<>R HONOM!
|
|||
|
MOV AL,PLAYER
|
|||
|
CMP AL,PLAYERS
|
|||
|
JNA TESTNEXTPL
|
|||
|
|
|||
|
MOV BX,OFFSET after_xxballTS
|
|||
|
MOV NEXT_A,BX
|
|||
|
JMP [BX]
|
|||
|
|
|||
|
THIS_ONE:
|
|||
|
MOV AL,PLAYER
|
|||
|
ADD AL,'7' ;SEPEKOMPENSERING
|
|||
|
MOV PLAYERSTEXT[7],AL
|
|||
|
|
|||
|
MOV XXBALLE,TRUE
|
|||
|
MOV BX,OFFSET shoOt_AGAIN_Onts
|
|||
|
MOV NEXT_A,BX
|
|||
|
JMP [BX]
|
|||
|
|
|||
|
;*********************************
|
|||
|
|
|||
|
_KOLLA_XXBALL:
|
|||
|
CMP XXBALLE,FALSE
|
|||
|
JE HU_
|
|||
|
PUSH BX
|
|||
|
CALL VARS_2_P_STRUC ;STORE TABLE AND SCORE!
|
|||
|
POP BX
|
|||
|
|
|||
|
CMP LIGHTSTATUS[55],TRUE ;LAUGH AGAIN?
|
|||
|
JE LET_HIM_SHOOT_AGAIN ;MEGA-HOPP
|
|||
|
|
|||
|
MOV AL,PLAYER ;IS HE THE HIGHEST PLAYER?
|
|||
|
CMP AL,PLAYERS
|
|||
|
JE HIGHEST_PLAYER2
|
|||
|
|
|||
|
INC PLAYER ;CHANGE TO THE NEXT PLAYER!
|
|||
|
JMP PLAYER_CHANGED2
|
|||
|
|
|||
|
HIGHEST_PLAYER2:
|
|||
|
MOV BX,OFFSET AFTER_XXBALLTS
|
|||
|
MOV NEXT_A,BX
|
|||
|
JMP [BX]
|
|||
|
|
|||
|
PLAYER_CHANGED2:
|
|||
|
MOV AL,PLAYER
|
|||
|
ADD AL,'7' ;SEPEKOMPENSERING
|
|||
|
MOV PLAYERSTEXT[7],AL
|
|||
|
|
|||
|
MOV BX,OFFSET CHECK_XXBALLTS
|
|||
|
MOV NEXT_A,BX
|
|||
|
JMP [BX]
|
|||
|
|
|||
|
;**********
|
|||
|
|
|||
|
|
|||
|
_CHANGE_PLAYER:
|
|||
|
PUSH BX
|
|||
|
CMP HOLDBONUSFLAG,TRUE
|
|||
|
JNE NOT_HB_TRUE
|
|||
|
MOV SI,OFFSET TEMPSIFFRORNA ;HOLD THE BONUS!
|
|||
|
MOV DI,OFFSET BONUSSIFFRORNA
|
|||
|
MOVE ES,DS
|
|||
|
MOV CX,6
|
|||
|
REP MOVSW
|
|||
|
NOT_HB_TRUE:
|
|||
|
|
|||
|
CALL VARS_2_P_STRUC ;STORE TABLE AND SCORE!
|
|||
|
|
|||
|
POP BX
|
|||
|
CMP LIGHTSTATUS[55],TRUE ;LAUGH AGAIN?
|
|||
|
JE LET_HIM_SHOOT_AGAIN
|
|||
|
PUSH BX
|
|||
|
|
|||
|
MOV AL,PLAYER ;IS HE THE HIGHEST PLAYER?
|
|||
|
CMP AL,PLAYERS
|
|||
|
JE HIGHEST_PLAYER
|
|||
|
|
|||
|
INC PLAYER ;CHANGE TO THE NEXT PLAYER!
|
|||
|
JMP PLAYER_CHANGED
|
|||
|
|
|||
|
HIGHEST_PLAYER:
|
|||
|
INC BALLS[11]
|
|||
|
MOV AL,NO_OF_BALLS
|
|||
|
CMP BALLS[11],AL
|
|||
|
JA NO_MORE_BALLS
|
|||
|
MOV PLAYER,1 ;NEXT PLAYER IS FIRST PLAYER!
|
|||
|
MOV AL,BALLS[11]
|
|||
|
ADD AL,'7' ;SEPEKOMPENSERING
|
|||
|
MOV BALLSTEXT[5],AL
|
|||
|
MOV play_TEXT[18],AL
|
|||
|
|
|||
|
PLAYER_CHANGED:
|
|||
|
|
|||
|
MOV AL,PLAYER
|
|||
|
ADD AL,'7' ;SEPEKOMPENSERING
|
|||
|
MOV PLAYERSTEXT[7],AL
|
|||
|
MOV play_TEXT[8],AL
|
|||
|
|
|||
|
ADDTASK NEW_BALL_TASK ;TO GAME FROM GAME
|
|||
|
POP BX
|
|||
|
|
|||
|
HU_: ADD BX,2 ;TASKSYTEM, HOPPA TILL N<>STA/AVSLUT
|
|||
|
CMP WORD PTR [BX],0
|
|||
|
JNE _NEXTp_7
|
|||
|
MOV BX,0
|
|||
|
MOV NEXT_A,BX
|
|||
|
RETN
|
|||
|
_NEXTp_7:
|
|||
|
MOV NEXT_A,BX
|
|||
|
JMP [BX]
|
|||
|
|
|||
|
LET_HIM_SHOOT_AGAIN: ;2 ING<4E>NGAR!
|
|||
|
MOV BX,OFFSET shoot_again_onTS
|
|||
|
MOV NODOTCOUNT,0
|
|||
|
UPDAT_SCORE
|
|||
|
; MOV NEXT_A,BX ;CP?
|
|||
|
JMP [BX]
|
|||
|
|
|||
|
_NEW_BALL2:
|
|||
|
PUSH BX
|
|||
|
ADDTASK NEW_BALL_TASK ;TO GAME FROM GAME
|
|||
|
POP BX
|
|||
|
JMP HU_
|
|||
|
|
|||
|
|
|||
|
NO_MORE_BALLS:
|
|||
|
CALL VARS_2_P_STRUC ;STORE LAST PLAYER'S SCORE TOO!
|
|||
|
POP BX
|
|||
|
MOV BX,OFFSET out_of_ballsTS
|
|||
|
MOV NEXT_A,BX
|
|||
|
JMP [BX]
|
|||
|
RETN
|
|||
|
|
|||
|
|
|||
|
_2_DEMO_MODE:
|
|||
|
ADDTASK TO_DEMO_FROM_GAME
|
|||
|
JMP HU_
|
|||
|
zeroscore:
|
|||
|
push es
|
|||
|
move es,ds
|
|||
|
mov cx,12/2
|
|||
|
mov ax,0
|
|||
|
mov di,offset siffrorna
|
|||
|
rep stosw
|
|||
|
pop es
|
|||
|
retn
|
|||
|
|
|||
|
TO_DEMO_FROM_GAME:
|
|||
|
MOV PLAYERS_CP,TRUE
|
|||
|
CALL GO_DEMO_MODE ;TO DEMO FROM GAME
|
|||
|
MOV SCREENFORCE,BANH-(SH_LO-SPLH)
|
|||
|
CMP HI_RES,TRUE
|
|||
|
JNE NOTHIRES17
|
|||
|
MOV SCREENFORCE,BANH-(SH_HI-SPLH)
|
|||
|
NOTHIRES17:
|
|||
|
MOV CARMEN,-1
|
|||
|
call zeroscore
|
|||
|
CALL SLACK_LIGHTS
|
|||
|
MOV ADDPLAYERS,TRUE
|
|||
|
SUICIDE
|
|||
|
|
|||
|
|
|||
|
LOOSE_BALL ENDP
|
|||
|
|
|||
|
|
|||
|
|
|||
|
;******************************** NEW_BALL ************************************
|
|||
|
|
|||
|
NEW_BALL_TASK:
|
|||
|
WAITSYNCS 60
|
|||
|
CALL NEW_BALL
|
|||
|
RETN ;PGA NEWBALL
|
|||
|
|
|||
|
NEW_BALL PROC NEAR ;ENDA S<>TTET ATT F<> UT EN BOLL P<> BANAN!
|
|||
|
MOV LOOSING,FALSE
|
|||
|
MOV BALL_DOWN,FALSE
|
|||
|
MOV I_UTSKJUT,TRUE
|
|||
|
|
|||
|
CALL WHEN_NEW_BALL_RESET
|
|||
|
CALL WHEN_NEW_BALL_RESET_TABLE
|
|||
|
|
|||
|
MOV HOLDSTILL,TRUE
|
|||
|
SETBALLPOS STARTX-5-15,STARTY-5,0,0,FALSE
|
|||
|
MOV SCREENFORCE2,-1 ;500
|
|||
|
|
|||
|
CMP ADDPLAYERS,TRUE
|
|||
|
JE NOSP
|
|||
|
CMP MUSICOK,TRUE
|
|||
|
JE MUSIC_ALREADY_OK
|
|||
|
PLAYJINGLE S_SPRING
|
|||
|
MOV MUSICOK,FALSE
|
|||
|
MUSIC_ALREADY_OK:
|
|||
|
NOSP:
|
|||
|
MOV LASTJINGLE,0
|
|||
|
MOV SCORECHANGED,FALSE
|
|||
|
|
|||
|
CMP ADDPLAYERS,TRUE
|
|||
|
JE ITS_FROM_DEMO
|
|||
|
CALL NEW_BALL_PART_TWO
|
|||
|
RETN
|
|||
|
|
|||
|
ITS_FROM_DEMO:
|
|||
|
ADDTASK SNART_NEW_BALL
|
|||
|
RETN
|
|||
|
|
|||
|
NEW_BALL_PART_TWO:
|
|||
|
ADDTASK SOUNDNEWBALL
|
|||
|
ADDTASK SETBALL
|
|||
|
ADDTASK SOUNDBRICKUPP
|
|||
|
|
|||
|
MOV ALLOWFLIP,TRUE
|
|||
|
MOV TILTFLAG,FALSE
|
|||
|
MOV TILTCOUNTER,0
|
|||
|
MOV SCORECHANGED,FALSE
|
|||
|
RETN
|
|||
|
|
|||
|
SOUNDBRICKUPP:
|
|||
|
WAITSYNCS 5
|
|||
|
SOUNDEFFECT SBRICKUPP,0
|
|||
|
SUICIDE
|
|||
|
|
|||
|
SOUNDNEWBALL:
|
|||
|
WAITSYNCS 50
|
|||
|
SOUNDEFFECT SNEWBALL,0
|
|||
|
SUICIDE
|
|||
|
|
|||
|
SETBALL:
|
|||
|
WAITSYNCS 80
|
|||
|
SETBALLPOS STARTX-5,STARTY-5,10,0,FALSE
|
|||
|
MOV HOLDSTILL,FALSE
|
|||
|
MOV SCREENFORCE2,-1
|
|||
|
SUICIDE
|
|||
|
;FIAT UNO
|
|||
|
NEW_BALL ENDP
|
|||
|
|
|||
|
MOTA_BORT_INACTIVE_SLINGAN:
|
|||
|
;OBS! AVINSTALLERA DENNA GENOM "MOV I_UTSKJUT,FALSE"
|
|||
|
MOV NODOTCOUNT,0
|
|||
|
CMP I_UTSKJUT,FALSE
|
|||
|
JE TA_BORT_MEJ
|
|||
|
RETN
|
|||
|
TA_BORT_MEJ:
|
|||
|
SUICIDE
|
|||
|
|
|||
|
|
|||
|
P_STRUC_2_VARS PROC NEAR ;INPUT: PLAYER
|
|||
|
MOV BL,PLAYER
|
|||
|
DEC BL
|
|||
|
NIL BH
|
|||
|
MOV AX,SIZE PLAYER_STRUC
|
|||
|
MUL BX
|
|||
|
MOV BX,AX ;BX=INDEX TO CORRECT PLAYER DATA IN PLAYER_AREA
|
|||
|
|
|||
|
MOV CX,12/2
|
|||
|
MOVE ES,DS
|
|||
|
|
|||
|
LEA SI,PLAYER_AREA[BX].P_SIFFRORNA
|
|||
|
MOV DI,OFFSET SIFFRORNA
|
|||
|
MOV CX,12/2
|
|||
|
REP MOVSW
|
|||
|
|
|||
|
LEA SI,PLAYER_AREA[BX].P_BONUSSIFFRORNA
|
|||
|
MOV DI,OFFSET BONUSSIFFRORNA
|
|||
|
MOV CX,12/2
|
|||
|
REP MOVSW
|
|||
|
|
|||
|
LEA SI,PLAYER_AREA[BX].P_cyclonecounterBCD
|
|||
|
MOV DI,OFFSET cyclonecounterBCD
|
|||
|
MOV CX,12/2
|
|||
|
REP MOVSW
|
|||
|
|
|||
|
LEA SI,PLAYER_AREA[BX].P_or_total
|
|||
|
MOV DI,OFFSET or_total
|
|||
|
MOV CX,12/2
|
|||
|
REP MOVSW
|
|||
|
|
|||
|
LEA SI,PLAYER_AREA[BX].P_tm_total
|
|||
|
MOV DI,OFFSET tm_total
|
|||
|
MOV CX,12/2
|
|||
|
REP MOVSW
|
|||
|
|
|||
|
move cyclonecounter,PLAYER_AREA[BX].P_cyclonecount
|
|||
|
|
|||
|
move nextjump,player_area[bx].p_nextjump
|
|||
|
move nextoffroad,player_area[bx].p_nextoffroad
|
|||
|
move speeden,player_area[bx].p_speeden
|
|||
|
move gearet,player_area[bx].p_gearet
|
|||
|
|
|||
|
move pos_flash,player_area[bx].p_pos_flash
|
|||
|
move pos_light,player_area[bx].p_pos_light
|
|||
|
|
|||
|
moval holdbonuscount,player_area[bx].p_hbcount
|
|||
|
|
|||
|
moval lightstatus[22],player_area[bx].p_gear
|
|||
|
moval lightstatus[23],player_area[bx].p_ear
|
|||
|
moval lightstatus[24],player_area[bx].p_aron
|
|||
|
moval lightstatus[25],player_area[bx].p_rapa
|
|||
|
moval lightstatus[50],player_area[bx].p_part1_l
|
|||
|
moval lightstatus[51],player_area[bx].p_part2_l
|
|||
|
moval lightstatus[52],player_area[bx].p_part3_l
|
|||
|
moval lightstatus[53],player_area[bx].p_part4_l
|
|||
|
moval lightstatus[54],player_area[bx].p_part5_l
|
|||
|
|
|||
|
moval lightstatus[10],player_area[bx].p_part1
|
|||
|
moval lightstatus[11],player_area[bx].p_part2
|
|||
|
moval lightstatus[12],player_area[bx].p_part3
|
|||
|
moval lightstatus[13],player_area[bx].p_part4
|
|||
|
moval lightstatus[14],player_area[bx].p_part5
|
|||
|
move carparten,player_area[bx].p_carparten
|
|||
|
|
|||
|
mov al,player_area[bx].p_goallight
|
|||
|
mov lightstatus[9],al
|
|||
|
|
|||
|
call update_my_lights
|
|||
|
RETN
|
|||
|
|
|||
|
P_STRUC_2_VARS ENDP
|
|||
|
|
|||
|
update_my_lights:
|
|||
|
mov cx,gearet
|
|||
|
cmp gearet,0
|
|||
|
je kopplingenpaj
|
|||
|
mov al,26
|
|||
|
automatlada:
|
|||
|
push ax cx
|
|||
|
lighton al
|
|||
|
pop cx ax
|
|||
|
inc al
|
|||
|
loop automatlada
|
|||
|
kopplingenpaj:
|
|||
|
;*********************
|
|||
|
nof_light=4
|
|||
|
start_light=22
|
|||
|
set_lights
|
|||
|
;**********************
|
|||
|
|
|||
|
nil di
|
|||
|
mov al,50
|
|||
|
mov cx,5
|
|||
|
nxt_flash:
|
|||
|
cmp lightstatus[50+di],true
|
|||
|
jne noflash_now
|
|||
|
push ax bx di
|
|||
|
test al,1
|
|||
|
jne syncor_pynkor
|
|||
|
syncedflash al,pos_speed,pos_syncer
|
|||
|
jmp ocktor_kompostor
|
|||
|
syncor_pynkor:
|
|||
|
invertedsyncedflash al,pos_speed,pos_syncer
|
|||
|
ocktor_kompostor:
|
|||
|
pop di bx ax
|
|||
|
noflash_now:
|
|||
|
inc al
|
|||
|
inc di
|
|||
|
loop nxt_flash
|
|||
|
|
|||
|
|
|||
|
nil di
|
|||
|
mov al,10
|
|||
|
mov cx,5
|
|||
|
nxt_flash2:
|
|||
|
cmp lightstatus[10+di],true
|
|||
|
jne noflash_now2
|
|||
|
push ax bx di
|
|||
|
lightflash al,std_lgt_speed
|
|||
|
pop di bx ax
|
|||
|
noflash_now2:
|
|||
|
inc al
|
|||
|
inc di
|
|||
|
loop nxt_flash2
|
|||
|
;*****************************************
|
|||
|
cmp lightstatus[9],true
|
|||
|
jne not_goal_left
|
|||
|
push bx
|
|||
|
lon 9
|
|||
|
pop bx
|
|||
|
not_goal_left:
|
|||
|
;******************************************************************************
|
|||
|
;S<>tt di t<>nda i position . . .
|
|||
|
MOVE DS,DATA
|
|||
|
MOVE ES,DATA
|
|||
|
|
|||
|
mov di,0
|
|||
|
mov cx,POS_LIGHT
|
|||
|
cmp cx,0
|
|||
|
je noturesventon
|
|||
|
ture:
|
|||
|
mov lightstatus[32+di],TRUE
|
|||
|
inc di
|
|||
|
loop ture
|
|||
|
noturesventon:
|
|||
|
|
|||
|
nof_light=10
|
|||
|
start_light=32
|
|||
|
set_lights
|
|||
|
|
|||
|
;<3B> s<>tt di som blinkar . . .
|
|||
|
mov cx,pos_flash
|
|||
|
sub cx,pos_light
|
|||
|
cmp cx,0
|
|||
|
je noneflashin
|
|||
|
mov dx,pos_light ;den siste som e stadig . .
|
|||
|
add dx,32 ;f<>rsta i serien
|
|||
|
litenlajla:
|
|||
|
pusha
|
|||
|
test dl,1
|
|||
|
jne inverted_fjong
|
|||
|
syncedflash dl,pos_speed,pos_syncer
|
|||
|
jmp back_fjong
|
|||
|
inverted_fjong:
|
|||
|
invertedsyncedflash dl,pos_speed,pos_syncer
|
|||
|
back_fjong:
|
|||
|
popa
|
|||
|
inc dx
|
|||
|
loop litenlajla
|
|||
|
noneflashin:
|
|||
|
;******************************************************************************
|
|||
|
;S<>tt di t<>nda i speedometern . . .
|
|||
|
mov di,0
|
|||
|
mov cx,SPEEDEN
|
|||
|
cmp cx,0
|
|||
|
je noture02
|
|||
|
|
|||
|
cmp cx,12
|
|||
|
jb overall
|
|||
|
mov cx,12
|
|||
|
overall:
|
|||
|
ture02:
|
|||
|
mov lightstatus[56+di],TRUE
|
|||
|
inc di
|
|||
|
loop ture02
|
|||
|
|
|||
|
nof_light=12
|
|||
|
start_light=56
|
|||
|
set_lights
|
|||
|
noture02:
|
|||
|
;******************************************************************************
|
|||
|
retn
|
|||
|
|
|||
|
VARS_2_P_STRUC PROC NEAR ;INPUT: PLAYER
|
|||
|
;2 ENTRIES TO THIS RUT
|
|||
|
MOV BL,PLAYER
|
|||
|
DEC BL
|
|||
|
NIL BH
|
|||
|
MOV AX,SIZE PLAYER_STRUC
|
|||
|
MUL BX
|
|||
|
MOV BX,AX ;BX=INDEX TO CORRECT PLAYER DATA IN PLAYER_AREA
|
|||
|
VARS_2_P_STRUC_2: ;USED BY WHEN_NEW_GAME_RESET!
|
|||
|
MOV CX,12/2
|
|||
|
MOVE ES,DS
|
|||
|
|
|||
|
LEA DI,PLAYER_AREA[BX].P_SIFFRORNA
|
|||
|
MOV SI,OFFSET SIFFRORNA
|
|||
|
MOV CX,12/2
|
|||
|
REP MOVSW
|
|||
|
|
|||
|
LEA DI,PLAYER_AREA[BX].P_BONUSSIFFRORNA
|
|||
|
MOV SI,OFFSET BONUSSIFFRORNA
|
|||
|
MOV CX,12/2
|
|||
|
REP MOVSW
|
|||
|
|
|||
|
LEA dI,PLAYER_AREA[BX].P_cyclonecounterBCD
|
|||
|
MOV sI,OFFSET cyclonecounterBCD
|
|||
|
MOV CX,12/2
|
|||
|
REP MOVSW
|
|||
|
|
|||
|
move PLAYER_AREA[BX].P_cyclonecount,cyclonecounter
|
|||
|
|
|||
|
move player_area[bx].p_nextjump,nextjump
|
|||
|
move player_area[bx].p_nextoffroad,nextoffroad
|
|||
|
move player_area[bx].p_speeden,speeden
|
|||
|
move player_area[bx].p_gearet,gearet
|
|||
|
move player_area[bx].p_pos_flash,pos_flash
|
|||
|
move player_area[bx].p_pos_light,pos_light
|
|||
|
mov al,lightstatus[9]
|
|||
|
mov player_area[bx].p_goallight,al
|
|||
|
|
|||
|
moval player_area[bx].p_gear,lightstatus[22]
|
|||
|
moval player_area[bx].p_ear,lightstatus[23]
|
|||
|
moval player_area[bx].p_aron,lightstatus[24]
|
|||
|
moval player_area[bx].p_rapa,lightstatus[25]
|
|||
|
|
|||
|
moval player_area[bx].p_part1,lightstatus[10]
|
|||
|
moval player_area[bx].p_part2,lightstatus[11]
|
|||
|
moval player_area[bx].p_part3,lightstatus[12]
|
|||
|
moval player_area[bx].p_part4,lightstatus[13]
|
|||
|
moval player_area[bx].p_part5,lightstatus[14]
|
|||
|
|
|||
|
moval player_area[bx].p_part1_l,lightstatus[50]
|
|||
|
moval player_area[bx].p_part2_l,lightstatus[51]
|
|||
|
moval player_area[bx].p_part3_l,lightstatus[52]
|
|||
|
moval player_area[bx].p_part4_l,lightstatus[53]
|
|||
|
moval player_area[bx].p_part5_l,lightstatus[54]
|
|||
|
|
|||
|
moval player_area[bx].p_hbcount,holdbonuscount
|
|||
|
|
|||
|
move player_area[bx].p_carparten,carparten
|
|||
|
RETN
|
|||
|
VARS_2_P_STRUC ENDP
|
|||
|
|
|||
|
|
|||
|
|
|||
|
;******************************** TILT TILT TILT ******************************
|
|||
|
HE_TILTED PROC NEAR
|
|||
|
MOV ALLOWFLIP,FALSE
|
|||
|
MOV LASTJINGLE,62
|
|||
|
PLAYJINGLE S_TILT
|
|||
|
MOV BX,OFFSET tiltTS
|
|||
|
CALL DO_MATRIX
|
|||
|
CALL RESETFLASHLIST
|
|||
|
CALL SLACK_LIGHTS
|
|||
|
RETN
|
|||
|
HE_TILTED ENDP
|
|||
|
|
|||
|
HE_ALMOST_TILTED PROC NEAR
|
|||
|
PLAYJINGLE S_DANGER
|
|||
|
RETN
|
|||
|
ENDP
|
|||
|
|
|||
|
;********************************* CHECK SHIFTKEYS ****************************
|
|||
|
|
|||
|
CHECK_SHIFTKEYS PROC NEAR
|
|||
|
CMP SHIFTPRESSED,TRUE
|
|||
|
JNE NO_SHIFT
|
|||
|
MOV SHIFTPRESSED,FALSE
|
|||
|
;****************************************
|
|||
|
;* 3 light rol *
|
|||
|
;****************************************
|
|||
|
;bur
|
|||
|
start_light=16
|
|||
|
shift_light
|
|||
|
mov b_flashin,false
|
|||
|
mov u_flashin,false
|
|||
|
mov r_flashin,false
|
|||
|
;nin
|
|||
|
start_light=19
|
|||
|
shift_light
|
|||
|
mov n_flashin,false
|
|||
|
mov i_flashin,false
|
|||
|
mov nn_flashin,false
|
|||
|
|
|||
|
cmp flash_pit_down,0
|
|||
|
jne no_allpit
|
|||
|
|
|||
|
mov flash6down,0
|
|||
|
mov flash7down,0
|
|||
|
mov flash5down,0
|
|||
|
start_light=6
|
|||
|
shift_light
|
|||
|
no_allpit:
|
|||
|
;****************************************
|
|||
|
NO_SHIFT:
|
|||
|
RETN
|
|||
|
CHECK_SHIFTKEYS ENDP
|
|||
|
|
|||
|
|
|||
|
|
|||
|
;******************************** GATES ROUTINES ******************************
|
|||
|
|
|||
|
|
|||
|
;************************* SUPER MODES CHECKS *********************************
|
|||
|
|
|||
|
|
|||
|
|
|||
|
;******************************************************************************
|
|||
|
;***************************** BRICKOR & KNAPPAR ******************************
|
|||
|
;******************************************************************************
|
|||
|
;B U R N I N' ;cpw!
|
|||
|
b_light=16
|
|||
|
u_light=17
|
|||
|
r_light=18
|
|||
|
n_light=19
|
|||
|
i_light=20
|
|||
|
nn_light=21
|
|||
|
touch_speed=1 ;hur snabb flash d<> den blitt t<>ffad
|
|||
|
touch_time=10 ;hur l<>nge flash (flash => stadig)
|
|||
|
bur_time=40 ;hur l<>nge B U R
|
|||
|
nin_time=40 ;hur l<>nge N I N
|
|||
|
gear_time=45 ;must be > than bur & nin time
|
|||
|
gear_flash=2
|
|||
|
|
|||
|
nedslapp:
|
|||
|
mov y_hast,0
|
|||
|
; cmp y_hast,-1 ;y_hast positiv = p<>v<EFBFBD>g ned!!
|
|||
|
; jl nope_ko
|
|||
|
mov ballhigh,false ;sl<73>pp ned!! cp.
|
|||
|
nope_ko:
|
|||
|
retn
|
|||
|
|
|||
|
bricka_b:
|
|||
|
|
|||
|
cmp b_flashin,true
|
|||
|
je slut_b
|
|||
|
mov b_flashin,true
|
|||
|
mov lightstatus[b_light],true ;t<>nd logik!!
|
|||
|
call bur_group
|
|||
|
jc lit_A ;alla i B U R t<>nda => t<>nd A (g e A r)
|
|||
|
; beep
|
|||
|
lightflash b_light,touch_speed ;flasha litet tag
|
|||
|
addtask end_b ;task som st<73>nger av flash
|
|||
|
slut_b: retn
|
|||
|
end_b:
|
|||
|
WAITSYNCS 10 ;touch_time
|
|||
|
; beep
|
|||
|
ENDFLASH b_light ;lys stadigt (fr<66>n flash)
|
|||
|
cmp b_flashin,true
|
|||
|
jne b_suicide
|
|||
|
lon b_light
|
|||
|
mov b_flashin,false
|
|||
|
b_suicide:
|
|||
|
SUICIDE
|
|||
|
|
|||
|
bricka_u:
|
|||
|
cmp u_flashin,true
|
|||
|
je slut_u
|
|||
|
mov u_flashin,true
|
|||
|
mov lightstatus[u_light],true ;t<>nd logik!!
|
|||
|
|
|||
|
call bur_group
|
|||
|
jc lit_A ;alla i B U R t<>nda => t<>nd A (g e A r)
|
|||
|
|
|||
|
lightflash u_light,touch_speed ;flasha litet tag
|
|||
|
addtask end_u ;task som st<73>nger av flash
|
|||
|
slut_u: retn
|
|||
|
end_u:
|
|||
|
WAITSYNCS touch_time
|
|||
|
ENDFLASH u_light ;lys stadigt (fr<66>n flash)
|
|||
|
cmp u_flashin,true
|
|||
|
jne u_suicide
|
|||
|
lon u_light
|
|||
|
mov u_flashin,false
|
|||
|
u_suicide:
|
|||
|
SUICIDE
|
|||
|
|
|||
|
bricka_r:
|
|||
|
cmp r_flashin,true
|
|||
|
je slut_r
|
|||
|
mov r_flashin,true
|
|||
|
mov lightstatus[r_light],true ;t<>nd logik!!
|
|||
|
|
|||
|
call bur_group
|
|||
|
jc lit_A ;alla i B U R t<>nda => t<>nd A (g e A r)
|
|||
|
|
|||
|
lightflash r_light,touch_speed ;flasha litet tag
|
|||
|
addtask end_rr ;task som st<73>nger av flash
|
|||
|
slut_rr: retn
|
|||
|
end_rr:
|
|||
|
WAITSYNCS touch_time
|
|||
|
ENDFLASH r_light ;lys stadigt (fr<66>n flash)
|
|||
|
cmp r_flashin,true
|
|||
|
jne r_suicide
|
|||
|
lon r_light
|
|||
|
mov r_flashin,false
|
|||
|
r_suicide:
|
|||
|
SUICIDE
|
|||
|
;****************************
|
|||
|
|
|||
|
bricka_n:
|
|||
|
cmp n_flashin,true
|
|||
|
je slut_n
|
|||
|
mov n_flashin,true
|
|||
|
mov lightstatus[n_light],true ;t<>nd logik!!
|
|||
|
call nin_group
|
|||
|
jc lit_R ;alla i N I N t<>nda => t<>nd R (g e a R)
|
|||
|
|
|||
|
lightflash n_light,touch_speed ;flasha litet tag
|
|||
|
addtask end_n ;task som st<73>nger av flash
|
|||
|
slut_n: retn
|
|||
|
end_n:
|
|||
|
WAITSYNCS touch_time
|
|||
|
ENDFLASH n_light ;lys stadigt (fr<66>n flash)
|
|||
|
cmp n_flashin,true
|
|||
|
jne n_suicide
|
|||
|
lon n_light
|
|||
|
mov n_flashin,false
|
|||
|
n_suicide:
|
|||
|
SUICIDE
|
|||
|
|
|||
|
bricka_i:
|
|||
|
cmp i_flashin,true
|
|||
|
je slut_i
|
|||
|
mov i_flashin,true
|
|||
|
mov lightstatus[i_light],true ;t<>nd logik!!
|
|||
|
call nin_group
|
|||
|
jc lit_R ;alla i N I N t<>nda => t<>nd R (g e a R)
|
|||
|
|
|||
|
lightflash i_light,touch_speed ;flasha litet tag
|
|||
|
addtask end_i ;task som st<73>nger av flash
|
|||
|
slut_i: retn
|
|||
|
end_i:
|
|||
|
WAITSYNCS touch_time
|
|||
|
ENDFLASH i_light ;lys stadigt (fr<66>n flash)
|
|||
|
cmp i_flashin,true
|
|||
|
jne i_suicide
|
|||
|
lon i_light
|
|||
|
mov i_flashin,false
|
|||
|
i_suicide:
|
|||
|
SUICIDE
|
|||
|
|
|||
|
bricka_nn:
|
|||
|
cmp nn_flashin,true
|
|||
|
je slut_nn
|
|||
|
mov nn_flashin,true
|
|||
|
mov lightstatus[nn_light],true ;t<>nd logik!!
|
|||
|
call nin_group
|
|||
|
jc lit_R ;alla i N I N t<>nda => t<>nd R (g e a R)
|
|||
|
|
|||
|
lightflash nn_light,touch_speed ;flasha litet tag
|
|||
|
addtask end_nn ;task som st<73>nger av flash
|
|||
|
slut_nn: retn
|
|||
|
end_nn:
|
|||
|
WAITSYNCS touch_time
|
|||
|
ENDFLASH nn_light ;lys stadigt (fr<66>n flash)
|
|||
|
cmp nn_flashin,true
|
|||
|
jne nn_suicide
|
|||
|
lon nn_light
|
|||
|
mov nn_flashin,false
|
|||
|
nn_suicide:
|
|||
|
SUICIDE
|
|||
|
|
|||
|
;****************************
|
|||
|
lit_A:
|
|||
|
mov b_flashin,true
|
|||
|
mov u_flashin,true
|
|||
|
mov r_flashin,true
|
|||
|
lightflash b_light,touch_speed ;flasha litet tag
|
|||
|
lightflash u_light,touch_speed ;flasha litet tag
|
|||
|
lightflash r_light,touch_speed ;flasha litet tag
|
|||
|
mov lightstatus[24],true ;t<>nd logik!!
|
|||
|
addtask end_A ;task som st<73>nger av flash
|
|||
|
call check_gear ;for wear??
|
|||
|
jc slut_A
|
|||
|
lightflash 24,touch_speed ;flasha litet tag
|
|||
|
slut_A: retn
|
|||
|
end_A:
|
|||
|
WAITSYNCS bur_time
|
|||
|
ENDFLASH 24 ;lys stadigt (fr<66>n flash)
|
|||
|
LON 24
|
|||
|
mov lightstatus[b_light],false
|
|||
|
mov lightstatus[u_light],false
|
|||
|
mov lightstatus[r_light],false
|
|||
|
endflash b_light
|
|||
|
endflash u_light
|
|||
|
endflash r_light
|
|||
|
loff b_light
|
|||
|
loff u_light
|
|||
|
loff r_light
|
|||
|
mov b_flashin,false
|
|||
|
mov u_flashin,false
|
|||
|
mov r_flashin,false
|
|||
|
SUICIDE
|
|||
|
|
|||
|
;****************************
|
|||
|
lit_R:
|
|||
|
mov n_flashin,true
|
|||
|
mov i_flashin,true
|
|||
|
mov nn_flashin,true
|
|||
|
lightflash n_light,touch_speed ;flasha litet tag
|
|||
|
lightflash i_light,touch_speed ;flasha litet tag
|
|||
|
lightflash nn_light,touch_speed ;flasha litet tag
|
|||
|
mov lightstatus[25],true ;t<>nd logik!!
|
|||
|
addtask end_R ;task som st<73>nger av flash
|
|||
|
call check_gear ;for wear??
|
|||
|
jc slut_r
|
|||
|
lightflash 25,touch_speed ;flasha litet tag
|
|||
|
slut_R: retn
|
|||
|
end_R:
|
|||
|
WAITSYNCS nin_time
|
|||
|
ENDFLASH 25 ;lys stadigt (fr<66>n flash)
|
|||
|
LON 25
|
|||
|
mov lightstatus[n_light],false
|
|||
|
mov lightstatus[i_light],false
|
|||
|
mov lightstatus[nn_light],false
|
|||
|
endflash n_light
|
|||
|
endflash i_light
|
|||
|
endflash nn_light
|
|||
|
loff n_light
|
|||
|
loff i_light
|
|||
|
loff nn_light
|
|||
|
mov n_flashin,false
|
|||
|
mov i_flashin,false
|
|||
|
mov nn_flashin,false
|
|||
|
SUICIDE
|
|||
|
|
|||
|
|
|||
|
bur_group:
|
|||
|
|
|||
|
call addoffroad
|
|||
|
|
|||
|
;h<>r addas score, jack, bonus + kollar om hela B U R e t<>nt!!
|
|||
|
ADDSCORE BCD7510
|
|||
|
ADDBONUS BCD550
|
|||
|
|
|||
|
SOUNDEFFECT S_touch1,0 ;cp?
|
|||
|
|
|||
|
CMP LIGHTSTATUS[16],TRUE
|
|||
|
JNE NOTALLBUR
|
|||
|
CMP LIGHTSTATUS[17],TRUE
|
|||
|
JNE NOTALLBUR
|
|||
|
CMP LIGHTSTATUS[18],TRUE
|
|||
|
JNE NOTALLBUR
|
|||
|
LETSBUR:
|
|||
|
CALL JACKADD
|
|||
|
STC
|
|||
|
RETN
|
|||
|
NOTALLBUR:
|
|||
|
CLC
|
|||
|
RETN
|
|||
|
nin_group:
|
|||
|
|
|||
|
call addoffroad
|
|||
|
|
|||
|
;h<>r addas score, jack, bonus + kollar om hela B U R e t<>nt!!
|
|||
|
ADDSCORE BCD7520
|
|||
|
ADDBONUS BCD570
|
|||
|
SOUNDEFFECT S_touch1,0 ;cp?
|
|||
|
|
|||
|
CMP LIGHTSTATUS[19],TRUE
|
|||
|
JNE NOTALLBUR
|
|||
|
CMP LIGHTSTATUS[20],TRUE
|
|||
|
JNE NOTALLBUR
|
|||
|
CMP LIGHTSTATUS[21],TRUE
|
|||
|
JNE NOTALLnin
|
|||
|
LETSnin:
|
|||
|
CALL JACKADD
|
|||
|
STC
|
|||
|
RETN
|
|||
|
NOTALLnin:
|
|||
|
CLC
|
|||
|
RETN
|
|||
|
check_gear:
|
|||
|
cmp lightstatus[22],true
|
|||
|
jne no_gear
|
|||
|
cmp lightstatus[23],true
|
|||
|
jne no_gear
|
|||
|
cmp lightstatus[24],true
|
|||
|
jne no_gear
|
|||
|
cmp lightstatus[25],true
|
|||
|
jne no_gear
|
|||
|
shift_up_man:
|
|||
|
call increase_position
|
|||
|
CALL INC_GEAR
|
|||
|
mov lightstatus[22],false
|
|||
|
mov lightstatus[23],false
|
|||
|
mov lightstatus[24],false
|
|||
|
mov lightstatus[25],false
|
|||
|
lightflash 22,gear_flash
|
|||
|
lightflash 23,gear_flash
|
|||
|
lightflash 24,gear_flash
|
|||
|
lightflash 25,gear_flash
|
|||
|
addtask stop_gear
|
|||
|
; beep
|
|||
|
effect gearchange
|
|||
|
stc
|
|||
|
retn
|
|||
|
no_gear:
|
|||
|
clc
|
|||
|
retn
|
|||
|
stop_gear:
|
|||
|
waitsyncs gear_time
|
|||
|
endflash 22
|
|||
|
endflash 23
|
|||
|
endflash 24
|
|||
|
endflash 25
|
|||
|
loff 24
|
|||
|
loff 25
|
|||
|
loff 22
|
|||
|
loff 23
|
|||
|
suicide
|
|||
|
GEAR_BASE=26
|
|||
|
GEARKASSE_SPEED=1
|
|||
|
gearkasse_time=30
|
|||
|
Inc_Gear:
|
|||
|
mov bx,gearet
|
|||
|
cmp gearet,5
|
|||
|
je no_shift_gear_kasse
|
|||
|
inc gearet
|
|||
|
add bx,gear_base
|
|||
|
LightON bl,gearkasse_speed
|
|||
|
retn
|
|||
|
no_shift_gear_kasse:
|
|||
|
mov gear_down,gearkasse_time
|
|||
|
lightflash 26,GEARKASSE_SPEED
|
|||
|
lightflash 27,GEARKASSE_SPEED
|
|||
|
lightflash 28,GEARKASSE_SPEED
|
|||
|
lightflash 29,GEARKASSE_SPEED
|
|||
|
lightflash 30,GEARKASSE_SPEED
|
|||
|
lightflash 31,GEARKASSE_SPEED
|
|||
|
|
|||
|
RETN
|
|||
|
gearkasse:
|
|||
|
mov gearet,0
|
|||
|
endflash 26
|
|||
|
lightoff 26
|
|||
|
endflash 27
|
|||
|
lightoff 27
|
|||
|
endflash 28
|
|||
|
lightoff 28
|
|||
|
endflash 29
|
|||
|
lightoff 29
|
|||
|
endflash 30
|
|||
|
lightoff 30
|
|||
|
endflash 31
|
|||
|
lightoff 31
|
|||
|
;t<>nd holdbonus d<> hela gear e plockat
|
|||
|
cmp lightstatus[2],true
|
|||
|
je nohold ;inte tat den f<>st<73>ss, dumhuve
|
|||
|
syncedflash 2,pos_speed,pos_syncer
|
|||
|
mov holdbonuscount,0
|
|||
|
mov lightstatus[2],true
|
|||
|
nohold:
|
|||
|
retn
|
|||
|
|
|||
|
position_base=32
|
|||
|
pos_speed=std_lgt_speed
|
|||
|
goal_speed=std_lgt_speed
|
|||
|
increase_position:
|
|||
|
mov bx,pos_flash
|
|||
|
cmp bx,10 ;last pos
|
|||
|
je all_pos_flashin
|
|||
|
mov ax,bx
|
|||
|
add ax,position_base
|
|||
|
push ax
|
|||
|
syncedflash al,pos_speed,pos_syncer
|
|||
|
pop ax
|
|||
|
inc ax
|
|||
|
invertedsyncedflash al,pos_speed,pos_syncer
|
|||
|
add pos_flash,2
|
|||
|
retn
|
|||
|
all_pos_flashin:
|
|||
|
effect NumberOne ;-) Meal???
|
|||
|
|
|||
|
retn
|
|||
|
|
|||
|
get_position:
|
|||
|
mov bx,pos_light
|
|||
|
cmp pos_flash,bx
|
|||
|
jbe not_possible
|
|||
|
inc pos_light
|
|||
|
mov ax,bx
|
|||
|
add ax,position_base
|
|||
|
push ax
|
|||
|
endflash al
|
|||
|
pop ax
|
|||
|
lighton al
|
|||
|
effect OverTake
|
|||
|
|
|||
|
cmp Pos_Light,10
|
|||
|
je all_lit
|
|||
|
|
|||
|
retn
|
|||
|
not_possible:
|
|||
|
retn
|
|||
|
all_lit:
|
|||
|
invertedsyncedflash 9,pos_speed,pos_syncer ;Goal Light
|
|||
|
lighton 9
|
|||
|
|
|||
|
syncedflash 15,pos_speed,pos_syncer ;JackPot Light
|
|||
|
lighton 15
|
|||
|
|
|||
|
mov jackdown,20*60 ;Jack tiden ...
|
|||
|
|
|||
|
effect GoalLit
|
|||
|
retn
|
|||
|
jack_slack:
|
|||
|
lightoff 15
|
|||
|
endflash 15
|
|||
|
retn
|
|||
|
;******************************************************************************
|
|||
|
;********************************** LOWER *************************************
|
|||
|
;******************************************************************************
|
|||
|
GetTheGoalYouFool:
|
|||
|
|
|||
|
lightoff 41
|
|||
|
lightoff 40
|
|||
|
lightoff 39
|
|||
|
lightoff 38
|
|||
|
lightoff 37
|
|||
|
lightoff 36
|
|||
|
lightoff 35
|
|||
|
lightoff 34
|
|||
|
lightoff 33
|
|||
|
lightoff 32
|
|||
|
mov pos_light,0
|
|||
|
mov pos_flash,0
|
|||
|
cmp specialmode,true
|
|||
|
jne OnlyTurbo
|
|||
|
;OffRoad mode is currently on!! Wait 'til it's off!
|
|||
|
addtask Goliat
|
|||
|
retn
|
|||
|
OnlyTurbo:
|
|||
|
call TurboModeInit
|
|||
|
retn
|
|||
|
Goliat:
|
|||
|
cmp loosing,true
|
|||
|
je killhimnow
|
|||
|
cmp specialmode,true
|
|||
|
je no_goliat
|
|||
|
|
|||
|
call TurboModeInit
|
|||
|
killhimnow:
|
|||
|
suicide
|
|||
|
no_goliat:
|
|||
|
retn
|
|||
|
TurboModeInit:
|
|||
|
effect getgoal
|
|||
|
mov specialmode,true
|
|||
|
mov turbomode,true
|
|||
|
retn
|
|||
|
|
|||
|
;*************
|
|||
|
DoTheOffRoad:
|
|||
|
cmp specialmode,true
|
|||
|
jne OnlyOffroad
|
|||
|
;Turbo mode is currently on!! Wait 'til it's off!
|
|||
|
addtask Goliat2
|
|||
|
retn
|
|||
|
OnlyOffRoad:
|
|||
|
call OffRoadModeInit
|
|||
|
retn
|
|||
|
Goliat2:
|
|||
|
cmp loosing,true
|
|||
|
je killhimnowandagain
|
|||
|
|
|||
|
cmp specialmode,true
|
|||
|
je no_goliat2
|
|||
|
;Goal
|
|||
|
call OffRoadModeInit
|
|||
|
killhimnowandagain:
|
|||
|
suicide
|
|||
|
no_goliat2:
|
|||
|
retn
|
|||
|
OffRoadModeInit:
|
|||
|
mov current_priority,0
|
|||
|
playjingle sjingle22
|
|||
|
mov specialmode,true
|
|||
|
mov bx,offset OffRoadTS
|
|||
|
call do_matrix
|
|||
|
mov offroadmode,true
|
|||
|
retn
|
|||
|
|
|||
|
;*************
|
|||
|
GropA: ;PITSTOP
|
|||
|
cmp lightstatus[3],true ;Super Jackpot
|
|||
|
; mov lastjingle,2
|
|||
|
jne nosuperjack
|
|||
|
endflash 3
|
|||
|
lightoff 3
|
|||
|
cmp lightstatus[9],true ;Goal lit?
|
|||
|
jne brakke
|
|||
|
effect superjack2 ;f<>rst super sen turbomode
|
|||
|
jmp hmmmm_waitalittlelongerwhenmegascore
|
|||
|
brakke:
|
|||
|
mov inhibit_count_down,true
|
|||
|
MOV CURRENT_PRIORITY,0
|
|||
|
effectbrack superjack ;br<62>ck turbomode
|
|||
|
|
|||
|
nosuperjack:
|
|||
|
|
|||
|
cmp lightstatus[9],true ;Goal lit? (but NOT super!)
|
|||
|
jne NoGoal_now_sucker
|
|||
|
endflash 9
|
|||
|
lightoff 9
|
|||
|
call getthegoalyoufool
|
|||
|
NoGoal_now_sucker:
|
|||
|
cmp lightstatus[2],true
|
|||
|
jne noholdbonusifimsorryforthisfuckinlonglabelorwhatdoyoumeanbythat
|
|||
|
effect holdbonus
|
|||
|
endflash 2
|
|||
|
lightoff 2
|
|||
|
MOV HOLDBONUSFLAG,TRUE
|
|||
|
|
|||
|
noholdbonusifimsorryforthisfuckinlonglabelorwhatdoyoumeanbythat:
|
|||
|
CMP SNACKDISABLED,TRUE
|
|||
|
JE NOT_NOW_STUPID
|
|||
|
ADDTASK SNACK_HOLE_TASK1
|
|||
|
NOT_NOW_STUPID:
|
|||
|
RETN
|
|||
|
hmmmm_waitalittlelongerwhenmegascore:
|
|||
|
CMP SNACKDISABLED,TRUE
|
|||
|
JE NOT_NOW_STUPID
|
|||
|
ADDTASK SNACK_HOLE_TASK2
|
|||
|
jmp not_now_stupid
|
|||
|
|
|||
|
;************* from snack logic *************
|
|||
|
|
|||
|
SNACK_HOLE_TASK1:
|
|||
|
MOV HOLDSTILL,TRUE
|
|||
|
SETBALLPOS SNACKX,SNACKY,0,0,FALSE ;PUT BALL IN MIDDLE OF HOLE ;CP!
|
|||
|
WAITSYNCS 20 ;CPW! ;(EVEN IF SPECIALMODE=TRUE)
|
|||
|
ADDTASK SNACK_HOLE_TASK1B
|
|||
|
SUICIDE
|
|||
|
|
|||
|
SNACK_HOLE_TASK2:
|
|||
|
MOV HOLDSTILL,TRUE
|
|||
|
SETBALLPOS SNACKX,SNACKY,0,0,FALSE ;PUT BALL IN MIDDLE OF HOLE ;CP!
|
|||
|
WAITSYNCS 150 ;CPW! ;(EVEN IF SPECIALMODE=TRUE)
|
|||
|
ADDTASK SNACK_HOLE_TASK1B
|
|||
|
SUICIDE
|
|||
|
|
|||
|
SNACK_HOLE_TASK1B:
|
|||
|
MOV HOLDSTILL,TRUE
|
|||
|
SETBALLPOS SNACKX,SNACKY,0,0,FALSE ;PUT BALL IN MIDDLE OF HOLE ;CP!
|
|||
|
CMP SPECIALMODE,TRUE
|
|||
|
JE SNABBHOPP4
|
|||
|
WAITSYNCS 100-40 ;CPW!
|
|||
|
SNABBHOPP4:
|
|||
|
SOUNDEFFECT SGROP,0
|
|||
|
MOV HOLDSTILL,FALSE
|
|||
|
SETBALLPOS SNACKX,SNACKY,SNACKXS,SNACKYS,FALSE
|
|||
|
ADDTASK TURN_IT_ON_AGAIN
|
|||
|
SUICIDE
|
|||
|
|
|||
|
TURN_IT_ON_AGAIN:
|
|||
|
WAITSYNCS 60
|
|||
|
MOV SNACKDISABLED,FALSE
|
|||
|
SUICIDE
|
|||
|
|
|||
|
;********************************************
|
|||
|
|
|||
|
part_test:
|
|||
|
test_lgts 50,5
|
|||
|
jnc rett_na
|
|||
|
lightoff 50
|
|||
|
lightoff 51
|
|||
|
lightoff 52
|
|||
|
lightoff 53
|
|||
|
lightoff 54
|
|||
|
|
|||
|
endflash 50
|
|||
|
endflash 51
|
|||
|
endflash 52
|
|||
|
endflash 53
|
|||
|
endflash 54
|
|||
|
|
|||
|
lightflash 50,1
|
|||
|
lightflash 51,1
|
|||
|
lightflash 52,1
|
|||
|
lightflash 53,1
|
|||
|
lightflash 54,1
|
|||
|
|
|||
|
addtask endflasha_carparts
|
|||
|
|
|||
|
mov CarParten,0 ;F<>rste parten ju . . .
|
|||
|
rett_na:
|
|||
|
retn
|
|||
|
|
|||
|
endflasha_carparts:
|
|||
|
waitsyncs 60*2
|
|||
|
endflash 50
|
|||
|
endflash 51
|
|||
|
endflash 52
|
|||
|
endflash 53
|
|||
|
endflash 54
|
|||
|
suicide
|
|||
|
|
|||
|
bygel9: ;OffRoad bygeln
|
|||
|
cmp TurboMode,true
|
|||
|
jne NoTurboModeNownownow
|
|||
|
effect TurboEffect
|
|||
|
call addTurboMode
|
|||
|
NoTurboModeNownownow:
|
|||
|
|
|||
|
effect BygelSetE
|
|||
|
cmp lightstatus[11],true
|
|||
|
jne no_part_1
|
|||
|
lightoff 11
|
|||
|
endflash 11
|
|||
|
effect Part1
|
|||
|
mov lightstatus[50],true
|
|||
|
invertedsyncedflash 50,pos_speed,pos_syncer
|
|||
|
; lightflash 50,std_lgt_speed ;Motorn???
|
|||
|
call part_test
|
|||
|
no_part_1:
|
|||
|
cmp lightstatus[12],true
|
|||
|
jne no_part_4
|
|||
|
lightoff 12
|
|||
|
endflash 12
|
|||
|
effect Part4
|
|||
|
mov lightstatus[51],true
|
|||
|
; lightflash 51,std_lgt_speed ;Motorn???
|
|||
|
syncedflash 51,pos_speed,pos_syncer
|
|||
|
call part_test
|
|||
|
no_part_4:
|
|||
|
|
|||
|
cmp lightstatus[4],true ;Multiply Bonus??
|
|||
|
je do_mb
|
|||
|
back_test_it:
|
|||
|
mov lightstatus[23],true
|
|||
|
CALL JACKADD
|
|||
|
call check_gear
|
|||
|
jc no_b9
|
|||
|
lightflash 23,touch_speed
|
|||
|
addtask stop_e
|
|||
|
no_b9: retn
|
|||
|
stop_E:
|
|||
|
waitsyncs touch_time
|
|||
|
endflash 23
|
|||
|
lon 23
|
|||
|
suicide
|
|||
|
do_mb:
|
|||
|
inc bonus_text[11]
|
|||
|
inc mb_gjorda
|
|||
|
inc bonus_x
|
|||
|
dec mb_pa_lager
|
|||
|
jnz slack_inte
|
|||
|
lightoff 4
|
|||
|
endflash 4
|
|||
|
slack_inte:
|
|||
|
nil bx
|
|||
|
mov dx,offset M2 ;f<>rsta MB effekten
|
|||
|
mb_base=42 ;(f<>rsta)
|
|||
|
next_lght:
|
|||
|
cmp lightstatus[mb_base+bx],false
|
|||
|
je not_next_lght
|
|||
|
add bx,1
|
|||
|
add dx,size effect_struc
|
|||
|
cmp bx,7 ;nof bonus lgts-1
|
|||
|
jne next_lght
|
|||
|
not_next_lght:
|
|||
|
|
|||
|
push bx
|
|||
|
mov si,dx
|
|||
|
call doeffect
|
|||
|
pop bx
|
|||
|
|
|||
|
mov lightstatus[mb_base+bx],true
|
|||
|
add bl,mb_base
|
|||
|
call dolon
|
|||
|
jmp back_test_it
|
|||
|
|
|||
|
Bygel16:
|
|||
|
cmp LastArea,offset cs:Bygel12
|
|||
|
je Jump_man
|
|||
|
cmp LastArea,offset cs:Bygel17
|
|||
|
jne no_b16
|
|||
|
;Get the bonus part??
|
|||
|
cmp lightstatus[14],true
|
|||
|
jne no_part_3
|
|||
|
lightoff 14
|
|||
|
endflash 14
|
|||
|
effect Part3
|
|||
|
mov lightstatus[52],true
|
|||
|
invertedsyncedflash 52,pos_speed,pos_syncer
|
|||
|
call part_test
|
|||
|
no_part_3:
|
|||
|
cmp lightstatus[10],true
|
|||
|
jne no_part_5
|
|||
|
lightoff 10
|
|||
|
endflash 10
|
|||
|
effect Part5
|
|||
|
mov lightstatus[54],true
|
|||
|
syncedflash 54,pos_speed,pos_syncer
|
|||
|
call part_test
|
|||
|
no_part_5:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
;Get the x-ball??
|
|||
|
cmp lightstatus[1],true
|
|||
|
jne noxballs
|
|||
|
effect xball
|
|||
|
lightoff 1
|
|||
|
endflash 1
|
|||
|
lighton 55 ;T<>ndstift
|
|||
|
noxballs:
|
|||
|
retn
|
|||
|
Jump_Man:
|
|||
|
; inc holdbonuscount
|
|||
|
; cmp holdbonuscount,10
|
|||
|
; jne nohold
|
|||
|
; cmp lightstatus[2],true
|
|||
|
; je nohold ;inte tat den f<>st<73>ss, dumhuve
|
|||
|
; syncedflash 2,pos_speed,pos_syncer
|
|||
|
; mov holdbonuscount,0
|
|||
|
; mov lightstatus[2],true
|
|||
|
;nohold:
|
|||
|
cmp TurboMode,true
|
|||
|
jne NoTurboModeNownow
|
|||
|
effect TurboEffect
|
|||
|
call addTurboMode
|
|||
|
NoTurboModeNownow:
|
|||
|
call jackadd
|
|||
|
cmp lightstatus[15],true ;JP lampan
|
|||
|
jne No_JP_lgt
|
|||
|
mov si,offset jackvalue
|
|||
|
mov di,offset siffrorna
|
|||
|
call addscorebcd
|
|||
|
call init_jack
|
|||
|
cmp turbomode,true
|
|||
|
jne nobraccer
|
|||
|
MOV CURRENT_PRIORITY,0
|
|||
|
effectbrack JackPot
|
|||
|
mov inhibit_count_down,true
|
|||
|
jmp knakelibrak
|
|||
|
nobraccer:
|
|||
|
effect jackpot
|
|||
|
knakelibrak:
|
|||
|
lightoff 15
|
|||
|
endflash 15
|
|||
|
lighton 3 ;Super JackPot
|
|||
|
syncedflash 3,pos_speed,pos_syncer
|
|||
|
addtask turnoff_super
|
|||
|
No_JP_lgt:
|
|||
|
cmp lightstatus[5],true ;Jump lampan
|
|||
|
jne No_Jump_lgt
|
|||
|
effect Jump
|
|||
|
lightoff 5
|
|||
|
endflash 5
|
|||
|
No_Jump_lgt:
|
|||
|
cmp lightstatus[13],true
|
|||
|
jne no_part_2
|
|||
|
lightoff 13
|
|||
|
endflash 13
|
|||
|
effect Part2
|
|||
|
mov lightstatus[53],true
|
|||
|
syncedflash 53,pos_speed,pos_syncer
|
|||
|
call part_test
|
|||
|
no_part_2:
|
|||
|
mov jump_,true
|
|||
|
call speedometer
|
|||
|
mov lightstatus[22],true
|
|||
|
CALL JACKADD
|
|||
|
call check_gear
|
|||
|
jc no_b16
|
|||
|
lightflash 22,touch_speed
|
|||
|
addtask stop_g
|
|||
|
no_b16:
|
|||
|
retn
|
|||
|
turnoff_super:
|
|||
|
waitsyncs 20*60
|
|||
|
endflash 3
|
|||
|
lightoff 3
|
|||
|
suicide
|
|||
|
|
|||
|
Bygel17: ;F<>re under Jump . . Hmmmm . .
|
|||
|
retn
|
|||
|
bygel12: ;JUMP bygeln
|
|||
|
retn
|
|||
|
stop_g:
|
|||
|
waitsyncs touch_time
|
|||
|
endflash 22
|
|||
|
lon 22
|
|||
|
suicide
|
|||
|
|
|||
|
; P I T
|
|||
|
pit_time=20
|
|||
|
pit_speed=1
|
|||
|
;*************************************
|
|||
|
bygel7:
|
|||
|
cmp flash7down,0
|
|||
|
jne no_flash7
|
|||
|
mov lightstatus[8],true
|
|||
|
call pit_group
|
|||
|
jc no_flash7
|
|||
|
mov flash7down,pit_time
|
|||
|
lightflash 8,pit_speed
|
|||
|
no_flash7:
|
|||
|
retn
|
|||
|
|
|||
|
Flash7end:
|
|||
|
endflash 8
|
|||
|
lon 8
|
|||
|
start_light=6
|
|||
|
nof_light=3
|
|||
|
set_lights
|
|||
|
retn
|
|||
|
;*****************************
|
|||
|
bygel6:
|
|||
|
cmp flash6down,0
|
|||
|
jne no_flash6
|
|||
|
lon 7
|
|||
|
mov lightstatus[7],true
|
|||
|
call pit_group
|
|||
|
jc no_flash6
|
|||
|
mov flash6down,pit_time
|
|||
|
lightflash 7,pit_speed
|
|||
|
no_flash6:
|
|||
|
retn
|
|||
|
|
|||
|
Flash6end:
|
|||
|
endflash 7
|
|||
|
lon 7
|
|||
|
start_light=6
|
|||
|
nof_light=3
|
|||
|
set_lights
|
|||
|
retn
|
|||
|
;*****************************
|
|||
|
bygel5:
|
|||
|
cmp flash5down,0
|
|||
|
jne no_flash5
|
|||
|
lon 6
|
|||
|
mov lightstatus[6],true
|
|||
|
call pit_group
|
|||
|
jc no_flash5
|
|||
|
mov flash5down,pit_time
|
|||
|
lightflash 6,pit_speed
|
|||
|
no_flash5:
|
|||
|
retn
|
|||
|
|
|||
|
Flash5end:
|
|||
|
endflash 6
|
|||
|
lon 6
|
|||
|
start_light=6
|
|||
|
nof_light=3
|
|||
|
set_lights
|
|||
|
retn
|
|||
|
;*****************************
|
|||
|
|
|||
|
Pit_Group:
|
|||
|
call addoffroad
|
|||
|
|
|||
|
SOUNDEFFECT S_touch1,0 ;cp!!!
|
|||
|
effect BygelSetC
|
|||
|
test_lgts 6,3 ;6=first lgt, 3=#lgts
|
|||
|
jc enable_bonus
|
|||
|
clc
|
|||
|
retn
|
|||
|
pit_time_all=pit_time*2
|
|||
|
pit_all_speed=2
|
|||
|
mb_speed=10
|
|||
|
enable_bonus:
|
|||
|
cmp flash_pit_down,0 ;All PIT already megaflashin ???
|
|||
|
je do_enable_mb_lgt
|
|||
|
clc
|
|||
|
retn
|
|||
|
|
|||
|
do_enable_mb_lgt:
|
|||
|
effect MBLit
|
|||
|
mov al,mb_gjorda
|
|||
|
add al,mb_pa_lager
|
|||
|
cmp al,8
|
|||
|
jb no_millon_but_bonus
|
|||
|
effect Million
|
|||
|
jmp ret_urk
|
|||
|
no_millon_but_bonus:
|
|||
|
inc mb_pa_lager
|
|||
|
cmp mb_pa_lager,1
|
|||
|
jne dont_startflash
|
|||
|
mov lightstatus[4],true
|
|||
|
lightflash 4,mb_speed
|
|||
|
dont_startflash:
|
|||
|
ret_urk:
|
|||
|
lightflash 6,pit_all_speed
|
|||
|
lightflash 7,pit_all_speed
|
|||
|
lightflash 8,pit_all_speed
|
|||
|
mov flash_pit_down,pit_time_all
|
|||
|
stc
|
|||
|
retn
|
|||
|
turn_pit_off:
|
|||
|
endflash 6
|
|||
|
endflash 7
|
|||
|
endflash 8
|
|||
|
lightoff 6
|
|||
|
lightoff 7
|
|||
|
lightoff 8
|
|||
|
start_light=6
|
|||
|
nof_light=3
|
|||
|
set_lights
|
|||
|
retn
|
|||
|
|
|||
|
Bygel1: ;Sido nedfall
|
|||
|
Bygel2:
|
|||
|
effect BygelSetA
|
|||
|
retn
|
|||
|
|
|||
|
Bygel3: ;R<>r nedfall
|
|||
|
Bygel4:
|
|||
|
SOUNDEFFECT SBygel2,0
|
|||
|
effect BygelSetB
|
|||
|
retn
|
|||
|
Bygel8:
|
|||
|
effect BygelSetD
|
|||
|
retn
|
|||
|
;*********************************** GAME ON **********************************
|
|||
|
|
|||
|
CLOSE1: ;GAME ON
|
|||
|
CMP LASTAREA,OFFSET nedslapp
|
|||
|
JNE NOT_GAME_ON
|
|||
|
MOV ADDPLAYERS,FALSE
|
|||
|
PLAYJINGLE S_MAIN
|
|||
|
MOV LASTJINGLE,1
|
|||
|
MOV BX,OFFSET PARTY_OFFTS
|
|||
|
CALL DO_MATRIX
|
|||
|
MOV I_UTSKJUT,FALSE ;TILL<4C>TER INACTIVE-SLINGAN (DOTMATRIX)
|
|||
|
MOV PARTYFLASH,FALSE
|
|||
|
|
|||
|
;JOHAN S<>GER ATT DETTA <20>R EXTRA S<>KERT (DUBBEL S<>KERHET)
|
|||
|
mov spring_valid,false ;CP...
|
|||
|
|
|||
|
NOT_GAME_ON:
|
|||
|
RETN
|
|||
|
|
|||
|
|
|||
|
|
|||
|
;***************************** SPRING INVALID *********************************
|
|||
|
|
|||
|
open2: ;SPRING INVALID
|
|||
|
MOV SPRING_VALID,FALSE
|
|||
|
RETN
|
|||
|
|
|||
|
|
|||
|
;******************************* SPRING VALID *********************************
|
|||
|
|
|||
|
BYGEL28: ;SPRING VALID
|
|||
|
MOV SPRING_VALID,TRUE
|
|||
|
RETN
|
|||
|
|
|||
|
|
|||
|
|
|||
|
;******************************************************************************
|
|||
|
;*********************************** UPPER ************************************
|
|||
|
;******************************************************************************
|
|||
|
speedometer:
|
|||
|
cmp loop_l_,true
|
|||
|
jne no_speedup
|
|||
|
cmp loop_h_,true
|
|||
|
jne no_speedup
|
|||
|
cmp Jump_,true
|
|||
|
jne no_speedup
|
|||
|
effect speedo
|
|||
|
mov loop_l_,false
|
|||
|
mov loop_h_,false
|
|||
|
mov Jump_,false
|
|||
|
speedometer_base=56
|
|||
|
mov ax,speeden
|
|||
|
add ax,56
|
|||
|
test al,1
|
|||
|
jz no_bonus_part
|
|||
|
push ax
|
|||
|
call CarPart
|
|||
|
pop ax
|
|||
|
no_bonus_part:
|
|||
|
cmp al,67 ;cp!!??
|
|||
|
jae slack_speedometer
|
|||
|
inc speeden
|
|||
|
lighton al
|
|||
|
retn
|
|||
|
slack_speedometer: ;Nja, den skulle ju f<> lysa s<> glatt . .
|
|||
|
inc speeden
|
|||
|
lon 67
|
|||
|
no_speedup:
|
|||
|
retn
|
|||
|
part_speed=std_lgt_speed
|
|||
|
CarPart:
|
|||
|
cmp CarParten,5
|
|||
|
je all_parts_lit
|
|||
|
mov bx,CarParten ;Inte CarPort allts<74> . .
|
|||
|
inc CarParten
|
|||
|
shl bx,2 ;Effekt+lnr
|
|||
|
add bx,offset PartList
|
|||
|
mov ax,[bx]
|
|||
|
;fel st<73>lle??
|
|||
|
; push bx
|
|||
|
; effect ax
|
|||
|
; pop bx
|
|||
|
|
|||
|
mov ax,[bx+2]
|
|||
|
push ax
|
|||
|
|
|||
|
syncedflash al,pos_speed,pos_syncer
|
|||
|
|
|||
|
pop ax
|
|||
|
lighton al
|
|||
|
all_parts_lit:
|
|||
|
retn
|
|||
|
|
|||
|
betweenloops_time=blet*6*60+30
|
|||
|
Bygel10:
|
|||
|
; mov loop_l_,true ;Only when million!
|
|||
|
mov loop_h,betweenloops_time
|
|||
|
cmp loop_l,0
|
|||
|
je not_2_loops_in_5_secs_1
|
|||
|
mov loop_l,0
|
|||
|
call two_in_5
|
|||
|
not_2_loops_in_5_secs_1:
|
|||
|
call loop_group
|
|||
|
retn
|
|||
|
Bygel11:
|
|||
|
; mov loop_h_,true ;Only when million!
|
|||
|
mov loop_l,betweenloops_time
|
|||
|
cmp loop_h,0
|
|||
|
je not_2_loops_in_5_secs_2
|
|||
|
mov loop_h,0
|
|||
|
call two_in_5
|
|||
|
not_2_loops_in_5_secs_2:
|
|||
|
call loop_group
|
|||
|
retn
|
|||
|
|
|||
|
two_in_5:
|
|||
|
;Reset Loop Counters AXL SAY DON'T!
|
|||
|
; mov loop_h,0
|
|||
|
; mov loop_l,0
|
|||
|
;overtake??
|
|||
|
call get_position
|
|||
|
;million!
|
|||
|
effect Million
|
|||
|
mov loop_l_,true
|
|||
|
mov loop_h_,true
|
|||
|
retn
|
|||
|
|
|||
|
loop_group:
|
|||
|
CALL JACKADD
|
|||
|
mov cx,size effect_struc+1
|
|||
|
mov ax,speeden
|
|||
|
cmp ax,11
|
|||
|
jna no_kris_lelle_van
|
|||
|
mov ax,11
|
|||
|
no_kris_lelle_van:
|
|||
|
mul cx
|
|||
|
add ax,offset SScore1
|
|||
|
mov si,ax
|
|||
|
CALL DOEFFECT
|
|||
|
cmp TurboMode,true
|
|||
|
jne NoTurboModeNow
|
|||
|
effect TurboEffect
|
|||
|
call addTurboMode
|
|||
|
NoTurboModeNow:
|
|||
|
Again_Mile:
|
|||
|
inc MilesCount
|
|||
|
mov si,offset etta
|
|||
|
mov di,offset cyclonecounterbcd
|
|||
|
call addscorebcd
|
|||
|
Cmp MilesCount,1
|
|||
|
je Again_Mile
|
|||
|
|
|||
|
cmp MilesCount,20
|
|||
|
ja NoAtAll
|
|||
|
cmp Milescount,10
|
|||
|
jbe NoXBall
|
|||
|
effect xball_at_20
|
|||
|
;skriv ut xball at 20
|
|||
|
cmp MilesCount,20
|
|||
|
jne noxball
|
|||
|
lightflash 1,std_lgt_speed ;cp!
|
|||
|
lighton 1
|
|||
|
effect litxball
|
|||
|
NoXBall:
|
|||
|
cmp MilesCount,10
|
|||
|
je dotheoffice
|
|||
|
ja NoOffRoad
|
|||
|
effect offroad_at_10
|
|||
|
jmp NoOffRoad
|
|||
|
dotheoffice:
|
|||
|
call DoTheOffroad
|
|||
|
NoOffRoad:
|
|||
|
NoAtAll:
|
|||
|
mov ax,MilesCount
|
|||
|
cmp ax,NextJump
|
|||
|
jne NoNextJump
|
|||
|
add NextJump,20
|
|||
|
cmp lightstatus[5],true
|
|||
|
je already_lit_the_jump_light
|
|||
|
lighton 5
|
|||
|
Jump_Speed=std_lgt_speed
|
|||
|
lightflash 5,Jump_Speed
|
|||
|
effect lgt_Jump
|
|||
|
already_lit_the_jump_light:
|
|||
|
jmp did_jump
|
|||
|
NoNextJump:
|
|||
|
mov cx,nextjump
|
|||
|
sub cx,ax
|
|||
|
cmp cx,10
|
|||
|
jnb did_jump
|
|||
|
;***************************** lites the jump
|
|||
|
mov ax,nextjump
|
|||
|
mov di,2
|
|||
|
mov cx,3
|
|||
|
loopen_lejf:
|
|||
|
push cx
|
|||
|
mov dx,0
|
|||
|
mov cx,10
|
|||
|
div cx
|
|||
|
cmp dx,0
|
|||
|
jne nozero
|
|||
|
cmp di,0
|
|||
|
jne nozero
|
|||
|
mov dx,'*'-'7'
|
|||
|
nozero:
|
|||
|
add dx,'7'
|
|||
|
mov jump_at_text[di],dl
|
|||
|
pop cx
|
|||
|
dec di
|
|||
|
loop loopen_lejf
|
|||
|
;*****************************
|
|||
|
effect jump_at
|
|||
|
did_jump:
|
|||
|
mov ax,MilesCount
|
|||
|
|
|||
|
mov cx,NextOffRoad
|
|||
|
sub cx,ax
|
|||
|
cmp cx,10
|
|||
|
jnbe NoNextOff
|
|||
|
cmp ax,NextOffRoad
|
|||
|
jne NoOffNowOr
|
|||
|
add NextOffRoad,20
|
|||
|
call DoTheOffroad
|
|||
|
NoOffNowOr:
|
|||
|
;***************************** lites the off road
|
|||
|
mov ax,NextOffRoad
|
|||
|
mov di,2
|
|||
|
mov cx,3
|
|||
|
loopen_lejfAron:
|
|||
|
push cx
|
|||
|
mov dx,0
|
|||
|
mov cx,10
|
|||
|
div cx
|
|||
|
cmp dx,0
|
|||
|
jne nozerohelge
|
|||
|
cmp di,0
|
|||
|
jne nozerohelge
|
|||
|
mov dx,'*'-'7'
|
|||
|
nozerohelge:
|
|||
|
add dx,'7'
|
|||
|
mov offroad_at_text[di],dl
|
|||
|
pop cx
|
|||
|
dec di
|
|||
|
loop loopen_lejfAron
|
|||
|
;*****************************
|
|||
|
effect OffRoad_At
|
|||
|
|
|||
|
NoNextOff:
|
|||
|
|
|||
|
NotStandardSeries:
|
|||
|
;move miles to the scrolltext
|
|||
|
mov bx,5+offset miles_text
|
|||
|
mov ax,cyclonecounter
|
|||
|
call put_in_text
|
|||
|
retn
|
|||
|
|
|||
|
;*****************************
|
|||
|
;Input: Ax= NextR<74>knare Bx=offset till texten
|
|||
|
Put_In_Text:
|
|||
|
PUSH BX
|
|||
|
mov di,2
|
|||
|
mov cx,3
|
|||
|
loopen_leffe:
|
|||
|
push cx
|
|||
|
NIL DX
|
|||
|
MOV CX,10
|
|||
|
DIV CX
|
|||
|
add dx,'7'
|
|||
|
mov [bx][di],dl
|
|||
|
pop cx
|
|||
|
dec di
|
|||
|
loop loopen_leffe
|
|||
|
POP BX
|
|||
|
|
|||
|
LOOPEN_BERTIL:
|
|||
|
CMP BYTE PTR [BX],'7'
|
|||
|
JNZ AVBRYT_BRUTALT
|
|||
|
MOV BYTE PTR [BX],'*'
|
|||
|
INC BX
|
|||
|
LOOP LOOPEN_BERTIL
|
|||
|
AVBRYT_BRUTALT:
|
|||
|
RETN
|
|||
|
;*****************************
|
|||
|
|
|||
|
comment\
|
|||
|
mov cx,4
|
|||
|
nil bx
|
|||
|
mov dx,true
|
|||
|
first_null equ dx
|
|||
|
nil first_null
|
|||
|
lurken:
|
|||
|
mov al,cyclonecounterbcd[8+bx]
|
|||
|
add al,'0'
|
|||
|
|
|||
|
cmp al,'0'
|
|||
|
jne setit_orc
|
|||
|
cmp first_null,true
|
|||
|
je dont_check_it_now
|
|||
|
mov al,' '
|
|||
|
jmp dont_check_it_now
|
|||
|
setit_orc:
|
|||
|
mov first_null,true
|
|||
|
dont_check_it_now:
|
|||
|
add al,'7'-'0'
|
|||
|
; mov miles_text[21+bx],al
|
|||
|
mov miles_text[5+bx],al
|
|||
|
inc bx
|
|||
|
loop lurken
|
|||
|
|
|||
|
retn
|
|||
|
\
|
|||
|
|
|||
|
|
|||
|
;******************************************************************************
|
|||
|
UPDATE_COUNTERS PROC NEAR
|
|||
|
INC POS_SYNCER ;SNACK SYNCER
|
|||
|
CMP POS_SYNCER,POS_SPEED*2
|
|||
|
JNE SNSOK
|
|||
|
MOV POS_SYNCER,0
|
|||
|
SNSOK:
|
|||
|
DOWNCOUNT flash7down,flash7end
|
|||
|
DOWNCOUNT flash6down,flash6end
|
|||
|
DOWNCOUNT flash5down,flash5end
|
|||
|
DOWNCOUNT flash_pit_down,turn_pit_off
|
|||
|
DOWNCOUNT LOOP_H,DUMRET
|
|||
|
DOWNCOUNT LOOP_L,DUMRET
|
|||
|
DOWNCOUNT GEAR_DOWN,GEARKASSE
|
|||
|
downcount jackdown,jack_slack
|
|||
|
RETN
|
|||
|
UPDATE_COUNTERS ENDP
|
|||
|
|
|||
|
ADDOffRoad PROC NEAR
|
|||
|
CMP OffRoadMode,TRUE
|
|||
|
JNE NOTOFFICEADDING
|
|||
|
MOV SI,OFFSET BCDHUNDRATUSEN
|
|||
|
MOV DI,OFFSET OR_TOTAL
|
|||
|
CALL ADDSCOREBCD
|
|||
|
MOV SPECIAL_SCORE_CHANGED,TRUE
|
|||
|
NOTOFFICEADDING:
|
|||
|
RETN
|
|||
|
ADDOffRoad ENDP
|
|||
|
|
|||
|
ADDTurboMode PROC NEAR
|
|||
|
CMP TurboMode,TRUE
|
|||
|
JNE NOTkluOFFICEADDING
|
|||
|
MOV SI,OFFSET BCDfemmillioner
|
|||
|
MOV DI,OFFSET tm_TOTAL
|
|||
|
CALL ADDSCOREBCD
|
|||
|
MOV SPECIAL_SCORE_CHANGED,TRUE
|
|||
|
NOTkluOFFICEADDING:
|
|||
|
RETN
|
|||
|
ADDTurboMode ENDP
|
|||
|
|
|||
|
BUMPER_WAS_HIT_PROC PROC NEAR ;INPUT: HITPOINTER
|
|||
|
call addoffroad
|
|||
|
UPDAT_INFOBAR
|
|||
|
RETN
|
|||
|
BUMPER_WAS_HIT_PROC ENDP
|
|||
|
|
|||
|
|
|||
|
|
|||
|
;********************************* DOT MATRIX CODE ****************************
|
|||
|
_PARTYONN:
|
|||
|
MOVE DS,DATA
|
|||
|
ASSUME DS:DATA
|
|||
|
MOV AL,PLAYER
|
|||
|
ADD AL,'A'-10
|
|||
|
MOV PARTY_ON_TEXT[18],AL
|
|||
|
MOV SISA,1
|
|||
|
MOV DOTRUT,OFFSET WAITRUT
|
|||
|
JMP NORMAL_END
|
|||
|
|
|||
|
_SHOOT_AGAIN_ONN:
|
|||
|
MOVE DS,DATA
|
|||
|
ASSUME DS:DATA
|
|||
|
MOV AL,PLAYER
|
|||
|
ADD AL,'A'-10
|
|||
|
MOV SHOOT_AGAIN_TEXT[19],AL
|
|||
|
MOV SISA,1
|
|||
|
MOV DOTRUT,OFFSET WAITRUT
|
|||
|
JMP NORMAL_END
|
|||
|
|
|||
|
_beep: ;2 vars!!!
|
|||
|
beep
|
|||
|
jmp normal_end
|
|||
|
|
|||
|
_PARTYON: ;BX NOT USED!
|
|||
|
MOV PARTYFLASH,TRUE
|
|||
|
MOVE SISA,1 ;HUR M<>NGA
|
|||
|
MOV DOTRUT,OFFSET PARTYRUT
|
|||
|
JMP NORMAL_END
|
|||
|
|
|||
|
_PARTYOFF: ;TURN OFF PARTYON FLASHING (AND BRING BACK SCORE!)
|
|||
|
MOV DOTRUT,OFFSET WAITRUT
|
|||
|
MOV SISA,1
|
|||
|
JMP NORMAL_END
|
|||
|
|
|||
|
_WAIT_GAME_ON:
|
|||
|
MOV DOTRUT,OFFSET GONRUT
|
|||
|
MOV SISA,44
|
|||
|
JMP NORMAL_END
|
|||
|
GONRUT:
|
|||
|
CMP ADDPLAYERS,TRUE
|
|||
|
JE INTE_SATT_IGANG
|
|||
|
MOV SI,0
|
|||
|
RETN
|
|||
|
INTE_SATT_IGANG:
|
|||
|
MOV SI,34 ;INTE 0 = INTE IG<49>NG !!
|
|||
|
RETN
|
|||
|
|
|||
|
|
|||
|
_JBCDZ:
|
|||
|
IFZEROBCD [BX+2]
|
|||
|
JC OVERIT_
|
|||
|
MOV BX,[BX+4]
|
|||
|
SUB BX,6
|
|||
|
OVERIT_:
|
|||
|
ADD BX,6
|
|||
|
CMP WORD PTR [BX],0
|
|||
|
JNE _NEXTp_4
|
|||
|
MOV BX,0
|
|||
|
MOV NEXT_A,BX
|
|||
|
RETN
|
|||
|
_NEXTp_4:
|
|||
|
MOV NEXT_A,BX
|
|||
|
JMP [BX]
|
|||
|
RETN
|
|||
|
_BONUS_X_CALCS: ;FN: MULTIPLIES THE BONUS
|
|||
|
;INPUT: BONUS_X, BONUSSIFFRORNA
|
|||
|
;OUTPUT: BONUSSIFFRORNA
|
|||
|
PUSH BX
|
|||
|
PUSH ES
|
|||
|
MOVEBCD TEMPBONUSBCD,BONUSSIFFRORNA
|
|||
|
MOV CL,BONUS_X
|
|||
|
DEC CL
|
|||
|
JZ NO_X_BONUS
|
|||
|
NIL CH
|
|||
|
DO_IT_AGAIN:
|
|||
|
PUSH CX
|
|||
|
MOV SI,OFFSET TEMPBONUSBCD
|
|||
|
MOV DI,OFFSET BONUSSIFFRORNA
|
|||
|
CALL ADDSCOREBCD
|
|||
|
POP CX
|
|||
|
LOOP DO_IT_AGAIN
|
|||
|
NO_X_BONUS:
|
|||
|
MOV AL,BONUS_X
|
|||
|
ADD AL,'7'
|
|||
|
MOV BONUS_X_TEXT[8],AL
|
|||
|
POP ES
|
|||
|
POP BX
|
|||
|
MOV SISA,1
|
|||
|
MOV DOTRUT,OFFSET WAITRUT
|
|||
|
JMP NORMAL_END
|
|||
|
|
|||
|
|
|||
|
_JBONUSX1:
|
|||
|
CMP BONUS_X,1
|
|||
|
JNE QJBX1
|
|||
|
ADD BX,2
|
|||
|
MOV BX,[BX]
|
|||
|
MOV NEXT_A,BX
|
|||
|
JMP [BX]
|
|||
|
QJBX1: MOV SISA,1
|
|||
|
MOV DOTRUT,OFFSET WAITRUT
|
|||
|
JMP NORMAL_END
|
|||
|
|
|||
|
_Jmp:
|
|||
|
add bx,2
|
|||
|
mov bx,[bx]
|
|||
|
MOV NEXT_A,BX
|
|||
|
JMP [BX]
|
|||
|
retn
|
|||
|
|
|||
|
|
|||
|
_CALC_HAPPY:
|
|||
|
MOV DOTRUT,OFFSET WAITRUT
|
|||
|
MOV SISA,1
|
|||
|
PUSHA
|
|||
|
MOV SI,OFFSET OR_TOTAL ;ML_TOT -> TOTAL BONUS
|
|||
|
MOV DI,OFFSET BONUSSIFFRORNA
|
|||
|
CALL ADDSCOREBCD
|
|||
|
POPA
|
|||
|
ADD BX,2
|
|||
|
CMP WORD PTR [BX],0
|
|||
|
JNE _NEXTp_3E
|
|||
|
MOV BX,0
|
|||
|
_NEXTp_3E:
|
|||
|
MOV NEXT_A,BX
|
|||
|
RETN
|
|||
|
|
|||
|
_CALC_mega:
|
|||
|
MOV DOTRUT,OFFSET WAITRUT
|
|||
|
MOV SISA,1
|
|||
|
PUSHA
|
|||
|
MOV SI,OFFSET tm_TOTAL ;ML_TOT -> TOTAL BONUS
|
|||
|
MOV DI,OFFSET BONUSSIFFRORNA
|
|||
|
CALL ADDSCOREBCD
|
|||
|
POPA
|
|||
|
ADD BX,2
|
|||
|
CMP WORD PTR [BX],0
|
|||
|
JNE _NEXTp_3Eh
|
|||
|
MOV BX,0
|
|||
|
_NEXTp_3Eh:
|
|||
|
MOV NEXT_A,BX
|
|||
|
RETN
|
|||
|
|
|||
|
|
|||
|
|
|||
|
_CALC_CYCLO:
|
|||
|
PUSH ES
|
|||
|
MOVE ES,DS
|
|||
|
MOV DI,OFFSET CYCLONESCOREBCD
|
|||
|
NIL AX
|
|||
|
MOV CX,12/2 ;(12/6=6!!!)
|
|||
|
REP STOSW
|
|||
|
POP ES
|
|||
|
|
|||
|
MOV DOTRUT,OFFSET WAITRUT
|
|||
|
MOV SISA,1
|
|||
|
MOV CX,CYCLONECOUNTER
|
|||
|
URBANLOOP:
|
|||
|
MOV SI,OFFSET HUNDRATUSEN
|
|||
|
MOV DI,OFFSET CYCLONESCOREBCD
|
|||
|
PUSH CX BX
|
|||
|
CALL ADDSCOREBCD
|
|||
|
POP BX CX
|
|||
|
LOOP URBANLOOP
|
|||
|
|
|||
|
MOV SI,OFFSET CYCLONESCOREBCD ;CYCLONES -> TOTAL BONUS
|
|||
|
MOV DI,OFFSET BONUSSIFFRORNA
|
|||
|
CALL ADDSCOREBCD
|
|||
|
|
|||
|
ADD BX,2
|
|||
|
CMP WORD PTR [BX],0
|
|||
|
JNE _NEXTp_3gg
|
|||
|
MOV BX,0
|
|||
|
_NEXTp_3gg:
|
|||
|
MOV NEXT_A,BX
|
|||
|
RETN
|
|||
|
|
|||
|
READ_SPECIAL_MODE_COUNTER PROC NEAR
|
|||
|
|
|||
|
;[SEC_ASC] PEKAR P<> MSD, (0='*') [SEC_ASC+1] PEKAR P<> LSD
|
|||
|
;L<>S AV BARA!
|
|||
|
MOVE DS,DATA
|
|||
|
cmp [sec_asc],'*'
|
|||
|
jne no_end
|
|||
|
cmp [sec_asc+1],'0'+7 ;???
|
|||
|
jne no_end
|
|||
|
cmp turbomode,true
|
|||
|
jne noturboend
|
|||
|
playjingle_penetrate Sjingle20
|
|||
|
mov lastjingle,3
|
|||
|
noturboend:
|
|||
|
cmp OffRoadmode,true
|
|||
|
jne nooffrend
|
|||
|
playjingle_penetrate Sjingle23
|
|||
|
mov lastjingle,3
|
|||
|
nooffrend:
|
|||
|
; mov specialmode,false
|
|||
|
mov offroadmode,false
|
|||
|
mov turbomode,false ;mega cp!!
|
|||
|
mov current_priority,0
|
|||
|
mov lastjingle,3
|
|||
|
mov jinglejumpcnt,1
|
|||
|
no_end:
|
|||
|
RETN
|
|||
|
READ_SPECIAL_MODE_COUNTER ENDP
|
|||
|
|
|||
|
_DOBEATEN:
|
|||
|
MOVE SISA,1
|
|||
|
MOV DOTRUT,OFFSET WAITRUT
|
|||
|
PUSHA
|
|||
|
LIGHTON 55
|
|||
|
POPA
|
|||
|
JMP NORMAL_END
|
|||
|
|
|||
|
|
|||
|
CODE ENDS
|
|||
|
|
|||
|
;******************************************************************************
|
|||
|
;************************* O T H E R S E G M E N T S ************************
|
|||
|
;******************************************************************************
|
|||
|
|
|||
|
HIDDEN1 SEGMENT PARA PUBLIC 'DATA'
|
|||
|
UNDANSPR DB 16*16 DUP (0)
|
|||
|
HIDDA DB 576*2 DUP(0)
|
|||
|
EXTRN HID1
|
|||
|
HIDDEN1 ENDS
|
|||
|
|
|||
|
HIDDEN2 SEGMENT PARA PUBLIC 'DATA'
|
|||
|
HIDDA2 DB 576*2 DUP(0)
|
|||
|
EXTRN HID2
|
|||
|
HIDDEN2 ENDS
|
|||
|
|
|||
|
MASK1_2 SEGMENT PARA PUBLIC 'DATA'
|
|||
|
EXTRN MASK12
|
|||
|
MASK1_2 ENDS
|
|||
|
|
|||
|
MASK1_1 SEGMENT PARA PUBLIC 'DATA'
|
|||
|
EXTRN MASK11
|
|||
|
MASK1_1 ENDS
|
|||
|
|
|||
|
MASK2_2 SEGMENT PARA PUBLIC 'DATA'
|
|||
|
EXTRN MASK22
|
|||
|
MASK2_2 ENDS
|
|||
|
|
|||
|
FLIPLEFT SEGMENT PARA PUBLIC 'DATA'
|
|||
|
if create_flip_data
|
|||
|
EXTRN FLIPL
|
|||
|
else
|
|||
|
extrn flipl_1
|
|||
|
endif
|
|||
|
FLIPLEFT ENDS
|
|||
|
|
|||
|
FLIPLEFT2 SEGMENT PARA PUBLIC 'DATA'
|
|||
|
if create_flip_data
|
|||
|
EXTRN FLIPL2
|
|||
|
else
|
|||
|
extrn flipr2_1
|
|||
|
endif
|
|||
|
FLIPLEFT2 ENDS
|
|||
|
|
|||
|
FLIPRIGHT SEGMENT PARA PUBLIC 'DATA'
|
|||
|
if create_flip_data
|
|||
|
EXTRN FLIPR
|
|||
|
else
|
|||
|
extrn flipR_1
|
|||
|
endif
|
|||
|
FLIPRIGHT ENDS
|
|||
|
|
|||
|
LASTSEG SEGMENT
|
|||
|
LASTSEG ENDS
|
|||
|
|
|||
|
STAGE1_1 SEGMENT PARA PUBLIC 'DUMP'
|
|||
|
extrn st1
|
|||
|
STAGE1_1 ENDS
|
|||
|
|
|||
|
STAGE1_2 SEGMENT PARA PUBLIC 'DUMP'
|
|||
|
extrn st2
|
|||
|
STAGE1_2 ENDS
|
|||
|
|
|||
|
STAGE1_3 SEGMENT PARA PUBLIC 'DUMP'
|
|||
|
extrn st3
|
|||
|
STAGE1_3 ENDS
|
|||
|
|
|||
|
STAGE1_4 SEGMENT PARA PUBLIC 'DUMP'
|
|||
|
extrn st4
|
|||
|
STAGE1_4 ENDS
|
|||
|
|
|||
|
MASK1_3 SEGMENT PARA PUBLIC 'DUMP'
|
|||
|
EXTRN MASK13
|
|||
|
MASK1_3 ENDS
|
|||
|
|
|||
|
MASK2_1 SEGMENT PARA PUBLIC 'DUMP'
|
|||
|
EXTRN MASK21
|
|||
|
MASK2_1 ENDS
|
|||
|
|
|||
|
MASK2_3 SEGMENT PARA PUBLIC 'DUMP'
|
|||
|
EXTRN MASK23
|
|||
|
MASK2_3 ENDS
|
|||
|
|
|||
|
FLIPGFXSEG SEGMENT PARA PUBLIC 'DUMP'
|
|||
|
EXTRN FLIPGFX:BYTE
|
|||
|
SISTAGFX LABEL BYTE
|
|||
|
FLIPGFXSEG ENDS
|
|||
|
|
|||
|
SPRINGSEG SEGMENT PARA PUBLIC 'DUMP'
|
|||
|
EXTRN SPRING
|
|||
|
SPRINGSEG ENDS
|
|||
|
;******************************************************************************
|
|||
|
|
|||
|
|
|||
|
|