OBD:AGQG: Difference between revisions
No edit summary |
No edit summary |
||
Line 41: | Line 41: | ||
:0x00 00 '''08''' 00 - vertical collision: slope < 70° | :0x00 00 '''08''' 00 - vertical collision: slope < 70° | ||
:0x00 00 '''10''' 00 - horizontal collision: slope > 70° | :0x00 00 '''10''' 00 - horizontal collision: slope > 70° | ||
:0x00 00 '''40''' 00 - ignore | :0x00 00 '''40''' 00 - grid ignore | ||
:0x00 00 '''80''' 00 - no decal | :0x00 00 '''80''' 00 - no decal | ||
:0x00 00 00 '''01''' - furniture | :0x00 00 00 '''01''' - furniture | ||
Line 71: | Line 71: | ||
:*3 - Project quad on YZ plane. | :*3 - Project quad on YZ plane. | ||
:The projection plane is used to determine if a point is in a quad (this point is usually the result of an intersection between a ray and the quad plane). | :The projection plane is used to determine if a point is in a quad (this point is usually the result of an intersection between a ray and the quad plane). | ||
;Grid ignore | |||
Appears to be unused. It's likely purpose is to mark quads that don't count as obstacles in the pathfinding grid. | |||
;Danger | |||
Appears to be unused. It's likely purpose is to create danger areas in the pathfinding grids. Usually there's a trigger volume nearby that hurts/kills the character. This quads are always invisible. | |||
;Invisible | |||
Invisible quads have a couple of different uses: | |||
:* block player access to some parts of the environment | |||
:* stairs ramp | |||
:* collision geometry (used by some "complex" furniture) | |||
:* danger quads (see above) | |||
:* some other apparently useless quads | |||
;Runtime flags | ;Runtime flags |
Revision as of 12:05, 28 December 2009
|
Offset | Type | Raw Hex | Value | Description |
---|---|---|---|---|
0x00 | res_id | 01 49 02 00 | 585 | 00585-.AGQG |
0x04 | lev_id | 01 00 00 06 | 3 | level 3 |
0x08 | char[20] | AD DE | dead | unused |
0x1C | int32 | 15 A8 00 00 | 35349 | array size |
First element (black outline) | ||||
0x00 | int32 | 00 00 00 00 | 0 | PNTA element for 1st vertex |
0x04 | int32 | 01 00 00 00 | 1 | PNTA element for 2nd vertex |
0x08 | int32 | 02 00 00 00 | 2 | PNTA element for 3rd vertex |
0x0C | int32 | 03 00 00 00 | 3 | PNTA element for 4th vertex |
0x10 | int32 | F5 0F 00 00 | 4085 | TXCA element for 1st vertex |
0x14 | int32 | F3 0F 00 00 | 4083 | TXCA element for 2nd vertex |
0x18 | int32 | F4 0F 00 00 | 4084 | TXCA element for 3rd vertex |
0x1C | int32 | F6 0F 00 00 | 4086 | TXCA element for 4th vertex |
0x20 | color | 00 00 00 00 | 0, 0, 0, 0 | byte-swapped ARGB color for 1st vertex |
0x24 | color | 00 00 00 00 | 0, 0, 0, 0 | byte-swapped ARGB color for 2nd vertex |
0x28 | color | 02 07 09 00 | 2, 7, 9, 0 | byte-swapped ARGB color for 3rd vertex |
0x2C | color | 06 15 1E 00 | 6, 21, 30, 0 | byte-swapped ARGB color for 4th vertex |
0x30 | bitset32 | 00 00 08 02 | 0, 0, 8, 2 | flags; used values:
|
0x34 | int32 | FF FF FF FF | -1 | object ID and type to which this quad belongs (see ONOA for details); -1 if it does not belong to an object |
- Triangles
- Many quads are in fact triangles: the last two vertices have the same PNTA and TXCA entries, and the ARGB color is (255, 205, 205, 205) (80% gray, 100% opaque). There is also a flag specifying that.
- Stairs up/down
These 2 flags are used instead of the ghost flag when the pathfinding separator is placed at the bottom/top of the stairs.
- Stairs
This is applied to the invisible ramp quad that covers the stairs. In general this flag is also applied to the visible stairs geometry but there are some exceptions (errors? see level 19 stairs).
- No occlusion
This flag tells the octtree raycaster to ignore the quad when doing ray/quad intersections. This is tipically used for small quads that are unlikely to affect the overall environment visibility.
- Projection plane flags
These 2 flags can be 00, 01, 10 and 11. That means the values 0,1,2 and 3 which have the following meanings:
- 0 - No projection plane specified. One can be computed if needed. Never used in files, may slow down the game if used.
- 1 - Project quad on XY plane.
- 2 - Project quad on XZ plane.
- 3 - Project quad on YZ plane.
- The projection plane is used to determine if a point is in a quad (this point is usually the result of an intersection between a ray and the quad plane).
- Grid ignore
Appears to be unused. It's likely purpose is to mark quads that don't count as obstacles in the pathfinding grid.
- Danger
Appears to be unused. It's likely purpose is to create danger areas in the pathfinding grids. Usually there's a trigger volume nearby that hurts/kills the character. This quads are always invisible.
- Invisible
Invisible quads have a couple of different uses:
- block player access to some parts of the environment
- stairs ramp
- collision geometry (used by some "complex" furniture)
- danger quads (see above)
- some other apparently useless quads
- Runtime flags
At runtime the following flag values are also used:
- 0x00 00 04 00 - set at runtime for quads hidden with *env_show*, never used in files
- 0x20 00 00 00 - set at runtime for Jell'Oed quads, never used in files
ONI BINARY DATA |
---|
AGQC << Other file types >> AGQR |
AGQG : Gunk Quad General Array |
Level file |