-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinit_game.s
More file actions
86 lines (77 loc) · 1.62 KB
/
init_game.s
File metadata and controls
86 lines (77 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
initGame:
clr SCREEN_SHAKE
call resetKeysAmmo
call displayGameScreen
call displayLoadMessage2
jmp loadMap ; loadMap finishes with return
resetKeysAmmo:
movb #0b111, KEYS ; clr KEYS
mov #329, AMMO_PISTOL
; clr AMMO_PISTOL
; mov #512, AMMO_PLASMA
clr AMMO_PLASMA
clr INV_BOMBS
clr INV_EMP
clr INV_MEDKIT
clr INV_MAGNET
clr SELECTED_WEAPON
clr SELECTED_ITEM
clr MAGNET_ACT
clr PLASMA_ACT
clr BIG_EXP_ACT
clr CYCLES
clr SECONDS
clr MINUTES
clr HOURS
return
displayGameScreen:
mov #SCR_TEXT, r0
mov #TEXT_BUFFER, r1
jmp unZX0 ; unZX0 finishes with return
loadMap:
.equiv SELECTED_MAP, .+2
mov #1, r1
dec r1
mul #6, r1
mov #MAPS, r0
add r1, r0
call loadDiskFile
return
setDiffLevel:
.equiv DIFF_LEVEL, .+2
mov #1, r0
bze set_diff_easy
cmp r0, #2
beq set_diff_hard
; normal difficulty - do nothing
return
set_diff_easy:
; Find all hidden items and double the quantity.
mov #UNIT_TYPE + 48, r4
mov #UNIT_A + 48, r5
mov #64 - 48, r1
10$:
clr r0
bisb (r4)+, r0
bze 20$
cmpb r0, #ID_HIDDEN_KEY ; KEY
beq 20$
aslb (r5) ; double item quantity
20$:
inc r5
sob r1, 10$
return
set_diff_hard:
; Find all hoverbots and change AI
mov #UNIT_TYPE, r5
mov #28, r1
10$:
cmpb (r5), #2 ; hoverbot left/right
beq 20$
cmpb (r5), #3 ; hoverbot up/down
beq 20$
movb #4, (r5) ; hoverbot attack mode
20$:
inc r5
sob r1, 10$
return