DEM (file format): Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
| Devicenull (talk | contribs) No edit summary | Devicenull (talk | contribs)  No edit summary | ||
| Line 53: | Line 53: | ||
| | dem_lastcommand || dem_stop | | dem_lastcommand || dem_stop | ||
| |} | |} | ||
| Depending on the command that was recieved, a different action needs to be taken. | |||
| ====dem_stop, dem_lastcommand==== | |||
| This is a signal that the demo is over, and there is no more data to be parsed. | |||
| ====dem_consolecmd, dem_datatables, dem_usercmd==== | |||
| Read a standard data packet, deal with it as necessary. | |||
| ====Everything else, including invalid commands==== | |||
| Ignore them. | |||
| After these commands, there are three more sections, CmdInfo, SeqInfo, and RawData. | |||
Revision as of 01:16, 24 January 2007
Note that it is not possible to edit what happens in a Source demo, it basically stores the packets right off the wire, and we don't know the packet format.
For the purpose of this, I will be referring to each collection of events as a frame. This may or may not add up to the number of frames given by the header.
Demo Header
| Type | Field | Value | 
|---|---|---|
| String | Header | 7+NULL characters, should be "HL2DEMO" | 
| Int | Demo Protocol | Demo protocol version, should be '3' | 
| Int | Network Protocol | Network protocl version number | 
| String | Server name | 260 characters long | 
| String | Client name | 260 characters long | 
| String | Map name | 260 characters long | 
| String | Game directory | 260 characters long | 
| Float | Playback time | The length of the demo, in seconds | 
| Int | Ticks | The number of ticks in the demo | 
| Int | Frames | The number of frames in the demo | 
| Int | Sign on length | ? | 
Frame
Each frame begins with 0 or more of these commands: These are described in hl2sdk\utils\demoinfo\demoformat.h
| Type | Value | 
|---|---|
| dem_signon | 1 | 
| dem_packet | 2 | 
| dem_synctick | 3 | 
| dem_consolecmd | 4 | 
| dem_usercmd | 5 | 
| dem_datatables | 6 | 
| dem_stop | 7 | 
| dem_lastcommand | dem_stop | 
Depending on the command that was recieved, a different action needs to be taken.
dem_stop, dem_lastcommand
This is a signal that the demo is over, and there is no more data to be parsed.
dem_consolecmd, dem_datatables, dem_usercmd
Read a standard data packet, deal with it as necessary.
Everything else, including invalid commands
Ignore them.
After these commands, there are three more sections, CmdInfo, SeqInfo, and RawData.