Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SHIP.ShootMissileSECOBID:
- enter 4, 16d ; 10h
- push 0
- get_object
- call85 SHIP.GetMissileMask ; 00009FF8
- push SP[6] ; arg3
- pushb 10d ; 0Ah
- push 2
- get_object
- call85 GetWareTypeCount ; 000054A3
- push SP[7] ; arg3
- pushb 10d ; 0Ah
- push 2
- callasm SA_GetTypeGSubType ; 00000F53
- push SP[1] ; loc2
- if SP[0]=0 then jump L000B2E60
- push 1
- push SP[1] ; loc3
- shl SP[1],SP[0]
- push SP[3] ; loc1
- and SP[0],SP[1]
- if SP[0]=0 then jump L000B2E60
- push 1
- jump L000B2E61
- L000B2E60: push 0
- L000B2E61: if SP[0]=0 then jump L000B3121
- push 1
- push SP[8] ; arg2
- push 0
- if SP[0]>=SP[1] then push 0 else push 1
- if SP[0]=0 then jump L000B2E88
- push SP[8] ; arg2
- push 1
- get_object
- call85 SHIP.GetNumLasersInTurret ; 00009F80
- push 0
- if SP[0]>=SP[1] then push 0 else push 1
- if SP[0]=0 then jump L000B2E88
- push 1
- jump L000B2E89
- L000B2E88: push 0
- L000B2E89: if SP[0]=0 then jump L000B2EA5
- push SP[8] ; arg2
- push 1
- get_object
- call85 SHIP.GetTurretLaserMask ; 00009F5F
- push 0
- if SP[0]<>SP[1] then push 0 else push 1
- if SP[0]=0 then jump L000B2EA5
- push 1
- jump L000B2EA6
- L000B2EA5: push 0
- L000B2EA6: if SP[0]=0 then jump L000B2EB0
- push 0
- mov SP[1],SP[0] ; loc4
- pop
- L000B2EB0: push SP[0] ; loc4
- if SP[0]=0 then jump L000B2F91
- push 0
- mov SP[9],SP[0] ; arg2
- pop
- push 0
- pushd 2147483647d ; 7FFFFFFFh
- push SP[9] ; arg1
- push SP[0] ; loc7
- if SP[0]=0 then push 1 else push 0
- if SP[0]=0 then jump L000B2EE4
- pushd 5000000d ; 004C4B40h
- read GBODY.var_1000_3 ; [3]
- read GBODY.var_1000_3 ; [3]
- push 3
- callasm SA_FindNearestEnemyFromPos ; 0001019C
- mov SP[1],SP[0] ; loc7
- pop
- L000B2EE4: push 0
- mov SP[3],SP[0] ; loc5
- pop
- L000B2EE9: push SP[2] ; loc5
- push 0
- get_object
- call85 SHIP.GetNumCockpits ; 0000FB41
- if SP[0]<=SP[1] then push 0 else push 1
- if SP[0]=0 then jump L000B2F8E
- jump L000B2F0C
- L000B2EFE: push SP[2] ; loc5
- push 1
- add SP[0],SP[1]
- mov SP[3],SP[0] ; loc5
- pop
- jump L000B2EE9
- L000B2F0C: push SP[2] ; loc5
- push 1
- get_object
- call85 SHIP.GetTurretIDFromCockpitID ; 00006343
- push SP[0] ; loc8
- push 1
- get_object
- call85 SHIP.GetNumLasersInTurret ; 00009F80
- push 0
- if SP[0]>=SP[1] then push 0 else push 1
- if SP[0]=0 then jump L000B2F3E
- push SP[0] ; loc8
- push 1
- get_object
- call85 SHIP.GetTurretLaserMask ; 00009F5F
- push 0
- if SP[0]<>SP[1] then push 0 else push 1
- if SP[0]=0 then jump L000B2F3E
- push 1
- jump L000B2F3F
- L000B2F3E: push 0
- L000B2F3F: if SP[0]=0 then jump L000B2F88
- push SP[1] ; loc7
- if SP[0]=0 then jump L000B2F7B
- push SP[1] ; loc7
- push SP[4] ; loc5
- read GBODY.var_1000_3 ; [3]
- push 3
- callasm SA_DistanceFromCockpit ; 000101B7
- push SP[0] ; loc9
- push SP[4] ; loc6
- if SP[0]<=SP[1] then push 0 else push 1
- if SP[0]=0 then jump L000B2F75
- push SP[1] ; loc8
- mov SP[14d],SP[0] ; arg2
- pop
- push SP[0] ; loc9
- mov SP[4],SP[0] ; loc6
- pop
- L000B2F75: pop
- jump L000B2F88
- L000B2F7B: push SP[0] ; loc8
- mov SP[13d],SP[0] ; arg2
- pop
- pop
- jump L000B2F8E
- L000B2F88: pop
- jump L000B2EFE
- L000B2F8E: popx 3
- L000B2F91: push SP[10d] ; arg4
- push SP[10d] ; arg3
- push SP[9] ; arg1
- push SP[11d] ; arg2
- read GBODY.var_1000_3 ; [3]
- pushb 5
- callasm SA_ShootMissile ; 00003EB9
- push SP[10d] ; arg3
- push 1
- callasm SA_GetMissileTypeGuidance ; 00003E9F
- push SP[0] ; loc6
- pushb 4
- and SP[0],SP[1]
- if SP[0]=0 then jump L000B303F
- begin_critical
- if SP[0]<>0 then jump L000B303F
- push 1
- pushb 8
- push 0
- push SP[3] ; loc6
- push 2
- and SP[0],SP[1]
- if SP[0]=0 then jump L000B2FD6
- pushw 250d ; 0FAh
- mov SP[3],SP[0] ; loc7
- pop
- L000B2FD6: push 1
- mov SP[1],SP[0] ; loc9
- pop
- L000B2FDB: push SP[0] ; loc9
- push SP[2] ; loc8
- if SP[0]<=SP[1] then push 0 else push 1
- if SP[0]=0 then jump L000B303B
- jump L000B2FFC
- L000B2FEC: push SP[0] ; loc9
- push 1
- add SP[0],SP[1]
- mov SP[1],SP[0] ; loc9
- ; push 1
- ; sub SP[0],SP[1]
- pop
- jump L000B2FDB
- L000B2FFC: push SP[2] ; loc7
- push 1
- callasm TI_Delay ; 00002A99
- pop
- push SP[0] ; loc9
- push SP[16d] ; arg4
- push SP[16d] ; arg3
- push SP[15d] ; arg1
- push SP[17d] ; arg2
- read GBODY.var_1000_3 ; [3]
- pushb 6
- callasm SA_ShootMissile ; 00003EB9
- push SP[0] ; loc10
- if SP[0]=0 then jump L000B3035
- push SP[0] ; loc10
- push 1
- pushw 2085d ; 0825h
- create_object
- call85 Obj_2085.CreateFromSECOBID ; 0000D62E
- pop
- L000B3035: pop
- jump L000B2FEC
- L000B303B: popx 3
- end_critical
- L000B303F: push SP[1] ; loc5
- if SP[0]=0 then jump L000B311E
- pushb -1d ; 0FFh
- push SP[12d] ; arg3
- pushb 10d ; 0Ah
- push 3
- get_object
- call85 AddWare ; 0000000C
- pop
- push SP[1] ; loc5
- push 1
- pushw 2085d ; 0825h
- create_object
- call85 Obj_2085.CreateFromSECOBID ; 0000D62E
- push SP[12d] ; arg3
- pushb 35d ; 23h
- if SP[0]<>SP[1] then push 0 else push 1
- if SP[0]=0 then jump L000B308E
- push SP[10d] ; arg1
- push 1
- callasm SA_GetEventObject ; 00000216
- read SHIP.var_2004_93 ; [105d ; 69h]
- push SP[1] ; loc8
- push SP[3] ; loc7
- push 3
- get_object
- call85 Obj_2134.LaunchBoardingPod ; 000101CE
- pop
- push 0
- write SHIP.var_2004_93 ; [105d ; 69h]
- pop
- pop
- L000B308E: read SHIP.var_2004_16 ; [28d ; 1Ch]
- push SP[13d] ; arg3
- if SP[0]<>SP[1] then push 0 else push 1
- if SP[0]=0 then jump L000B30AC
- read SHIP.var_2004_29 ; [41d ; 29h]
- readvar global.ga_Player ; [8]
- if SP[0]<>SP[1] then push 0 else push 1
- if SP[0]=0 then jump L000B30AC
- push 1
- jump L000B30AD
- L000B30AC: push 0
- L000B30AD: if SP[0]=0 then jump L000B3113
- push SP[5] ; loc2
- push 1
- if SP[0]<SP[1] then push 0 else push 1
- if SP[0]=0 then jump L000B30FC
- pushb -1d ; 0FFh
- write SHIP.var_2004_16 ; [28d ; 1Ch]
- pop
- push 0
- get_object
- call85 ChangeCurrentMissileType ; 000066E2
- pop
- get_object
- readvar global.ga_PlayerShip ; [9]
- if SP[0]<>SP[1] then push 0 else push 1
- if SP[0]=0 then jump L000B30E4
- read SHIP.var_2004_16 ; [28d ; 1Ch]
- push 0
- if SP[0]>SP[1] then push 0 else push 1
- if SP[0]=0 then jump L000B30E4
- push 1
- jump L000B30E5
- L000B30E4: push 0
- L000B30E5: if SP[0]=0 then jump L000B30F7
- pushw 963d ; 03C3h
- push 1
- pushw 200d ; 0C8h
- call86 X_AUDIO.PlaySample ;
- pop
- L000B30F7: jump L000B3113
- L000B30FC: push SP[11d] ; arg2
- push SP[6] ; loc2
- push 1
- sub SP[0],SP[1]
- push SP[14d] ; arg3
- get_object
- pushb 4
- pushw 605d ; 025Dh
- call86 MONITORCONTROL.SetCurrentMissile ;
- pop
- L000B3113: push SP[0] ; loc7
- mov SP[7],SP[0] ; loc1
- popx 7
- ret
- ; pop
- L000B311E: popx 3
- L000B3121: push 0
- mov SP[3],SP[0] ; loc1
- popx 3
- ret
- ; popx 3
- ; push 0
- ; ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement