Events:
	0x408: SimConsoleEvent
	0x425: SimPathEvent

	0x44b: PlayerAddEvent
	0x44c: PlayerRemoveEvent
	0x44d: DeltaScoreEvent
	0x44f: TeamAddEvent
	0x450: MissionResetEvent
	0x452: PlayerTeamChangeEvent
	0x453: PlayerSayEvent
	0x455: PlayerCommandEvent
	0x456: PlayerSelectCmdrEvent
	0x458: DataBlockEvent
	0x459: TeamObjectiveEvent
	0x45c: LocSoundEvent
	0x45d: TargetNameEvent
	0x45f: VoiceEvent
	0x460: SoundEvent
	0x461: PingPLEvent
	0x462: PlayerSkinEvent
	
	
	
	
	
TeamAddEvent:
	_read( dummy1, 4 )
	_read( team_id, 4 )
	readString( team_name )
	readString(	skin )

PlayerAddEvent:
	_read( player_id, 4 )
	event[20] = readFlag
	readString( player_name )
	readString( player_skin )
	readString( player_voice )
	event[c8] = readInt( 1 )
	_read( event[8c], 4 )
	if ( readFlag ) {
		playerTeam = readInt( 3 )
	} else {
		playerTeam = -1
	}

SimConsoleEvent:
	param_count = readInt( 5 )
	readString( command )
	for ( i = 0, i < param_count, i++ )
		readString( param[ i ] )

DataBlockEvent:
	datablock_type = readInt( 6 )
	datablock_maxindex = readInt( 8 )
	datablock_treeindex = readInt( 8 )

	if ( datablock_treeindex != 0xff )
		read DataBlockTable[ datablock_type ]


	SoundProfileData(0):
		dummy_i = readInt( 6 )
		dummy_f = readFloat( 10 )

		if ( readFlag )
			dummy_f = readFloat( 10 )
		if ( readFlag )
			dummy_f = readFloat( 10 )
		if ( readFlag )
			readNormalVector( 10, dummy_v )		
		if ( readFlag ) 
			_read( dummy, 4 )
		if ( readFlag ) 
			_read( dummy, 4 )
		if ( readFlag ) 
			_read( dummy, 4 )

	SoundData(1):
		readString( name )
		dummy_f = readFloat( 6 )
		dummy_i = readInt( 8 )

	DamageSkinData(2):
		for ( i = 0, i < 10, i++ )
			readString( damage_skin[ i ] )

	ArmorData(3):
		read StaticData
		
		readString( jet_flame )

		for ( i = 0, i < 51, i++ )
			readString( anim_node )
			if ( readFlag )
				readInt( 8 )
			readFlag
			readInt( 4 )
			readInt( 4 )
		
		readBits( dummy, 807 ) // burn data

	ItemData(5):
		read StaticData

		readBits( dummy, 224 ) // burn data
		readString( )
		readFlag
		readFlag
		readFlag
		readString( )
		readBits( dummy, 192 ) // burn data


	ItemImageData(6):
		read GameBaseData
	
		readString( item )
		readBits( dummy, 849 ) // burn data
		
	MoveableData(7):
		read StaticShapeData

		readBits( dummy, 67 ) // burn data

	SensorData(8):
		read StaticShapeData
		
		readBits( dummy, 66 ) // burn data

	VehicleData(9):
		read StaticShapeData

		readBits( dummy, 632 ) // burn data

	FlierData(10):
		read VehicleData

		readBits( dummy, 224 ) // burn data

	BulletData(14):
		read ProjectileData
		readBits( dummy, 96 ) // burn data

	GrenadeData(15):
		read ProjectileData

		_read( dummy, 4 )
		readString( trail )

	RocketData(16):
		read ProjectileData

		_read( dummy, 4 )
		readString( trail )
		_read( dummy, 4 )
		_read( dummy, 4 )

	LaserData(17):
		read ProjectileData
		
		readString( pulse_bitmap )
		readString( hit_model )
		readFlag

	TurretData(19):
		read SensorData
		readBits( dummy, 225 )

	ExplosionData(20):
		read GameBaseData
		read ShapeBaseData
		
		readBits( dummy, 66 )
		if ( readFlag )
			readBits( dummy, 480 )
		readFlag

	MarkerData(21):
		read GameBaseData
		readString( icon )

	DebrisData(22):
		read GameBaseData

		_read( dummy, 4 )
		readString( )
		readBits( dummy, 707 )

	MineData(23):
		read ItemData

	TargetLaserData(24):
		read LaserData

	SeekingMissileData(25):
		read ProjectileData
		readBits( dummy, 96 )


	Triggerdata(26):
		read GameBaseData

	LightningData(28):
		read ProjectileData
		readBits( dummy, 192 )
		readString( bmp )

	RepairEffectsData(29):
		read LightningData

	IrcChannelData(30):
		read GameBaseData

	ProjectileData(13):
		read GameBaseData
		read ShapeBaseData

		readBits( dummy, 546 ) // burn data

	StaticShapeData(4):
		read StaticData
		
		readInt( 8 )
		readFlag
		readFlag


	StaticData:
		read GameBaseData
		read ShapeBaseData

		readString( shield_name )
		readBits( dummy, 96 ) // burn data

		for ( i = 0, i < 16, i++ )
			if ( readFlag ) 
				readString( action )
				readInt( 8 )
		
		readFlag


	ShapeBaseData:
		readString( shape )
		if ( shape[0] == 0xfe || shape[0] == 0xff )
			_read( dummy_i, 4 )

	GameBaseData:
		readSignedInt( 8 )
		readString( mapIcon )
		readString( className )
		
