  | 
		
			
				
					
						
							
								  | 
								
								
  
									GoldenEye 007 Nintendo 64 Community, GoldenEye X, Nintendo 64 Games Discussion GoldenEye Cheats, GoldenEye X Codes, Tips, Help, Nintendo 64 Gaming Community
  
									
									
						 | 
					 
				 
 
	
		  | 
		  | 
		  | 
	 
	
		  | 
		
			
		 | 
		  | 
	 
	
		  | 
		  | 
		  | 
	 
								
	
		  | 
		
			
				
					
						
							
								zoinkity 007
  
  
  Joined: 24 Nov 2005 Posts: 1740
                      | 
								
									
										
											  Posted: Thu Mar 23, 2006 8:40 am    Post subject: object type data | 
											       | 
										 
										
											
  | 
										 
										
											I'm getting paranoid about not having backup copies of this stuff.  This data should be accurate and documents most, if not all, of the features for each different kind of object in setup data
 
------------------------------------------------
 
01	doors
 
	-see seperate list
 
----------------
 
02	???
 
 
unknown
 
 
format:
 
00000002 ????????
 
 
----------------
 
03	standard object 
 
almost all objects can be set to this type
 
 
example:
 
00:	01 00 00 03 00 60 27 33 00 00 01 E1 00 00 00 00 
 
10:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
20:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
30:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
40:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
50:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
60:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
70:	00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
 
SSSS 0003 oooo pxxx mm ii *f rr 00 00 ii 00
 
00:	scale as a hex percent.  ie: 03.80 is 3 1/2
 
02:	current state.  80 is destroyed, but kinda stupid setting it.
 
04:	object value
 
06:	preset value.  0000+ or 2710+ to use standard presets.
 
	FFFF, FFFE...FFxx to set this object inside the previous object. (solo only)
 
	if control nibble 4x is set at 0xB, then this number matches the ID of a guard
 
08:	binary flags:
 
	0000xxxx indicates no control features set
 
	0001xxxx indicates left-handed normal pickup or opposite alignment
 
	0010xxxx indicates object in motion or special function is activated
 
	1000xxxx indicates right-handed gun assignment
 
	xxxx0000 indicates normal preset, or beginning/end of chain
 
	xxxx0001 indicates embedded crate or other object, creating a chain of boxes, for example
 
	(embedded objects should be smaller than parent...)
 
 
09:	flags:
 
	1000xxxx	
 
	0100xxxx	
 
	0010xxxx	unsure - used on Silo DAT tape
 
	0001xxxx	
 
	xxxx1000	
 
	xxxx0100	allows object pickup (chr_name objects only)
 
	xxxx0010	invincibility
 
	xxxx0001	
 
