Repository navigation
Expand file tree
/
Copy pathsequences.zig
More file actions
85 lines (82 loc) · 9.27 KB
/
Copy pathsequences.zig
File metadata and controls
85 lines (82 loc) · 9.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
//! The explosion sequences: for each capital ship type that splits in two as its hull is
//! destroyed, the type of its other half, how the split runs, and the sizes and counts of its
//! fireballs and burning bits.
//!
//! Generated by `src/tools/tablegen` from the payload executable's sequence table at
//! 0x004FFB50, 40 records. Do not edit by hand; run `make explode-tables`.
pub const Record = struct {
/// The object type it is for, the object's own rather than the type it takes its stats
/// from.
type: u32,
/// The type of the other half the split makes (`+0x04`), or none.
other_half: ?u32,
/// **Unknown.** A second other half's type (`+0x08`), or none. Nothing reads it.
_unknown_08: ?u32,
/// How the split runs (`+0x0C`).
mode: Mode,
/// What its fireballs' sizes are reckoned from (`+0x10`).
fireball: f32,
/// The size of a sweep's occasional big fireball (`+0x14`); 0 or less for 0.35 of the
/// ship's radius.
big_fireball: f32,
/// The size of its burning bits (`+0x18`).
bit_size: f32,
/// What the number of its burning bits is reckoned from (`+0x1C`).
bits: i32,
/// The chance a burning bit is a body (`+0x20`).
bodies: f32,
/// How long the split runs, in ticks (`+0x24`); its shockwave lasts half as long again.
duration: i32,
/// **Unknown.** How many ways the ship can split (`+0x28`); 1 in every record.
variants: i32,
};
pub const Mode = enum(u16) {
/// A cut sweeping along the ship, the halves' wrecks showing behind it.
sweep = 0,
/// Bursts about the ship, and the wrecks at the end.
bursts = 1,
_,
};
/// Every record, in the payload's order.
pub const records = [_]Record{
.{ .type = 0x21, .other_half = 0x5D, ._unknown_08 = null, .mode = .bursts, .fireball = 500, .big_fireball = 5000, .bit_size = 0.3, .bits = 3, .bodies = 0, .duration = 100, .variants = 1 },
.{ .type = 0x16, .other_half = 0x4B, ._unknown_08 = 0x4C, .mode = .sweep, .fireball = 900, .big_fireball = -1, .bit_size = 0.5, .bits = 3, .bodies = 0.05, .duration = 900, .variants = 1 },
.{ .type = 0x1E, .other_half = null, ._unknown_08 = null, .mode = .bursts, .fireball = 500, .big_fireball = -1, .bit_size = 0.3, .bits = 2, .bodies = 0, .duration = 100, .variants = 1 },
.{ .type = 0x20, .other_half = null, ._unknown_08 = null, .mode = .bursts, .fireball = 500, .big_fireball = -1, .bit_size = 0.3, .bits = 2, .bodies = 0, .duration = 100, .variants = 1 },
.{ .type = 0x3A, .other_half = null, ._unknown_08 = null, .mode = .bursts, .fireball = 500, .big_fireball = -1, .bit_size = 0.3, .bits = 3, .bodies = 0, .duration = 100, .variants = 1 },
.{ .type = 0x3C, .other_half = null, ._unknown_08 = null, .mode = .bursts, .fireball = 500, .big_fireball = -1, .bit_size = 0.3, .bits = 2, .bodies = 0, .duration = 100, .variants = 1 },
.{ .type = 0x37, .other_half = 0x75, ._unknown_08 = null, .mode = .sweep, .fireball = 2300, .big_fireball = -1, .bit_size = 0.45, .bits = 3, .bodies = 0.05, .duration = 900, .variants = 1 },
.{ .type = 0x18, .other_half = null, ._unknown_08 = null, .mode = .bursts, .fireball = 900, .big_fireball = -1, .bit_size = 0.25, .bits = 1, .bodies = 0, .duration = 100, .variants = 1 },
.{ .type = 0x46, .other_half = null, ._unknown_08 = null, .mode = .bursts, .fireball = 1600, .big_fireball = -1, .bit_size = 0.4, .bits = 3, .bodies = 0, .duration = 100, .variants = 1 },
.{ .type = 0x81, .other_half = 0xB7, ._unknown_08 = null, .mode = .bursts, .fireball = 12000, .big_fireball = 30000, .bit_size = 1.2, .bits = 2, .bodies = 0, .duration = 900, .variants = 1 },
.{ .type = 0x80, .other_half = null, ._unknown_08 = null, .mode = .bursts, .fireball = 4000, .big_fireball = 10000, .bit_size = 1, .bits = 2, .bodies = 0, .duration = 100, .variants = 1 },
.{ .type = 0x3E, .other_half = 0x82, ._unknown_08 = null, .mode = .bursts, .fireball = 500, .big_fireball = -1, .bit_size = 0.3, .bits = 2, .bodies = 0, .duration = 100, .variants = 1 },
.{ .type = 0x11, .other_half = 0xC5, ._unknown_08 = null, .mode = .sweep, .fireball = 7500, .big_fireball = -1, .bit_size = 0.9, .bits = 3, .bodies = 0, .duration = 800, .variants = 1 },
.{ .type = 0x38, .other_half = 0x8F, ._unknown_08 = null, .mode = .sweep, .fireball = 8000, .big_fireball = 30000, .bit_size = 1, .bits = 3, .bodies = 0.05, .duration = 1200, .variants = 1 },
.{ .type = 0x3F, .other_half = null, ._unknown_08 = null, .mode = .sweep, .fireball = 1700, .big_fireball = -1, .bit_size = 0.5, .bits = 3, .bodies = 0.05, .duration = 550, .variants = 1 },
.{ .type = 0x0C, .other_half = 0x96, ._unknown_08 = null, .mode = .sweep, .fireball = 3300, .big_fireball = -1, .bit_size = 0.8, .bits = 3, .bodies = 0.05, .duration = 1200, .variants = 1 },
.{ .type = 0x14, .other_half = null, ._unknown_08 = null, .mode = .sweep, .fireball = 5000, .big_fireball = -1, .bit_size = 0.75, .bits = 3, .bodies = 0.05, .duration = 750, .variants = 1 },
.{ .type = 0x78, .other_half = null, ._unknown_08 = null, .mode = .sweep, .fireball = 2500, .big_fireball = -1, .bit_size = 0.8, .bits = 3, .bodies = 0.05, .duration = 1000, .variants = 1 },
.{ .type = 0x34, .other_half = null, ._unknown_08 = null, .mode = .sweep, .fireball = 3000, .big_fireball = -1, .bit_size = 0.65, .bits = 3, .bodies = 0.05, .duration = 1100, .variants = 1 },
.{ .type = 0x0D, .other_half = 0xAA, ._unknown_08 = null, .mode = .sweep, .fireball = 6000, .big_fireball = -1, .bit_size = 1, .bits = 3, .bodies = 0.05, .duration = 2000, .variants = 1 },
.{ .type = 0xA5, .other_half = 0xAD, ._unknown_08 = null, .mode = .sweep, .fireball = 6500, .big_fireball = 20000, .bit_size = 1, .bits = 2, .bodies = 0.05, .duration = 1200, .variants = 1 },
.{ .type = 0xB0, .other_half = 0xBA, ._unknown_08 = null, .mode = .sweep, .fireball = 1600, .big_fireball = -1, .bit_size = 0.3, .bits = 3, .bodies = 0.05, .duration = 850, .variants = 1 },
.{ .type = 0x84, .other_half = null, ._unknown_08 = null, .mode = .sweep, .fireball = 12000, .big_fireball = 30000, .bit_size = 2, .bits = 4, .bodies = 0, .duration = 1400, .variants = 1 },
.{ .type = 0x3D, .other_half = 0xBB, ._unknown_08 = null, .mode = .sweep, .fireball = 1500, .big_fireball = -1, .bit_size = 0.5, .bits = 1, .bodies = 0.05, .duration = 900, .variants = 1 },
.{ .type = 0x45, .other_half = 0xBD, ._unknown_08 = 0xBE, .mode = .bursts, .fireball = 13000, .big_fireball = 30000, .bit_size = 1.5, .bits = 3, .bodies = 0, .duration = 500, .variants = 1 },
.{ .type = 0x95, .other_half = null, ._unknown_08 = null, .mode = .bursts, .fireball = 13000, .big_fireball = 30000, .bit_size = 1.2, .bits = 2, .bodies = 0, .duration = 200, .variants = 1 },
.{ .type = 0x43, .other_half = 0xBF, ._unknown_08 = null, .mode = .sweep, .fireball = 8000, .big_fireball = 25000, .bit_size = 1.2, .bits = 2, .bodies = 0.05, .duration = 1600, .variants = 1 },
.{ .type = 0x9B, .other_half = 0xD9, ._unknown_08 = null, .mode = .sweep, .fireball = 8000, .big_fireball = 30000, .bit_size = 1, .bits = 3, .bodies = 0.05, .duration = 1200, .variants = 1 },
.{ .type = 0xC0, .other_half = 0xD9, ._unknown_08 = null, .mode = .sweep, .fireball = 8000, .big_fireball = -1, .bit_size = 0.8, .bits = 4, .bodies = 0.05, .duration = 1200, .variants = 1 },
.{ .type = 0xC2, .other_half = 0xC3, ._unknown_08 = null, .mode = .sweep, .fireball = 2300, .big_fireball = -1, .bit_size = 0.5, .bits = 3, .bodies = 0.05, .duration = 800, .variants = 1 },
.{ .type = 0x36, .other_half = 0xC3, ._unknown_08 = null, .mode = .sweep, .fireball = 3000, .big_fireball = -1, .bit_size = 0.5, .bits = 3, .bodies = 0.05, .duration = 800, .variants = 1 },
.{ .type = 0x5E, .other_half = 0xC4, ._unknown_08 = null, .mode = .sweep, .fireball = 6000, .big_fireball = -1, .bit_size = 1, .bits = 2, .bodies = 0.05, .duration = 1200, .variants = 1 },
.{ .type = 0x44, .other_half = 0xA9, ._unknown_08 = null, .mode = .sweep, .fireball = 6000, .big_fireball = -1, .bit_size = 0.8, .bits = 3, .bodies = 0, .duration = 1200, .variants = 1 },
.{ .type = 0x13, .other_half = 0xC6, ._unknown_08 = null, .mode = .sweep, .fireball = 6500, .big_fireball = -1, .bit_size = 1, .bits = 3, .bodies = 0.05, .duration = 1200, .variants = 1 },
.{ .type = 0x49, .other_half = null, ._unknown_08 = null, .mode = .bursts, .fireball = 500, .big_fireball = 5000, .bit_size = 0.1, .bits = 2, .bodies = 0.1, .duration = 50, .variants = 1 },
.{ .type = 0x0F, .other_half = null, ._unknown_08 = null, .mode = .sweep, .fireball = 2600, .big_fireball = -1, .bit_size = 0.5, .bits = 2, .bodies = 0.05, .duration = 800, .variants = 1 },
.{ .type = 0xA8, .other_half = null, ._unknown_08 = null, .mode = .bursts, .fireball = 12000, .big_fireball = 30000, .bit_size = 1.5, .bits = 3, .bodies = 0, .duration = 400, .variants = 1 },
.{ .type = 0x9C, .other_half = null, ._unknown_08 = null, .mode = .sweep, .fireball = 3000, .big_fireball = -1, .bit_size = 0.65, .bits = 3, .bodies = 0.05, .duration = 1100, .variants = 1 },
.{ .type = 0x47, .other_half = 0x6B, ._unknown_08 = null, .mode = .sweep, .fireball = 7500, .big_fireball = -1, .bit_size = 1, .bits = 1, .bodies = 0.05, .duration = 1000, .variants = 1 },
.{ .type = 0x48, .other_half = null, ._unknown_08 = null, .mode = .sweep, .fireball = 13000, .big_fireball = 30000, .bit_size = 1.5, .bits = 3, .bodies = 0, .duration = 50, .variants = 1 },
};