~ubuntu-branches/debian/stretch/opentyrian/stretch

« back to all changes in this revision

Viewing changes to doc/tyrian.hdt.txt

  • Committer: Package Import Robot
  • Author(s): Etienne Millon
  • Date: 2015-03-31 08:48:54 UTC
  • Revision ID: package-import@ubuntu.com-20150331084854-f5a4uoz7uv3vopk6
Tags: upstream-2.1.20130907+dfsg
ImportĀ upstreamĀ versionĀ 2.1.20130907+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
tyrian.hdt:
 
2
 
 
3
// episode 1 data offset:
 
4
episode1DataLoc:32
 
5
 
 
6
[at episode1DataLoc]
 
7
// Note: Tyrian doesn't actually use these, they are hardcoded in the source for some reason.
 
8
WEAP_NUM:16 = 780
 
9
PORT_NUM:16 = 42
 
10
POWER_NUM:16 = 6 (Note: SPECIAL_NUM isn't on the file)
 
11
SHIP_NUM:16 = 13
 
12
OPTION_NUM:16 = 30
 
13
SHILED_NUM:16 = 10
 
14
ENEMY_NUM:16 = 850
 
15
 
 
16
// Size in bytes: 0x50
 
17
// Bullet patterns
 
18
struct weapons {
 
19
        drain:16 // Filler, not used
 
20
        shotRepeat:8 // Rate of fire (lower == faster)
 
21
        multi:8 // How many to shoot at once (use to shoot multiple pattern frames at once)
 
22
        weapAni:16 // Number of frames in the animation (0 == 1 frame, 1 == 2 frames, ...)
 
23
        max:8 // Number of pattern frames (better explanation needed =P it cycles thru the 8x arrays)
 
24
        tx:8 // TODO: Not used in player
 
25
        ty:8 // TODO: Not used in player
 
26
        aim:8 // Homing ability, the bigger the number, the more the shot can turn
 
27
 
 
28
        // There's one of these for each frame
 
29
        8x attack:8 // Attacking power and effect (99 == Ice, >=250: Attacking power is attack-250 and goes thru enemies)
 
30
        8x del:8 // Shot life (how long before it disappears)
 
31
        8x sx:s8 // Horizontal speed
 
32
        8x sy:s8 // Vertical speed
 
33
        8x bx:s8 // Horizontal offset
 
34
        8x by:s8 // Vertical offset
 
35
        8x sg:16 // Shape number (graphics)
 
36
 
 
37
        acceleration:s8 // Vertical acceleration
 
38
        accelerationx:s8 // Horizontal acceleration
 
39
        circleSize:8 // Perturbs the weapons travel:
 
40
                // 0-19: Circle (radius)
 
41
                // Other produce varying results, experiment (pattern changes roughly ever 20 steps)
 
42
 
 
43
        sound:8 // Sound the effect makes (0 == no sound)
 
44
        trail:8 // Shot trail effect (0xFF == none, 0x62 == smoke, others == various or garbage, experiment)
 
45
        shipBlastFilter:8 // TODO: Not sure, but probably has something to do with the color enemies get after being hit
 
46
} WEAP_NUM+1 (780+1)
 
47
 
 
48
// Weapons:
 
49
struct weaponPort {
 
50
        str_len:8 = 0x1E // Pascal string length, leave alone
 
51
        name:str30 // Weapon name
 
52
        opnum:8 // How many firing modes weapon has. (1 or 2, only really works for rear guns)
 
53
        2x { // Weapon patterns (What it does, it's an index into the weapons structure). One for each firing mode.
 
54
                11x op:16 // Each entry corresponds to a power level
 
55
        }
 
56
        cost:16 // How much does the weapon cost. Upgrades are calculated off this.
 
57
        itemGraphic:16 // Weapon graphic in the shop.
 
58
        powerUse:16 // Power drain when firing
 
59
} PORT_NUM+1 (42+1)
 
60
 
 
61
// Special moves, those things that show up in the upper left corner with a fake charging bar
 
62
struct special {
 
63
        str_len:8 = 0x1E // Pascal string length, leave alone
 
64
        name:str30 // Name
 
65
        itemGraphic:16 // The graphic that's displayed during gameplay
 
66
        pwr:8 // Time needed between recharges, may be overriden
 
67
        sType:8 // Determines the type of the special: TODO
 
68
        wpn:16 // Argument used for some kinds of sType
 
69
} SPECIAL_NUM+1 (46+1)
 
70
 
 
71
// Generators
 
72
struct powerSys {
 
73
        str_len:8 = 0x1E // Pascal string length
 
74
        name:str30 // Name
 
75
        itemGraphic:16 // Graphic that's displayed in the shop
 
76
        power:s8 // Amount of power provided by generator
 
77
        speed:8 // Unused
 
78
        cost:16 // Cost in shop
 
79
} POWER_NUM+1 (6+1)
 
80
 
 
81
// Ships
 
82
struct ships {
 
83
        str_len:8 = 0x1E // String length
 
84
        name:str30 // Name
 
85
        shipGraphic:16 // Graphic used in-game
 
86
        itemGraphic:16 // Graphic in shop
 
87
        ani:8 // Sets the threshold for when to change to the turning frames
 
88
        spd:s8 // Unused
 
89
        dmg:8 // amount of armor ship has
 
90
        cost:16 // Cost in shop
 
91
        bigShipGraphic:8 // Big graphic displayed on the left while in shop
 
92
} SHIP_NUM+1 (13+1)
 
93
 
 
94
// Sidekicks
 
95
struct options {
 
96
        str_len:8 = 0x1E // String length
 
97
        name:str30 // Name
 
98
        pwr:8 // Number of charge stages
 
99
        itemGraphic:16 // Graphic in shop
 
100
        cost:16 // Cost in shop
 
101
        tr:8 // Position and movement of sidekick
 
102
                // 0: Attached to side of ship
 
103
                // 1: Follower ship with turning graphics
 
104
                // 2: Attached to front of ship (player can "launch" if right sidekick)
 
105
                // 3: Follower ship with normal graphic
 
106
                // 4: Orbits around ship
 
107
        option:8 // Determines animation for ship
 
108
                // 0: Invisible
 
109
                // 1: Constantly animating
 
110
                // 2: Animates when firing
 
111
        opspd:s8 // Unused
 
112
        ani:8 // Number of frames in animation
 
113
        20x gr:16 // In-game sprite for each animation frame
 
114
        wport:8 // Weapon used for power usage, etc (index into weaponPort array)
 
115
        wpnum:16 // Bullet pattern (index into weapon array)
 
116
        ammo:8 // Amount of ammo
 
117
        stop:8 // Unused
 
118
        iconGr:8 // Icon in ammo indicators
 
119
} OPTION_NUM+1 (30+1)
 
120
 
 
121
struct shields {
 
122
        str_len:8 = 0x1E // String length
 
123
        name:str30 // Name
 
124
        tpwr:8 // Generator power needed to charge
 
125
        mpwr:8 // Amount of protection
 
126
        itemGraphic:16 // Item icon in shop
 
127
        cost:16 // Cost in shop
 
128
} SHIELD_NUM+1 (10+1)
 
129
 
 
130
// Enemy definitions (warning: some of this may be wrong)
 
131
struct enemyDat {
 
132
        ani:8 // Number of frames in animation
 
133
        3x tur:8 // Type of shot to fire (index into weapon) (1st: downwards, 2nd: right, 3rd: left)
 
134
        3x freq:8 // Wait between shots
 
135
        xmove:s8 // Horizontal speed
 
136
        ymove:s8 // Vertical speed
 
137
        xaccel:s8
 
138
        yaccel:s8
 
139
        xcaccel:s8 // Horizontal acceleration, more is less
 
140
        ycaccel:s8 // Vertical acceleration
 
141
        startx:s16
 
142
        starty:s16
 
143
        startxc:s8
 
144
        startyc:s8
 
145
        armor:8
 
146
        esize:8
 
147
        eGraphic:16
 
148
        explosionType:8
 
149
        animate:8
 
150
        shapeBank:8
 
151
        xRev:s8
 
152
        yRev:s8
 
153
        dgr:16
 
154
        dLevel:s8
 
155
        dAni:s8
 
156
        eLaunchFreq:8
 
157
        eLaunchType:16
 
158
        value:s16
 
159
        eEnemyDie:16
 
160
} ENEMY_NUM+1 (850+1)