0A:	binary flags:
 
	1000xxxx indicates contained within another object (forward or back # objects = preset value)
 
	0100xxxx indicates object does not use normal presets but is assigned to guard #preset
 
	0010xxxx
 
	0001xxxx think this sets object to absolute position.  (similar to 2xxx type)
 
	xxxx1000 something to do with free-standing glass (glass walls)
 
	xxxx0100 
 
	xxxx0010 seems to align image to preset values for glass
 
	xxxx0001 force collisions (2xxx presets, mostly)
 
 
0B:	binary flags:
 
0xxx presets:
 
	00000000 default, on ground
 
	xxxx0001 forced to ground
 
	xxxx0010 room upper limit, rotated y 90 degrees.  top faces direction, front faces up
 
	xxxx0100 room upper limit, upside-down
 
	xxxx1000 room upper limit, right side up
 
2xxx presets:
 
	xxxx0001 normal placement
 
	xxxx0010 rotated y 90 degrees.  top faces direction, front faces up. (use on obj 68-6B)
 
	xxxx0100 upside-down
 
	xxxx1000 no use?  looks like default.
 
	0001xxxx scale object to fit completely within preset bounds
 
	0010xxxx x set to preset bounds
 
	0100xxxx y set to preset bounds
 
	1000xxxx z set to preset bounds
 
 
0D:	invisible!  set to 08.  can't shoot, but can hit with rockets, bugs, etc.  not counted as a hit though...
 
0E:	4x = invulnerability.  set to 40 to only allow damage from explosives
 
	x2 = explode on contact.  set to 02 for land mines, etc
 
0F:	drops to ground when destroyed if set to 02 (2xxx presets)
 
 
74:	2 bytes.  amount of health.  multiple of 00E4 (approx 1 gunshot).  glassware is 000A
 
 
 
examples of usage:
 
invincible crate:
 
00:	01 00 00 03 00 57 00 10 00 02 01 E1 00 00 00 00 ...
 
crate resistant to all but explosives:
 
00:	01 00 00 03 00 57 00 10 00 00 01 E1 00 00 40 00 ...
 
 
dropped by a guard when killed
 
00:	01 00 00 03 00 57 00 10 00 00 40 00 00 00 00 00 ...
 
inside previous object
 
00:	01 00 00 03 00 57 FF FF 00 00 80 00 00 00 00 00 ...
 
 
several objects dropped by parent object (only first 0x10 are given)
 
#1	01 00 00 03 00 52 00 2C 00 00 01 01 00 00 00 00 ...	parent
 
#2	00 99 00 03 00 57 FF FF 00 00 80 01 00 00 00 00 ...	object 1 dropped by parent
 
#3	00 99 00 03 00 57 FF FE 00 00 80 01 00 00 00 00 ...	object 2 dropped by parent
 
#4	00 99 00 03 00 57 FF FD 00 00 80 01 00 00 00 00 ...	object 3 dropped by parent
 
 
 
embedded chain of objects, f/ caverns (only first 0x10 are given):
 
all are linked forward, not backward
 
#1	01 00 00 08 00 BC 00 02 10 00 80 00 00 00 00 00 ...	within monitor 1 (#3)
 
#2	01 00 00 08 00 BC 00 02 00 00 80 00 00 00 00 00 ...	within monitor 2 (#4)
 
#3	01 00 00 0A 00 4B 00 02 11 00 80 01 00 00 00 00 ...	monitor 1, within box 1 (#5)
 
#4	01 00 00 0A 00 4B 00 01 11 00 80 01 00 00 00 00 ...	monitor 2, within box 1 (#5)
 
#5	00 66 00 03 00 52 00 01 01 00 80 01 00 00 00 00 ...	box 1, within box 2 (#6)
 
#6	00 99 00 03 00 52 00 01 01 00 80 01 00 00 00 00 ...	box 2, within box 3 (#7)
 
#7	00 CC 00 03 00 52 00 01 01 00 80 01 00 00 00 00 ...	box 3, within box 4 (# 
 
#8	01 00 00 03 00 52 00 9B 00 00 01 01 00 00 00 00 ...	box 4
 
 
padlocking a door:
 
lock	01 00 00 03 00 3F 27 5B 01 00 00 08 00 00 00 02 ...
 
handle1	00 00 00 26 FF FF FF FE FF FF FF FF 00 00 00 00 
 
handle2	00 00 00 26 FF FF FF FC FF FF FF FE 00 00 00 00 
 
then doors...
 
 
DAT pickup
 
02 00 00 03 01 10 00 3C 01 24 40 00 00 00 00 00 ...
 
+ pickup type rename
 
00000025 FFFFFFFF 00000049 ...
 
 
key holder (bunker2)
 
00:	01 00 00 03 01 26 27 5B 00 00 10 E8 00 00 01 00 
 
 
 
note:	first 0x80 is standard for most types
 
	any object can be assigned to be dropped by a guard.
 
----------------
 
04	key
 
keys, floppy disks, etc.
 
 
0x80 std, + key 
 
 
example
 
00:	01 00 00 04 00 56 00 39 00 00 40 00 00 00 00 00 
 
10:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
20:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
30:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
40:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
50:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
60:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
70:	00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
80:	00 00 00 06 
 
 
80:	Always unique.  value probably is used in the big block of stuff as a key value or inventory value...
 
silo 	04, type 51
 
	08, type 51
 
	10, type 51
 
	1c, type ?
 
 
note:	always followed traditionally by a type 25-rename block.
 
 
----------------
 
05	alarm
 
00-01, most other objects will also work
 
sounds an alarm when activated
 
 
0x80 std
 
 
01 00 00 05 00 01 27 56 00 00 00 02 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
 
----------------
 
06	surveillance camera
 
0018 only
 
(autoguns can be exchanged for these, but they probably won't look right)
 
 
0x80 std + some funny stuff
 
 
00:	01 00 00 06 00 18 27 38 00 00 00 02 00 00 00 00 
 
10:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
20:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
30:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
40:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
50:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
60:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
70:	00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
80:	00 00 00 57 00 00 00 00 00 00 00 00 00 00 00 00 
 
90:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
A0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
B0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
C0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 15 55 
 
D0:	FF FF EA AB 00 00 00 00 00 00 00 00 00 00 00 F2 
 
E0:	00 00 00 00 00 00 00 00 FF FF FF 9C 
 
 
0x82	2byte	preset used to *center* camera.  This is the default middle position.  all rotation data is applied to this angle.
 
	*note: below seem like typical rotation values.  user might have ot fiddle with it a bit...  
 
0xCC	2byte	how far camera can rotate upward.  positive value (N/A)
 
0xCE	2byte	how far camera can rotate left from preset. positive value.
 
0xD0	2byte	how far camera can rotate downward.  negative value. (N/A)
 
0xD2	2byte	how far right it can rotate.  negative value.
 
 
0xDE	2byte	speed.  how fast the camera turns
 
 
0xE8	2byte	detection arc up/down from current position
 
0xEA	2byte	detection arc left/right from current position
 
This sets up the line of sight.  When bond is in the detection arc for five seconds, it triggers the alarm.  Set this high enough and the camera can look in teh opposite direction but still see you.
 
FFFF,FF9C are the default values
 
 
note: for free rotation left/right, set both to 0000
 
note: vertical rotation should be set to default.  Camera can't move this way.
 
	defaults should be 0000xxxxFFFFxxxx
 
 
 
----------------
 
07	ammo clip
 
0079-0086 specifically, though most objects will work
 
 
0x80 std
 
then 000000## which is type of ammo on pickup
 
adds default amount of ammo of given type number
 
can add ammo of any type, not just the first 13
 
 
example:
 
00:	01 00 00 07 00 7E FF FF 00 00 80 00 00 00 00 00 
 
10:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
20:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
30:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
40:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
50:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
60:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
70:	00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
80:	00 00 00 01 
 
 
80:	type of ammo on pickup.  Adds default pickup ammount for that type
 
	(same as amount of ammo on gun pickup)
 
note: this type is almost exclusively found inside other objects
 
 
----------------
 
08	weapon pickup
 
weapon objects specifically, or really most objects
 
 
all 08 types are invincible
 
 
0x80 contains some added tags
 
then ??FFFFFF 00000000
 
?? is replaced with inventory pickup value, or F# for multiplayer value.
 
next byte is also replaced if a linked weapon
 
 
normal example:
 
00:	02 00 00 08 01 4D 00 2A 00 00 00 01 00 00 00 00 
 
10:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
20:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
30:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
40:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
50:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
60:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
70:	00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
80:	58 FF FF FF 00 00 00 00 
 
 
 
inventory addition on pickup:
 
80:	58 FF FF FF 00 00 00 00 
 
multi example:
 
80:	...F0 FF FF FF 00 00 00 00
 
weapons are F0 - F7, for the 8 weaopns in each weapon set
 
 
linked guard weapons:  (xenia in jungle)
 
note:	0x8 settings 80+90 are used to designate right (80) and left (90) handed weapons that are EQUIPPED
 
right
 
00:	01 00 00 08 00 C5 00 00 80 00 40 00 00 00 00 00 ...
 
80:	...0E FF FF FF 00 00 00 00 
 
left
 
00:	01 00 00 08 00 B9 00 00 90 00 40 00 00 00 00 00 ...
 
80:	...18 FF FF FF 00 00 00 00 
 
 
linked pickups within a crate
 
note:	0x8 settings 00+10 are used to designate right (00) and left (10) handed weapon PICKUPS only
 
left
 
00:	01 00 00 08 00 BC 00 02 10 00 80 00 00 00 00 00 ...
 
80:	...0D FF FF FF 00 00 00 00 
 
right
 
00:	01 00 00 08 00 BC 00 02 00 00 80 00 00 00 00 00 ...
 
80:	...0D FF FF FF 00 00 00 00 
 
 
---------------
 
09	guards
 
use head/body values
 
 
example:
 
00000009 0000 0000 0004 00 02 FFFFFFFF 03E8 00 64 0000 FFFF 00000000 
 
path example:
 
00000009 0017 006E 0025 04 01 FFFFFFFF 02EE 00 32 0000 FFFF 00000000 
 
 
format:
 
00000009 00ii pxxx 00bb !! aa FFFFFFFF hhhh 00 zz 0000 FFFF 00000000
 
00ii 	index number.  used to link hats/weapons
 
pxxx 	preset position
 
00bb 	body
 
!! 	04 if walking on a path, 00 otherwise
 
aa 	animation/action
 
FFFFFFFF 
 
hhhh 	health
 
00 	
 
zz 	multiple of 16...  accuracy/reaction time?
 
0000	I've also seen 0004...
 
FFFF	head.  FFFF is random, or set to distinct head if need be
 
 
---------------
 
0A	single monitor display
 
use the value of a object with a viewing pane (consoles, etc)
 
4D is specifically dedicated as a stand-alone viewscreen
 
 
0x80 std
 
then, fill to 0xF0
 
00000000 FFFFFFFF FFFFFFFF 000000##
 
## is animation sequence.
 
 
00:	01 00 00 0A 00 4B 00 02 11 00 80 01 00 00 00 00 
 
10:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
20:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
30:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
40:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
50:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
60:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
70:	00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
80:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
90:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
A0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
B0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
C0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
D0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
E0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
F0:	00 00 00 00 FF FF FF FF FF FF FF FF 00 00 00 10 
 
 
if set to hanging rack:
 
preset remains at FFFF for all attached monitors
 
0xF4 is decremented 1 for each subsequent monitor (like you would normally to preset)
 
F8 is changed from FFFFFFFF to long value for that monitor.  ie. 00000000, 00000001, etc.
 
***see type 0C for example of proper notation
 
 
---------------
 
0B	multiple-screen displays
 
use an object with multiple viewing panes (ie. double consoles)
 
4E is dedicated as a stand-alone multi-viewscreen
 
 
0x80 std
 
last line...  10141414
 
four values, each one a different possible screen
 
can display up to four unique screens
 
first is primary, others are overlayed
 
 
00:	01 00 00 0B 00 4E 27 3C 60 00 00 62 00 00 00 00 
 
10:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
20:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
30:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
40:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
50:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
60:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
70:	00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
80:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
90:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
A0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
B0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
C0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
D0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
E0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
F0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
100:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
110:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
120:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
130:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
140:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
150:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
160:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
170:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
180:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
190:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
1A0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
1B0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
1C0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
1D0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
1E0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
1F0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
200:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
210:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
220:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
230:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
240:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
250:	10 14 14 14 
 
 
---------------
 
0C	hanging monitor rack
 
4C !only!
 
must be followed by set number of 0A types, per example
 
 
0x80 std except 0x0B sets number of monitors to hang on rack
 
 
example:
 
01 00 00 0C 00 4C 00 33 00 00 00 04 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
 
must be followed by number of 0A-type presets set at 0xB
 
example of 0A subobjects, first and last lines only given
 
00:	01 33 00 0A 00 4B FF FF 10 00 00 00 00 00 00 00 ...
 
F0:	00 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 xx 
 
 
00:	01 33 00 0A 00 4B FF FF 10 00 00 00 00 00 00 00 ...
 
F0:	00 00 00 00 FF FF FF FE 00 00 00 01 00 00 00 xx 
 
 
00:	01 33 00 0A 00 4B FF FF 10 00 00 00 00 00 00 00 ...
 
F0:	00 00 00 00 FF FF FF FD 00 00 00 02 00 00 00 xx 
 
 
00:	01 33 00 0A 00 4B FF FF 10 00 00 00 00 00 00 00 ...
 
F0:	00 00 00 00 FF FF FF FC 00 00 00 03 00 00 00 xx 
 
 
---------------
 
0D	autoguns
 
autogun models only
 
(0062,0124,012B only)
 
 
0x80 std + extra info
 
 
00:	01 00 00 0D 00 62 00 27 00 00 00 04 00 00 00 00 
 
10:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
20:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
30:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
40:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
50:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
60:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
70:	00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
80:	00 00 00 71 00 00 00 00 00 02 00 00 FF FE 00 00 
 
90:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
A0:	00 00 00 00 00 00 00 DA 00 0A 00 00 00 00 00 00 
 
B0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
C0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
D0:	00 00 00 00 00 00 00 00 
 
 
0x82	2byte	preset used to *center* gun.  aims at this when it doesn't aim at you.
 
	*note: below seem like typical rotation values.  user might have ot fiddle with it a bit...  
 
0x88	2byte	how far gun can rotate upward.  positive value
 
0x8A	2byte	how far the gun can rotate left from preset. positive value.
 
0x8C	2byte	how far the gun can rotate downward.  negative value.
 
0x8E	2byte	how far right it can rotate.  negative value.
 
 
0xA6	2byte	speed.  how fast the turret turns
 
0xA8	2byte	distance before deactivating.  same as clipping/model distances
 
 
note: for free rotation left/right, set both to 0000
 
note: vertical rotation must be set or any non-ground autogun can't find Bond
 
	defaults should be 0000xxxxFFFFxxxx or 0002xxxxFFFExxxx. it doesn't really matter much
 
 
last note: this data is also shared by cameras.  They expand on this basic stuff.
 
 
---------------
 
0E	Link Pickups
 
any chr_name pickup
 
 
format:
 
0000000E xxxxxxxx yyyyyyyy
 
x	# objects to weapon pickup 1
 
y	# objects to weapon pickup 2
 
 
example:
 
00 00 00 0E FF FF FF FE FF FF FF FC 
 
 
might be possible to double weapons with this...
 
just to remove weird glitchiness of pickups in hard-to-reach areas
 
 
---------------
 
0F	???
 
 
unknown
 
 
format:
 
0000000F
 
 
---------------
 
10	???
 
 
unknown
 
 
format:
 
00000010
 
 
---------------
 
11	hat
 
D4-DF specific, possibly other objects as well
 
 
0x80 std.  always assigned to a guard!
 
 
example:
 
00:	01 00 00 11 00 D8 00 0B 00 00 40 00 00 00 00 00 
 
10:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
20:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
30:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
40:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
50:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
60:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
70:	00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
 
note: 	0x6 is always the id of the guard wearing the hat.
 
	0xA is always 40, indicating the hat is equipped.
 
 
---------------
 
12	???
 
 
always follows guard information
 
 
format:
 
00 00 00 12 00 00 ?? ?? 00 00 00 ??
 
 
---------------
 
13	switch
 
links player interaction between objects
 
interact with controlling object to open/close controlled door, for example
 
 
00000013 xxxxxxxx yyyyyyyy 00000000
 
x	# objects to controlling object
 
y	# objects to controlled object
 
 
examples:
 
	01 00 00 0B 01 50 27 66 00 02 01 02 00 00 08 00 
 
00 00 00 13 FF FF FF FF FF FF FF FD 00 00 00 00 
 
	01 00 00 0B 01 50 27 67 00 02 01 02 00 00 08 00 
 
00 00 00 13 FF FF FF FF FF FF FF FB 00 00 00 00 
 
	01 00 00 0B 01 50 27 68 00 02 01 02 00 00 08 00 
 
00 00 00 13 FF FF FF FF FF FF FF FA 00 00 00 00 
 
	01 00 00 0B 01 50 27 69 00 02 01 02 00 00 08 00 
 
00 00 00 13 FF FF FF FF FF FF FF F8 00 00 00 00 
 
 
used to link to these two doors:
 
01 00 00 01 00 B2 00 13 40 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 F3 33 00 01 00 00 00 00 00 10 
 
00 00 00 10 00 00 00 CC 00 0C 00 00 00 00 00 80 
 
00 00 05 DC 00 00 00 03 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
 
01 00 00 01 00 B3 00 15 40 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 C0 00 00 00 C0 00 00 00 00 51 
 
00 00 00 51 00 00 02 22 00 00 00 04 00 00 00 00 
 
00 00 05 DC 00 00 00 03 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
 
---------------
 
14	ammo box
 
0003-0007 specifically, although other objects will work
 
 
normal 0x80
 
then 13 sets of FFFF ####, where # specifies amount of ammo
 
 
example:
 
00:	00 99 00 14 00 05 00 31 00 00 00 01 00 00 00 00 
 
10:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
20:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
30:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
40:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
50:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
60:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
70:	00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
80:	FF FF 00 01 FF FF 00 02 FF FF 00 03 FF FF 00 04 
 
90:	FF FF 00 05 FF FF 00 06 FF FF 00 07 FF FF 00 08 
 
A0:	FF FF 00 09 FF FF 00 0A FF FF 00 0B FF FF 00 0C 
 
B0:	FF FF 00 0D 
 
 
ammo types are:
 
1	9mm Ammo
 
2	(beta) also 9mm Ammo
 
3	Rifle Ammo
 
4	Shotgun Cartridges
 
5	Hand Grenades
 
6	Rockets
 
7	Remote Mines
 
8	Proximity Mines
 
9	Timed Mines
 
A	Throwing Knives
 
B	Grenade Launcher Rounds
 
C	Magnum Rounds
 
D	Golden Bullets
 
 
note: in multiplayer, ammo amounts and types are set based on last defined weapon.
 
set all amounts to zero on multiplayer (unless doing something really crazy...)
 
 
---------------
 
15	body armour
 
0072 & 0073 specifically, although most objects will work
 
 
normal 0x80, 
 
then AAAA.aaaa 00000000
 
A.a is a hex percent, like 00028000, which is 2 1/2 times normal BA
 
 
example:
 
00:	01 80 00 15 00 73 00 00 00 00 00 01 00 00 00 00 
 
10:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
20:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
30:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
40:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
50:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
60:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
70:	00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
80:	00 01 00 00 00 00 00 00 
 
 
---------------
 
16	tag object
 
target object can be manipulated or read via this tag.
 
 
00000016 xxxx#### 00000000 00000000
 
 
xxxx	ID number used for this block.
 
####	number of objects forward (0001, 0002, etc) or backward (FFFF, FFFE, etc) to target block
 
 
______________
 
17	create mission objective
 
00000017 000000ii 0000TTTT 0000000*
 
 
00000017	start objective
 
000000..	objective number. just an ordered list, probably doesn't even use it
 
0000TTTT	text to display.  usually from stage text, but could be any loaded text bank
 
0000000*	minimum difficulty: 0=agent, 1=secret agent, 2=007 agent
 
______________
 
18	end objective
 
...00000018
 
 
end objective
 
______________
 
19	destroy object
 
00000019 0000xxxx
 
 
xxxx	value of corresponding 000000016 preset preceeding object to be destroyed
 
______________
 
1A	complete if return true
 
0000001A xxxxxxxx
 
 
objective is completed if value given is equal to return from block data type 9A
 
______________
 
1B	failed if return true
 
0000001B xxxxxxxx
 
 
objective is failed if value given is equal to return from block data type 9A
 
 
______________
 
1C	collect object
 
0000001C 0000xxxx
 
 
xxxx	value of corresponding 000000016 preset preceeding object to be collected
 
______________
 
1D	deposit object (no target)
 
0000001D 0000xxxx
 
 
xxxx	value of corresponding 00000016 preset preceeding object to be deposited
 
______________
 
1E	photograph object
 
0000001E 0000xxxx 00000000 00000000
 
 
xxxx	value of corresponding 00000016 preset preceeding object to photograph
 
______________
 
1F	???? modifier
 
0000001F ...
 
 
 
______________
 
20	enter room
 
00000020 0000xxxx 00000000 00000000
 
 
xxxx	preset within target room
 
______________
 
21	deposit object in room
 
00000021 000000xx 000000yy 00000000 00000000
 
 
xx	weapon index number of object to be thrown
 
yy	preset within target room
 
______________
 
22	copy item (modifier)
 
00000022 ...
 
 
use key analyzer on following objective
 
 
---------------
 
24	gas-releasing object
 
when destroyed, the stage fills with toxic gas
 
 
same as std 03 type.
 
 
---------------
 
25	rename function
 
renames inventory object
 
 
example:
 
00:	00 00 00 25 FF FF FF FF 00 00 00 51 00 00 0C 3A 
 
10:	00 00 0C 3B 00 00 0C 3C 00 00 0C 3D 00 00 0C 3E 
 
20:	00 00 00 00 00 00 00 00 
 
 
04:	target objects forward/back. if zero, affects all instances of that one object in inventory
 
08:	inventory value to alter
 
0C:	watch main top
 
10:	watch main bottom
 
14:	inventory select name
 
18:	on default pickup
 
1C:	interaction text (pick up, activate, open, etc.)
 
 
notes:	fields not entered will use defaults for that object
 
	can rename any item pickup (keys, weapons, etc)
 
	can also be used with doors or other objects, such as when you try to open a locked door
 
 
---------------
 
26	lock door
 
used to target padlock and open doors.  doors remain locked until first argument is destroyed
 
 
format:
 
00000026 yyyyyyyy xxxxxxxx 00000000
 
x	object # before/after to locking object
 
y	locked object # before/after
 
 
 
example:
 
00 00 00 26 FF FF FF FE FF FF FF FF 00 00 00 00 
 
 
linking this lock:
 
01 00 00 03 00 3F 27 5B 01 00 00 08 00 00 00 02 ...
 
 
 
to these two linked doors:
 
01 00 00 01 00 B4 00 0A 40 00 00 00 00 00 80 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 01 00 00 F3 33 00 01 00 00 00 00 00 51 
 
00 00 00 51 00 00 02 22 00 08 00 00 00 00 00 00 
 
00 00 05 DC 00 00 00 03 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
 
01 00 00 01 00 B4 00 0B 40 00 00 00 00 00 80 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
FF FF FF FF 00 00 F3 33 00 01 00 00 00 00 00 51 
 
00 00 00 51 00 00 02 22 00 08 00 00 00 00 00 00 
 
00 00 05 DC 00 00 00 03 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
 
---------------
 
27	wheeled vehicles
 
117-119, 121, 12D-131
 
 
0x80 std.  be sure to set flag
 
 
truck f/ dam:
 
00:	01 19 00 27 01 17 01 3D 20 02 01 01 00 00 00 00 
 
10:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
20:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
30:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
40:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
50:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
60:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
70:	00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
80:	00 00 04 0A 00 00 00 00 00 00 00 00 00 00 00 00 
 
90:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
A0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
 
 
for movement...
 
06:	preset must be part of a path
 
08:	set to 0010xxxx
 
80:	jal to action block
 
---------------
 
28	aircraft
 
011A-011D, 0123 (cars will work, just not properly...)
 
 
example:
 
00:	00 40 00 28 01 1C 00 1F 30 22 01 01 00 00 00 00 
 
10:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
20:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
30:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
40:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
50:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
60:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
70:	00 00 00 00 00 0A 00 00 00 00 00 00 00 00 00 00 
 
80:	00 00 04 2A 00 00 00 00 00 00 00 00 00 00 00 00 
 
90:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
A0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
B0:	00 00 00 00 
 
 
for prop motion:
 
08:	set to 0010xxxx
 
80:	rate of motion.
 
(it may also be possible to move them along a path...)
 
 
helicopter in cradle...
 
02 4C 00 28 01 1A 00 93 10 02 00 08 00 08 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
00 00 04 21 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 
 
 
 
---------------
 
29	???
 
unknown
 
 
format:
 
00000029
 
 
---------------
 
2A	normal glass
 
0068 - 006B specifically, as well some other objects.  Defines the glass shatter effect
 
 
normal 0x80, although the 2xxx presets may require specific rotation...
 
 
example:
 
01 00 00 2A 00 68 27 10 04 00 0B 62 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
beaker
 
01 00 00 2A 01 36 00 C9 00 00 00 09 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 0A 00 00 00 00 00 00 00 00 00 00 
 
 
---------------
 
2B	Safe
 
00FE only, + 0125 for safe door
 
 
std 0x80
 
 
example:
 
00:	01 00 00 2B 00 FE 27 59 00 02 01 E8 00 00 00 00 
 
10:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
20:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
30:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
40:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
50:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
60:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
70:	00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
 
-safe door f/ bunker 2
 
01 00 00 01 01 25 00 4A 00 00 00 00 20 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 5A 00 00 03 E8 00 00 00 00 0F 5C 
 
00 00 0F 5C 00 01 00 00 00 08 00 05 00 00 00 30 
 
0F FF FF FF 00 00 00 10 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
 
alert that safe is locked (basic "door is locked" text override:
 
00 00 00 25 FF FF FF FF 00 00 00 00 00 00 00 00 
 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 74 65 
 
00 00 00 00 00 00 00 00 
 
 
1st item in safe (first 0x10):
 
01 00 00 08 00 CC 00 2B 00 00 00 08 00 00 00 00 ...
 
 
link object into safe
 
00 00 00 2C FF FF FF FF FF FF FF FC FF FF FF FD 00 00 00 00 
 
 
2nd item in safe (first 0x10):
 
01 00 00 08 00 CC 00 2D 00 00 00 08 00 00 00 00 ...
 
 
link object into safe
 
00 00 00 2C FF FF FF FF FF FF FF FA FF FF FF FB 00 00 00 00 
 
 
probably not safe specific, but when one silencer is picked up, both are
 
00 00 00 0E FF FF FF FE FF FF FF FC 
 
 
3rd item in safe (first 0x10):
 
02 00 00 03 01 0E 00 2C 00 04 00 08 00 00 00 00 ...
 
 
link item into safe:
 
00 00 00 2C FF FF FF FF FF FF FF F7 FF FF FF F8 00 00 00 00 
 
+ rename
 
00 00 00 25 FF FF FF FE 00 00 00 42 ...
 
 
 
 
---------------
 
2C	Safe items
 
used to place items within a safe
 
 
format:
 
0000002C oooooooo xxxxxxxx yyyyyyyy 00000000
 
o	objects forward/back to object placed within safe
 
x	objects forward/back to safe object (00FE)
 
y	objects forward/back to safe door (0125)
 
 
example, f/ bunker 2 safe:
 
00 00 00 2C FF FF FF FF FF FF FF FC FF FF FF FD 00 00 00 00 
 
 
 
---------------
 
2D	tank
 
0120 only!
 
 
0x80 std.
 
0xD8 assigns amount of tank ammo to recieve
 
 
tank on runway
 
00:	01 14 00 2D 01 20 00 2C 00 02 01 01 00 00 00 00 
 
10:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
20:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
30:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
40:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
50:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
60:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
70:	00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
80:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
90:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
A0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
B0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
C0:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
D0:	00 00 00 00 00 00 00 00 00 00 00 1E 00 00 00 00 
 
 
C6:	2 bytes.  set >0 for firing effect
 
D8:	tank ammo,  max=50 (0x32)
 
 
note: can not be used effectively multiplayer.
 
  Will not assign clipping change and correct player assignment.
 
 
---------------
 
2E	Cut-Scene Coordinates
 
sets coordinates and rotation for in/outro camera sequences
 
uses the same format as those 06 intro camera shots following object data
 
 
format:
 
00:	00 00 00 2E 00 0E 20 1F 00 01 0C F9 FF D5 75 25 
 
10:	00 03 25 07 00 06 2D B0 00 00 27 14 
 
 
04:	x coordinate offset
 
08:	y coordinate offset
 
0C:	z coordinate offset
 
10:	lateral rotation
 
14:	vertical rotation
 
18:	preset.  used to illuminate the correct room.
 
 
note - any vertical rotation around 0006xxxx will be near the horizon.
 
 
---------------
 
2F	Tinted Glass
 
sets opacity and visibility distance for tinted glass panels
 
 
format:
 
00:	01 00 00 2F 00 68 27 8A 10 00 02 62 00 00 00 00 
 
10:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
20:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
30:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
40:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
50:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
60:	00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 
70:	00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 
 
80:	00 00 01 90 00 00 02 58 00 00 00 00 FF FF FF FF 
 
90:	00 00 00 00 
 
 
80:	+/- 4byte	distance to full illumination
 
84:	+/- 4byte	distance before you can see through window
 
both distances use general model/clipping values.
 
 
The difference between the distances sets the fade for the glass.
 
setting a low first value and high second value makes a pane that gradually gets more visible.
 
setting the first value the same as the second will mean that once you reach the given distance the pane immediately becomes clear.
 
setting the first value negative can be used to make glass that never becomes visible. or only partially so.
 
 
---------------
 
30+	End Setup Object List
 
all invalid types indicate the end of the setup file
 
no arguments
 
 
format:
 
00000030 | 
										 
									 
								 | 
							 
							
								|   | 
								
									
								 | 
							 
						 
					 | 
				 
			 
		 | 
		  | 
	 
	
		  | 
		  | 
		  | 
	 
	
		  | 
		
			
				
					
						
							
								zoinkity 007
  
  
  Joined: 24 Nov 2005 Posts: 1740
                      | 
								
									
										
											  Posted: Thu Mar 23, 2006 8:42 am    Post subject:  | 
											       | 
										 
										
											
  | 
										 
										
											This explains clipping, as used in Citadel.  On GE, only triangles and interspersed rectangles not coiding with a wall boundry can be concidered stable.  In PD, however, they used incredibly huge polygons.  (PD's format though differs significantly)
 
_________________________
 
Clipping:
 
 
each tile has a 8 byte header.  each point uses 8 bytes
 
rom files start with a necessary header.
 
address for clipping file, stored in ram, always 000000000
 
offset in file to first tile
 
(you can insert more offsets here as notes or whatnot)
 
before first tile, 00000000
 
 
tile header format:
 
pp pp pp rr !- -- #- --
 
 
[p]--values used within setup files to tie object positions to tiles.  Not used in emulators, but it is read and probably used on console.  The first two bytes are the equivelant of a decimal number.  The last byte is a coded value.
 
00	a
 
01	a1
 
02	a2
 
03	a3
 
04	a4
 
05	a5
 
06	a6
 
07	a7
 
08	b
 
09	b1
 
0A	b2
 
0B	b3
 
0C	b4
 
0D	b5
 
0E	b6
 
0F	b7
 
etc...
 
ie: 
 
0588 07 
 
corresponds to:
 
p1416a7
 
These values should match the values in setup.  If not, the object may not load in the correct room or at all.
 
 
[r]oom.  When on this tile, this room is visible.  Rooms follow reverse order and to be parsed correctly must be in room number order.  If max rooms are 2E, then rooms follow 2E, 2D, 2C, 2B etc.
 
Multi-room visibility is handled in background data.
 
 
[!] special type value (first nibble of 5th byte).  bit flags:
 
Normal tiles are 0, kneeling is 1, ladders are 2
 
ladders must be vertical or near vertical to function.
 
Although you can write a ladder + squatting (3), it really isn't recomended.  It is too easy to get stuck.
 
 
[-] these values have no identifiable use.  
 
 
[#] number of points in tile.  Techincally the limit is 15, but a rom file will not parse correctly if more than 10 are used.
 
  Do not use more than 3-4 points whenever possible.  There are about a billion things that can go wrong with larger tiles, from incorrect assembly, bad file parsing, connection problems, and visibility errors.  Only triangles are recomended to intersect a room junction.
 
 
[-] these three nibbles, as far as I can tell, are unread.  They always add up to the number of points, and the files do tend to compress better when they're there, but otherwise they are useless.
 
 
 
points:
 
points follow counterclockwise, the last connecting to the first.  With larger files, make sure you stick to regular polygon forms wherever possible to avoid a point connection issue.
 
xx xx yy yy zz zz cc cc
 
 
x,y,z positions are global values used in visibility windows and for setting room position.  They are relative to the stage centerpoint and are scale independant.
 
[c]onnection values.  All tiles are connected with these values.  0000 is no connection.
 
First tile offset is 0010.  Each connection value counts the number of words from the first tile to the header of the tile you are connecting to.  Each is relative to the first tile, so if you are creating/using a rom file ignore the header.
 
ie: 0401
 
4*(0401 - 10) = FC4 is the target tile address in file
 
 
end of table:
 
the table ends when one header reads 0.  no points should follow.
 
This should be followed by the ASCI string "unstric", null terminated to nearest doubleword.
 
 
-Zoinkity _________________ (\_/) Beware
 
(O.o)   ze
 
(> <)      Hoppentruppen! | 
										 
									 
								 | 
							 
							
								|   | 
								
									
								 | 
							 
						 
					 | 
				 
			 
		 | 
		  | 
	 
	
		  | 
		  | 
		  | 
	 
	
		  | 
		
			
				
					
						
							
								zoinkity 007
  
  
  Joined: 24 Nov 2005 Posts: 1740
                      | 
								
									
										
											  Posted: Thu Mar 23, 2006 8:46 am    Post subject:  | 
											       | 
										 
										
											
  | 
										 
										
											Global object visibility, as seen in background data.
 
For a nifty example of this, check out my Dam multiplayer.  It disables the global visibility in the stage, decreasing skip rate.
 
 
easily the least helpful doc
 
_________________________________
 
types:
 
00010000 00000000	terminator
 
20020000 00000000	following rooms are lit
 
21010000 00000000	starts each group, ending prior
 
22020000 00000000	-and statement linking stuff
 
5A010000 00000000	ends point groups
 
5C010000 00000000	ends room pointer groups (1E, 1F)
 
65000000 000000##	room number
 
 
common sequences:
 
14030000 00000000 65000000 000000#1 65000000 000000#2
 
5A010000 00000000
 
allows you to see a certain room from every room
 
number between #1 and #2.  Can be set to same room
 
number too.
 
 
1E010000 00000000 5C010000 00000000	lights rooms without need for portals
 
 
1F020000 00000000 64000000 000000##	room is visible
 
through this portal
 
22020000 """""""" """""""" """"""""	and this one too
 
 
20020000 00000000 65000000 000000##	make following
 
room visible to all entries prior.
 
You can just list a slew of these.  
 
 
 
Might seem chaotic right now, but can write them. 
 
Minimum would be:  (... = 00000000)
 
21010000 ...
 
14030000 ... 65000000 000000## 65000000 000000##
 
5A010000 ...
 
1E010000 ...
 
5C010000 ...
 
20020000 ... 65000000 000000##
 
00010000 ... _________________ (\_/) Beware
 
(O.o)   ze
 
(> <)      Hoppentruppen! | 
										 
									 
								 | 
							 
							
								|   | 
								
									
								 | 
							 
						 
					 | 
				 
			 
		 | 
		  | 
	 
	
		  | 
		  | 
		  | 
	 
	
		  | 
		
			
				
					
						
							
								zoinkity 007
  
  
  Joined: 24 Nov 2005 Posts: 1740
                      | 
								
									
										
											  Posted: Thu Mar 23, 2006 8:55 am    Post subject:  | 
											       | 
										 
										
											
  | 
										 
										
											All due credit to Sub on this one, since he figured out a lot of them.  In fact, it really was mostly him ;*)
 
 
However, I'm releasing the info in case anyone actually wants to use it for anything, since we never really got around to it.
 
(GEMaster: this is what I used for that funny hack that guy wanted)
 
 
This is incomplete, and there's nothing to say it is accurate.  However, the basics for the loops do work, and we've done some nifty (mostly silly) things with it
 
 
There's also a default guard routine outside the action blocks but I can't remember what address that was at.  It's kinda fun really; I had scientists rigged up where shooting them made them put a hat on their head and they hopped like bunnies.
 
 
Also, there is nothing more deadly than a scientist with double grenade launchers.  Nothing.
 
_____________________
 
 
Goldeneye
 
Item Types
 
 
if > 0x18 subtract 0x19
 
if < 0x25 ((0x25 - 0x19) << 2) + 80053654 (still end of table) (TLB pointers to jr)
 
 
 
80052100 table
 
Other type: (note: these are # of bytes, not words in other table)
 
00	2	
 
00XX
 
XX = Return Value
 
Go into loop executing no commands but going through them until Return Value is met by 02XX Command or 04 is found and terminate
 
 
01	2
 
01XX
 
XX = Return Value
 
Return to start of block, Go into loop executing no commands but going through them until Return Value is met by 02XX Command or 04 is found and terminate
 
 
02	2	
 
02XX
 
XX = Return Value
 
In main load (not in return loop), 02 does nothing.  In the return loop, if current Return Value == XX, go to main load and start executing commands again.
 
 
03	1
 
04	1	terminate
 
05	4	jal; jump to block function with # after its pointer	05.ii.####	[i]dentifier type (FD=guard, F8=Bond),[#] of thing to jump to.  given after the pointer to the block data
 
also:	05 - 4 Default action for guard on the path (ex. walking wait for bond, attacking immediately, wait till bond shoots, etc), 00XX = bank at 80037450, 04XX = level specific, corresponding to table with pointers to spawn stuff
 
 
06	3	06.xxxx	set return link to start of this block.
 
07	1	return to original function
 
08	1	some odd walking or foot-shuffling animation
 
09	1	kneel
 
0A	9
 
	0AXXXXYYYYZZZZWWWW
 
	XXXX = Animation offset into table (ex. swirling, running, holding gun, etc, sent list before)
 
	YYYY ?
 
	ZZZZ ?
 
	WWWW = some sort of speed halfword, something like that
 
 
0B	2	0B.rr	?, return rr	(bunker 1: 040D)
 
0C	1	stand still?
 
0D	1	look around self
 
0E	2	0E.rr	step sideways, return rr	(guard action)
 
0F	2	0F.rr	hop sideways, return rr	(guard action)
 
10	2	10.rr	run sideways, return rr	(guard action)
 
11	2	11.rr	walk while firing, return rr	(guard action)
 
12	2	12.rr	run while firing, return rr	(guard action)
 
13	2	13.rr	roll along ground, then fire crouched, return rr	(guard action)
 
14	6	14.xxxx.####.rr	target guard [#], [r]eturn
 
15	6	15.xxxx.####.rr	kneel targetting guard [#], [r]eturn
 
16	6	16.xxxx.####.rr	stand (bond like) targetting guard [#], [r]eturn
 
17	6	17.xxxx.####.rr	stand still facing guard [#] cordially, [r]eturn value (ie. valentine, mishkin)
 
	guard ID#0000 is Bond.
 
	values for x:
 
		xx2x: aim, but don't fire
 
		xxx1: used to pinpoint bond
 
		xxx4: used to pinpoint guard ID#
 
		xxx8: used to pinpoint preset
 
18	4	18.##.xxxx	state set for object?
 
	tagged to the statue helicopter:	18.00.0806
 
	possibly unrelated...	18000808
 
19	4	19.##.xxxx	unset state of object?
 
1A	2	1A.rr	throw grenade, return rr	(guard action)
 
1B	5	1B.xxxx.##.rr	drop weapon: model [x], weapon inventory #, return rr
 
1B.xxxx.ww.rr	if bond within x units, drop [w]eapon inventory #, return rr
 
(if grenade, mine, etc dropped, they are active and will explode!)
 
 
 
1C	3	1C.pppp	jog to preset
 
1D	1	stop?
 
1E	3	1E.pppp	walk to preset	
 
1F	3	1F.pppp	run to preset
 
20	2	Make path active 20XX XX = path designator from after each above path pointers
 
21	1	Surrender! guard throws down equipment, hands up, knees shaking!
 
22	1	fade away guard
 
23	2	23.##	?, guard ID#
 
24	4	24.xxxx.rr	x - either preset or path preset (2328), return rr
 
25	1	sound alarm
 
26	1	shut off alarm
 
27	2
 
28	2	28.rr	jog to bond.  [r]eturns when at location
 
29	2	29.rr	walk to bond.  [r]eturns when at location
 
2A	2	2A.rr	run to bond.  [r]eturns when at location
 
2B	2
 
2C	3
 
2D	3
 
2E	3
 
2F	2	2F.rr	if guard stopped moving (arrived at destination) return rr
 
30	3	30.##.rr	if guard ID killed, return rr
 
31	3	31.xx.rr	return value when bond in room with preset
 
32	2	32.rr	if Bond within sight, return rr
 
33	1	Seed Random Byte
 
34	3	34.xx.rr	if random < XX, continue to rr
 
35	3	35.xx.rr	if random > XX, continue to rr
 
36	2
 
37	2	37.rr	if alarm activated, return rr
 
38	2	
 
39	2	39.rr	if guard sees gunfire return rr
 
3A	2	3A.rr	if you shoot another guard, return rr
 
3B	2	3B.rr	if you kill someone in front of guard, return rr
 
3C	2	3C.rr	if Bond in firing range, return rr
 
3D	2	
 
3E	2	3E.rr	if you shot guard, return rr
 
3F	2	3F.rr	if heard bond, return rr
 
40	3
 
41	2	41.rr	?, return rr
 
42	2
 
43	2
 
44	4
 
45	2	45.rr	?, return rr
 
46	2	46.rr	if you fired a bullet, return rr
 
47	3
 
48	3
 
49	3
 
4A	3
 
4B	4	4B.pppp.rr	return if within [p]roximity of bond.  guessing clipping units.
 
4C	4	4C.pppp.rr	return if not within [p]roximity of bond
 
4D	7	4D.gg.xxxx.pppp.rr	if [g]uard (FD) or Bond? (F  within [x] units of [p]reset, [r]eturn value.  
 
4E	7	4E.gg.xxxx.pppp.rr	if [g]uard (FD) or Bond? (F  not within [x] units of [p]reset, [r]eturn value.  
 
4F	5
 
50	5
 
51	4
 
52	6	52.xxxx.####.rr	when within [x] units of preset #, return rr
 
53	6	53.xxxx.####.rr	when not within [x] units of preset #, return rr
 
54	5	54.##.xxxx.rr	when guard ID# is at preset [x], return rr
 
55	4	if step on preset xxxx, return yy
 
56	3	collecting item; 56.oo.##; oo is number of type 16 to test, return##	
 
57	3	57.ii.rr	if [i]tem was depositted, return rr
 
58	4	58.ii.##.rr	if deposited [i]nventory value on type 16#, return rr
 
59	3	59.##.rr	if weapon value = ##, return rr (ie. 590133: if unarmed, return 33)
 
5A	3
 
5B	3	test if object not destroyed; 5B.##.rr; type 16[#] to test, [r]eturn
 
5C	3	test if object activated; 5C.##.rr; type 16[#] to test, [r]eturn
 
5D	3	use gadget on object;	5D.##.rr type16[#]
 
5E	2	5E.xx	type 16#xx activates
 
5F	2	5F.xx	detonate type 16#xx
 
60	2	60.xx	Guard Drops type 16#xx
 
61	2
 
62	2
 
63	2	63.xx	guard gives bond type16#xx item
 
64	3
 
65	4	65.##.xxxx	move object to preset (16-object for plane, then preset)
 
66	2	open door with type 16#xx
 
67	2	close door with type 16#xx
 
68	4	68.##.ss.rr	check [s]tate of door type16#, [r]eturn if true.
 
	states:
 
		01: closed
 
		02: open
 
		04: closing
 
		08: opening
 
69	3
 
6A	3	6A.##.xx	change state of door type16#
 
	values:
 
		80: locked
 
		01: locked
 
		no clue how this works...
 
6B	3
 
6C	4
 
6D	3	6D.##.rr	if objective number complete, return rr
 
6E	3	6E.##.rr	?, return rr
 
6F	3	6F.##.rr	if objective number incomplete, return rr
 
70	3	if difficulty xx, return yy.  1=agent, 2=secret, 4=007
 
71	3	if not difficulty xx, return yy
 
72	4
 
73	4
 
74	4
 
75	4
 
76	3
 
77	3
 
78	3	78.xx.rr	some sort of test (for presets?), return rr
 
79	3	79.xx.rr	if shot guard ## times, return rr
 
7A	3
 
7B	3
 
7C	4	7C.##.xx.rr	if guard ID#'s health above [x], return [r]
 
7D	4	7D.##.xx.rr	if guard ID#'s health below [x], return [r]
 
7E	3	7E.##.rr	? - guard ID#, return rr - cradle (0413)
 
7F	3	7F.xx.rr	if health below xx, return rr
 
80	3	80.xx.rr	if health above xx, return rr
 
81	2
 
82	2
 
83	2
 
84	3
 
85	2
 
86	2
 
87	2	87.xx	don't think it returns...
 
88	2
 
89	3
 
8A	2	8A.rr	?, return rr?
 
8B	3
 
8C	2
 
8D	2	8D.BF - ?, no return.  immediately before BF type in cradle (0401)
 
8E	2	8E.?? ; ? is number of spawned guard.  
 
8F	3	8F.xxxx	sets guard health
 
90	3	90.xxxx	sets guard body armour amount
 
ie:	blue beret = 0050
 
	red beret = 003C
 
	black beret = 0014
 
 
91	2	91.28	?, not a return type; found in generic 0010
 
92	2	92.64	?, not a return type; all three found in order in cradle 0410
 
93	2	93.32	sets animation speed?
 
94	2	94.##	set byte
 
95	2	95.##	unset byte
 
96	3	96.##.rr	if set byte # true, return value?
 
97	3	97.##.tt	guard ID# [t]ype change
 
	types:
 
		01: listen to commands?
 
		04: ? - trev in cradle (040F)
 
		80: scientist
 
98	3
 
99	4
 
9A	5	9A.xxxxxxxx	Set Objective Bits
 
9B	5	9B.xxxxxxxx	Unset Objective Bits
 
9C	6	9C.xxxxxxxx.rr	Check if Objective Value, Return Loop if so
 
9D	5	9D.xxxxxxxx	set Guard bits
 
9E	5	9E.xxxxxxxx	unset guard bits
 
9F	6	9F.xxxxxxxx.rr	if guard bits same, return rr
 
A0	6	A0.##.xxxxxxxx	Set Tags for Guard ID#
 
A1	6	A1.##.xxxxxxxx	UnSet Tags for Guard ID#
 
A2	7	A2.##.xxxxxxxx.rr	if tags for guard ID# xxxxxxxx, return rr
 
	guard tags:
 
		00000001: ?-unset in cradle (041A) 
 
		00000002: sunglasses (where applicable)
 
		00000010: invincible
 
		00000020: ? - guards in dam (040D)
 
		00000040: can shoot guards
 
		00000200: ? - Twhere in cradle (0412)
 
		00000400: ? - fall in cradle (041F)
 
		00000800: standard clipping (allows him to handle ramps and stuff)
 
		00001000: ? - jump part of dam
 
		00002000: ? - jump part of dam
 
		00004000: ? - set when trev falls in cradle (0418)
 
		00008000: ? - set when trev starts attacking you (0418)
 
		00010000: ? - cuba
 
		00020000: ? - cuba 
 
		00080000: ? - trev in cradle (0408)
 
		00100000: scientist
 
		00400000: ? statue guards
 
 
A3	6	A3.##.yyyyyyyy	set state of type 16#xx object yyyyyyyy
 
A4	6	A4.##.yyyyyyyy	unset state of type 16#xx object yyyyyyyy
 
A5	7	A5.##.yyyyyyyy.rr	if state of type 16#xx object yyyyyyyy, return rr
 
	object tags:
 
		00100000: uncollectable
 
		00040000: visible?
 
		00020000: invincible?
 
 
A6	6	A6.##.xxxxxxxx	set flags for door tagged with type 16#
 
A7	6	A7.##.xxxxxxxx	unset flags for door tagged with type 16#
 
A8	7	A8.##.xxxxxxxx.rr	if flags [x] for door tagged with type 16[#] same, return rr
 
	door tags:
 
		10000000: locked
 
		04000000:
 
		00080000: invisible
 
A9	2
 
AA	3
 
AB	3	AB.xxxx	set object to y coordinate of xxxx preset
 
AC	4	AC.##.xxxx	Guard ID#.  moves guards or sets spawn points...  
 
AD	1	debug text or comments follow.  ascii, terminated with 00.  Must contain some text or will fail!
 
AE	1	reset loop counter and enable it	(set 40 bit)
 
AF	1	reset loop counter
 
B0	1	disable loop counter	(unset 40 bit)
 
B1	1	enable loop counter	(set 40 bit)
 
B2	2	B2.rr	if loop counter enabled, return rr	(checks 40 bit)
 
B3	5	B3.xxxxxx.rr	if cycle counter < value, return rr
 
B4	5	B4.xxxxxx.rr	if cycle counter > value, return rr
 
B5	1	Show Timer
 
B6	1	Hide Timer (Silent Countdown)
 
B7	3	Set Timer X seconds (Doesn't show timer yet)
 
B8	1	Stop Timer
 
B9	1	Start Timer
 
BA	3	BA.xx.rr	check if timer enabled(01) or disabled (00), return rr
 
BB	4	Detect if Timer Below Certain Point xxxx, return yy is true
 
BC	4	Detect if Timer Above Certain Point xxxx, return yy is true
 
BD	C	spawn guard	bb.hh.pppp.aaaa.bbbbbbbb.rr [b]ody, [h]ead, into path table(00=use actual preset number for spawn), [p]reset position (23xx for path table), [a]ction, 
 
BE	B	spawn guard...  BE.bb.hh.tt.aaaa.00000000.rr	(unused in bunker1)
 
	[t]ype indicates current guard ID, bonds, etc...
 
	flags:
 
	00000001	sunglasses (when applicable)
 
	00000002	
 
	00000010	scientist?  can kill own?
 
BF	9	weapons	BF.mmmm.WW.hh000000.rr	[m]odel, [w]eapon inventory #, [h]and - 00 normal, 80=right+90=left for doubles, [r]eturn value if loaded okay 
 
C0	8	hats	C0.mmmm.00000000.rr	[m]odel, [r]eturn value if loaded okay
 
C1	5	C1.##.xxxx.rr	guard ID#, preset or action?, return rr
 
C2	3	lower display text (text bank values); C2.xxxx
 
C3	3	upper display text (text bank values); C3.xxxx
 
C4	4	C4.xxxx.yy	sound effect: xxxx some other value yy
 
C5	5	C5.xxxx.yyyy	audible range for preceeding sound effect, just like 2F glass
 
C6	6
 
C7	6	play continuous sound effect: C7.vvvv.ss.????  [v]olume, [s]ound, ????
 
C8	6
 
C9	2	C9.00	shut off sound
 
CA	5
 
CB	2	CB.##	use path #  used on dam truck.
 
CC	5	CC.xxxx.yyyy	set speed for type 27 object; x is speed, y amount of time to reach full speed
 
CD	5	CD.xxxx.yyyy	set speed [x] of aircraft rotor (plane prop, etc.)
 
CE	2	"Detect if Currently in Intro Camera", return if so
 
CF	2	"Detect if Currently in Intro Swirl", return if so
 
D0	4	D0.##.ii.aa	change type16# monitor [a]nimation to aa.  [i]mage slot to be replaced is set here (for 0B multi image monitors)
 
D1	2
 
D2	1	exit level
 
D3	1	Return from Camera scene, Careful Everything is Reset
 
D4	3
 
D5	6	Go to camera position D5XX????..XX = 16-object for camera, unknown ??s, didn't see effect.  Can do at any time.
 
D6	4	D6.yyyy.rr	at elevation y return rr (uses clipping values methinks)
 
D7	2	D7.xx	00-disable text boxes.  01-enable text boxes
 
D8	1	?	cradle falling...
 
D9	5	D9.##.xxxx.rr	guard ID#(or FD for current) moved to preset.  return when true
 
DA	1	fade out for cut-scene
 
DB	1	fade in from black (reset for DA type)
 
DC	2	DC.rr	return when fade is complete
 
DD	1	Remove Guards (they're just gone, no firing, nothing, including Bond image)
 
DE	1	Bring Guards Back
 
DF	2	DF.##	open type 16# door.  used in cutscenes
 
E0	3	E0.##.00	hide weapon? on guard ID - guard ID draws weapon
 
E1	3
 
E2	4
 
E3	2	E3.ww	draw weapon type (1st person)
 
E4	2	E4.ww	draw weapon type (3rd person)
 
E5	3	E5.xxxx	set bond's speed (continues in last used direction)
 
E6	5
 
E7	2
 
E8	2
 
E9	1
 
EA	1	On Key Press, Fade out and Exit Level.
 
EB	2	EB.xx	on Key-Press, return xx
 
EC	1	disable player control
 
ED	1	hide 1st person display (left hand, weapon etc)
 
EE	D	cuba circular camera
 
	EE.xxxx.yyyy.zzzz.uuuu.vvvv.wwww
 
	x: lateral distance away from bond
 
	y: vertical distance from bond
 
	z: rate of spin
 
	u: preset used as focus point for angle
 
	v: offset to y axis, relative to preset
 
	w: inital rotation, relative to preset
 
	(because the camera focuses directly on the preset, v and w offset the camera's focus relative to the preset.  It is as though you moved the preset itself that much.  x and y set the camera's distance from the preset while focusing on the point.)
 
 
EF	1	trigger cuba credit text
 
F0	2	F0.rr	used in cuba...
 
F1	2	F1.rr	if objectives complete, return rr
 
F2	3	F2.##.rr	if guard ID# loaded, return rr
 
F3	2	F3.rr	if guard loaded return rr
 
F4	4	F4.mm.xx.dd	play music	[M]usic or 0 for stage x-theme, x=volume?, [D]uration (FF for infinate)
 
	bunker 1 - F4.003C4B
 
F5	2
 
F6	1	Trigger Explosions Around Bond (like plastique detonate)
 
F7	3	counts scientists who are dead F7.##.rr
 
F8	3	F8.##.rr	?, guard ID#, return rr - cradle (0413)
 
F9	1	?	cradle cutscene 041C
 
FA	1
 
FB	1	darken stage (or does is switch to x-sky?)
 
FC	2
 
FD	not valid, end of table 
 
 
for all types that use guard ID:
 
	F8 is bond
 
	F9... used to indicate bond but unsure what feature...
 
	FD is current guard (one calling routine, if applicable)
 
	FC...  used to indicate guard but unsure feature... _________________ (\_/) Beware
 
(O.o)   ze
 
(> <)      Hoppentruppen! | 
										 
									 
								 | 
							 
							
								|   | 
								
									
								 | 
							 
						 
					 | 
				 
			 
		 | 
		  | 
	 
	
		  | 
		  | 
		  | 
	 
	
		  | 
		
			
				
					
						
							
								zoinkity 007
  
  
  Joined: 24 Nov 2005 Posts: 1740
                      | 
								
									
										
											  Posted: Thu Mar 23, 2006 9:03 am    Post subject: There isn't a rule against Quad posting | 
											       | 
										 
										
											
  | 
										 
										
											I'm silly.  Here's the default guard routines, plus their ID's and a breakdown of how they work.  Most are different actions randomly selected from when bond is detected, such as roll around, run to him, and the ever so lovely walk and fire.  A couple are also dedicated to handling double weapon guards, but otherwise copy single weapon ones.
 
 
By setting the offsets listed at the end of the file you can severly mess with guard activity.  Cool, but dangerous.  (yes, you really can make an infinate loop!)
 
 
Thanks ahead of time to GEMaster for not torturing me over posting all this stuff ;*)  Squee!
 
________________________
 
 
0000:	80037070	(aim at bond)
 
140021000001 	aim at bond, return 01
 
0201 	kill the routine...
 
03 	iterate
 
0101 	start at 0201
 
04 
 
 
 
0001:	8003707C	(do squat)
 
0211 	do nothing at all...
 
03 	iterate
 
0111 	start at 0211
 
04 
 
 
 
0002:	80037084	(general violent guard routine)
 
0201 	catch guard state...
 
03 	iterate
 
30FD11 	if current guard killed return 11
 
2F06 	if guard not moving return 06
 
0101 	start at 0201
 
//
 
0206 	when not moving...
 
3207 	if bond in sight return 07
 
3E0D 	if player shot current guard return 0D
 
3F0E 	if current heard player return 0E
 
4610 	if you fired at current return 10
 
3A0D 	if you shoot another guard in sight of current return 0D
 
3B0D 	if you kill a guard in sight of current, return 0D
 
0B03 	?, return 03
 
33 	seed random value
 
350103 	if rand < 01, return 03
 
060002 	set return: 0002 (this block)
 
05FD0003	current: jal 0003	(animation block)
 
0203 	skip above jumps and test guard state...
 
0101 	start at 0201
 
//
 
0210 	fired at guard...
 
33	seed random value 
 
357F07 	if rand < 7F, return 07
 
060002 	set return: 0002 (this block)
 
05FD000A	current: jal 000A
 
//
 
0207 	bond in sight...
 
060002 	set return: 0002 (this block)
 
05FD0006 	current: jal 0006
 
//
 
020D 	got shot...
 
060002 	set return: 0002 (this block)
 
05FD0008 	current: jal 0008
 
//
 
020E 	heard bond...
 
060002 	set return: 0002 (this block)
 
05FD000B 	current: jal 000B
 
//
 
0211 	guard was killed...
 
05FD0001 	current: jal 0001	(do squat)
 
04 
 
 
 
guard swats flies, wastes time	0003:	800370DC
 
33 	seed random byte
 
353203 	if rand < 32, return 03
 
0A009A000000C11810 	animation: 009A
 
0002 	continue to 0202
 
//
 
0203 	else...
 
356403 	if rand < 64, return 03
 
0A009B000001261810 	animation: 009B
 
0002 	continue to 0202
 
//
 
0203 	else...
 
359603 	if rand < 96, return 03
 
0A009C000000B71810 	animation: 009C
 
0002 	continue to 0202
 
//
 
0203 	else...
 
35C803 	if rand < C8, return 03
 
0A009D0000007B1810 	animation: 009D
 
0002 	continue to 0202
 
//
 
0203 	else...
 
35FA03 	if rand < FA, return 03
 
0A009E000000381810 	animation: 009E
 
0002 	continue to 0202
 
//
 
0203 	else...
 
0A009F000000891810 	animation: 009F
 
0002 	continue to 0202
 
//
 
0202 	return to calling function...
 
07 	return
 
04 
 
 
 
guards talk	0004:	8003713C
 
33 	seed random byte
 
353C03 	if rand < 3C, return 03
 
0A00AC000000450010 	animation: 00AC
 
0002 	continue to 0202
 
//
 
0203 	else...
 
357803 	if rand < 78, return 03
 
0A00AD0000004A0010 	animation: 00AD
 
0002 	continue to 0202
 
//
 
0203	else...
 
35B403 	if rand < B4, return 03
 
0A00AE0000004F0010 	animation: 00AE
 
0002 	continue to 0202
 
//
 
0203 	else...
 
0A00AF000000590010 	animation: 00AF
 
0002 	continue to 0202
 
//
 
0202 	return to calling function...
 
07 	return
 
04 
 
 
 
0005:	8003717C	(Patrol Routine)
 
0201 	test movement...
 
03 	iterate
 
2F06 	if not moving return 06
 
0101 	start at 0201
 
//
 
0206 	when not moving...
 
3207 	if bond in sight return 07
 
3E0D 	if current was shot return 0D
 
4610 	if you fired at guard return 10
 
3A0D 	if you shoot guard in front of current return 0D
 
3B0D 	if you kill a guard in front of current return 0D
 
0101 	start at 0201
 
//
 
0210 	if you shot at guard...
 
33 	seed random byte
 
357F07 	if rand < 7F, return 07
 
060002 	set return: 0002
 
05FD000A 	current: jal 000A
 
//
 
0207 	if bond in sight...
 
060002 	set return: 0002
 
05FD0006 	current: jal 0006
 
//
 
020D 	otherwise...
 
060002 	set return: 0002
 
05FD0008 	current: jal 0008
 
04
 
 
 
0006:	800371B4	(set guard action for 0008)
 
960103	if byte set to 01, return 03
 
33 	seed random value
 
352003 	if rand < 20, return 03
 
0C 	stand still?
 
9401 	set byte
 
07 	return
 
//
 
0203 	else...
 
9401 	set byte
 
1A02	throw grenade, return 02
 
//
 
0203 	
 
33 	seed random value
 
350A03 	if rand < 0A, return 03
 
1302 	roll along ground and fire, return 02
 
0203 	else...
 
33 	seed random value
 
350A03 	if rand < 0A, return 03
 
0F02 	hop sideways, return 02
 
0203 	else...
 
33 	seed random value
 
351903 	if rand < 19, return 03
 
0E02 	step sideways, return 02
 
0203 	else...
 
33 	seed random value
 
353203 	if rand < 32, return 03
 
1002 	run sideways, return 02
 
0203 	else...
 
33 	seed random byte
 
354003 	if rand < 40, return 03
 
1102 	walk while firing, return 02
 
0203 	else...
 
357F03	if rand < 7F, return 03
 
1202 	run while firing
 
0203 	else...
 
33 	seed random byte
 
357F0B	if rand < 7F, return 0B
 
140001000002 	fire at bond
 
020B 	else...
 
150001000002 	kneel and fire at bond
 
0202 	after setting action...
 
07 	return
 
04 
 
 
 
0007:	80037250	(detect bond)
 
0201 	detect bond...
 
03 	iterate
 
3207 	if bond in sight return 07
 
3E0D 	if guard shot return 0D
 
3F0D 	if heard bond, return 0D
 
460D 	if you fired at guard, return 0D
 
3A0D 	if a guard is shot in front of current, return 0D
 
3B0D 	if a guard is killed in front of current, return 0D
 
0101 	start at 0201
 
//
 
0207 	if saw bond...
 
060002 	set return: 0002
 
05FD0006 	current: jal 0006
 
//
 
020D 	otherwise...
 
060002 	set return: 0002
 
05FD0008 	current: jal 0008
 
//
 
020E 	not used...
 
060002 	set return: 0002
 
05FD000B	current: jal 000B
 
04
 
 
 
0008:	8003720C	(run for bond)
 
9401 	set byte
 
2801 	jog to bond, return 01
 
07 	return (if above failed)
 
//
 
0201 	loop until not moving...
 
03 	iterate
 
2F06 	if not moving, return 06
 
3207 	if bond in sight, return 07
 
0101 	start at 0201
 
//
 
0207 	if in sight...
 
05FD0006 	current: jal 0006
 
//
 
0206	if not moving...
 
07 	return
 
04
 
 
 
main scientist control block?	0009:	80037280
 
0201 	loop until not moving...
 
03 	iterate
 
2F06 	if guard not moving return 06
 
0101 	start at 0201
 
//
 
0206 	when stopped...
 
320F 	if bond in sight return 0F
 
7B0010 	?, return 10
 
3F10 	if heard bond return 10
 
3A10 	if shot a guard in front of current, return 10
 
3B10 	if killed a guard in front of current, return 10
 
0101 	start at 0201
 
//
 
0210 	most conditions...
 
79000F	if shot guard once return 0F
 
0D 	look around self
 
//
 
0204 	loop while moving...
 
03 	iterate
 
2F0F 	when not moving return 0F
 
0104 	start at 0204
 
//
 
020F 	when not moving...
 
1C2328 	jog along path?
 
//
 
0203 	loop while moving...
 
03 	iterate
 
2F02 	if not moving return 02
 
0103 	start at 0203
 
//
 
0202 	when not moving...
 
4EFD000A232802 	if current guard not within 10 units of path?, return 02
 
24232805 	something about path, return 05
 
0002 	continue to 0202
 
//
 
0205 	path thing...
 
03 	iterate
 
2F02 	when not moving return 02
 
0105 	start at 0205
 
//
 
0202 	general guard routine...
 
060002 	set return: 0002
 
05FD0008 	current: jal 0008
 
04
 
 
 
000A:	800372D0
 
0D 	look around self
 
0201 	loop while guard moving...
 
03 	iterate
 
2F02 	if guard not moving return 02
 
0101 	start at 0201
 
//
 
0202 	then...
 
05FD0008 	current: jal 0008
 
04
 
 
 
000B:	80037224
 
9401 	set byte
 
410E 	?, return 0E
 
05FD0008 	current: jal 0008
 
//
 
020E 	if above true...
 
31F90E 	if in room with bond's preset?, return 0E
 
05FD0002 	current: jal 0002
 
//
 
020E 	when in room
 
C1FD000C03	current guard does something preset or action based, return 03
 
05FD0008 	current: jal 0008
 
//
 
0203 	if above completed...
 
05FD0002 	current: jal 0002
 
04
 
 
 
000C:	80037248
 
060002 	set return: 0002
 
05FD0008 	current: jal 0008
 
04 
 
 
 
000D:	800372E0
 
0228 
 
281B 	jog to bond, return 1B on arrival
 
AD6E6F20676F210A00 	debug text: no go!{/n}
 
//
 
021B 	when there...
 
03 	iterate
 
3C06 	if bond in firing range return 06
 
2F02 	if not moving return 02
 
011B 	start at 021B
 
//
 
0201 	
 
03 	iterate
 
78062D	?, return 2D
 
9F000000102F	if guard bit set return 2F
 
022D	78 was true...
 
2F06 	if bond not moving, return 06
 
4C00C803 	if bond not within C8 units return 03
 
0101 	start at 0201
 
//
 
0203 	bond not here yet...
 
0128 	start at 0228
 
//
 
0206 	when in range check again...
 
3C03 	if bond in firing range return 03
 
0002 	continue to 0202
 
//
 
0224 	
 
03 	iterate
 
4B003203 	if bond within 32 units return 03
 
2F03 	if not moving return 03
 
0128 	start at 0228
 
//
 
0203 	bond is here...
 
9F000000102F 	if guard bit set, return 2F
 
022B 	return for bit reset...
 
33 	seed random byte
 
350A03 	if rand < 0A, return 03
 
1A02	throw grenade
 
0203 	else...
 
353203 	if rand < 32, return 03
 
0E02 	step sideways, return 02
 
0203 	else...
 
353C03 	if rand < 3C, return 03
 
1302 	roll along ground and fire, return 02
 
0203 	else...
 
355003 	if rand < 50, return 03
 
1302 	roll along ground and fire, return 02
 
0203 	else...
 
356403 	if rand < 64, return 03
 
1102 	walk while firing, return 02
 
0203 	else...
 
359603 	if rand < 96, return 03
 
1202 	run while firing, return 02
 
0203 	else...
 
35C803 	if rand < C8, return 03
 
140001000002 	fire at bond, return 02
 
0203 	else...
 
150001000002 	kneel and fire at bond, return 02
 
0202 	after setting action...
 
3C03 	if bond in firing range return 03
 
001B 	continue to 021B
 
021B 	which is RIGHT HERE...
 
03 	iterate
 
33 	seed random byte
 
35A003 	if rand < A0, return 03
 
001C 	continue to 021C
 
//
 
0203 	else...
 
03 	iterate
 
0101 	start at 0201
 
//
 
021C 	return when byte set...
 
AE	reset cycle counter 
 
281D 	jog to bond, return 1D on arrival
 
//
 
021D 	loop while moving...
 
03	iterate
 
2F03 	if not moving return 03
 
B400003C03 	wait, then return 03
 
011D 	start at 021D
 
//
 
0203 	after that...
 
08 	walk? shuffle feet?
 
AD776169740A00 	debug text: wait{/n}
 
9504 	unset byte
 
33 	seed random value
 
35A003 	if rand < A0, return 03
 
9404 	set byte
 
0203 	rand skipped above...
 
AE 	reset cycle counter
 
021E 	restart point for B3 command...
 
03 	iterate
 
3C03 	if bond in range, return 03
 
4603 	if shot at return 03
 
03 	iterate
 
B300025804 	every cycle until 258 return 04
 
960405 	if byte set to 04, return 05
 
0128  	start at 0228
 
//
 
0205 	if byte set...
 
011C  	start at 021C
 
//
 
0204 	until 258 cycles...
 
011E  	start at 021E
 
//
 
0203 	lets kill bond...
 
0101 	start at 0201
 
//
 
022F 	guard bit set...
 
780603	?, return 03
 
9E00000010 	unset guard bit
 
0203 	else...
 
012B 	start at 022B
 
04
 
 
 
000E:	800373D0
 
AE 	reset cycle clock
 
021B 	loop to wait...
 
03 	iterate
 
B400003C03 	wait, then return 03
 
011B 	start at 021B
 
//
 
0203 	after waiting...
 
07 	return
 
04
 
 
 
000F:	800373E0
 
D2 	end stage
 
05FD0001 	current: jal 0001
 
04
 
 
 
0010:	800373E8	(draw a dusty when unarmed)
 
9128 	?, not a return type
 
9332 	?, not a return type
 
0203 
 
170001000003 	stand and face bond, return 03
 
0203 	then...
 
AE 	reset cycle counter
 
//
 
021B 	loop to wait...
 
03 	iterate
 
B400001403 	wait, then return 03
 
011B 	start at 021B
 
//
 
0203 	after waiting...
 
0A0042000000140410 	animation: 0042
 
//
 
021C 	loop while moving...
 
03 	iterate
 
2F03 	if not moving, return 03
 
011C 	start at 021C
 
//
 
0203 	when not moving...
 
BF00CD060000000003 	weapon: dusty, model: dusty; return 03
 
0203 	if loaded...
 
140021000003 	aim at bond, return 03
 
0203 	then...
 
160001000003 	stand and fire at bond dramatically, return 03
 
0203 	then...
 
//
 
021E 	loop while moving...
 
03 	iterate
 
2F03 	if not moving, return 03
 
011E 	start at 021E
 
//
 
0203 	when not moving...
 
060002 	set return: 0002
 
05FD0008 	current: jal 0008
 
04
 
 
 
0011:	80037444
 
23FD 	something about current guard...
 
05FD0001 	current: jal 0001
 
04
 
 
80037070 00000000 
 
8003707C 00000001 
 
80037084 00000002 
 
800370DC 00000003 
 
8003713C 00000004 
 
8003717C 00000005 
 
800371B4 00000006 
 
80037250 00000007 
 
8003720C 00000008 
 
80037280 00000009 
 
800372D0 0000000A 
 
80037224 0000000B 
 
80037248 0000000C 
 
800372E0 0000000D 
 
800373D0 0000000E 
 
800373E0 0000000F 
 
800373E8 00000010 
 
80037444 00000011 
 
00000000 00000000 | 
										 
									 
								 | 
							 
							
								|   | 
								
									
								 | 
							 
						 
					 | 
				 
			 
		 | 
		  | 
	 
	
		  | 
		  | 
		  | 
	 
	
		  | 
		
			
				
					
						
							
								Wreck Administrator
  
  
  Joined: 14 Dec 2005 Posts: 7266 Location: Ontario, Canada                     | 
								
									
										
											  Posted: Thu Mar 23, 2006 8:05 pm    Post subject:  | 
											       | 
										 
										
											
  | 
										 
										
											WOW.   
 
This is going to take me atleast two or three days to digest.  I knew you had a great understanding of this game, but God damn.  Although many of us will have little to no idea what to do with this, we thank you for taking the time to share it.    | 
										 
									 
								 | 
							 
							
								|   | 
								
									
								 | 
							 
						 
					 | 
				 
			 
		 | 
		  | 
	 
	
		  | 
		  | 
		  | 
	 
	
		  | 
		
			
				
					
						
							
								Wreck Administrator
  
  
  Joined: 14 Dec 2005 Posts: 7266 Location: Ontario, Canada                     | 
								
									
										
											  Posted: Fri Mar 24, 2006 3:18 am    Post subject:  | 
											       | 
										 
										
											
  | 
										 
										
											I've been going over as much as I can and have already learned a lot.
 
I was even able to find something new about the clipping data as I was looking it over.
 
 
tile header format: 
 
pp pp pp rr !- -- #- -- 
 
[-] these values have no identifiable use. (the ones between the ! and #)
 
 
They actually control the highlighting colouration of objects and characters in the area.  It's not as noticable in most areas, except for on certain doorways and the helipad in Bunker ii.  Remember how it lights everything up in a yellowish glow?  Certain doors also use this data to look different.  Take the doors in the ventshaft for instance.  They use the same image, but their colour is modified by the room pointer.
 
 
Basic RGB system...
 
First half-byte is the amount of red (0-F).
 
Second half-byte is the amount of green (0-F).
 
Third half-byte is the amount of blue (0-F).
 
 
It was pretty neat when I saw a purple Boris.  So I kept making changes until he turned red.  Then I knew what it had to be.  I ended up watching four purple guards blow themselves up with a grenade, then land feet away from the computer desk in their original colour.   
  Last edited by Wreck on Fri Mar 24, 2006 4:01 pm; edited 1 time in total | 
										 
									 
								 | 
							 
							
								|   | 
								
									
								 | 
							 
						 
					 | 
				 
			 
		 | 
		  | 
	 
	
		  | 
		  | 
		  | 
	 
	
		  | 
		
			
				
					
						
							
								zerojett 00 Agent
  
  
  Joined: 01 Feb 2006 Posts: 434 Location: Saskatchewan, Canada.                     | 
								
									
										
											  Posted: Fri Mar 24, 2006 12:19 pm    Post subject:  | 
											       | 
										 
										
											
  | 
										 
										
											wow...
 
so...
 
this is what ive been waiting for... _________________ zerojett lives on! | 
										 
									 
								 | 
							 
							
								|   | 
								
									
								 | 
							 
						 
					 | 
				 
			 
		 | 
		  | 
	 
	
		  | 
		  | 
		  | 
	 
	
		  | 
		
			
				
					
						
							
								zoinkity 007
  
  
  Joined: 24 Nov 2005 Posts: 1740
                      | 
								
									
										
											  Posted: Thu Mar 30, 2006 9:45 am    Post subject:  | 
											       | 
										 
										
											
  | 
										 
										
											Hah!  Thanks!  Never would have guess that's an RGB modifier. _________________ (\_/) Beware
 
(O.o)   ze
 
(> <)      Hoppentruppen! | 
										 
									 
								 | 
							 
							
								|   | 
								
									
								 | 
							 
						 
					 | 
				 
			 
		 | 
		  | 
	 
	
		  | 
		  | 
		  | 
	 
	
		  | 
		
			
				
					
						
							
								Wreck Administrator
  
  
  Joined: 14 Dec 2005 Posts: 7266 Location: Ontario, Canada                     | 
								
									
										
											  Posted: Thu Mar 30, 2006 10:35 am    Post subject:  | 
											       | 
										 
										
											
  | 
										 
										
											I didn't think it was, either.
 
It's a good thing I was standing near the area when I made the modifications to memory, otherwise I'd never have noticed the change.  Which is almost exactly what happened when I hacked the Blood Mode Code.  If I hadn't shot the guy and noticed red splashing, we may still only think enemies sparked when hit with bullets. | 
										 
									 
								 | 
							 
							
								|   | 
								
									
								 | 
							 
						 
					 | 
				 
			 
		 | 
		  | 
	 
	
		  | 
		  | 
		  | 
	 
	
		  | 
		
			
				
					
						
							
								zoinkity 007
  
  
  Joined: 24 Nov 2005 Posts: 1740
                      | 
								
									
										
											  Posted: Fri Mar 31, 2006 8:24 am    Post subject:  | 
											       | 
										 
										
											
  | 
										 
										
											Did you know, every single image has a defined impact type?  It's crazy, but if you jump to the image offset table the value before the offset tells you what impact is assigned to it.  For instance:
 
(example is made up, BTW)
 
01 000350
 
whatever image this is is 350 bytes large and uses impact #1.
 
 
That's what those crazy tables were used for that you found.  I'll upload the docnext time when I have the disk with me. _________________ (\_/) Beware
 
(O.o)   ze
 
(> <)      Hoppentruppen! | 
										 
									 
								 | 
							 
							
								|   | 
								
									
								 | 
							 
						 
					 | 
				 
			 
		 | 
		  | 
	 
	
		  | 
		  | 
		  | 
	 
	
		  | 
		
			
				
					
						
							
								PaD Agent
  
 
  Joined: 20 Dec 2005 Posts: 72 Location: Datteln, Germany                     | 
								
									
										
											  Posted: Mon Apr 17, 2006 11:36 am    Post subject:  | 
											       | 
										 
										
											
  | 
										 
										
											wow... I finally understood it all in the first post, and I'll do some experiments soon.
 
respect on this!
 
 
something I was wondering:
 
 	  | zoinkity wrote: | 	 		  01 doors
 
-see seperate list | 	  
 
where?
 
 
 
EDIT:
 
instead of just "00 08" for a weapon type, I often find "04 08", does this mean anything? | 
										 
									 
								 | 
							 
							
								|   | 
								
									
								 | 
							 
						 
					 | 
				 
			 
		 | 
		  | 
	 
	
		  | 
		  | 
		  | 
	 
	
		  | 
		
			
				
					
						
							
								Wreck Administrator
  
  
  Joined: 14 Dec 2005 Posts: 7266 Location: Ontario, Canada                     | 
								
									
										
											  Posted: Mon Apr 17, 2006 12:21 pm    Post subject:  | 
											       | 
										 
										
											
  | 
										 
										
											| The value prior to the object type often represents the current state of the object.  If you shoot it, you'll leave a bullet hole.  The value keeps track of how many holes it has in it.  Turning it back to "00" will wipe away the mess.  Sort of like Mr. Clean, only stronger and less expensive.  It's best to use an 8-bit code to modify the object type.  If you set the preceeding value to something, odds are that no bullet holes will be displayed after taking damage.  The "04" you've mentioned may be another indicator to the object type that it is being held in someone's hand.  Either way, the type is the only important part, the previous value will set itself once the stage has loaded. | 
										 
									 
								 | 
							 
							
								|   | 
								
									
								 | 
							 
						 
					 | 
				 
			 
		 | 
		  | 
	 
	
		  | 
		  | 
		  | 
	 
	
		  | 
		
			
				
					
						
							
								Erevan Secret Agent
  
  
  Joined: 04 Feb 2006 Posts: 336 Location: Saguenay, Canada                     | 
								
									
										
											  Posted: Tue Apr 18, 2006 9:02 am    Post subject:  | 
											       | 
										 
										
											
  | 
										 
										
											| Zoinkity, how did you found out em?  And what kinda searches you've done with the Generator Code? | 
										 
									 
								 | 
							 
							
								|   | 
								
									
								 | 
							 
						 
					 | 
				 
			 
		 | 
		  | 
	 
	
		  | 
		  | 
		  | 
	 
	
		  | 
		
			
				
					
						
							
								PaD Agent
  
 
  Joined: 20 Dec 2005 Posts: 72 Location: Datteln, Germany                     | 
								
									
										
											  Posted: Tue Apr 18, 2006 10:39 am    Post subject:  | 
											       | 
										 
										
											
  | 
										 
										
											you don't do this using that code generator or search functions... at least I really doubt it.
 
 
you take a hex dump (err... yea), check for repetitions of specific formats (like the header, 0100 0003) and try to determine what each bit does (trial and error).
 
 
@ Wreck:
 
OK, that explains why I didn't get any bullet holes on it...
 
where can I find the door data? (type 01)
 
might all be useful to know  
 
I'm glad I'm finally finding into this... so i need all possible information   | 
										 
									 
								 | 
							 
							
								|   | 
								
									
								 | 
							 
						 
					 | 
				 
			 
		 | 
		  | 
	 
	
		  | 
		  | 
		  | 
	 
	
		  | 
		
			
		 | 
		  | 
	 
		  | 
		  | 
		  | 
	 
 
			
			
			  
				 
				    
				   | 
				
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
  | 
			   
			 
					 | 
				 
			 
    	 | 
		  |