- This is about the turret class resource. For turret instances, see OBD:BINA/OBJC/TURR
The first pic shows the beginning of this file. The second pic the end of it.
Offset |
Type |
Raw Hex |
Value |
Description
|
0x000 |
res_id |
01 BF 01 00 |
447 |
00447-sap_turret_floor.TURR
|
0x004 |
lev_id |
01 00 00 00 |
0 |
level 0
|
0x008 |
char[64] |
sap_turret_floor |
name of this file
|
0x048 |
int32 |
00 00 00 00 |
0 |
unknown; always zero
|
0x04C |
char[8] |
AD DE |
dead |
unused
|
0x054 |
int16 |
00 00 |
0 |
unknown; always zero; (ignored) amount of shots?
|
0x056 |
int16 |
07 00 |
7 |
amount of particles (the array contains space for 16 elements)
|
0x058 |
int16 |
01 00 |
1 |
unknown; always the same; amount of firing modes?
|
0x05A |
char[6] |
AD DE |
dead |
unused
|
0x060 |
link |
01 C0 01 00 |
448 |
link to 00448-.M3GM - turret body
|
0x064 |
link |
00 00 00 00 |
0 |
obsolete OBLS link
|
0x068 |
link |
00 00 00 00 |
0 |
unknown; always zero; body-something?
|
0x06C |
link |
01 C3 01 00 |
451 |
link to 00451-.M3GM - turret head
|
0x070 |
link |
00 00 00 00 |
0 |
unknown; always zero; head-something?
|
0x074 |
link |
01 C4 01 00 |
452 |
link to 00452-.M3GM - turret gun
|
0x078 |
link |
00 00 00 00 |
0 |
unknown; always zero; gun-something?
|
0x07C |
float |
0D F8 C1 34 |
0.000000... |
X translation for turret head (body-relative)
|
0x080 |
float |
CF B4 07 41 |
8.481642 |
Y translation for turret head (body-relative)
|
0x084 |
float |
13 A2 03 34 |
0.000000... |
Z translation for turret head (body-relative)
|
0x088 |
float |
DA F5 9F B1 |
-0.000000... |
X translation for turret gun (head-relative)
|
0x08C |
float |
1D FC 33 32 |
0.000000... |
Y translation for turret gun (head-relative)
|
0x090 |
float |
F7 FE 3F B3 |
-0.000000... |
Z translation for turret gun (head-relative)
|
- Particle array (see ONWC)
- The particle elements are not exactly the same as in ONWC (4 bytes shorter)
Offset |
Type |
Raw Hex |
Value |
Description
|
First element (black outline)
|
0x000 |
char[16] |
w2_sap_e01 |
3D particle name (reference to BINA3RAPw2_sap_e01)
|
0x010 |
int32 |
00 00 00 00 |
0 |
runtime only: pointer to particle class
|
0x014 |
int32 |
05 00 00 00 |
5 |
delay between shots in frames; here, 5/60 = 0.0833 s
|
0x018 |
float |
B0 90 9F B8 |
-0.000076 |
x1 coefficient of transform matrix ^_^
|
0x01C |
float |
9E C1 7F 3F |
0.999048 |
y1 coefficient of transform matrix ^_^
|
0x020 |
float |
39 AC 32 3D |
0.043621 |
z1 coefficient of transform matrix ^_^
|
0x024 |
float |
62 F8 0E 3C |
0.008726 |
x2 coefficient of transform matrix ^_^
|
0x028 |
float |
C9 A9 32 BD |
-0.043619 |
y2 coefficient of transform matrix ^_^
|
0x02C |
float |
21 BF 7F 3F |
0.999010 |
z2 coefficient of transform matrix ^_^
|
0x030 |
float |
81 FD 7F 3F |
0.999962 |
x3 coefficient of transform matrix ^_^
|
0x034 |
float |
D6 6B EF 39 |
0.000457 |
y3 coefficient of transform matrix ^_^
|
0x038 |
float |
A0 C7 0E BC |
-0.008715 |
z3 coefficient of transform matrix ^_^
|
0x03C |
float |
46 0F 4D BD |
-0.050063 |
x4 coefficient of transform matrix ^_^
|
0x040 |
float |
47 C9 C4 BD |
-0.096087 |
y4 coefficient of transform matrix ^_^
|
0x044 |
float |
81 4E 94 40 |
4.634583 |
z4 coefficient of transform matrix ^_^
|
0x048 |
char[4] |
AD DE |
dead |
unused
|
- Firing mode (see ONWC)
- Turret firing spreads are not shown for ai2_showfiringspreads=1, which makes it harder to check the floats at 0x588, 0x58C, 0x590, 0x5C8, 0x5CC, 0x5D0.
Offset |
Type |
Raw Hex |
Value |
Description
|
0x554 |
int32 |
00 00 00 00 |
0 |
firing mode options; the following bits are possible (values in hex): 0x01 00 00 00 - No wild shots
|
0x0DC |
matrix4x3 |
81 FD 7F 3F |
8E A7 47 39 |
1A F8 0E 3C
|
8E A7 47 39 |
A0 C1 7F 3F |
6F A9 32 BD
|
1A F8 0E BC |
6F A9 32 3D |
21 BF 7F 3F
|
00 00 00 00 |
00 00 00 00 |
00 00 00 00
|
|
0.999962 |
0.000190 |
0.008726
|
0.000190 |
0.999048 |
-0.043619
|
-0.008726 |
0.043619 |
0.999010
|
0.000000 |
0.000000 |
0.000000
|
|
targeting inverse transform matrix - the inverse of the matrix that gives the targeting direction
|
0x588 |
vector3 |
62 F8 0E 3C |
C9 A9 32 BD |
21 BF 7F 3F
|
|
0.008726 |
-0.043619 |
0.999010
|
|
targeting direction
|
0x594 |
vector3 |
44 57 B9 BD |
73 27 D9 3D |
D1 99 B1 3B
|
|
-0.090498 |
0.106032 |
0.005420
|
|
targeting origin
|
0x5A0 |
float |
00 00 96 44 |
1200.000000 |
prediction speed
|
0x5A4 |
float |
00 00 00 00 |
0.000000 |
inaccuracy tolerance; always 0 for TURR
|
0x5A8 |
float |
00 00 20 40 |
2.500000 |
aim radius; always the same for TURR and ONWC
|
0x5AC |
float |
00 00 48 44 |
800.000000 |
sound sphere radius; always the same for TURR
|
0x5B0 |
float |
00 00 00 00 |
0.000000 |
minimal shooting distance; always 0 for TURR
|
0x5B4 |
float |
00 00 00 00 |
0.000000 |
maximal shooting distance; always 0 for TURR
|
0x5B8 |
int16 |
05 00 |
5 |
maximum startle misses
|
0x5BA |
int16 |
00 00 |
0 |
AI shooting skill ID; always 0 for TURR
|
0x5BC |
int32 |
00 00 00 00 |
0 |
fight timer; always 0 for TURR; 240 for ONWCw4_psm, 200 for ONWCv6_vdg
|
0x5C0 |
float |
00 00 00 00 |
0.000000 |
ballistic projectile speed (150 for ONWCw5_sbg, 160 for w11_ba1); always 0 for TURR
|
0x5C4 |
float |
00 00 00 00 |
0.000000 |
ballistic projectile gravity (0.5 for ONWCw5_sbg, 0.3 for w11_ba1); always 0 for TURR
|
0x5C8 |
float |
00 00 00 00 |
0.000000 |
length of firing spread; always 0 for TURR
|
0x5CC |
float |
00 00 00 00 |
0.000000 |
width of firing spread; always 0 for TURR
|
0x5D0 |
float |
00 00 00 00 |
0.000000 |
skew angle of firing spread; always 0 for TURR
|
- Same as in ONCC at 0x140-0x158
Offset |
Type |
Raw Hex |
Value |
Description
|
0x5D4 |
float |
00 00 00 3F |
0.500000 |
unknown; something with prediction? always the same for TURR and ONCC
|
0x5D8 |
float |
00 00 F0 42 |
120.000000 |
unknown; something with prediction? always the same for TURR and ONCC
|
0x5DC |
float |
00 00 80 3F |
1.000000 |
unknown; something with prediction? always the same for TURR
|
0x5E0 |
int32 |
00 00 00 00 |
0 |
unknown frame count; something with prediction; always the same for TURR
|
0x5E4 |
int32 |
05 00 00 00 |
5 |
unknown frame count; something with prediction; always the same for TURR
|
0x5E8 |
int32 |
0F 00 00 00 |
15 |
unknown frame count; something with prediction; always the same for TURR
|
0x5EC |
int32 |
3C 00 00 00 |
60 |
unknown frame count; something with prediction; always the same for TURR
|
- Shooting skill (see ONCC)
- All the TURR have the same shooting skill.
Offset |
Type |
Raw Hex |
Value |
Description
|
0x5F0 |
float |
9A 99 99 3E |
0.300000 |
recoil compensation amount (0.0 = min, 1.0 = max)
|
0x5F4 |
float |
BE F9 0E 3C |
0.008727 |
best aiming angle in radians
|
0x5F8 |
float |
00 00 00 00 |
0.000000 |
shot grouping error
|
0x5FC |
float |
00 00 00 3F |
0.500000 |
shot grouping decay
|
0x600 |
float |
00 00 80 3F |
1.000000 |
shooting inaccuracy multiplier
|
0x604 |
int16 |
00 00 |
0 |
minimum delay between shots in frames
|
0x606 |
int16 |
00 3F |
16128 |
maximum delay between shots in frames
|
- Turret specific options
Offset |
Type |
Raw Hex |
Value |
Description
|
0x608 |
int32 |
84 03 00 00 |
900 |
timeout in frames; here, 15 seconds
|
0x60C |
float |
C2 B8 B2 BE |
-0.349066 |
minimum elevation in radians; here, 20°
|
0x610 |
float |
DB 0F C9 3F |
1.570796 |
maximum elevation in radians; here, 90°
|
0x614 |
float |
67 3B 54 C0 |
-3.316126 |
minimum azimuth in radians; here, -190°
|
0x618 |
float |
67 3B 54 40 |
3.316126 |
maximum azimuth in radians; here, 190°
|
0x61C |
float |
AE 4B 6E 3C |
0.014544 |
maximum vertical speed in radian/frame; here, 50°/s
|
0x620 |
float |
AE 4B 6E 3C |
0.014544 |
maximum horizontal speed in radian/frame; here, 50°/s
|
0x624 |
char[32] |
turret_active |
active turret sound (reference to 08674-turret_active.amb.OSBD)
|
0x644 |
int32 |
00 00 00 00 |
0 |
runtime only
|
0x648 |
char[24] |
AD DE |
dead |
unused; always the same
|
- Turret geometry
- The body geometry is used during play, it is only used at design time. Once a turret is added to a level the body is baked into the environment. The head and gun geometries are used because unlike the body they are not fixed, they need to move during play.
Here you can download the complete overview of all turrets as a text file.
Copy it to a spreadsheet calculation program like Excel.