TargetNameEvent:
	readInt( 7 )
	readString( target_name )

DeltaScoreEvent:
	if ( readFlag )
		team = readInt( 4 )
	else
		player = readInt( 7 ) + 0x800
	score = readInt( 32 )
	readString( status_line )

PlayerSayEvent:
	player_id = readInt( 12 )
	msg_type = readInt( 5 )
	msg = readString( )

PlayerRemoveEvent:
	player_id = readInt( 7 ) + 0x800

PlayerTeamChangeEvent:
	player_id = readInt( 7 ) + 0x800
	new_team = readInt( 4 )

PingPLEvent:
	items = readInt( 7 )
	for ( i = 0, i < items, i++ )
		player_id = readInt( 7 ) + 0x800
		ping = readInt( 8 )*4
		pl = readFloat( 6 )
	
VoiceEvent:
	player_id = readInt( 7 ) + 0x800
	readString( wav )

LocSoundEvent:
	sound_id = readInt( 8 )
	if ( readFlag )
		readNormalVector( 8 )
		readFloat( 9 )

PlayerCommandEvent:
	player_id = readInt( 10 ) + 0x800
	type = readInt( 2 )

	if ( readFlag )
		if ( readFlag )
			giver_id = readInt( 10 )
			readInt( 6 )

			if ( readFlag )
				readInt( 8 )

			readInt( 10 )
			readInt( 10 )

	if ( readFlag )
		if ( readFlag )
			readString( msg )

SimPathEvent:
	read SimEvent

	_read( dummy, 4 )
	if ( readFlag )
		readFlag
		_read( count, 4 )

		for ( i = 0, i < count, i++ )
			_read( dummy, 30 )

SimEvent:
	if ( readFlag )
		readInt( 32 )
	else if ( readFlag )
		readInt( 10 )
	else
		readInt( 32 )

SoundEvent:
	readInt( 10 )
	readInt( 2 )
	readInt( 8 )

MissionResetEvent:

PlayerSkinEvent:
	player_id = readInt( 7 ) + 0x800
	readString( new_skin )

TeamObjectiveEvent:
	_read( line, 4 )
	readString( )