OBD:AGQG: Difference between revisions

From OniGalore
Jump to navigation Jump to search
m (slopes revisited)
m (wiki code)
Line 1: Line 1:
{{OBD_File_Header | type=AGQG | prev=AGQC | next=AGQR | name=Gunk Quad General Array | family=Level | align=center}}
{{OBD_File_Header | type=AGQG | prev=AGQC | next=AGQR | name=Gunk Quad General Array | family=Level | align=center}}
:
 
 
{{OBD_File_Image | image=agqg_a.gif}}
{{OBD_File_Image | image=agqg_a.gif}}
:
 
 
{{Table}}
{{Table}}
{{OBD_Table_Header}}
{{OBDth}}
|- ALIGN=CENTER VALIGN=TOP
{{OBDtr | 0x00 | res_id |FF0000| 01 49 02 00 | 585         | 00585-.AGQG }}
| 0x00 || file id || BGCOLOR="#FF0000" | 01 49 02 00 || 585 || ALIGN=LEFT | 00585-.AGQG
{{OBDtr | 0x04 | lev_id |FFFF00| 01 00 00 06 | 3           | level 3 }}
|- ALIGN=CENTER VALIGN=TOP
{{OBDtr | 0x08 |char[20]|00FF00| AD DE       | dead         | unused }}
| 0x04 || level id || BGCOLOR="#FFFF00" | 01 00 00 06 || 3 || ALIGN=LEFT | level 3
{{OBDtr | 0x1C | int32 |00FFFF| 15 A8 00 00 | 35349       | array size }}
|- ALIGN=CENTER VALIGN=TOP
{{OBDtrBK}}
| 0x08 || unused (20) || BGCOLOR="#00FF00" | AD DE || dead || ALIGN=LEFT | not used
{{OBDtr | 0x00 | int32 |FFC8C8| 00 00 00 00 | 0           | [[OBD:PNTA|PNTA]] element for 1st vertex }}
|- ALIGN=CENTER VALIGN=TOP
{{OBDtr | 0x04 | int32 |FFC8C8| 01 00 00 00 | 1           | [[OBD:PNTA|PNTA]] element for 2nd vertex }}
| 0x1C || int32 || BGCOLOR="#00FFFF" | 15 A8 00 00 || 35349 || ALIGN=LEFT | 35349 quads in array
{{OBDtr | 0x08 | int32 |FFC8C8| 02 00 00 00 | 2           | [[OBD:PNTA|PNTA]] element for 3rd vertex }}
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#000000"
{{OBDtr | 0x0C | int32 |FFC8C8| 03 00 00 00 | 3           | [[OBD:PNTA|PNTA]] element for 4th vertex }}
| COLSPAN=5 | <FONT SIZE=2 COLOR="#FFFFFF">First quad (outlined in black)</FONT>
{{OBDtr | 0x10 | int32 |FFFFC8| F5 0F 00 00 | 4085         | [[OBD:TXCA|TXCA]] element for 1st vertex }}
|- ALIGN=CENTER VALIGN=TOP
{{OBDtr | 0x14 | int32 |FFFFC8| F3 0F 00 00 | 4083         | [[OBD:TXCA|TXCA]] element for 2nd vertex }}
| 0x00 || int32 || BGCOLOR="#FFC8C8" | 00 00 00 00 || 0 || ALIGN=LEFT | [[OBD:PNTA | PNTA]] element for 1st vertex
{{OBDtr | 0x18 | int32 |FFFFC8| F4 0F 00 00 | 4084         | [[OBD:TXCA|TXCA]] element for 3rd vertex }}
|- ALIGN=CENTER VALIGN=TOP
{{OBDtr | 0x1C | int32 |FFFFC8| F6 0F 00 00 | 4086         | [[OBD:TXCA|TXCA]] element for 4th vertex }}
| 0x04 || int32 || BGCOLOR="#FFC8C8" | 01 00 00 00 || 1 || ALIGN=LEFT | [[OBD:PNTA | PNTA]] element for 2nd vertex
{{OBDtr | 0x20 | color |C8FFC8| 00 00 00 00 | 0, 0, 0, 0   | byte-swapped ARGB color for 1st vertex }}
|- ALIGN=CENTER VALIGN=TOP
{{OBDtr | 0x24 | color |C8FFC8| 00 00 00 00 | 0, 0, 0, 0   | byte-swapped ARGB color for 2nd vertex }}
| 0x08 || int32 || BGCOLOR="#FFC8C8" | 02 00 00 00 || 2 || ALIGN=LEFT | [[OBD:PNTA | PNTA]] element for 3rd vertex
{{OBDtr | 0x28 | color |C8FFC8| 02 07 09 00 | 2, 7, 9, 0   | byte-swapped ARGB color for 3rd vertex }}
|- ALIGN=CENTER VALIGN=TOP
{{OBDtr | 0x2C | color |C8FFC8| 06 15 1E 00 | 6, 21, 30, 0 | byte-swapped ARGB color for 4th vertex }}
| 0x0C || int32 || BGCOLOR="#FFC8C8" | 03 00 00 00 || 3 || ALIGN=LEFT | [[OBD:PNTA | PNTA]] element for 4th vertex
{{OBDtr | 0x30 |bitset32|C8FFFF| 00 00 08 02 | 0, 0, 8, 2   | flags (see below this table) }}
|- ALIGN=CENTER VALIGN=TOP
{{OBDtr | 0x34 | int16 |FFC8FF| FF FF       | -1           | object ID (obsolete?) }}
| 0x10 || int32 || BGCOLOR="#FFFFC8" | F5 0F 00 00 || 4085 || ALIGN=LEFT | [[OBD:TXCA | TXCA]] element for 1st vertex
{{OBDtr | 0x36 | int16 |FFC8FF| FF FF       | -1           | object type (obsolete?) }}
|- ALIGN=CENTER VALIGN=TOP
| 0x14 || int32 || BGCOLOR="#FFFFC8" | F3 0F 00 00 || 4083 || ALIGN=LEFT | [[OBD:TXCA | TXCA]] element for 2nd vertex
|- ALIGN=CENTER VALIGN=TOP
| 0x18 || int32 || BGCOLOR="#FFFFC8" | F4 0F 00 00 || 4084 || ALIGN=LEFT | [[OBD:TXCA | TXCA]] element for 3rd vertex
|- ALIGN=CENTER VALIGN=TOP
| 0x1C || int32 || BGCOLOR="#FFFFC8" | F6 0F 00 00 || 4086 || ALIGN=LEFT | [[OBD:TXCA | TXCA]] element for 4th vertex
|- ALIGN=CENTER VALIGN=TOP
| 0x20 || color || BGCOLOR="#C8FFC8" | 00 00 00 00 || 0, 0, 0, 0 || ALIGN=LEFT | byte-swapped ARGB color for 1st vertex
|- ALIGN=CENTER VALIGN=TOP
| 0x24 || color || BGCOLOR="#C8FFC8" | 00 00 00 00 || 0, 0, 0, 0 || ALIGN=LEFT | byte-swapped ARGB color for 2nd vertex
|- ALIGN=CENTER VALIGN=TOP
| 0x28 || color || BGCOLOR="#C8FFC8" | 02 07 09 00 || 2, 7, 9, 0 || ALIGN=LEFT | byte-swapped ARGB color for 3rd vertex
|- ALIGN=CENTER VALIGN=TOP
| 0x2C || color || BGCOLOR="#C8FFC8" | 06 15 1E 00 || 6, 21, 30, 0 || ALIGN=LEFT | byte-swapped ARGB color for 4th vertex
|- ALIGN=CENTER VALIGN=TOP
| 0x30 || bit32 || BGCOLOR="#C8FFFF" | 00 00 08 02 || 0, 0, 8, 2 || ALIGN=LEFT | flags (see below)
|- ALIGN=CENTER VALIGN=TOP
| 0x34 || int16 || BGCOLOR="#FFC8FF" | FF&nbsp;FF || -1 || ALIGN=LEFT | object ID (obsolete?)
|- ALIGN=CENTER VALIGN=TOP
| 0x36 || int16 || BGCOLOR="#FFC8FF" | FF&nbsp;FF || -1 || ALIGN=LEFT | object type (obsolete?)
|}
|}
;Objects
;Objects
:Those IDs and types also appear in [[ONOA]]. Types are:
:Those IDs and types also appear in [[OBD:ONOA|ONOA]]. Types are:
*0x00 03 - door
*0x00 03 - door
*0x00 05 - furniture
*0x00 05 - furniture
Line 55: Line 39:
:They seem obsolete (but may be useful for selective viewing/extracting of environment)
:They seem obsolete (but may be useful for selective viewing/extracting of environment)
;Triangles
;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 (see below).
:Many quads are in fact triangles: the last two vertices have the same [[OBD:PNTA|PNTA]] and [[OBD:TXCA|TXCA]] entries, and the ARGB color is (255, 205, 205, 205) (80% gray, 100% opaque). There is also a flag specifying that (see below).
;Flags
;Flags
:0x'''01''' 00 00 00 - '''unknown
:0x'''01''' 00 00 00 - unknown
:0x'''02''' 00 00 00 - ghost (pathfinding volume separator, see [[AKVA]] etc)
:0x'''02''' 00 00 00 - ghost (pathfinding volume separator, see [[OBD:AKVA|AKVA]] etc)
:0x'''04''' 00 00 00 - stairs up
:0x'''04''' 00 00 00 - stairs up
:0x'''08''' 00 00 00 - stairs down
:0x'''08''' 00 00 00 - stairs down
Line 75: Line 59:
:0x00 00 '''01''' 00 - no occlusion
:0x00 00 '''01''' 00 - no occlusion
:0x00 00 '''02''' 00 - danger
:0x00 00 '''02''' 00 - danger
:0x00 00 '''04''' 00 - set at runtime for quads hidden with [[env_show]], never used in files
:0x00 00 '''04''' 00 - set at runtime for quads hidden with *env_show*, never used in files
: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°
Line 97: Line 81:
: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).


----
 
:
{{OBD_File_Footer | type=AGQG | prev=AGQC | next=AGQR | name=Gunk Quad General Array | family=Level}}
{{OBD_File_Footer | type=AGQG | prev=AGQC | next=AGQR | name=Gunk Quad General Array}}
:

Revision as of 13:29, 19 September 2007

ONI BINARY DATA
AGQC << Other file types >> AGQR
AGQG : Gunk Quad General Array
switch to XML:AGQG page
Overview @ Oni Stuff
OBD.png


Template:OBD File Image


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 (see below this table)
0x34 int16 FF FF -1 object ID (obsolete?)
0x36 int16 FF FF -1 object type (obsolete?)


Objects
Those IDs and types also appear in ONOA. Types are:
  • 0x00 03 - door
  • 0x00 05 - furniture
  • 0x00 13 - trigger
  • 0x00 14 - turret
  • 0x00 15 - console
They seem obsolete (but may be useful for selective viewing/extracting of environment)
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 (see below).
Flags
0x01 00 00 00 - unknown
0x02 00 00 00 - ghost (pathfinding volume separator, see AKVA etc)
0x04 00 00 00 - stairs up
0x08 00 00 00 - stairs down
0x10 00 00 00 - stairs
0x20 00 00 00 - set at runtime for Jell'Oed quads, never used in files
0x40 00 00 00 - triangle (see above)
0x80 00 00 00 - transparency (if 0 then alpha is ignored, color is just RGB shading)
0x00 01 00 00 - unknown, never used in files
0x00 02 00 00 - two-sided
0x00 04 00 00 - unknown, never used in files
0x00 08 00 00 - no collision
0x00 10 00 00 - unknown, never used in files
0x00 20 00 00 - invisible
0x00 40 00 00 - no object collision
0x00 80 00 00 - no character collision
0x00 00 01 00 - no occlusion
0x00 00 02 00 - danger
0x00 00 04 00 - set at runtime for quads hidden with *env_show*, never used in files
0x00 00 08 00 - vertical collision: slope < 70°
0x00 00 10 00 - horizontal collision: slope > 70°
0x00 00 20 00 - unknown, never used in files
0x00 00 40 00 - ignore grid
0x00 00 80 00 - no decal
0x00 00 00 01 - furniture
0x00 00 00 02 - projection plan bit 0, see below
0x00 00 00 04 - projection plan bit 1, see below
0x00 00 00 08 - sound-transparent
0x00 00 00 10 - impassable
0x00 00 00 20 - unknown, never used in files
0x00 00 00 40 - unknown, never used in files
0x00 00 00 80 - unknown, never used in files
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).


ONI BINARY DATA
AGQC << Other file types >> AGQR
AGQG : Gunk Quad General Array
Level file