185 lines
2.5 KiB
Plaintext
185 lines
2.5 KiB
Plaintext
PChase::init:
|
|
lap param[$0]
|
|
bnt code_00b8
|
|
push
|
|
ldi $1
|
|
ge?
|
|
bnt code_00a1
|
|
lap param[$1]
|
|
aTop client
|
|
lsp param[$0]
|
|
ldi $2
|
|
ge?
|
|
bnt code_00a1
|
|
lap param[$2]
|
|
aTop who
|
|
push1
|
|
push0
|
|
pToa who
|
|
send $4
|
|
bnot
|
|
aTop targetX
|
|
push2
|
|
push0
|
|
pToa who
|
|
send $4
|
|
bnot
|
|
aTop targetY
|
|
lsp param[$0]
|
|
ldi $3 ; z
|
|
ge?
|
|
bnt code_00a1
|
|
lap param[$3]
|
|
aTop distance
|
|
lsp param[$0]
|
|
ldi $4 ; scaleX
|
|
ge?
|
|
bnt code_00a1
|
|
lap param[$4]
|
|
aTop caller
|
|
code_00a1: pushi $94 ; 148, init
|
|
pushi $6 ; maxScale
|
|
pTos client
|
|
pTos targetX
|
|
pTos targetY
|
|
pTos caller
|
|
push1
|
|
pTos obstacles
|
|
super PolyPath, $10
|
|
bnot
|
|
jmp code_00c0
|
|
|
|
code_00b8: pushi $94 ; 148, init
|
|
push0
|
|
super PolyPath, $4
|
|
bnot
|
|
code_00c0: ret
|
|
|
|
PChase::doit:
|
|
link $1
|
|
pushi $165 ; 357, distanceTo
|
|
push1
|
|
pTos who
|
|
pToa client
|
|
send $6
|
|
bnot
|
|
sat temp[$0]
|
|
push
|
|
pToa distance
|
|
le?
|
|
bnt code_00de
|
|
pushi $64 ; 100, 'd', moveDone
|
|
push0
|
|
self $4
|
|
bnot
|
|
jmp code_012c
|
|
|
|
code_00de: pushi $4 ; scaleX
|
|
pTos targetX
|
|
pTos targetY
|
|
push1
|
|
push0
|
|
pToa who
|
|
send $4
|
|
bnot
|
|
push
|
|
push2
|
|
push0
|
|
pToa who
|
|
send $4
|
|
bnot
|
|
push
|
|
callk kernel_64, $8
|
|
bnot
|
|
push
|
|
pToa distance
|
|
gt?
|
|
bnt code_0125
|
|
pToa points
|
|
bnt code_0109
|
|
pushi $95 ; 149, dispose
|
|
push0
|
|
send $4
|
|
bnot
|
|
code_0109: ldi $0
|
|
aTop points
|
|
ldi $2
|
|
aTop value
|
|
pushi $94 ; 148, init
|
|
push2
|
|
pTos client
|
|
pTos who
|
|
self $8
|
|
bnot
|
|
pushi $45 ; 69, 'E', doit
|
|
push0
|
|
super PolyPath, $4
|
|
bnot
|
|
jmp code_012c
|
|
|
|
code_0125: pushi $45 ; 69, 'E', doit
|
|
push0
|
|
super PolyPath, $4
|
|
bnot
|
|
code_012c: ret
|
|
|
|
PChase::moveDone:
|
|
link $1
|
|
pushi $165 ; 357, distanceTo
|
|
push1
|
|
pTos who
|
|
pToa client
|
|
send $6
|
|
bnot
|
|
sat temp[$0]
|
|
push
|
|
pToa distance
|
|
le?
|
|
bnt code_014b
|
|
pushi $64 ; 100, 'd', moveDone
|
|
push0
|
|
super PolyPath, $4
|
|
bnot
|
|
jmp code_018d
|
|
|
|
code_014b: pushi $4b ; 75, 'K', at
|
|
push1
|
|
pTos value
|
|
pToa points
|
|
send $6
|
|
bnot
|
|
push
|
|
ldi $7777 ; 30583
|
|
eq?
|
|
bnt code_0182
|
|
pToa points
|
|
bnt code_0167
|
|
pushi $95 ; 149, dispose
|
|
push0
|
|
send $4
|
|
bnot
|
|
code_0167: ldi $0
|
|
aTop points
|
|
ldi $2
|
|
aTop value
|
|
pushi $94 ; 148, init
|
|
push2
|
|
pTos client
|
|
pTos who
|
|
self $8
|
|
bnot
|
|
pushi $45 ; 69, 'E', doit
|
|
push0
|
|
self $4
|
|
bnot
|
|
jmp code_018d
|
|
|
|
code_0182: pushi $157 ; 343, setTarget
|
|
push0
|
|
pushi $94 ; 148, init
|
|
push0
|
|
self $8
|
|
bnot
|
|
code_018d: ret
|
|
|