Global


011bf680000000 Set property for player: 2:80000000 (detected/psychosised)
011dfd8000000013 If $self has property 2:80000000 (detected/psychosised) goto 13
000016 Go to next 16
000213 Label 13
0006fd0026 Set return function for $self to function 0026 - Init psychosised guard
0005fd0026 Assign function 0026 - Init psychosised guard to $self and advance frame
000216 Label 16
009d00000100000113 If actor flag is something, goto 13
01a0fd00 Set $self's death animation to 00
000213 Label 13
009c0100000001 Unset an actor flag
011ffd13 If something to do with $self goto 13
000016 Go to next 16
000213 Label 13
0005fd000c Assign function 000c - Combat with ally? to $self and advance frame
000216 Label 16
00070007 When shot/hit, assign function 0007 - Alerted guard
01c20023 Undocumented
01c3001d Undocumented
00b55354415254204c4f4f500a00 // START LOOP
0033fd16 If $self is dying/dead goto 16
0034fd16 If $self has finished death animation goto 16
017bfd16 If $self's body has disappeared goto 16
00b54e4f5420444541440a00 // NOT DEAD
000013 Go to next 13
000216 Label 16
01c60200 Undocumented
00070000 When shot/hit, assign function 0000 - Idle
00b6 Reset and start cycle counter
00021c Label 1c
0003 Yield
00b5444945204c4f4f500a00 // DIE LOOP
00bd00000f16 If cycle counter > 15 (0.2 secs) goto 16
00011c Go to first 1c
000216 Label 16
0130f819ff03ff000000 Say random quip: "You bitch!","Oh... my... god","She got me"
00070000 When shot/hit, assign function 0000 - Idle
0005fd0000 Assign function 0000 - Idle to $self and advance frame
000213 Label 13
00b55354415254204c4f4f50320a00 // START LOOP2
0083fd16 If $self shot (while recoiling?) goto 16
016ffd0013 If $self has weapon Nothing equipped (?) goto 13
000016 Go to next 16
000213 Label 13
009d200000000101e7 If actor flag is something, goto e7
00001b Go to next 1b
000216 Label 16
00b6 Reset and start cycle counter
009c0000002001 Unset an actor flag
009c2000000001 Unset an actor flag
00b5434845434b494e4a5552590a00 // CHECKINJURY
00021d Label 1d
0003 Yield
009d00000020010016 If actor flag is something, goto 16
007d0116 If actor shot less than 1 times goto 16
00bc00001416 If cycle counter < 20 (0.3 secs) goto 16
0130f80d280300000000 Say random quip: "Medic!","Help!","You shot me?!"
0130f80e280301000000 Say random quip: "I'm hit, I'm hit!","I'm taking fire!","Taking damage!"
009b0000002000 Set an actor flag
000216 Label 16
00bd0000b413 If cycle counter > 180 (3.0 secs) goto 13
003213 If actor has stopped moving goto 13
00011d Go to first 1d
000213 Label 13
0009 Actor stops travelling
00b5494e4a204f5645520a00 // INJ OVER
009d200000000101e7 If actor flag is something, goto e7
00b542342047554e0a00 // B4 GUN
016ffd001b If $self has weapon Nothing equipped (?) goto 1b
00b54c4f5354204d592047554e0a00 // LOST MY GUN
0002ac Label ac
01c60200 Undocumented
0130f821ff03ff000000 Say random quip: "My gun!"
0009 Actor stops travelling
00b6 Reset and start cycle counter
0003 Yield
0002b0 Label b0
00b557414954494e470a00 // WAITING
0003 Yield
0003 Yield
0003 Yield
0061ff0113 If someone has weapon Unarmed equipped goto 13
0000af Go to next af
000213 Label 13
017001b1 If something goto b1
00bd00012caf If cycle counter > 300 (5.0 secs) goto af
0001b0 Go to first b0
0002b1 Label b1
00b6 Reset and start cycle counter
017000ad If something goto ad
0002ad Label ad
0003 Yield
00b5474f20464f522047554e0a00 // GO FOR GUN
00bd00012caf If cycle counter > 300 (5.0 secs) goto af
0061ff0113 If someone has weapon Unarmed equipped goto 13
0000af Go to next af
000213 Label 13
0171000a16 If something goto 16
003216 If actor has stopped moving goto 16
0001ad Go to first ad
000216 Label 16
00b541542047554e0a00 // AT GUN
00b6 Reset and start cycle counter
000b023d0000ffff1010fd02 Actor $self does animation 023d (pick up pistol from ground)
0002ae Label ae
0003 Yield
00bd00003c16 If cycle counter > 60 (1.0 secs) goto 16
0001ae Go to first ae
000216 Label 16
0061ff0113 If someone has weapon Unarmed equipped goto 13
0000af Go to next af
000213 Label 13
0172fd16 If something to do with $self goto 16
0000af Go to next af
000216 Label 16
00001b Go to next 1b
0002af Label af
0009 Actor stops travelling
00b547455447554e204641494c45440a00 // GETGUN FAILED
0036 Call RNG
003732e6 If random byte < 50 goto e6
003764e7 If random byte < 100 goto e7
009b0000020000 Set an actor flag
009b0000000100 Set an actor flag
009b0020000000 Set an actor flag
009c0000200000 Unset an actor flag
009c0000400000 Unset an actor flag
009c8000000000 Unset an actor flag
009b0000000201 Set an actor flag
00001b Go to next 1b
0002e6 Label e6
009b0000000101 Set an actor flag
00001b Go to next 1b
0002e7 Label e7
0036 Call RNG
00375213 If random byte < 82 goto 13
0037a415 If random byte < 164 goto 15
000b02880000ffff1010fd02 Actor $self does animation 0288 (pull out pistol)
000016 Go to next 16
000213 Label 13
000b02890000ffff1010fd02 Actor $self does animation 0289 (pull out pistol from belt)
000016 Go to next 16
000215 Label 15
000b02450000ffff1010fd02 Actor $self does animation 0245 (turn around, hunch and pull out pistol)
000216 Label 16
007b3113 If stage < Air Force One goto 13
007c3113 If stage > Air Force One goto 13
00c801020b00000000e5 Draw weapon Cyclone with model 0102 then goto e5
000213 Label 13
00c800f50200000000e5 Draw weapon Falcon 2 with model f5 then goto e5
0002e5 Label e5
0003 Yield
003216 If actor has stopped moving goto 16
0001e5 Go to first e5
000216 Label 16
009d20000000010113 If actor flag is something, goto 13
009c8000000000 Unset an actor flag
000213 Label 13
009c2000000001 Unset an actor flag
000216 Label 16
00021b Label 1b
0003 Yield
000216 Label 16
011dfd0000200013 If $self has property 2:00002000 (unknown prop) goto 13
011df60000100001 If player has property 2:00001000 (allow co op buddy to warp to Jo?) goto 01
000213 Label 13
009d00000001010134 If actor flag is something, goto 34
00b5434845434b494e4a555259454e440a00 // CHECKINJURYEND
00b54234205445414d20434845434b0a00 // B4 TEAM CHECK
003a16 If alarm is activated goto 16
01371716 If something to do with 23 goto 16
009d0004000001009f If actor flag is something, goto 9f
000216 Label 16
011df620000000eb If player has property 2:20000000 (cloaked) goto eb
000016 Go to next 16
000213 Label 13
0006fd0007 Set return function for $self to function 0007 - Alerted guard
008a00 Set alertness to 0
0005fd001d Assign function 001d - Searching to $self and advance frame
000216 Label 16
009d00001000000093 If actor flag is something, goto 93
0134fd0813 If something to do with $self goto 13
0134fd0915 If something to do with $self goto 15
000093 Go to next 93
000213 Label 13
0130f807280301000000 Say random quip: "Wipe the target!","Let's split up!","Surround her!"
00008f Go to next 8f
000215 Label 15
0130f807280301000000 Say random quip: "Wipe the target!","Let's split up!","Surround her!"
000090 Go to next 90
000293 Label 93
009d0000000101006b If actor flag is something, goto 6b
009d00020000010013 If actor flag is something, goto 13
00b554524150204e4f54205345540a00 // TRAP NOT SET
009d00000004000016 If actor flag is something, goto 16
000213 Label 13
00b55649530a00 // VIS
017a16 If $player is within disarm range goto 16
000098 Go to next 98
000216 Label 16
00b554524150204641494c45440a00 // TRAP FAILED
009d02000000010016 If actor flag is something, goto 16
009d01000000000016 If actor flag is something, goto 16
000213 Label 13
00b55649530a00 // VIS
017a16 If $player is within disarm range goto 16
0000a1 Go to next a1
000216 Label 16
009d10000000000016 If actor flag is something, goto 16
000213 Label 13
00b5494d20474f494e4720544f20504f500a00 // IM GOING TO POP
0000a4 Go to next a4
000216 Label 16
009d00000040000116 If actor flag is something, goto 16
000213 Label 13
00b5494d20474f494e4720544f20534e4950450a00 // IM GOING TO SNIPE
0000de Go to next de
000216 Label 16
00b5414d42555348204641494c45440a00 // AMBUSH FAILED
009d00000200000016 If actor flag is something, goto 16
007d0116 If actor shot less than 1 times goto 16
0120036b If something goto 6b
00b55249534b204641494c45440a00 // RISK FAILED
000216 Label 16
009d00004000010091 If actor flag is something, goto 91
009d00002000010092 If actor flag is something, goto 92
000291 Label 91
01200552 If something goto 52
000292 Label 92
000068 Go to next 68
000298 Label 98
00b5474f494e4720544f2054524150205041440a00 // GOING TO TRAP PAD
001e01 Jog to $self->target_pad (medium speed)
000299 Label 99
0003 Yield
000216 Label 16
003216 If actor has stopped moving goto 16
000199 Go to first 99
000216 Label 16
00b541542054524150205041440a00 // AT TRAP PAD
00029b Label 9b
011df620000000eb If player has property 2:20000000 (cloaked) goto eb
00160220000003 Actor kneels and shoots at $player, then goto 03
000203 Label 03
0003 Yield
017a9a If $player is within disarm range goto 9a
0108fdf200ee If something to do with $self and maybe P1 or P2 goto ee
0000ef Go to next ef
0002ee Label ee
01b3fd Allow co-op player to be considered for P1/P2 actor
0108fdf200ee If something to do with $self and maybe P1 or P2 goto ee
0106f20000 Set $player to P1 or P2
017a9a If $player is within disarm range goto 9a
0002ee Label ee
01b3fd Allow co-op player to be considered for P1/P2 actor
0106f20000 Set $player to P1 or P2
0002ef Label ef
000103 Go to first 03
00029a Label 9a
00170200000004 Actor shoots other actor, then goto 04
000204 Label 04
0003 Yield
003216 If actor has stopped moving goto 16
000104 Go to first 04
000216 Label 16
009d00020000010016 If actor flag is something, goto 16
005200509c If actor is within 80 units of $player goto 9c
000216 Label 16
00019b Go to first 9b
00029c Label 9c
009c0000000400 Unset an actor flag
00011b Go to first 1b
0002a1 Label a1
000a Actor kneels
0002a2 Label a2
0003 Yield
00b55741495420464f5220414d420a00 // WAIT FOR AMB
017aa3 If $player is within disarm range goto a3
00b5414d42310a00 // AMB1
00590014232813 If actor $self is further than 20 units from $self->pad goto 13
00b5414d42320a00 // AMB2
01b3fd Allow co-op player to be considered for P1/P2 actor
0106f20000 Set $player to P1 or P2
012878ee If actor within 120 units of an enemy and has line of sight then set AI vs AI and goto ee
0001a2 Go to first a2
0002ee Label ee
018313 If something goto 13
0006fd000c Set return function for $self to function 000c - Combat with ally?
0005fd000c Assign function 000c - Combat with ally? to $self and advance frame
000213 Label 13
00b5414d4255534820504c415945520a00 // AMBUSH PLAYER
009a1e Set actor's accuracy to 30
009b0200000000 Set an actor flag
0130f801500201000000 Say random quip: "Open fire!","Wipe her out!","Waste her!"
00011b Go to first 1b
0002a3 Label a3
00b55345454e544152470a00 // SEENTARG
009c0100000000 Unset an actor flag
00011b Go to first 1b
0002a4 Label a4
009d000020000100a8 If actor flag is something, goto a8
0121a0b5a5 If something (to do with cover?) goto a5
00b5504f50504552204641494c45440a00 // POPPER FAILED
000052 Go to next 52
0002a5 Label a5
00b5474f20544f20504f505045520a00 // GO TO POPPER
01320500 Undocumented (to do with cover?)
009c0004000001 Unset an actor flag
009c0002000001 Unset an actor flag
000216 Label 16
012402 Run for cover?
0002a6 Label a6
0003 Yield
0032a7 If actor has stopped moving goto a7
0001a6 Go to first a6
0002a7 Label a7
00b5554e44455220504f505045520a00 // UNDER POPPER
0002a8 Label a8
011df620000000eb If player has property 2:20000000 (cloaked) goto eb
001502200000a9 Actor targets and shoots at $player, then goto a9
0002a9 Label a9
0003 Yield
01b3fd Allow co-op player to be considered for P1/P2 actor
0106f20000 Set $player to P1 or P2
004b13 If fired near actor goto 13
003d0013 If shot near actor goto 13
003e0013 If someone killed in sight of actor goto 13
017a13 If $player is within disarm range goto 13
0001a9 Go to first a9
000213 Label 13
0036 Call RNG
00389613 If random byte > 150 goto 13
017a16 If $player is within disarm range goto 16
000013 Go to next 13
000216 Label 16
001702000000aa Actor shoots other actor, then goto aa
000213 Label 13
000a Actor kneels
00b6 Reset and start cycle counter
0002ab Label ab
0003 Yield
0106f20000 Set $player to P1 or P2
0053001e13 If actor is further than 30 units from player goto 13
009c1000000000 Unset an actor flag
00011b Go to first 1b
000213 Label 13
0036 Call RNG
0038fa13 If random byte > 250 goto 13
00bd0000f016 If cycle counter > 240 (4.0 secs) goto 16
0001ab Go to first ab
000213 Label 13
011df620000000eb If player has property 2:20000000 (cloaked) goto eb
00150220000013 Actor targets and shoots at $player, then goto 13
0001a8 Go to first a8
000213 Label 13
017a13 If $player is within disarm range goto 13
0001a8 Go to first a8
000213 Label 13
00170200000013 Actor shoots other actor, then goto 13
0001a8 Go to first a8
000213 Label 13
0002aa Label aa
0003 Yield
003216 If actor has stopped moving goto 16
0001aa Go to first aa
000216 Label 16
0001a8 Go to first a8
0002de Label de
009c8000000000 Unset an actor flag
0003 Yield
0052006416 If actor is within 100 units of $player goto 16
005300fa14 If actor is further than 250 units from player goto 14
004d0a13 If actor is facing player within 10 degrees (?) goto 13
004ff613 If something to do with player goto 13
00b6 Reset and start cycle counter
0009 Actor stops travelling
001802000000ec Actor faces something (entity type=0x0200, entity_id=0x0000), then goto ec
0002ec Label ec
0003 Yield
004d0a13 If actor is facing player within 10 degrees (?) goto 13
004ff613 If something to do with player goto 13
00bd00003c13 If cycle counter > 60 (1.0 secs) goto 13
0001ec Go to first ec
000213 Label 13
017a13 If $player is within disarm range goto 13
0108fdf200ee If something to do with $self and maybe P1 or P2 goto ee
0000ef Go to next ef
0002ee Label ee
01b3fd Allow co-op player to be considered for P1/P2 actor
0108fdf200ee If something to do with $self and maybe P1 or P2 goto ee
0106f20000 Set $player to P1 or P2
017a13 If $player is within disarm range goto 13
0002ee Label ee
01b3fd Allow co-op player to be considered for P1/P2 actor
0106f20000 Set $player to P1 or P2
0002ef Label ef
0001de Go to first de
000214 Label 14
002de1 Run to Jo, then goto e1
0002e1 Label e1
0003 Yield
005200fa15 If actor is within 250 units of $player goto 15
0001e1 Go to first e1
000215 Label 15
0001de Go to first de
000213 Label 13
00b6 Reset and start cycle counter
011df620000000eb If player has property 2:20000000 (cloaked) goto eb
01ba0022 Undocumented
0000df Go to next df
0002df Label df
0003 Yield
0052006416 If actor is within 100 units of $player goto 16
00bd00012c13 If cycle counter > 300 (5.0 secs) goto 13
0001df Go to first df
000213 Label 13
017a13 If $player is within disarm range goto 13
009b8000000000 Set an actor flag
0009 Actor stops travelling
00011b Go to first 1b
000213 Label 13
00b6 Reset and start cycle counter
009a64 Set actor's accuracy to 100
01ba0200 Undocumented
0000e0 Go to next e0
00b5534e49504552204e4f2053484f4f540a00 // SNIPER NO SHOOT
0002e0 Label e0
0003 Yield
00b5534e49504552202053484f4f540a00 // SNIPER SHOOT
003213 If actor has stopped moving goto 13
0001e0 Go to first e0
000213 Label 13
009a0a Set actor's accuracy to 10
0009 Actor stops travelling
0001de Go to first de
000216 Label 16
0009 Actor stops travelling
009c0000004001 Unset an actor flag
009b8000000000 Set an actor flag
00b6 Reset and start cycle counter
0002bd Label bd
0003 Yield
00bd00003c13 If cycle counter > 60 (1.0 secs) goto 13
0001bd Go to first bd
000213 Label 13
00011b Go to first 1b
000252 Label 52
00b5414d42555348204641494c4544330a00 // AMBUSH FAILED3
004e3c010016 If player is looking right at something (?) goto 16
000068 Go to next 68
000216 Label 16
00b5414d42555348204641494c4544340a00 // AMBUSH FAILED4
009d00000010010016 If actor flag is something, goto 16
00005b Go to next 5b
000216 Label 16
009d00000080010013 If actor flag is something, goto 13
0036 Call RNG
00386413 If random byte > 100 goto 13
004e1e010016 If player is looking right at something (?) goto 16
000213 Label 13
00410000001e5f If $player is within 30 units of having line of sight goto 5f
000216 Label 16
00410000001e16 If $player is within 30 units of having line of sight goto 16
012669 If something goto 69
005300c861 If actor is further than 200 units from player goto 61
000016 Go to next 16
000269 Label 69
0053019061 If actor is further than 400 units from player goto 61
000216 Label 16
00b54f4b464f52434f5645520a00 // OKFORCOVER
017a5b If $player is within disarm range goto 5b
00410000001e5b If $player is within 30 units of having line of sight goto 5b
004a5b If something (actor in view?) goto 5b
000056 Go to next 56
00025b Label 5b
00b5434f56455220494e56414c49440a00 // COVER INVALID
009d00004000010115 If actor flag is something, goto 15
009d00000040010016 If actor flag is something, goto 16
009d0800000000005c If actor flag is something, goto 5c
012110b553 If something (to do with cover?) goto 53
000014 Go to next 14
00025c Label 5c
0121103553 If something (to do with cover?) goto 53
000014 Go to next 14
000216 Label 16
0121003553 If something (to do with cover?) goto 53
000014 Go to next 14
000215 Label 15
00b5534f465420434f5645520a00 // SOFT COVER
009d00000040010016 If actor flag is something, goto 16
009d0800000000005c If actor flag is something, goto 5c
012190b553 If something (to do with cover?) goto 53
000014 Go to next 14
00025c Label 5c
0121903553 If something (to do with cover?) goto 53
000014 Go to next 14
000216 Label 16
0121803553 If something (to do with cover?) goto 53
000014 Go to next 14
000214 Label 14
000054 Go to next 54
000253 Label 53
00b5474f20544f20434f5645520a00 // GO TO COVER
01320500 Undocumented (to do with cover?)
009c0004000001 Unset an actor flag
009c0002000001 Unset an actor flag
009d00001000000016 If actor flag is something, goto 16
01330e16 Do something (flank?), then goto 16
000216 Label 16
0130f802ff0201000000 Say random quip: "Cover me!","Watch my back!","Taker cover!"
00b6 Reset and start cycle counter
012402 Run for cover?
000255 Label 55
0003 Yield
013d03e4 If in danger (?) goto e4
011df620000000eb If player has property 2:20000000 (cloaked) goto eb
009d00001000010113 If actor flag is something, goto 13
009d00000001010116 If actor flag is something, goto 16
0052000c16 If actor is within 12 units of $player goto 16
0036 Call RNG
00378013 If random byte < 128 goto 13
0053001913 If actor is further than 25 units from player goto 13
000216 Label 16
017a16 If $player is within disarm range goto 16
000013 Go to next 13
000216 Label 16
0006fd0007 Set return function for $self to function 0007 - Alerted guard
0005fd000f Assign function 000f - Hand combat to $self and advance frame
000213 Label 13
00bd00012c56 If cycle counter > 300 (5.0 secs) goto 56
003256 If actor has stopped moving goto 56
000155 Go to first 55
000256 Label 56
009b0000001000 Set an actor flag
00b5554e44455220434f5645520a00 // UNDER COVER
000258 Label 58
00b0f6 Set $self->target_actor to player
00b6 Reset and start cycle counter
01320201 Undocumented (to do with cover?)
009c0004000001 Unset an actor flag
009c0002000001 Unset an actor flag
011df620000000eb If player has property 2:20000000 (cloaked) goto eb
00160220000059 Actor kneels and shoots at $player, then goto 59
000259 Label 59
0003 Yield
013d03e4 If in danger (?) goto e4
01b3fd Allow co-op player to be considered for P1/P2 actor
0106f20000 Set $player to P1 or P2
00410000001e5f If $player is within 30 units of having line of sight goto 5f
00bd0000f061 If cycle counter > 240 (4.0 secs) goto 61
009d00001000000093 If actor flag is something, goto 93
013584000293 If something goto 93
00025a Label 5a
000159 Go to first 59
000261 Label 61
0106fc0000 Set $player to $self->target_actor
00b5425245414b20434f5645520a00 // BREAK COVER
009d00008000010066 If actor flag is something, goto 66
000216 Label 16
000016 Go to next 16
000266 Label 66
012669 If something goto 69
005300c816 If actor is further than 200 units from player goto 16
00006a Go to next 6a
000269 Label 69
0053019016 If actor is further than 400 units from player goto 16
00026a Label 6a
004e11010063 If player is looking right at something (?) goto 63
000216 Label 16
000264 Label 64
01320600 Undocumented (to do with cover?)
009c0004000001 Unset an actor flag
009c0002000001 Unset an actor flag
009d00001000000016 If actor flag is something, goto 16
01330616 Do something (flank?), then goto 16
000216 Label 16
012f Undocumented
00b6 Reset and start cycle counter
002d62 Run to Jo, then goto 62
000262 Label 62
0003 Yield
013d03e4 If in danger (?) goto e4
017a5f If $player is within disarm range goto 5f
012669 If something goto 69
005300c865 If actor is further than 200 units from player goto 65
000016 Go to next 16
000269 Label 69
0053019065 If actor is further than 400 units from player goto 65
000216 Label 16
00bd00007863 If cycle counter > 120 (2.0 secs) goto 63
000265 Label 65
000162 Go to first 62
000263 Label 63
009d00008000000013 If actor flag is something, goto 13
004e11010016 If player is looking right at something (?) goto 16
000164 Go to first 64
000213 Label 13
009b0100000001 Set an actor flag
000034 Go to next 34
000216 Label 16
0009 Actor stops travelling
0003 Yield
013d03e4 If in danger (?) goto e4
00b54241434b20544f20434f5645520a00 // BACK TO COVER
000152 Go to first 52
00025f Label 5f
012f Undocumented
00b5534545434f5645520a00 // SEECOVER
01320700 Undocumented (to do with cover?)
009c0004000001 Unset an actor flag
009c0002000001 Unset an actor flag
009d00001000000016 If actor flag is something, goto 16
01330716 Do something (flank?), then goto 16
000216 Label 16
009d00001000000093 If actor flag is something, goto 93
013584000293 If something goto 93
017a26 If $player is within disarm range goto 26
000087 Go to next 87
011df620000000eb If player has property 2:20000000 (cloaked) goto eb
009d00001000010113 If actor flag is something, goto 13
009d00000001010116 If actor flag is something, goto 16
0052000c16 If actor is within 12 units of $player goto 16
0036 Call RNG
00378013 If random byte < 128 goto 13
0053001913 If actor is further than 25 units from player goto 13
000216 Label 16
017a16 If $player is within disarm range goto 16
000013 Go to next 13
000216 Label 16
0006fd0007 Set return function for $self to function 0007 - Alerted guard
0005fd000f Assign function 000f - Hand combat to $self and advance frame
000213 Label 13
009d00002000000113 If actor flag is something, goto 13
009c0000200001 Unset an actor flag
000048 Go to next 48
000213 Label 13
011df620000000eb If player has property 2:20000000 (cloaked) goto eb
0036 Call RNG
00370a57 If random byte < 10 goto 57
00384016 If random byte > 64 goto 16
009d00000010000113 If actor flag is something, goto 13
01845a64 Undocumented
009b0000002001 Set an actor flag
000060 Go to next 60
000213 Label 13
009d00000004000113 If actor flag is something, goto 13
0184141e Undocumented
000060 Go to next 60
000213 Label 13
000216 Label 16
0036 Call RNG
00383213 If random byte > 50 goto 13
0036 Call RNG
00388016 If random byte > 128 goto 16
0002be Label be
001460 Actor rolls and fires, then goto 60
000216 Label 16
001260 Actor walks while firing, then goto 60
000213 Label 13
0036 Call RNG
0038808c If random byte > 128 goto 8c
00160220000016 Actor kneels and shoots at $player, then goto 16
00028c Label 8c
00150220000016 Actor targets and shoots at $player, then goto 16
000216 Label 16
00170200000060 Actor shoots other actor, then goto 60
000260 Label 60
0003 Yield
013d03e4 If in danger (?) goto e4
00325e If actor has stopped moving goto 5e
000160 Go to first 60
000257 Label 57
0130f827fe03ff000000 Say random quip: "My gun!"
01a3fe Character moves hands (gun jammed)
0000e8 Go to next e8
00025e Label 5e
0036 Call RNG
00371416 If random byte < 20 goto 16
009d00000020000113 If actor flag is something, goto 13
000216 Label 16
009b0000002001 Set an actor flag
00b6 Reset and start cycle counter
000b02090000ffff1010fd02 Actor $self does animation 0209 (reload pistol)
0002e8 Label e8
0003 Yield
009d00000020000116 If actor flag is something, goto 16
00bc00007816 If cycle counter < 120 (2.0 secs) goto 16
017c80f607 Set sound 80f6 to channel 7 (does not play)
017907fd00010bb8177001 Play sound in slot by $self
009c0000002001 Unset an actor flag
000216 Label 16
003213 If actor has stopped moving goto 13
0001e8 Go to first e8
000213 Label 13
009d01000000000013 If actor flag is something, goto 13
009c0100000000 Unset an actor flag
009a00 Set actor's accuracy to 0
000213 Label 13
012516 Do something, then goto 16
000216 Label 16
00011b Go to first 1b
000254 Label 54
00b54e4f20434f564552415641494c41424c450a00 // NO COVERAVAILABLE
000268 Label 68
017a24 If $player is within disarm range goto 24
000025 Go to next 25
000225 Label 25
00b5484543414e5420534545204d450a00 // HECANT SEE ME
00002f Go to next 2f
000224 Label 24
00024e Label 4e
009d00000200000016 If actor flag is something, goto 16
009d0000000101006b If actor flag is something, goto 6b
007d0116 If actor shot less than 1 times goto 16
0120036b If something goto 6b
000216 Label 16
009d00004000010091 If actor flag is something, goto 91
009d0000200001004d If actor flag is something, goto 4d
000291 Label 91
01200532 If something goto 32
00004d Go to next 4d
00024d Label 4d
009d00040000010132 If actor flag is something, goto 32
0036 Call RNG
004e1e010016 If player is looking right at something (?) goto 16
000032 Go to next 32
000216 Label 16
00378032 If random byte < 128 goto 32
000231 Label 31
00b5464c414e4b0a00 // FLANK
000216 Label 16
000213 Label 13
00b5464c414e4b20424553540a00 // FLANK BEST
009c0002000001 Unset an actor flag
0139000000190201 Undocumented
009d00001000000016 If actor flag is something, goto 16
01330816 Do something (flank?), then goto 16
01330916 Do something (flank?), then goto 16
000216 Label 16
000033 Go to next 33
00028f Label 8f
00b5464c414e4b204c4546540a00 // FLANK LEFT
01320800 Undocumented (to do with cover?)
01390000014f0200 Undocumented
009d00001000000016 If actor flag is something, goto 16
01330816 Do something (flank?), then goto 16
000216 Label 16
000033 Go to next 33
000290 Label 90
00b5464c414e4b2052494748540a00 // FLANK RIGHT
01320900 Undocumented (to do with cover?)
009d00001000000016 If actor flag is something, goto 16
01330916 Do something (flank?), then goto 16
000216 Label 16
0139000000190200 Undocumented
000233 Label 33
009b0004000001 Set an actor flag
00b6 Reset and start cycle counter
000230 Label 30
0003 Yield
013d03e4 If in danger (?) goto e4
011df620000000eb If player has property 2:20000000 (cloaked) goto eb
009d00001000010113 If actor flag is something, goto 13
009d00000001010116 If actor flag is something, goto 16
0052000c16 If actor is within 12 units of $player goto 16
0036 Call RNG
00378013 If random byte < 128 goto 13
0053001913 If actor is further than 25 units from player goto 13
000216 Label 16
017a16 If $player is within disarm range goto 16
000013 Go to next 13
000216 Label 16
0006fd0007 Set return function for $self to function 0007 - Alerted guard
0005fd000f Assign function 000f - Hand combat to $self and advance frame
000213 Label 13
003232 If actor has stopped moving goto 32
00bd0000b432 If cycle counter > 180 (3.0 secs) goto 32
000130 Go to first 30
00002f Go to next 2f
009d0002000001012f If actor flag is something, goto 2f
000232 Label 32
004e14010016 If player is looking right at something (?) goto 16
00002f Go to next 2f
000216 Label 16
0036 Call RNG
0038642f If random byte > 100 goto 2f
004a18 If something (actor in view?) goto 18
00022f Label 2f
00b54320310a00 // C 1
0053008234 If actor is further than 130 units from player goto 34
017a26 If $player is within disarm range goto 26
00b54320320a00 // C 2
009d00000200000016 If actor flag is something, goto 16
009d0000000101006b If actor flag is something, goto 6b
007d0116 If actor shot less than 1 times goto 16
0120036b If something goto 6b
000216 Label 16
009d00004000010091 If actor flag is something, goto 91
009d0000200001004d If actor flag is something, goto 4d
000291 Label 91
01200551 If something goto 51
00024d Label 4d
00b54320330a00 // C 3
009d00008000010048 If actor flag is something, goto 48
000034 Go to next 34
000251 Label 51
004e15010016 If player is looking right at something (?) goto 16
000034 Go to next 34
000216 Label 16
00b54320340a00 // C 4
000a Actor kneels
0003 Yield
013d03e4 If in danger (?) goto e4
000248 Label 48
00b54752454e414445500a00 // GRENADEP
0094ff Set grenade probability to 255/255
000216 Label 16
009d00000800010016 If actor flag is something, goto 16
00004c Go to next 4c
000216 Label 16
005200324c If actor is within 50 units of $player goto 4c
00b54752454e4144450a00 // GRENADE
00b6 Reset and start cycle counter
01370b4c If something to do with 11 goto 4c
00b5414354494f4e204752454e4144450a00 // ACTION GRENADE
01320b00 Undocumented (to do with cover?)
009c0004000001 Unset an actor flag
009c0002000001 Unset an actor flag
001b0200000046 Actor has a chance of throwing grenade, then goto 46
00004c Go to next 4c
00b54752454e4144454641494c0a00 // GRENADEFAIL
000246 Label 46
0003 Yield
003216 If actor has stopped moving goto 16
000146 Go to first 46
000216 Label 16
009d00001000000047 If actor flag is something, goto 47
01330b47 Do something (flank?), then goto 47
000247 Label 47
0003 Yield
0130f805ff0700000000 Say random quip: "Catch!","Everybody down!","Grenade!"
00324a If actor has stopped moving goto 4a
000147 Go to first 47
00024a Label 4a
00bc00003c49 If cycle counter < 60 (1.0 secs) goto 49
00b54752454e41444553544f500a00 // GRENADESTOP
01320300 Undocumented (to do with cover?)
009c0004000001 Unset an actor flag
009c0002000001 Unset an actor flag
00b6 Reset and start cycle counter
0018020000004b Actor faces something (entity type=0x0200, entity_id=0x0000), then goto 4b
00024b Label 4b
0003 Yield
00410000001e42 If $player is within 30 units of having line of sight goto 42
004a42 If something (actor in view?) goto 42
0108fdf200ee If something to do with $self and maybe P1 or P2 goto ee
0000ef Go to next ef
0002ee Label ee
01b3fd Allow co-op player to be considered for P1/P2 actor
0108fdf200ee If something to do with $self and maybe P1 or P2 goto ee
0106f20000 Set $player to P1 or P2
00410000001e42 If $player is within 30 units of having line of sight goto 42
004a42 If something (actor in view?) goto 42
0002ee Label ee
01b3fd Allow co-op player to be considered for P1/P2 actor
0106f20000 Set $player to P1 or P2
0002ef Label ef
00bd0000f049 If cycle counter > 240 (4.0 secs) goto 49
00014b Go to first 4b
000249 Label 49
00024c Label 4c
00b6 Reset and start cycle counter
00b557414954494e470a00 // WAITING
01320401 Undocumented (to do with cover?)
009c0004000001 Unset an actor flag
009c0002000001 Unset an actor flag
011df620000000eb If player has property 2:20000000 (cloaked) goto eb
00160220000040 Actor kneels and shoots at $player, then goto 40
000240 Label 40
0003 Yield
013d03e4 If in danger (?) goto e4
009d00004000010091 If actor flag is something, goto 91
009d00002000010016 If actor flag is something, goto 16
000291 Label 91
01200541 If something goto 41
000216 Label 16
009d00001000000093 If actor flag is something, goto 93
013584000293 If something goto 93
00410000001e42 If $player is within 30 units of having line of sight goto 42
0108fdf200ee If something to do with $self and maybe P1 or P2 goto ee
0000ef Go to next ef
0002ee Label ee
01b3fd Allow co-op player to be considered for P1/P2 actor
0108fdf200ee If something to do with $self and maybe P1 or P2 goto ee
0106f20000 Set $player to P1 or P2
00410000001e42 If $player is within 30 units of having line of sight goto 42
0002ee Label ee
01b3fd Allow co-op player to be considered for P1/P2 actor
0106f20000 Set $player to P1 or P2
0002ef Label ef
00bd0002583d If cycle counter > 600 (10.0 secs) goto 3d
00bd00003c16 If cycle counter > 60 (1.0 secs) goto 16
000216 Label 16
004e15010016 If player is looking right at something (?) goto 16
000034 Go to next 34
000216 Label 16
005300c841 If actor is further than 200 units from player goto 41
000140 Go to first 40
000242 Label 42
00b5534545574149540a00 // SEEWAIT
01320c00 Undocumented (to do with cover?)
009c0004000001 Unset an actor flag
009c0002000001 Unset an actor flag
00b553454557414954320a00 // SEEWAIT2
009d00001000000016 If actor flag is something, goto 16
01330c16 Do something (flank?), then goto 16
000216 Label 16
00b553454557414954330a00 // SEEWAIT3
017a8a If $player is within disarm range goto 8a
00b6 Reset and start cycle counter
002d89 Run to Jo, then goto 89
000289 Label 89
0003 Yield
013d03e4 If in danger (?) goto e4
009d00004000010091 If actor flag is something, goto 91
009d00002000010016 If actor flag is something, goto 16
000291 Label 91
01200541 If something goto 41
000216 Label 16
017a8a If $player is within disarm range goto 8a
00bd00003c29 If cycle counter > 60 (1.0 secs) goto 29
000189 Go to first 89
00028a Label 8a
011df620000000eb If player has property 2:20000000 (cloaked) goto eb
009d00001000010113 If actor flag is something, goto 13
009d00000001010116 If actor flag is something, goto 16
0052000c16 If actor is within 12 units of $player goto 16
0036 Call RNG
00378013 If random byte < 128 goto 13
0053001913 If actor is further than 25 units from player goto 13
000216 Label 16
017a16 If $player is within disarm range goto 16
000013 Go to next 13
000216 Label 16
0006fd0007 Set return function for $self to function 0007 - Alerted guard
0005fd000f Assign function 000f - Hand combat to $self and advance frame
000213 Label 13
009d00002000000113 If actor flag is something, goto 13
009c0000200001 Unset an actor flag
000148 Go to first 48
000213 Label 13
011df620000000eb If player has property 2:20000000 (cloaked) goto eb
0036 Call RNG
00370a57 If random byte < 10 goto 57
00384016 If random byte > 64 goto 16
009d00000010000113 If actor flag is something, goto 13
01845a64 Undocumented
009b0000002001 Set an actor flag
000043 Go to next 43
000213 Label 13
009d00000004000113 If actor flag is something, goto 13
0184141e Undocumented
000043 Go to next 43
000213 Label 13
000216 Label 16
0036 Call RNG
00383213 If random byte > 50 goto 13
0036 Call RNG
00388016 If random byte > 128 goto 16
0002be Label be
001443 Actor rolls and fires, then goto 43
000216 Label 16
001243 Actor walks while firing, then goto 43
000213 Label 13
0036 Call RNG
0038808c If random byte > 128 goto 8c
00150220000016 Actor targets and shoots at $player, then goto 16
00028c Label 8c
00160220000016 Actor kneels and shoots at $player, then goto 16
000216 Label 16
00170200000043 Actor shoots other actor, then goto 43
000243 Label 43
0003 Yield
013d03e4 If in danger (?) goto e4
003229 If actor has stopped moving goto 29
000143 Go to first 43
000257 Label 57
0130f827fe03ff000000 Say random quip: "My gun!"
01a3fe Character moves hands (gun jammed)
0000e9 Go to next e9
000229 Label 29
009d01000000000013 If actor flag is something, goto 13
009c0100000000 Unset an actor flag
009a00 Set actor's accuracy to 0
000213 Label 13
0165fd13 If $self shot (?) goto 13
0130f816190300000000 Say random quip: "Damn, missed!","How did I miss?"
0130f817190301000000 Say random quip: "God sakes, someone hit her","She's a tricky one"
000016 Go to next 16
000213 Label 13
0130f815190200000000 Say random quip: "Give it up!","Surrender, now!","Take that!"
0130f815190301000000 Say random quip: "Give it up!","Surrender, now!","Take that!"
000216 Label 16
0036 Call RNG
00371416 If random byte < 20 goto 16
009d00000020000113 If actor flag is something, goto 13
000216 Label 16
009b0000002001 Set an actor flag
00b6 Reset and start cycle counter
000b02090000ffff1010fd02 Actor $self does animation 0209 (reload pistol)
0002e9 Label e9
0003 Yield
009d00000020000116 If actor flag is something, goto 16
00bc00007816 If cycle counter < 120 (2.0 secs) goto 16
017c80f606 Set sound 80f6 to channel 6 (does not play)
017906fd00010bb8177001 Play sound in slot by $self
009c0000002001 Unset an actor flag
000216 Label 16
003213 If actor has stopped moving goto 13
0001e9 Go to first e9
000213 Label 13
00028b Label 8b
00b54241434b4f46460a00 // BACKOFF
004e14010013 If player is looking right at something (?) goto 13
000050 Go to next 50
000213 Label 13
009d00000100010016 If actor flag is something, goto 16
000050 Go to next 50
000216 Label 16
01320d00 Undocumented (to do with cover?)
009c0004000001 Unset an actor flag
009c0002000001 Unset an actor flag
00b6 Reset and start cycle counter
01360201 Undocumented
012f Undocumented
00024f Label 4f
0003 Yield
013d03e4 If in danger (?) goto e4
00bd00007850 If cycle counter > 120 (2.0 secs) goto 50
003250 If actor has stopped moving goto 50
00014f Go to first 4f
000250 Label 50
011df620000000eb If player has property 2:20000000 (cloaked) goto eb
009d00001000010113 If actor flag is something, goto 13
009d00000001010116 If actor flag is something, goto 16
0052000c16 If actor is within 12 units of $player goto 16
0036 Call RNG
00378013 If random byte < 128 goto 13
0053001913 If actor is further than 25 units from player goto 13
000216 Label 16
017a16 If $player is within disarm range goto 16
000013 Go to next 13
000216 Label 16
0006fd0007 Set return function for $self to function 0007 - Alerted guard
0005fd000f Assign function 000f - Hand combat to $self and advance frame
000213 Label 13
013d03e4 If in danger (?) goto e4
011df620000000eb If player has property 2:20000000 (cloaked) goto eb
000016 Go to next 16
000213 Label 13
0006fd0007 Set return function for $self to function 0007 - Alerted guard
008a00 Set alertness to 0
0005fd001d Assign function 001d - Searching to $self and advance frame
009d04000000010016 If actor flag is something, goto 16
0036 Call RNG
0038c416 If random byte > 196 goto 16
000034 Go to next 34
000216 Label 16
00011b Go to first 1b
00023d Label 3d
00b55741495454494d454f55540a00 // WAITTIMEOUT
009d00020000000013 If actor flag is something, goto 13
00011b Go to first 1b
000213 Label 13
01321000 Undocumented (to do with cover?)
009c0004000001 Unset an actor flag
009c0002000001 Unset an actor flag
009d00001000000016 If actor flag is something, goto 16
01331016 Do something (flank?), then goto 16
000216 Label 16
00003f Go to next 3f
00b5574149544d4f56450a00 // WAITMOVE
00113e Actor runs sideways, then goto 3e
00023e Label 3e
0003 Yield
013d03e4 If in danger (?) goto e4
00323f If actor has stopped moving goto 3f
00013e Go to first 3e
00023f Label 3f
00011b Go to first 1b
000241 Label 41
00011b Go to first 1b
000234 Label 34
00b0f6 Set $self->target_actor to player
00b5545241434b0a00 // TRACK
01321200 Undocumented (to do with cover?)
009c0004000001 Unset an actor flag
009c0002000001 Unset an actor flag
00b6 Reset and start cycle counter
0002f7 Label f7
002d35 Run to Jo, then goto 35
000235 Label 35
0003 Yield
011dfd0000200013 If $self has property 2:00002000 (unknown prop) goto 13
011df60000100001 If player has property 2:00001000 (allow co op buddy to warp to Jo?) goto 01
000213 Label 13
013d03e4 If in danger (?) goto e4
011df620000000eb If player has property 2:20000000 (cloaked) goto eb
009d00001000010113 If actor flag is something, goto 13
009d00000001010116 If actor flag is something, goto 16
0052000c16 If actor is within 12 units of $player goto 16
0036 Call RNG
00378013 If random byte < 128 goto 13
0053001913 If actor is further than 25 units from player goto 13
000216 Label 16
017a16 If $player is within disarm range goto 16
000013 Go to next 13
000216 Label 16
0006fd0007 Set return function for $self to function 0007 - Alerted guard
0005fd000f Assign function 000f - Hand combat to $self and advance frame
000213 Label 13
01b3fd Allow co-op player to be considered for P1/P2 actor
0106f20000 Set $player to P1 or P2
0053008213 If actor is further than 130 units from player goto 13
009d01000000010116 If actor flag is something, goto 16
009d02000000000116 If actor flag is something, goto 16
004e1501003b If player is looking right at something (?) goto 3b
000016 Go to next 16
0002c8 Label c8
009c0200000001 Unset an actor flag
000131 Go to first 31
000216 Label 16
017a26 If $player is within disarm range goto 26
000213 Label 13
00b54e4f534545504c415945520a00 // NOSEEPLAYER
009d00010000000013 If actor flag is something, goto 13
0128fe16 If actor within 254 units of an enemy and has line of sight then set AI vs AI and goto 16
000013 Go to next 13
000216 Label 16
018313 If something goto 13
0006fd0006 Set return function for $self to function 0006 - Unalerted guard
0005fd000c Assign function 000c - Combat with ally? to $self and advance frame
000213 Label 13
005300823c If actor is further than 130 units from player goto 3c
009d00000200000016 If actor flag is something, goto 16
009d0000000101006b If actor flag is something, goto 6b
007d0116 If actor shot less than 1 times goto 16
0120036b If something goto 6b
000216 Label 16
009d00004000010091 If actor flag is something, goto 91
009d0000200001004d If actor flag is something, goto 4d
000291 Label 91
01200539 If something goto 39
00024d Label 4d
009d0000800001003a If actor flag is something, goto 3a
00003c Go to next 3c
000239 Label 39
009d0100000001013c If actor flag is something, goto 3c
004e1501003b If player is looking right at something (?) goto 3b
005200823b If actor is within 130 units of $player goto 3b
000017 Go to next 17
00023a Label 3a
009d0100000001013c If actor flag is something, goto 3c
004e1501003b If player is looking right at something (?) goto 3b
00003c Go to next 3c
00023c Label 3c
00b54e4f414e470a00 // NOANG
000217 Label 17
003213 If actor has stopped moving goto 13
00bd00025836 If cycle counter > 600 (10.0 secs) goto 36
000135 Go to first 35
000213 Label 13
00b5434f4d504c455445440a00 // COMPLETED
0106fc0000 Set $player to $self->target_actor
0001f7 Go to first f7
000236 Label 36
0106fc0000 Set $player to $self->target_actor
00b5454e4420545241434b0a00 // END TRACK
008a00 Set alertness to 0
0006fd0007 Set return function for $self to function 0007 - Alerted guard
0005fd001d Assign function 001d - Searching to $self and advance frame
00011b Go to first 1b
00023b Label 3b
00011b Go to first 1b
000237 Label 37
00011b Go to first 1b
000287 Label 87
00b553594e432053484f4f540a00 // SYNC SHOOT
012f Undocumented
01320e00 Undocumented (to do with cover?)
009c0004000001 Unset an actor flag
009c0002000001 Unset an actor flag
00b6 Reset and start cycle counter
002d85 Run to Jo, then goto 85
000285 Label 85
0003 Yield
013d03e4 If in danger (?) goto e4
011df620000000eb If player has property 2:20000000 (cloaked) goto eb
009d00001000010113 If actor flag is something, goto 13
009d00000001010116 If actor flag is something, goto 16
0052000c16 If actor is within 12 units of $player goto 16
0036 Call RNG
00378013 If random byte < 128 goto 13
0053001913 If actor is further than 25 units from player goto 13
000216 Label 16
017a16 If $player is within disarm range goto 16
000013 Go to next 13
000216 Label 16
0006fd0007 Set return function for $self to function 0007 - Alerted guard
0005fd000f Assign function 000f - Hand combat to $self and advance frame
000213 Label 13
017a26 If $player is within disarm range goto 26
00bd00007886 If cycle counter > 120 (2.0 secs) goto 86
000185 Go to first 85
000286 Label 86
00011b Go to first 1b
000226 Label 26
00b54943414e534520504c415945520a00 // ICANSE PLAYER
011df620000000eb If player has property 2:20000000 (cloaked) goto eb
009d00001000010113 If actor flag is something, goto 13
009d00000001010116 If actor flag is something, goto 16
0052000c16 If actor is within 12 units of $player goto 16
0036 Call RNG
00378013 If random byte < 128 goto 13
0053001913 If actor is further than 25 units from player goto 13
000216 Label 16
017a16 If $player is within disarm range goto 16
000013 Go to next 13
000216 Label 16
0006fd0007 Set return function for $self to function 0007 - Alerted guard
0005fd000f Assign function 000f - Hand combat to $self and advance frame
000213 Label 13
00b57461726765740a00 // target
00b6 Reset and start cycle counter
0009 Actor stops travelling
01320e00 Undocumented (to do with cover?)
009c0004000001 Unset an actor flag
009c0002000001 Unset an actor flag
009d00002000000113 If actor flag is something, goto 13
009c0000200001 Unset an actor flag
000148 Go to first 48
000213 Label 13
011df620000000eb If player has property 2:20000000 (cloaked) goto eb
0036 Call RNG
00370a57 If random byte < 10 goto 57
00384016 If random byte > 64 goto 16
009d00000010000113 If actor flag is something, goto 13
01845a64 Undocumented
009b0000002001 Set an actor flag
000044 Go to next 44
000213 Label 13
009d00000004000113 If actor flag is something, goto 13
0184141e Undocumented
000044 Go to next 44
000213 Label 13
000216 Label 16
0036 Call RNG
00383213 If random byte > 50 goto 13
0036 Call RNG
00388016 If random byte > 128 goto 16
0002be Label be
001444 Actor rolls and fires, then goto 44
000216 Label 16
001244 Actor walks while firing, then goto 44
000213 Label 13
0036 Call RNG
0038808c If random byte > 128 goto 8c
00160220000028 Actor kneels and shoots at $player, then goto 28
00028c Label 8c
00150220000028 Actor targets and shoots at $player, then goto 28
00b553484f4f544641494c45440a00 // SHOOTFAILED
0003 Yield
013d03e4 If in danger (?) goto e4
00018b Go to first 8b
000228 Label 28
00170200000044 Actor shoots other actor, then goto 44
000067 Go to next 67
000244 Label 44
0130f800190200000000 Say random quip: "I've got a clear shot","She's mine!"
0130f801190201000000 Say random quip: "Open fire!","Wipe her out!","Waste her!"
000245 Label 45
0003 Yield
013d03e4 If in danger (?) goto e4
00322a If actor has stopped moving goto 2a
000145 Go to first 45
000257 Label 57
0130f827fe03ff000000 Say random quip: "My gun!"
01a3fe Character moves hands (gun jammed)
0000ea Go to next ea
00022a Label 2a
009d01000000000013 If actor flag is something, goto 13
009c0100000000 Unset an actor flag
009a00 Set actor's accuracy to 0
000213 Label 13
0165fd13 If $self shot (?) goto 13
0130f816190300000000 Say random quip: "Damn, missed!","How did I miss?"
0130f817190301000000 Say random quip: "God sakes, someone hit her","She's a tricky one"
000016 Go to next 16
000213 Label 13
0130f815190200000000 Say random quip: "Give it up!","Surrender, now!","Take that!"
0130f815190301000000 Say random quip: "Give it up!","Surrender, now!","Take that!"
000216 Label 16
0036 Call RNG
00371416 If random byte < 20 goto 16
009d00000020000113 If actor flag is something, goto 13
000216 Label 16
009b0000002001 Set an actor flag
00b6 Reset and start cycle counter
000b02090000ffff1010fd02 Actor $self does animation 0209 (reload pistol)
0002ea Label ea
0003 Yield
009d00000020000116 If actor flag is something, goto 16
00bc00007816 If cycle counter < 120 (2.0 secs) goto 16
017c80f606 Set sound 80f6 to channel 6 (does not play)
017906fd00010bb8177001 Play sound in slot by $self
009c0000002001 Unset an actor flag
000216 Label 16
003213 If actor has stopped moving goto 13
0001ea Go to first ea
000213 Label 13
00b54c45465453484f4f540a00 // LEFTSHOOT
00018b Go to first 8b
000267 Label 67
00b553484f544e4f574f524b0a00 // SHOTNOWORK
00022b Label 2b
00018b Go to first 8b
000218 Label 18
00b5446f6467650a00 // Dodge
01320a00 Undocumented (to do with cover?)
009c0004000001 Unset an actor flag
009b0002000001 Set an actor flag
009d00001000000016 If actor flag is something, goto 16
01330a16 Do something (flank?), then goto 16
000216 Label 16
0036 Call RNG
0037802d If random byte < 128 goto 2d
001013 Actor hops sideways, then goto 13
00002e Go to next 2e
00022d Label 2d
000f13 Actor steps sideways, then goto 13
00002e Go to next 2e
000213 Label 13
009b0002000001 Set an actor flag
00022c Label 2c
0003 Yield
013d03e4 If in danger (?) goto e4
00322e If actor has stopped moving goto 2e
00012c Go to first 2c
00022e Label 2e
00b5444f44474520444f4e450a00 // DODGE DONE
0036 Call RNG
00378016 If random byte < 128 goto 16
000187 Go to first 87
000216 Label 16
00011b Go to first 1b
00026b Label 6b
01c60000 Undocumented
01c60100 Undocumented
00b5524f555445440a00 // ROUTED
01321300 Undocumented (to do with cover?)
009c0004000001 Unset an actor flag
009c0002000001 Unset an actor flag
0130f804190201000000 Say random quip: "Go to plan B","Get the hell out of here!","Retreat!"
013a000095 Attempt to target another member of our group. On success goto 95
009d00000002010116 If actor flag is something, goto 16
000216 Label 16
009d00200000010016 If actor flag is something, goto 16
009c0000020000 Unset an actor flag
009c0000000100 Unset an actor flag
00011b Go to first 1b
000216 Label 16
00b552554e4e494e470a00 // RUNNING
0106f20000 Set $player to P1 or P2
01360201 Undocumented
00026c Label 6c
0003 Yield
013d03e4 If in danger (?) goto e4
0053001e16 If actor is further than 30 units from player goto 16
004a70 If something (actor in view?) goto 70
000216 Label 16
0053012c6d If actor is further than 300 units from player goto 6d
00016c Go to first 6c
00026d Label 6d
0009 Actor stops travelling
00026e Label 6e
0003 Yield
013d03e4 If in danger (?) goto e4
01b3fd Allow co-op player to be considered for P1/P2 actor
0106f20000 Set $player to P1 or P2
0052012c6f If actor is within 300 units of $player goto 6f
00016e Go to first 6e
00026f Label 6f
00016b Go to first 6b
000270 Label 70
0033fd88 If $self is dying/dead goto 88
01321400 Undocumented (to do with cover?)
009c0004000001 Unset an actor flag
009c0002000001 Unset an actor flag
0130f808fe0aff000000 Say random quip: "Please! Don't shoot me!","I give up!","You win! I surrender"
00b6 Reset and start cycle counter
0024 Surrender
000271 Label 71
0003 Yield
0033fd88 If $self is dying/dead goto 88
00bd00012c16 If cycle counter > 300 (5.0 secs) goto 16
01b3fd Allow co-op player to be considered for P1/P2 actor
0106f20000 Set $player to P1 or P2
004a72 If something (actor in view?) goto 72
004713 If actor is near Jo goto 13
000171 Go to first 71
000216 Label 16
0068fd Actor $self drops concealed items
0003 Yield
0026fd Remove $self
000213 Label 13
00b6 Reset and start cycle counter
000171 Go to first 71
000272 Label 72
0130f808230a00000000 Say random quip: "Please! Don't shoot me!","I give up!","You win! I surrender"
00b6 Reset and start cycle counter
000171 Go to first 71
000295 Label 95
009c0000020000 Unset an actor flag
009c0000000100 Unset an actor flag
0031fc96 Run to $self->target_actor, then goto 96
000296 Label 96
0003 Yield
013d03e4 If in danger (?) goto e4
0034fc84 If $self->target_actor has finished death animation goto 84
017bfc84 If $self->target_actor's body has disappeared goto 84
0045fc97 If actor $self has detected $self->target_actor goto 97
003297 If actor has stopped moving goto 97
000196 Go to first 96
000297 Label 97
00b55741524e20465249454e44530a00 // WARN FRIENDS
0130f810ff02ff000000 Say random quip: "Intruder alert!","We've got trouble","We've got problems"
013164 For all actors in the same group, set their alertness to 100
000284 Label 84
00011b Go to first 1b
000288 Label 88
0005fd0000 Assign function 0000 - Idle to $self and advance frame
00029f Label 9f
01321700 Undocumented (to do with cover?)
009c0004000001 Unset an actor flag
009c0002000001 Unset an actor flag
0130f822ff03ff000000 Say random quip: "Mauler sound","Trigger the alarm"
001e01 Jog to $self->target_pad (medium speed)
00029d Label 9d
0003 Yield
013d03e4 If in danger (?) goto e4
003216 If actor has stopped moving goto 16
00019d Go to first 9d
000216 Label 16
000b00ac000000c11010fd02 Actor $self does animation 00ac (push button with right hand)
00b6 Reset and start cycle counter
0002ed Label ed
0003 Yield
00bd00004616 If cycle counter > 70 (1.2 secs) goto 16
0001ed Go to first ed
000216 Label 16
0028 Activate alarm
00029e Label 9e
0003 Yield
013d03e4 If in danger (?) goto e4
003216 If actor has stopped moving goto 16
00019e Go to first 9e
000216 Label 16
00011b Go to first 1b
0002e4 Label e4
0006fd0007 Set return function for $self to function 0007 - Alerted guard
0005fd0011 Assign function 0011 - Flee from grenade to $self and advance frame
0002eb Label eb
008a00 Set alertness to 0
0006fd0007 Set return function for $self to function 0007 - Alerted guard
0005fd001d Assign function 001d - Searching to $self and advance frame
000201 Label 01
011bfd00002000 Set property for $self: 2:00002000 (unknown prop)
0009 Actor stops travelling
0034fd16 If $self has finished death animation goto 16
0033fd16 If $self is dying/dead goto 16
017bfd16 If $self's body has disappeared goto 16
003f13 If $player is in line of sight goto 13
008a00 Set alertness to 0
009b1000000001 Set an actor flag
0006fd0006 Set return function for $self to function 0006 - Unalerted guard
0005fd001d Assign function 001d - Searching to $self and advance frame
000213 Label 13
0005fd0007 Assign function 0007 - Alerted guard to $self and advance frame
00020a Label 0a
0005fd0000 Assign function 0000 - Idle to $self and advance frame
0004 End of function

Comments

Stuff this function handles:

* dying
* injury
* losing and recovering gun
* running for alarm
* ambushing
* running for cover
* gun jamming
* throwing grenades
* retreating
* warning friends