aboutsummaryrefslogtreecommitdiff
path: root/project/src/db-mkw.h
blob: 6c49f913e036b429512555bdfc27f79d2a77793d (plain) (blame)
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127

//
///////////////////////////////////////////////////////////////////////////////
//////   This file is created by a script. Modifications will be lost!   //////
///////////////////////////////////////////////////////////////////////////////

#ifndef SZS_DB_MKW_H
#define SZS_DB_MKW_H 1

#include "lib-std.h"
#include "lib-mkw.h"

//
///////////////////////////////////////////////////////////////////////////////
///////////////////////////   struct TrackInfo_t   ////////////////////////////
///////////////////////////////////////////////////////////////////////////////

// [[TrackInfo_t]] (generic code)

typedef struct TrackInfo_t
{
    u16		bmg_mid;	// standard message id for BMG files
    u8		track_id;	// track id (0..41)
    u8		def_index;	// default index (0..31)
    u8		def_slot;	// default slot (11..84/25)
    u8		music_id;	// music ID

    ccp		abbrev;		// short name
    ccp		name_en;	// english name
    ccp		name_de;	// german name
    ccp		track_fname;	// track file name
    ccp		sound_n_fname;	// file name of normal sound
    ccp		sound_f_fname;	// file name of fast sound

} TrackInfo_t;


//
///////////////////////////////////////////////////////////////////////////////
/////////////////////////////////   tracks   //////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

enum // some constants
{
    FW_TRACK_NAME_EN	= 23,
    FW_TRACK_NAME_DE	= 23,
    FW_TRACK_FNAME	= 19,
    FW_TRACK_SOUND_N	= 21,
    FW_TRACK_SOUND_F	= 21,
};

//-----------------------------------------------------------------------------

extern const u32 track_pos_default[32];
extern       u32 track_pos[32];
extern       u32 track_pos_r[32];

extern       u32 track_pos_swap[32];
extern const KeywordTab_t track_name_tab[];
int ScanTrack ( ccp name );

//
///////////////////////////////////////////////////////////////////////////////
/////////////////////////////////   arenas   //////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

enum // some constants
{
    FW_ARENA_NAME_EN	= 20,
    FW_ARENA_NAME_DE	= 19,
    FW_ARENA_FNAME	= 17,
    FW_ARENA_SOUND_N	= 15,
    FW_ARENA_SOUND_F	= 15,
};

//-----------------------------------------------------------------------------

extern const u32 arena_pos_default[10];
extern       u32 arena_pos[10];
extern       u32 arena_pos_r[10];

extern const KeywordTab_t arena_name_tab[];
int ScanArena ( ccp name );

//
///////////////////////////////////////////////////////////////////////////////
///////////////////////////   vars and functtions   ///////////////////////////
///////////////////////////////////////////////////////////////////////////////

extern const TrackInfo_t InvalidTrack;
extern const TrackInfo_t track_info[MKW_N_TRACKS];
extern const TrackInfo_t arena_info[MKW_N_ARENAS];

static inline const TrackInfo_t * GetTrackInfo ( uint tidx )
{
    return tidx < MKW_N_TRACKS
		? track_info + tidx
		: tidx < MKW_N_TRACKS + MKW_N_ARENAS
			? arena_info + tidx - MKW_N_TRACKS
			: 0;
}

//
///////////////////////////////////////////////////////////////////////////////
///////////////////////////   struct MusicInfo_t   ////////////////////////////
///////////////////////////////////////////////////////////////////////////////

// [[MusicInfo_t]] (generic code)

typedef struct MusicInfo_t
{
    uint	id;		// ID
    uint	flags;		// 1:track, 2:arena, 4:retro
    int		track;		// -1:no, 0-31:track, 32-41:arena
    char	name[8];	// short name

} MusicInfo_t;

extern const MusicInfo_t music_info[MKW_N_MUSIC+1];


//
///////////////////////////////////////////////////////////////////////////////
//////////////////////////////////   E N D   //////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

#endif // SZS_DB_MKW_H