OBD:ENVP: Difference between revisions

m
oops, we should be representing BSL commands this way
(design)
m (oops, we should be representing BSL commands this way)
 
(8 intermediate revisions by 5 users not shown)
Line 2: Line 2:




[[image:envp_a.gif]]
[[Image:envp_a.gif]]




Line 9: Line 9:
{{OBDtr| 0x00 | res_id  |FF0000| 01 9B 02 00 | 667        | 00667-.ENVP }}
{{OBDtr| 0x00 | res_id  |FF0000| 01 9B 02 00 | 667        | 00667-.ENVP }}
{{OBDtr| 0x04 | lev_id  |FFFF00| 01 00 00 06 | 3          | level 3 }}
{{OBDtr| 0x04 | lev_id  |FFFF00| 01 00 00 06 | 3          | level 3 }}
{{OBDtr| 0x08 | char[22] |00FF00| AD DE      | dead      | unused }}
{{OBDtr| 0x08 | char[22] |00FF00| AD DE      | dead      | padding }}
{{OBDtr| 0x1E | int16    |00FFFF| 42 00      | 66        | array size }}
{{OBDtr| 0x1E | uint16  |00FFFF| 42 00      | 66        | array size }}
{{OBDtrBK}}
{{OBDtrBK}}
{{OBDtr2|0x00 | char[64] |FFC8C8| locklight                | particle type name (reference to 06079-3RAPlocklight.[[OBD:BINA/PAR3|BINA]] of level 0); global lookup name }}
{{OBDtr2|0x00 | char[64] |FFC8C8| locklight                | particle class name (reference to 06079-3RAPlocklight.[[OBD:BINA/PAR3|BINA]] in level 0) }}
{{OBDtr2|0x40 | char[48] |FFFFC8| lock1_locklight01        | particle name; local lookup name (visible from scripts etc) }}
{{OBDtr2|0x40 | char[48] |FFFFC8| lock1_locklight01        | particle tag name; lookup name for use in scripts via the [[particle]] command }}
{{OBDtr| 0x70 | float    |C8FFC8| 00 00 80 BF | -1.000000 | transformation matrix, xx term }}
 
