Global


011ffd16 If something to do with $self goto 16
00b553454520454e454d590a00 // SEE ENEMY
00ea0216 If something to do with $player and value 2 goto 16
000213 Label 13
018313 If something goto 13
000016 Go to next 16
000213 Label 13
007b1613 If stage < WAR! goto 13
007c1613 If stage > WAR! goto 13
00ea0213 If something to do with $player and value 2 goto 13
000016 Go to next 16
000213 Label 13
007b3813 If stage < Deep Sea goto 13
007c3813 If stage > Deep Sea goto 13
00ea0213 If something to do with $player and value 2 goto 13
000016 Go to next 16
000213 Label 13
007b2d13 If stage < Defense goto 13
007c2d13 If stage > Defense goto 13
00ea0213 If something to do with $player and value 2 goto 13
000016 Go to next 16
000213 Label 13
007b1613 If stage < WAR! goto 13
007c1613 If stage > WAR! goto 13
00ea0213 If something to do with $player and value 2 goto 13
000016 Go to next 16
000213 Label 13
007b1913 If stage < Escape goto 13
007c1913 If stage > Escape goto 13
00ea0213 If something to do with $player and value 2 goto 13
000016 Go to next 16
000213 Label 13
007b3413 If stage < Attack Ship goto 13
007c3413 If stage > Attack Ship goto 13
00ea0213 If something to do with $player and value 2 goto 13
000016 Go to next 16
000213 Label 13
007b1c13 If stage < Crash Site goto 13
007c1c13 If stage > Crash Site goto 13
00ea0213 If something to do with $player and value 2 goto 13
000016 Go to next 16
000213 Label 13
018313 If something goto 13
000016 Go to next 16
000213 Label 13
0005fd0007 Assign function 0007 - Alerted guard to $self and advance frame
000216 Label 16
00a400000040 Set property for actor $self: 1:00000040 (unknown prop)
00b54445544543540a00 // DETECT
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
000013 Go to next 13
000216 Label 16
00070000 When shot/hit, assign function 0000 - Idle
00b6 Reset and start cycle counter
00021c Label 1c
0003 Yield
00bd00000f16 If cycle counter > 15 (0.2 secs) goto 16
00011c Go to first 1c
000216 Label 16
011ffd16 If something to do with $self goto 16
0130f819ff03ff000000 Say random quip: "You bitch!","Oh... my... god","She got me"
000017 Go to next 17
000216 Label 16
0130f802ff03ff000000 Say random quip: "Cover me!","Watch my back!","Taker cover!"
000217 Label 17
00070000 When shot/hit, assign function 0000 - Idle
0005fd0000 Assign function 0000 - Idle to $self and advance frame
000213 Label 13
00b5444554454354310a00 // DETECT1
007d01b2 If actor shot less than 1 times goto b2
0083fd16 If $self shot (while recoiling?) goto 16
016ffd00b2 If $self has weapon Nothing equipped (?) goto b2
009b0000000101 Set an actor flag
0000b2 Go to next b2
00b5444554454354320a00 // DETECT2
000216 Label 16
00b6 Reset and start cycle counter
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
0130f80d2803ff000000 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
003213 If actor has stopped moving goto 13
00bd0000b413 If cycle counter > 180 (3.0 secs) goto 13
00011d Go to first 1d
000213 Label 13
00b5444554454354330a00 // DETECT3
0002b2 Label b2
0003 Yield
011df60800000013 If player has property 2:08000000 (unknown prop) goto 13
009c0000000101 Unset an actor flag
000016 Go to next 16
000213 Label 13
009b0000000101 Set an actor flag
000216 Label 16
00b55445414d440a00 // TEAMD
008e6400b3 If actor's alertness < 100 goto b3
00b5414c4552540a00 // ALERT
0128feb3 If actor within 254 units of an enemy and has line of sight then set AI vs AI and goto b3
011ffd16 If something to do with $self goto 16
011dfd8000000013 If $self has property 2:80000000 (detected/psychosised) goto 13
000016 Go to next 16
000213 Label 13
0107b3 If something (to do with detection?) goto b3
000216 Label 16
00b54e4f205441524745540a00 // NO TARGET
0106ff0000 Set $player to actor ff
0008 Jump to return function
0002b3 Label b3
011ffd16 If something to do with $self goto 16
000213 Label 13
018313 If something goto 13
000016 Go to next 16
000213 Label 13
007b1613 If stage < WAR! goto 13
007c1613 If stage > WAR! goto 13
00ea0213 If something to do with $player and value 2 goto 13
000016 Go to next 16
000213 Label 13
007b3813 If stage < Deep Sea goto 13
007c3813 If stage > Deep Sea goto 13
00ea0213 If something to do with $player and value 2 goto 13
000016 Go to next 16
000213 Label 13
007b2d13 If stage < Defense goto 13
007c2d13 If stage > Defense goto 13
00ea0213 If something to do with $player and value 2 goto 13
000016 Go to next 16
000213 Label 13
007b1613 If stage < WAR! goto 13
007c1613 If stage > WAR! goto 13
00ea0213 If something to do with $player and value 2 goto 13
000016 Go to next 16
000213 Label 13
007b1913 If stage < Escape goto 13
007c1913 If stage > Escape goto 13
00ea0213 If something to do with $player and value 2 goto 13
000016 Go to next 16
000213 Label 13
007b3413 If stage < Attack Ship goto 13
007c3413 If stage > Attack Ship goto 13
00ea0213 If something to do with $player and value 2 goto 13
000016 Go to next 16
000213 Label 13
007b1c13 If stage < Crash Site goto 13
007c1c13 If stage > Crash Site goto 13
00ea0213 If something to do with $player and value 2 goto 13
000016 Go to next 16
000213 Label 13
0005fd0007 Assign function 0007 - Alerted guard to $self and advance frame
000216 Label 16
00b5464f554e4420454e454d590a00 // FOUND ENEMY
00b6 Reset and start cycle counter
0033f6ba If player is dying/dead goto ba
0034f6ba If player has finished death animation goto ba
017bf6ba If player's body has disappeared goto ba
010713 If something (to do with detection?) goto 13
000016 Go to next 16
000213 Label 13
009d00000001000116 If actor flag is something, goto 16
009d00001000010116 If actor flag is something, goto 16
0036 Call RNG
00378013 If random byte < 128 goto 13
0053001916 If actor is further than 25 units from player goto 16
017a13 If $player is within disarm range goto 13
000016 Go to next 16
000213 Label 13
009b0040000001 Set an actor flag
0005fd000f Assign function 000f - Hand combat to $self and advance frame
000216 Label 16
002db4 Run to Jo, then goto b4
00b552554e204641494c0a00 // RUN FAIL
0002b4 Label b4
0003 Yield
00b5464f554e4420310a00 // FOUND 1
00bd000258ba If cycle counter > 600 (10.0 secs) goto ba
009d00000001000113 If actor flag is something, goto 13
00bd00001409 If cycle counter > 20 (0.3 secs) goto 09
000213 Label 13
0033f6ba If player is dying/dead goto ba
0034f6ba If player has finished death animation goto ba
017bf6ba If player's body has disappeared goto ba
010713 If something (to do with detection?) goto 13
0000ba Go to next ba
000213 Label 13
00b5464f554e4420320a00 // FOUND 2
009d00000001010116 If actor flag is something, goto 16
009d00001000010113 If actor flag is something, goto 13
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
00b54e4f554e41524d0a00 // NOUNARM
000013 Go to next 13
000216 Label 16
00b5474f554e41524d0a00 // GOUNARM
009b0040000001 Set an actor flag
0005fd000f Assign function 000f - Hand combat to $self and advance frame
000213 Label 13
000213 Label 13
012878b5 If actor within 120 units of an enemy and has line of sight then set AI vs AI and goto b5
017ab6 If $player is within disarm range goto b6
0001b4 Go to first b4
000209 Label 09
0001b3 Go to first b3
0002b7 Label b7
0002b9 Label b9
017ab6 If $player is within disarm range goto b6
0033f6ba If player is dying/dead goto ba
0034f6ba If player has finished death animation goto ba
017bf6ba If player's body has disappeared goto ba
010713 If something (to do with detection?) goto 13
0000ba Go to next ba
000213 Label 13
004abb If something (actor in view?) goto bb
0001b4 Go to first b4
0002b5 Label b5
00b6 Reset and start cycle counter
002dbc Run to Jo, then goto bc
0002bc Label bc
0003 Yield
0033f6c0 If player is dying/dead goto c0
0034f6c0 If player has finished death animation goto c0
017bf6c0 If player's body has disappeared goto c0
010713 If something (to do with detection?) goto 13
0000c0 Go to next c0
000213 Label 13
011df62000000013 If player has property 2:20000000 (cloaked) goto 13
017abf If $player is within disarm range goto bf
000213 Label 13
00bd000078c0 If cycle counter > 120 (2.0 secs) goto c0
0001bc Go to first bc
0002bf Label bf
0000b6 Go to next b6
0002c0 Label c0
0001b2 Go to first b2
0002b6 Label b6
0094ff Set grenade probability to 255/255
00a400000040 Set property for actor $self: 1:00000040 (unknown prop)
0033f6c1 If player is dying/dead goto c1
0034f6c1 If player has finished death animation goto c1
017bf6c1 If player's body has disappeared goto c1
010713 If something (to do with detection?) goto 13
0000c1 Go to next c1
000213 Label 13
00b553484f4f54494e470a00 // SHOOTING
0000c2 Go to next c2
000216 Label 16
00520050c2 If actor is within 80 units of $player goto c2
012a00c2 If something goto c2
00b54752454e4144450a00 // GRENADE
00b6 Reset and start cycle counter
01370bc2 If something to do with 11 goto c2
01320b00 Undocumented (to do with cover?)
001b0200000016 Actor has a chance of throwing grenade, then goto 16
000216 Label 16
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
009b0040000001 Set an actor flag
0005fd000f Assign function 000f - Hand combat to $self and advance frame
000213 Label 13
0003 Yield
00b54752454e41444520454e440a00 // GRENADE END
0002c2 Label c2
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
009b0040000001 Set an actor flag
0005fd000f Assign function 000f - Hand combat to $self and advance frame
000213 Label 13
000213 Label 13
00b543484f5345205348544e440a00 // CHOSE SHTND
0036 Call RNG
00384016 If random byte > 64 goto 16
009d00000010000113 If actor flag is something, goto 13
01845a64 Undocumented
009b0000002001 Set an actor flag
0000c3 Go to next c3
000213 Label 13
009d00000004000113 If actor flag is something, goto 13
0184141e Undocumented
0000c3 Go to next c3
000213 Label 13
000216 Label 16
011ffd17 If something to do with $self goto 17
000016 Go to next 16
000217 Label 17
0130f801ff03ff000000 Say random quip: "Open fire!","Wipe her out!","Waste her!"
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
0014c3 Actor rolls and fires, then goto c3
000216 Label 16
0012c3 Actor walks while firing, then goto c3
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
001702000000c3 Actor shoots other actor, then goto c3
0002c3 Label c3
0130f8241902ff000000 Say random quip: "I've got a clear shot!","Open fire!"
0130f825190201000000 Say random quip: "I've got a clear shot!","Open fire!"
0002e2 Label e2
0003 Yield
0033f6c1 If player is dying/dead goto c1
0034f6c1 If player has finished death animation goto c1
017bf6c1 If player's body has disappeared goto c1
010716 If something (to do with detection?) goto 16
0000c1 Go to next c1
000216 Label 16
0032c1 If actor has stopped moving goto c1
0001e2 Go to first e2
000213 Label 13
00b6 Reset and start cycle counter
00b553484f4f54204641494c0a00 // SHOOT FAIL
000203 Label 03
0003 Yield
00bd00003c16 If cycle counter > 60 (1.0 secs) goto 16
000103 Go to first 03
000216 Label 16
0001c3 Go to first c3
0002ba Label ba
00b5464f554e4420330a00 // FOUND 3
0002c1 Label c1
0165fd13 If $self shot (?) goto 13
00b550554e43484d49535345440a00 // PUNCHMISSED
0130f8161903ff000000 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
00b550554e43484849540a00 // PUNCHHIT
0130f8151902ff000000 Say random quip: "Give it up!","Surrender, now!","Take that!"
0130f815190301000000 Say random quip: "Give it up!","Surrender, now!","Take that!"
000216 Label 16
00b5424f4e4e4420330a00 // BONND 3
009d00000800000113 If actor flag is something, goto 13
018313 If something goto 13
0019f60812000000 Damage player by 18 units using weapon Dy357 Magnum
009c0000080001 Unset an actor flag
000213 Label 13
0033f6c5 If player is dying/dead goto c5
0034f6c5 If player has finished death animation goto c5
017bf6c5 If player's body has disappeared goto c5
010713 If something (to do with detection?) goto 13
0000c5 Go to next c5
000213 Label 13
009d400000000101c5 If actor flag is something, goto c5
0002b8 Label b8
0002c6 Label c6
009d08000000000013 If actor flag is something, goto 13
0001b3 Go to first b3
000213 Label 13
00b54c4f4f4b20464f5220434f5645520a00 // LOOK FOR COVER
009d00004000010115 If actor flag is something, goto 15
0121103553 If something (to do with cover?) goto 53
0121109553 If something (to do with cover?) goto 53
000016 Go to next 16
000215 Label 15
0121903553 If something (to do with cover?) goto 53
0121909553 If something (to do with cover?) goto 53
000216 Label 16
000054 Go to next 54
000253 Label 53
00b5474f20544f20434f5645520a00 // GO TO COVER
0130f802ff0201000000 Say random quip: "Cover me!","Watch my back!","Taker cover!"
012402 Run for cover?
00b6 Reset and start cycle counter
0002c7 Label c7
0003 Yield
0033f6c5 If player is dying/dead goto c5
0034f6c5 If player has finished death animation goto c5
017bf6c5 If player's body has disappeared goto c5
01282813 If actor within 40 units of an enemy and has line of sight then set AI vs AI and goto 13
003216 If actor has stopped moving goto 16
00bd00016816 If cycle counter > 360 (6.0 secs) goto 16
0001c7 Go to first c7
000213 Label 13
0001b5 Go to first b5
000216 Label 16
00b5474f5420544f20434f5645520a00 // GOT TO COVER
0002c8 Label c8
00b6 Reset and start cycle counter
001602200000c9 Actor kneels and shoots at $player, then goto c9
0002c9 Label c9
0003 Yield
0033f6c5 If player is dying/dead goto c5
0034f6c5 If player has finished death animation goto c5
017bf6c5 If player's body has disappeared goto c5
010713 If something (to do with detection?) goto 13
0000c5 Go to next c5
000213 Label 13
01282815 If actor within 40 units of an enemy and has line of sight then set AI vs AI and goto 15
011df62000000013 If player has property 2:20000000 (cloaked) goto 13
017aca If $player is within disarm range goto ca
000213 Label 13
00bd0000c816 If cycle counter > 200 (3.3 secs) goto 16
0001c9 Go to first c9
000216 Label 16
00b554494d4f55540a00 // TIMOUT
0001b3 Go to first b3
000215 Label 15
00b54f50464952450a00 // OPFIRE
0001b5 Go to first b5
0002a3 Label a3
0001c1 Go to first c1
0002ca Label ca
00b6 Reset and start cycle counter
00b554415253484f0a00 // TARSHO
011ffd16 If something to do with $self goto 16
000017 Go to next 17
000216 Label 16
0130f801ff03ff000000 Say random quip: "Open fire!","Wipe her out!","Waste her!"
000217 Label 17
001702000000cb Actor shoots other actor, then goto cb
000016 Go to next 16
0002cb Label cb
0130f8241902ff000000 Say random quip: "I've got a clear shot!","Open fire!"
0130f825190201000000 Say random quip: "I've got a clear shot!","Open fire!"
0002cc Label cc
0003 Yield
0033f6c5 If player is dying/dead goto c5
0034f6c5 If player has finished death animation goto c5
017bf6c5 If player's body has disappeared goto c5
010713 If something (to do with detection?) goto 13
0000c5 Go to next c5
000213 Label 13
00bd00012c16 If cycle counter > 300 (5.0 secs) goto 16
003216 If actor has stopped moving goto 16
0001cc Go to first cc
000254 Label 54
00b54e4f434f5645520a00 // NOCOVER
0001b3 Go to first b3
00b6 Reset and start cycle counter
0011cd Actor runs sideways, then goto cd
0002cd Label cd
0003 Yield
00bd00012cce If cycle counter > 300 (5.0 secs) goto ce
0032ce If actor has stopped moving goto ce
0001cd Go to first cd
0002ce Label ce
0001b3 Go to first b3
0002c5 Label c5
00b5464f554e4420340a00 // FOUND 4
009d00100000000113 If actor flag is something, goto 13
00b5464f554e4420350a00 // FOUND 5
0008 Jump to return function
000213 Label 13
009d40000000010013 If actor flag is something, goto 13
000213 Label 13
0000cf Go to next cf
000216 Label 16
00b54b494c4c4544205441524745540a00 // KILLED TARGET
00b6 Reset and start cycle counter
0036 Call RNG
009d00100000000113 If actor flag is something, goto 13
0008 Jump to return function
000213 Label 13
0000d0 Go to next d0
003880d1 If random byte > 128 goto d1
002bd0 Run to Jo with hand up (eg. in rain), then goto d0
0002d0 Label d0
0003 Yield
00bd000078d2 If cycle counter > 120 (2.0 secs) goto d2
0032d2 If actor has stopped moving goto d2
0001d0 Go to first d0
0002d2 Label d2
0000c4 Go to next c4
000a Actor kneels
0002d4 Label d4
0003 Yield
00bd00003cc4 If cycle counter > 60 (1.0 secs) goto c4
0001d4 Go to first d4
0002d1 Label d1
0011d5 Actor runs sideways, then goto d5
0002d5 Label d5
0003 Yield
00bd0000b4c4 If cycle counter > 180 (3.0 secs) goto c4
0032c4 If actor has stopped moving goto c4
0001d5 Go to first d5
0002c4 Label c4
009d10000000000013 If actor flag is something, goto 13
0008 Jump to return function
000213 Label 13
0001b3 Go to first b3
0002cf Label cf
009d10000000000013 If actor flag is something, goto 13
018316 If something goto 16
000013 Go to next 13
000216 Label 16
0008 Jump to return function
000213 Label 13
002cd6 Walk to Jo, then goto d6
0002d6 Label d6
0003 Yield
01287813 If actor within 120 units of an enemy and has line of sight then set AI vs AI and goto 13
0032d7 If actor has stopped moving goto d7
0001d6 Go to first d6
000213 Label 13
0001b3 Go to first b3
0002d7 Label d7
0130f80f280001000000 Say random quip: "Grab a body bag","One for the morgue","Rest in peace"
00180200000016 Actor faces something (entity type=0x0200, entity_id=0x0000), then goto 16
000216 Label 16
011ffdd9 If something to do with $self goto d9
000b009a000000c11810fd02 Actor $self does animation 009a (yawn)
0002d8 Label d8
0003 Yield
0032d9 If actor has stopped moving goto d9
0001d8 Go to first d8
0002d9 Label d9
0008 Jump to return function
0004 End of function

Comments

This function will assign function 0007 unless you are on one of these stages and some other condition is met:

* Escape
* Crash Site
* Deep Sea
* Defense
* Attack Ship
* WAR

Those levels are the only levels who contain allies (Jonathan, Elvis, CI guards) who can attack. Perhaps it allows the guard to see the ally and become alerted?

Also handles:

* injuries
* running to cover
* attacking
* possibly more