OBJS: Difference between revisions
No edit summary |
(contributions from myself, Aschratt, and LINK2012) |
||
Line 1: | Line 1: | ||
{{Research}} | {{Research}} | ||
{{IdeSection | {{IdeSection | ||
| game = | |game = {{Icon-square|t}} {{Icon-square|4}} | ||
| description = | |description = Defines simple objects | ||
}} | }} | ||
''' | '''<code>objs</code>''' is a section in the item definition file in [[Grand Theft Auto III]], [[Grand Theft Auto: Vice City]], [[Grand Theft Auto: San Andreas]], and [[Grand Theft Auto IV]]. It is used to define simple objects. There are also sections to extend default object definitions: | ||
* <code>[[TOBJ|tobj]]</code> for defining an additional ingame time range the object gets rendered in. | |||
* <code>[[ANIM|anim]]</code> which links an animation to an object. | |||
* <code>[[TANM|tanm]]</code> which does both of the previously mentioned sections. | |||
{|class=" | == Format == | ||
!width=" | === GTA III, GTA Vice City, and GTA San Andreas === | ||
{{Pre| | |||
objs | |||
# [[#Type 1|type 1]] (III/VC/SA) | |||
Id, ModelName, TxdName, MeshCount, DrawDistance, Flags | |||
# [[#Type 2|type 2]] (III/VC/SA) | |||
Id, ModelName, TxdName, MeshCount, DrawDistance1, DrawDistance2, Flags | |||
# [[#Type 3|type 3]] (III/VC/SA) | |||
Id, ModelName, TxdName, MeshCount, DrawDistance1, DrawDistance2, DrawDistance3, Flags | |||
# [[#Type 4|type 4]] (SA) | |||
Id, ModelName, TxdName, DrawDistance, Flags | |||
end | |||
}} | |||
====Type 1==== | |||
This is used for non-breakable objects. | |||
{|class="wikitable center-col-1 center-col-2" style="width: 100%;" | |||
!style="width: 4em;" |{{Icon-square|t}} | |||
!style="width: 12em;" |Identifier | |||
!style="width: 6em;" |Type | |||
!Description | !Description | ||
|- | |- | ||
| | |A ||Id ||integer ||Unique object identifier. | ||
|- | |- | ||
| | |B ||ModelName ||string ||Name of the <code>.dff</code> model file without extension. | ||
|- | |- | ||
| | |C ||TxdName ||string ||Name of the <code>.txd</code> texture dictionary without extension. | ||
|- | |- | ||
| | |D ||MeshCount ||integer ||Number of meshes. 1 for this type. | ||
|- | |- | ||
| | |E ||DrawDistance ||float ||Draw distance in [[unit]]s. | ||
|- | |- | ||
| | |F ||Flags ||integer ||Object flags. | ||
|} | |} | ||
=== | ====Type 2==== | ||
This is used for breakable objects. | |||
{|class="wikitable center-col-1 center-col-2" style="width: 100%;" | |||
!style="width: 4em;" |{{Icon-square|t}} | |||
!style="width: 12em;" |Identifier | |||
!style="width: 6em;" |Type | |||
{|class=" | |||
! | |||
! | |||
!Description | !Description | ||
|- | |- | ||
| | |A ||Id ||integer ||Unique object identifier. | ||
|- | |- | ||
| | |B ||ModelName ||string ||Name of the <code>.dff</code> model file without extension. | ||
|- | |- | ||
| | |C ||TxdName ||string ||Name of the <code>.txd</code> texture dictionary without extension. | ||
|- | |- | ||
| | |D ||MeshCount ||integer ||Number of meshes. 2 for this type. | ||
|- | |||
|E,F ||DrawDistance1, DrawDistance2 ||float[2] ||Draw distance in [[unit]]s (one for each mesh, only the first is actually used). | |||
|- | |||
|G ||Flags ||integer ||Object flags. | |||
|} | |||
====Type 3==== | |||
This is used for complex breakable objects. | |||
{|class="wikitable center-col-1 center-col-2" style="width: 100%;" | |||
!style="width: 4em;" |{{Icon-square|t}} | |||
!style="width: 12em;" |Identifier | |||
!style="width: 6em;" |Type | |||
!Description | |||
|- | |- | ||
| | |A ||Id ||integer ||Unique object identifier. | ||
|- | |- | ||
| | |B ||ModelName ||string ||Name of the <code>.dff</code> model file without extension. | ||
|- | |- | ||
| | |C ||TxdName ||string ||Name of the <code>.txd</code> texture dictionary without extension. | ||
|- | |- | ||
| | |D ||MeshCount ||integer ||Number of meshes. 3 for this type. | ||
|- | |- | ||
| | |E,F,G ||DrawDistance1, DrawDistance2, DrawDistance3 ||float[3] ||Draw distance in [[unit]]s (one for each mesh, only the first is actually used). | ||
|- | |- | ||
| | |H ||Flags ||integer ||Object flags. | ||
|} | |||
====Type 4==== | |||
This is used for non-breakable objects and behaves equivalently to [[#Type 1|Type 1]]. | |||
{|class="wikitable center-col-1 center-col-2" style="width: 100%;" | |||
!style="width: 3em;" |{{Icon-square|sa}} | |||
!style="width: 12em;" |Identifier | |||
!style="width: 6em;" |Type | |||
!Description | |||
|- | |- | ||
| | |A ||Id ||integer ||Unique object identifier. | ||
|- | |- | ||
| | |B ||ModelName ||string ||Name of the <code>.dff</code> model file without extension. | ||
|- | |- | ||
| | |C ||TxdName ||string ||Name of the <code>.txd</code> texture dictionary without extension. | ||
|- | |- | ||
| | |D ||DrawDistance ||float ||Draw distance in [[unit]]s. | ||
|- | |- | ||
| | |E ||Flags ||integer ||Object flags. | ||
|} | |||
=== GTA IV === | |||
{{Pre| | |||
objs | |||
ModelName, TxdName, DrawDistance, Flag, unknown, MinX, MinY, MinZ, MaxX, MaxY, MaxZ, SphereX, SphereY, SphereZ, Radius, LODModel | |||
end | |||
}} | |||
==== Type 1 ==== | |||
{|class="wikitable center-col-1 center-col-2" style="width: 100%;" | |||
!style="width: 3em;" |{{Icon-square|4}} | |||
!style="width: 12em;" |Identifier | |||
!style="width: 6em;" |Type | |||
!Description | |||
|- | |- | ||
| | |A ||ModelName ||string ||Name of the <code>[[WDR|.wdr]]</code> model file without extension. | ||
|- | |- | ||
| | |B ||TxdName ||string ||Name of the <code>.wtd</code> texture dictionary without extension. | ||
|- | |- | ||
| | |C ||DrawDistance ||float ||Draw distance in units. | ||
|- | |- | ||
| | |D ||Flag ||integer ||Object flag. | ||
|- | |- | ||
| | |E ||''unknown'' ||float ||Unknown integer (usually 0 but uses other values as high as 32). | ||
|- | |- | ||
| | |F,G,H ||MinX, MinY, MinZ ||float[3] ||Lower left corner of the bounding box for the object. | ||
|- | |- | ||
| | |I,J,K ||MaxX, MaxY, MaxZ ||float[3] ||Upper right corner of the bounding box for the object. | ||
|- | |- | ||
| | |L,M,N ||SphereX, SphereY, SphereZ ||float[3] ||Center of the bounding sphere for the object. | ||
|- | |- | ||
| | |O ||Radius ||float ||Radius of the bounding sphere into all dimensions. | ||
|- | |- | ||
| | |P ||LODModel ||string ||Name of the <code>[[WDD|.wdd]]</code> file that contains the ''lod model'' for the defined modelname; otherwise ''null''. | ||
|} | |} | ||
GTA IV stores bounding information inside the ''item definitions'' for better performance. The previous games stored bounding information inside the [[COLL|collision]] files. Also it uses the hashes of the model names as a key of an hash table instead of the ID as an index to the definition array for previous games. | |||
== Statistics == | |||
Total number of <code>objs</code> entries in: | |||
:GTA III: 2908 (max 5000) | |||
::Type 1: 2844 | |||
::Type 2: 63 | |||
::Type 3: 1 | |||
:GTA Vice City: 3800 (max 3885) | |||
::Type 1: 3761 | |||
::Type 2: 38 | |||
::Type 3: 1 | |||
:GTA San Andreas: 14052 | |||
::Type 1: 1 | |||
::Type 4: 14051 | |||
:GTA IV: 24820 | |||
{{fdl}} | {{fdl}} | ||
{{modding}} | {{modding}} | ||