{{OBDtr| 0x74 | float    |C8FFC8| 52 D2 43 B3 |-0.000000...| transformation matrix, xy term }}
|- ALIGN=CENTER VALIGN=TOP
{{OBDtr| 0x78 | float    |C8FFC8| 2E B4 61 B7 | -0.000013  | transformation matrix, xz term }}
|0x70||matrix||
{{OBDtr| 0x7C | float    |C8FFFF| 2F B4 61 37 | 0.000013   | transformation matrix, yx term }}
{|border=1 cellspacing=0 style="white-space:nowrap"
{{OBDtr| 0x80 | float    |C8FFFF| FD B7 AA B7 | -0.000020  | transformation matrix, yy term }}
|-BGCOLOR="#C8FFC8"
{{OBDtr| 0x84 | float    |C8FFFF| 00 00 80 BF | -1.000000  | transformation matrix, yz term }}
|00 00 80 BF||52 D2 43 B3||2E B4 61 B7
{{OBDtr| 0x88 | float    |FFC8FF| 4A A5 42 33 | 0.000000...| transformation matrix, zx term }}
|-BGCOLOR="#C8FFFF"
{{OBDtr| 0x8C | float    |FFC8FF| 00 00 80 BF | -1.000000  | transformation matrix, zy term }}
|2F B4 61 37||FD B7 AA B7||00 00 80 BF
{{OBDtr| 0x90 | float    |FFC8FF| FD B7 AA 37 | 0.000020  | transformation matrix, zz term }}
|-BGCOLOR="#FFC8FF"
{{OBDtr| 0x94 | float    |FFC800| BA E1 20 44 | 643.526978 | x-position of the particle }}
|4A A5 42 33||00 00 80 BF||FD B7 AA 37
{{OBDtr| 0x98 | float    |FFC800| C9 C4 50 41 | 13.048043  | y-position (height) of the particle }}
|-BGCOLOR="#FFC800"
{{OBDtr| 0x9C | float    |FFC800| 05 EB 89 C3 |-275.836090 | z-position of the particle }}
|BA E1 20 44||C9 C4 50 41||05 EB 89 C3
{{OBDtr| 0xA0 | int32    |C800C8| 00 00 80 3F | 1.000000  | unknown; always the same }}
|}
{{OBDtr| 0xA4 | int32    |C87C64| 00 00 80 3F | 1.000000  | unknown; always the same }}
|
{{OBDtr| 0xA8 | int32(10)|B0C3D4| 00 00 00 00 | 0          | unknown; always zero }}
{|border=1 cellspacing=0 style="white-space:nowrap"
|-
|1.000000||-0.000000||-0.000013
|-
|0.000013||-0.000020||-1.000000
|-
|0.000000||-1.000000||0.000020
|-
|643.526978||13.048043||-275.836090
|}
|ALIGN=LEFT|transform matrix for the particle (in world space)
{{OBDtr| 0xA0 | float    |C800C8| 00 00 80 3F | 1.000000  | decal x scale }}
{{OBDtr| 0xA4 | float    |C87C64| 00 00 80 3F | 1.000000   | decal y scale }}
{{OBDtr| 0xA8 | uint16  |B0C4D5| 00 00      | 0         | runtime: flags }}
{{OBDtr| 0xAA | uint16  |B0C4D5| 00 00       | 0          | runtime: owner type }}
{{OBDtr| 0xAC | uint32  |B0C4D5| 00 00 00 00 | 0         | runtime: pointer to owner particle }}
{{OBDtr| 0xB0 | uint32  |B0C4D5| 00 00 00 00 | 0          | runtime: pointer to dynamic matrix }}
{{OBDtr| 0xB4 | uint32  |B0C4D5| 00 00 00 00 | 0         | runtime: pointer to particle class }}
{{OBDtr| 0xB8 | uint32  |B0C4D5| 00 00 00 00 | 0          | runtime: pointer to spawned particle }}
{{OBDtr| 0xBC | uint32  |B0C4D5| 00 00 00 00 | 0          | runtime: pointer to spawned particle header }}
{{OBDtr| 0xC0 | uint32  |B0C4D5| 00 00 00 00 | 0          | runtime: pointer to previous particle in global spawned particle list }}
{{OBDtr| 0xC4 | uint32  |B0C4D5| 00 00 00 00 | 0          | runtime: pointer to next particle in global spawned particle list }}
{{OBDtr| 0xC8 | uint32  |B0C4D5| 00 00 00 00 | 0          | runtime: pointer to position in hash list (hash table of all spawned particles with tag names) }}
{{OBDtr| 0xCC | uint32  |B0C4D5| 00 00 00 00 | 0          | runtime: pointer to position in tag list (linked list of all spawned particles with the same tag name) }}
|}
|}




;Enviroment particles
;Environment particles
:Locklights, lights, fire, smoke, steam, "electricity" etc...
:Door lock lights, lights, fire, smoke, steam, "electricity", etc. Loose particles are normally added to the [[OBD:BINA/OBJC/PART|level particle collection]]. ENVP is used by the level importer tool to store particles attached to [[OBD:OBOA|objects]] or [[OBD:BINA/OBJC/FURN|furniture]].


;Transformation matrix
;Transformation matrix
:That's what defines orientation, stretching etc.
:Used to orient and stretch the particles (decals, lock lights, etc).
:It's used to build a sub system of coordinates. This is used for the facing of the particle.
:See e.g. [[OBD:CRSA|CRSA]] for a detailed explanation.
:See [[OBD:CRSA|CRSA]] for a detailed explanation.




{{OBD_File_Footer | type=ENVP | prev=DPge | next=FILM | name=Env Particle Array | family=Level}}
{{OBD_File_Footer | type=ENVP | prev=DPge | next=FILM | name=Env Particle Array | family=Level}}
{{OBD}}