Jump to content

OBD:Data types: Difference between revisions

m
string types
m (string types)
Line 1: Line 1:
==General notes==
===Struct defs===
Place here suggestions for data type IDs (for new-gen struct defs).
===Appearance===
[[OUP]] could/should have special GUI settings for some of the types:
*Links to other resources (in the long term, also links by label and non-file ID)
*Vectors, AABBs, planes, transformation matrices, quaternions.
*Bitsets: checkboxes with labels specified in the struct def
:Same for longs with high bits/bytes and more generally, IDs.
Ideally, the labels for recurring bitsets and ID fields should be hardcoded, but it's OK to have them in struct defs ATM.
----
==Resource links==
===DAT links===
Those should certainly be typed: a different ID for every DAT-resource type.
===RAW/SEP links===
I would type those too: a different ID for every RAW/SEP-resource type.
:Note that the size of the RAW/SEP data is not always provided.
===Links by label===
Those are special string subtypes. I wouldn't specify them right now.
:(but you can try and draw a list of what links-by-label there are)
===Links by ID===
:(not to be confused with links by ID to DAT resources)
E.g., vocalization IDs, melee profile IDs, combat behaviour IDs, etc.
:In most cases, they are not links to DAT/RAW/SEP resources, but lookups to hardcoded tables (which are also part of OBD, sort of...)
----
==Strings==
==Strings==
checked past BINA...
===16 chars===
===16 chars===
*[[PAR3]] ([[BINA]] raw/sep part)
*[[ONCP]]
*[[ONIA]]
*[[TRAM]]
*[[TRAM]] (particle part)
===32 chars===
===32 chars===
*[[AGDB]] raw/sep parts
*[[AGDB]] raw/sep parts
*[[AISA]]
*[[AISA]]
*[[ONIE]]
*[[CHAR]] ([[BINA]] raw/sep part)
*[[SABD]]
*[[CONS]] ([[BINA]] raw/sep part)
*...
*[[FURN]] ([[BINA]] raw/sep part)
*[[NEUT]] ([[BINA]] raw/sep part)
*[[PATR]] ([[BINA]] raw/sep part)
*[[SNDG]] ([[BINA]] raw/sep part)
*[[TRGV]] ([[BINA]] raw/sep part)
*[[TURR]] ([[BINA]] raw/sep part)
*[[WEAP]] ([[BINA]] raw/sep part)
*[[ONIE]] ([[BINA]] raw/sep part)
*[[PAR3]] ([[BINA]] raw/sep part)
*[[SABD]] ([[BINA]] raw/sep part)
*[[TMBD]] ([[BINA]] raw/sep part)
*[[CONS]]
*[[DOOR]]
*[[ONCC]]
*[[ONCV]]
*[[ONGS]]
*[[ONWC]]
*[[OSAm]], [[OSGr]], [[OSIm]] ([[OSBD]] raw/sep parts)
*[[TRAM]] (sound part)
*[[TRIG]]
*[[TURR]]
===48 chars===
*[[FURN]] ([[BINA]] raw/sep part)
*[[PART]] ([[BINA]] raw/sep part)
*[[ENVP]]
*[[ONGS]]?
===63 chars===
*[[CONS]] ([[BINA]] raw/sep part)
*[[DOOR]] ([[BINA]] raw/sep part)
*[[TRGV]] ([[BINA]] raw/sep part)
*[[TRIG]] ([[BINA]] raw/sep part)
*[[TURR]] ([[BINA]] raw/sep part)
===64 chars===
===64 chars===
*[[AITR]]
*[[AITR]]
*[[ONIE]]
*[[CHAR]] ([[BINA]] raw/sep part)
*...
*[[CMBT]] ([[BINA]] raw/sep part)
*[[MELE]] ([[BINA]] raw/sep part)
*[[ONIE]] ([[BINA]] raw/sep part)
*[[PART]] ([[BINA]] raw/sep part)
*[[ENVP]]
*[[IGHH]]
*[[OBOA]]
*[[ONCC]]
*[[ONCP]]
*[[ONLD]]
*[[ONMA]]
*[[TRCM]]
*[[TSFL]]
*[[TURR]]
*[[WMM_]]
===68 chars===
*[[DOOR]] ([[BINA]] raw/sep part)
===128 chars===
*[[FLAG]] ([[BINA]] raw/sep part)
*[[TRGV]] ([[BINA]] raw/sep part)
*[[ONCC]]
*[[ONGS]]
*[[ONIA]]
*[[TStr]]
*[[TXMP]]
===132 chars===
===132 chars===
maybe 128?
*[[ONIE]] ([[BINA]] raw/sep part)
*[[ONIE]]
===160 chars===
*...
*[[CRSA]]
===256 chars===
*[[WMDD]]
===364 chars===
*[[IGSt]]




----
----
==Floats==
==Floats==
===Float===
===Float===
4-byte IEEE float
4-byte IEEE float
:(amount, distance, angle, ...)
===Vector===
===Vector===
3 floats define a vector in 3D space
3 floats define a vector in 3D space
:(position, normal, ...)
===Axis-aligned bounding box===
===Axis-aligned bounding box===
2 vectors define a min corner and a max corner
2 vectors define a min corner and a max corner
===Plane===
===Plane===
4 floats define an oriented plane in 3D
4 floats define an oriented plane in 3D
:(see [[PLEA]] for algorithm)
===Quaternion===
===Quaternion===
4 floats define a [[w:quaternion|quaternion]]
4 floats define a [[w:quaternion|quaternion]]
:(always normalized, i.e., rotation w/o scaling?)
:(always normalized, i.e., rotation w/o scaling?)
===Translation and rotation===
*3 floats define a translation
*3 others define a rotation (Euler angles)
===Transformation matrix===
===Transformation matrix===
12 floats define a 4x4 transformation matrix
12 floats define a 4x4 transformation matrix
Line 40: Line 139:
Mostly non-negative indices, so possibly unsigned.
Mostly non-negative indices, so possibly unsigned.
:One known exception: the quantized Euler angles in TRAM
:One known exception: the quantized Euler angles in TRAM
===char===
:ever used?
===short===
===short===
:everywhere...
===long===
===long===
===flagged long===
:everywhere...
===long with high bit===
The lower bits are used for an ID, the high bit is a flag
The lower bits are used for an ID, the high bit is a flag
:(used in ... )
===long with high byte===
The lower bytes are used for an ID, the high byte is a group ID
:(used for [[MELE]] moves)
===quantized float===
===quantized float===
e.g., quantized Euler angles in [[TRAM_]]
e.g., quantized Euler angles in [[TRAM_]]
===other stuff===
lots of funny stuff in [[PAR3]], maybe...




Line 54: Line 163:
===4 bytes===
===4 bytes===
===8 bytes===
===8 bytes===
----
==Misc==
===4-character codes===
In various BINA raw/sep parts
===...===