-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathai_fixes.bdscript
More file actions
145 lines (137 loc) · 2.18 KB
/
Copy pathai_fixes.bdscript
File metadata and controls
145 lines (137 loc) · 2.18 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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
SIMPLE STARTING COORDINATES FIX
...
TRINIT
...
pushFromFSp 0
; add this
dup
syscall 1, 147 ; pos
memcpyToWp 16, WTHISPOS
; done with add
pushFromPWp WTABLE
syscall 1, 7 ; trap_obj_set_act_table
...
pushImmf 0
pushImmf 0
pushImmf 0
>>>>>>>>
pushFromPWp WTHISPOS
fetchValue 0
pushFromPWp WTHISPOS
fetchValue 4
pushFromPWp WTHISPOS
fetchValue 8
SAVE CENTER COORDINATE AS FIX
WorkSize: 100
>>>
WorkSize: 132
...
...
FIND_CENTER:
; find center pos
; this object on top of stack
dup
syscall 1, 147 ; trap_obj_pos
pushFromPWp WPLAYER
pushImm 566
syscall 1, 114 ; trap_obj_search_by_entry
pushFromPWp WPLAYER
syscall 1, 147 ; trap_obj_pos
syscall 0, 4 ; trap_vector add
pushImmf 2
syscall 0, 37 ; divide
memcpyToWp 16, WCENTERPOS
; end find center pos
ret
...
gosub 4, FIND_CENTER
...
pushImmf 0
pushImmf 0
pushImmf 0
>>>>>>>>
pushFromPWp WCENTERPOS
fetchValue 0
pushFromPWp WCENTERPOS
fetchValue 4
pushFromPWp WCENTERPOS
fetchValue 8
...
...
TRINIT:
...
pushFromFSp 0
++++++
gosub 4, FIND_CENTER
++++++
pushFromPWp ACTTABLE
syscall 1, 7 ; act_table
...
...
++++
WPLAYER:
resb 16
WCENTERPOS:
resb 16
REPLACE WITH RANDOM OPEN COORDINATES
WorkSize: 100
>>>
WorkSize: 132
...
...
FIND_CENTER:
; find center pos
; this object on top of stack
dup
syscall 1, 147 ; trap_obj_pos
pushFromPWp WPLAYER
pushImm 566
syscall 1, 114 ; trap_obj_search_by_entry
pushFromPWp WPLAYER
syscall 1, 147 ; trap_obj_pos
syscall 0, 4 ; trap_vector add
pushImmf 2
syscall 0, 37 ; divide
memcpyToWp 16, WCENTERPOS
; end find center pos
ret
GETRANDOMPOS:
pushFromPWp WCENTERPOS
pushImmf 1000 ; near
pushImmf 1000 ; far
pushImmf 0 ; low make this 100-200 to spawn in air
pushImmf 0 ; high make this 100-200 to spawn in air
syscall 1, 248 ; trap_bg_get_random_pos_air
ret
...
TRINIT:
...
pushFromFSp 0
++++++
gosub 4, FIND_CENTER
++++++
pushFromPWp ACTTABLE
syscall 1, 7 ; act_table
...
pushFromPSp 32
pushImmf 0
pushImmf 0
pushImmf -900
gosub 16, L395
>>>
pushFromPSp 32
gosub 4, GETRANDOMPOS
memcpyToSp 16, 32
...
...
++++
WPLAYER:
resb 16
WCENTERPOS:
resb 16
; get pos of other object
pushFromPWp WHYDRA
pushImm 352
syscall 1, 114
pushFromPWp WHYDRA
syscall 1, 147