Escape


0006fd0413 Set return function for $self to function 0413 - Jon hanger
00070413 When shot/hit, assign function 0413 - Jon hanger
0034fd32 If $self has finished death animation goto 32
0033fd32 If $self is dying/dead goto 32
017bfd32 If $self's body has disappeared goto 32
000006 Go to next 06
000232 Label 32
0005fd0000 Assign function 0000 - Idle to $self and advance frame
000232 Label 32
0083fd06 If $self shot (while recoiling?) goto 06
000063 Go to next 63
000206 Label 06
00b6 Reset and start cycle counter
000264 Label 64
0003 Yield
003263 If actor has stopped moving goto 63
000164 Go to first 64
000209 Label 09
0005fd000c Assign function 000c - Combat with ally? to $self and advance frame
000263 Label 63
0106f20000 Set $player to P1 or P2
000212 Label 12
001d015f Jog to pad 015f
000213 Label 13
0003 Yield
0128fe32 If actor within 254 units of an enemy and has line of sight then set AI vs AI and goto 32
0054fd015f001e06 If $self is within 351 units of pad 001e goto 06
003206 If actor has stopped moving goto 06
000113 Go to first 13
000232 Label 32
000109 Go to first 09
000206 Label 06
00a102000000 Set flag #26 (Jon ready for hanger conversation)
0009 Actor stops travelling
0106f20000 Set $player to P1 or P2
00180200000014 Actor faces something (entity type=0x0200, entity_id=0x0000), then goto 14
000214 Label 14
0003 Yield
0106220000 Set $player to actor 22 (Maian)
0053002832 If actor is further than 40 units from player goto 32
0106f20000 Set $player to P1 or P2
0053002832 If actor is further than 40 units from player goto 32
003506 If $player in sight goto 06
000232 Label 32
000114 Go to first 14
000206 Label 06
003422c3 If actor 22 (Maian) has finished death animation goto c3
003322c3 If actor 22 (Maian) is dying/dead goto c3
017b22c3 If actor 22 (Maian)'s body has disappeared goto c3
00b6 Reset and start cycle counter
000b0232ffff00c802002202 Actor actor 22 (Maian) does animation 0232 (talking with right arm forward)
00cdf2483b1a9a0506 Display text and play a sound in channel 5 for P1 or P2:
Oh, no! We have a problem. It's a single seater!
00027d Label 7d
0003 Yield
003422c3 If actor 22 (Maian) has finished death animation goto c3
003322c3 If actor 22 (Maian) is dying/dead goto c3
017b22c3 If actor 22 (Maian)'s body has disappeared goto c3
01380532 If sound in channel 5 is finished goto 32
00017d Go to first 7d
000232 Label 32
00bd00012c06 If cycle counter > 300 (5.0 secs) goto 06
00017d Go to first 7d
000206 Label 06
00b6 Reset and start cycle counter
000b0233ffff00c802002202 Actor actor 22 (Maian) does animation 0233 (move right arm, head up and down)
00cdf2483c1a9b0506 Display text and play a sound in channel 5 for P1 or P2:
Two can get in but no more.
00027e Label 7e
0003 Yield
003422c3 If actor 22 (Maian) has finished death animation goto c3
003322c3 If actor 22 (Maian) is dying/dead goto c3
017b22c3 If actor 22 (Maian)'s body has disappeared goto c3
01380532 If sound in channel 5 is finished goto 32
00017e Go to first 7e
000232 Label 32
00bd0000c806 If cycle counter > 200 (3.3 secs) goto 06
00017e Go to first 7e
000206 Label 06
00b6 Reset and start cycle counter
00cdf8482972a70509 Display text and play a sound in channel 5 for Joanna:
It's the only way out of here.
000215 Label 15
0003 Yield
003422c3 If actor 22 (Maian) has finished death animation goto c3
003322c3 If actor 22 (Maian) is dying/dead goto c3
017b22c3 If actor 22 (Maian)'s body has disappeared goto c3
01380532 If sound in channel 5 is finished goto 32
000115 Go to first 15
000232 Label 32
00bd00007806 If cycle counter > 120 (2.0 secs) goto 06
000115 Go to first 15
000206 Label 06
00b6 Reset and start cycle counter
000b0232ffff00c802002202 Actor actor 22 (Maian) does animation 0232 (talking with right arm forward)
00cdf2483d1a9c0506 Display text and play a sound in channel 5 for P1 or P2:
Plus, it's got no style, you know what I'm saying?
00027f Label 7f
0003 Yield
003422c3 If actor 22 (Maian) has finished death animation goto c3
003322c3 If actor 22 (Maian) is dying/dead goto c3
017b22c3 If actor 22 (Maian)'s body has disappeared goto c3
01380532 If sound in channel 5 is finished goto 32
00017f Go to first 7f
000232 Label 32
00bd0000c806 If cycle counter > 200 (3.3 secs) goto 06
00017f Go to first 7f
000206 Label 06
00b6 Reset and start cycle counter
00cdf8482a72a80509 Display text and play a sound in channel 5 for Joanna:
You're the only one who can fly it, Elvis, so get in.
000217 Label 17
0003 Yield
003422c3 If actor 22 (Maian) has finished death animation goto c3
003322c3 If actor 22 (Maian) is dying/dead goto c3
017b22c3 If actor 22 (Maian)'s body has disappeared goto c3
01380532 If sound in channel 5 is finished goto 32
000117 Go to first 17
000232 Label 32
00bd0000f006 If cycle counter > 240 (4.0 secs) goto 06
000117 Go to first 17
000206 Label 06
00b6 Reset and start cycle counter
000b0231ffff00c802002102 Actor actor 21 (Jonathan) does animation 0231 (left arm up then down)
00cdf2482d12b90503 Display text and play a sound in channel 5 for P1 or P2:
One of us will have to stay behind and open the hangar doors.
00021a Label 1a
0003 Yield
003422c3 If actor 22 (Maian) has finished death animation goto c3
003322c3 If actor 22 (Maian) is dying/dead goto c3
017b22c3 If actor 22 (Maian)'s body has disappeared goto c3
01380532 If sound in channel 5 is finished goto 32
00011a Go to first 1a
000232 Label 32
00bd0000f006 If cycle counter > 240 (4.0 secs) goto 06
00011a Go to first 1a
000206 Label 06
00b6 Reset and start cycle counter
00cdf8482b72a90509 Display text and play a sound in channel 5 for Joanna:
But we can't leave you behind.
000218 Label 18
0003 Yield
003422c3 If actor 22 (Maian) has finished death animation goto c3
003322c3 If actor 22 (Maian) is dying/dead goto c3
017b22c3 If actor 22 (Maian)'s body has disappeared goto c3
01380532 If sound in channel 5 is finished goto 32
000118 Go to first 18
000232 Label 32
00bd00007806 If cycle counter > 120 (2.0 secs) goto 06
000118 Go to first 18
000206 Label 06
00b6 Reset and start cycle counter
00cdf8482c72aa0509 Display text and play a sound in channel 5 for Joanna:
There must be a way out of here.
000219 Label 19
0003 Yield
003422c3 If actor 22 (Maian) has finished death animation goto c3
003322c3 If actor 22 (Maian) is dying/dead goto c3
017b22c3 If actor 22 (Maian)'s body has disappeared goto c3
01380532 If sound in channel 5 is finished goto 32
000119 Go to first 19
000232 Label 32
00bd00007806 If cycle counter > 120 (2.0 secs) goto 06
000119 Go to first 19
000206 Label 06
00b6 Reset and start cycle counter
000b0232ffff00c802002102 Actor actor 21 (Jonathan) does animation 0232 (talking with right arm forward)
00cdf2482e12ba0503 Display text and play a sound in channel 5 for P1 or P2:
I'll get out on that hoverbike. Cover me while I open the doors.
00021b Label 1b
0003 Yield
00bd00007866 If cycle counter > 120 (2.0 secs) goto 66
00011b Go to first 1b
000266 Label 66
00342206 If actor 22 (Maian) has finished death animation goto 06
00332206 If actor 22 (Maian) is dying/dead goto 06
017b2206 If actor 22 (Maian)'s body has disappeared goto 06
000522041c Assign function 041c - Elvis while Jon doing terminals to actor 22 (Maian) and advance frame
000206 Label 06
00a104000000 Set flag #27 (Jon running to terminals)
009b0000200000 Set an actor flag
00b6 Reset and start cycle counter
001d016f Jog to pad 016f
00021c Label 1c
0003 Yield
00bc0000f032 If cycle counter < 240 (4.0 secs) goto 32
00a3080000000132 If flag #28 (X music started) is true goto 32
016afdfda80133 If $self's Y > -600 goto 33
0106f20000 Set $player to P1 or P2
0052001e59 If actor is within 30 units of $player goto 59
000232 Label 32
003206 If actor has stopped moving goto 06
00011c Go to first 1c
000233 Label 33
00a108000000 Set flag #28 (X music started)
00f9010a5a Play X music in channel 1 for 90 seconds
0020016f Run to pad 016f
00a108000000 Set flag #28 (X music started)
003206 If actor has stopped moving goto 06
00011c Go to first 1c
000206 Label 06
000b02040000ffff1010fd02 Actor $self does animation 0204 (lean forward/down move arms)
00021d Label 1d
0003 Yield
003206 If actor has stopped moving goto 06
00011d Go to first 1d
000206 Label 06
00a3002000000132 If flag #22 (Objective failed: Escape from Area 51) is true goto 32
00a100400000 Set flag #23 (inner hanger door opened)
006c2c Open door 2c (A51 square door (top part))
006c2d Open door 2d (A51 square door (top part))
00aa2c40000000 Set property for object 2c (A51 square door (top part)): 1:40000000 (unknown prop)
00aa2d40000000 Set property for object 2d (A51 square door (top part)): 1:40000000 (unknown prop)
00cbf24827 Display text in bottom left for P1 or P2:
Inner hangar door is opening.
000232 Label 32
009b0000400000 Set an actor flag
00200171 Run to pad 0171
00021e Label 1e
0003 Yield
0054fd0171001406 If $self is within 369 units of pad 0014 goto 06
003206 If actor has stopped moving goto 06
00011e Go to first 1e
000206 Label 06
000b02040000ffff1010fd02 Actor $self does animation 0204 (lean forward/down move arms)
00021f Label 1f
0003 Yield
003206 If actor has stopped moving goto 06
00011f Go to first 1f
000206 Label 06
00a3002000000120 If flag #22 (Objective failed: Escape from Area 51) is true goto 20
00a100800000 Set flag #24 (outer hanger door opened)
006c2e Open door 2e (A51 square door (top part))
006c2f Open door 2f (A51 square door (top part))
00aa2e40000000 Set property for object 2e (A51 square door (top part)): 1:40000000 (unknown prop)
00aa2f40000000 Set property for object 2f (A51 square door (top part)): 1:40000000 (unknown prop)
00cbf24825 Display text in bottom left for P1 or P2:
Outer hangar door is opening.
000220 Label 20
0003 Yield
0005fd041b Assign function 041b to $self and advance frame
000120 Go to first 20
000259 Label 59
00cdf8482f72ac0509 Display text and play a sound in channel 5 for Joanna:
Jonathan, go with Elvis. I'll see to the consoles.
00b6 Reset and start cycle counter
00180200000046 Actor faces something (entity type=0x0200, entity_id=0x0000), then goto 46
000246 Label 46
0003 Yield
004d0a06 If actor is facing player within 10 degrees (?) goto 06
00bd00003c06 If cycle counter > 60 (1.0 secs) goto 06
000146 Go to first 46
000206 Label 06
00b6 Reset and start cycle counter
00024a Label 4a
0003 Yield
00bd00007806 If cycle counter > 120 (2.0 secs) goto 06
00014a Go to first 4a
000206 Label 06
00a110000000 Set flag #29 (Jo agreed to do consoles)
00a108000000 Set flag #28 (X music started)
00f9010a5a Play X music in channel 1 for 90 seconds
0005fd041b Assign function 041b to $self and advance frame
0002c3 Label c3
0006fd041b Set return function for $self to function 041b
0005fd041b Assign function 041b to $self and advance frame
0004 End of function

Invocations

Comments

Flag 14 = Jon started running to first terminal
Flag 15 = ?
Flag 22 = ?
Flag 23 = Inner hanger door opening
Flag 24 = Terminal 2 done?
Flag 26 = ?
Flag 27 = Jon started running to first terminal
Flag 28 = X music started
Flag 29 = ?

Flag 23 = inner door opening/opened
Flag 24 = outer door opening/opened
Flag 28 = x music started/terminals ready


"Cover me while I open the doors"
Allow 2 seconds for speech to play
Set flags 27 and 14
Start running to terminal 2
Over the next 4 seconds, if Jon's movement stops goto 06 (ie. at terminal 2)
After 4 seconds, start doing more checks:
- flag_28 true (impossible on first iteration)? goto 32
- on ramp? goto 33, which starts x music and sets flag_28
- within 30 units of Jo? Jo takes over
- stopped moving? (ie. at terminal?) goto 06

Terminal 1 = pads 0171, 03fd, 03f7
Terminal 2 = pads 048e, 016f, 03f8