forked from LemonHaze420/UEFAStriker96
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFONT.H
187 lines (133 loc) · 3.46 KB
/
FONT.H
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
#define TEXTMAN_TSLOTS 160 // max num tslots
//*** Text manager slots ***
enum {
LOLLY_TSLOT,
SHELL_TSLOT,
REQUEST_TSLOT,
MAIN_TSLOT,
HILITE_TSLOT,
};
enum
{
TINY_FONT,
MILFORD_FONT,
TITLE_FONT,
MAX_FONTS,
};
// font commands
#define FONT_XC 1
#define FONT_YC 2
#define FONT_LJUST 4
#define FONT_RJUST 8
#define FONT_NORMAL 16
#define MAX_TEXT_STRINGS_ACTIVE 32 // in a single group
typedef struct
{
UBYTE fr;
UBYTE wd;
}Font_adjust;
typedef struct
{
UBYTE graphic_type;
UBYTE alpha_lower;
UBYTE alpha_upper;
UBYTE numeric;
UBYTE comma;
UBYTE stop;
UBYTE exclamation;
UBYTE double_quote;
UBYTE single_quote;
UBYTE dollar;
UBYTE pound;
UBYTE hat;
UBYTE ampersand;
UBYTE asterisk;
UBYTE open_bracket;
UBYTE close_bracket;
UBYTE plus;
UBYTE minus;
UBYTE hash;
UBYTE question_mark;
UBYTE colon;
UBYTE less_than;
UBYTE greater_than;
UBYTE ret;
UBYTE backspace;
UBYTE space; // rectangle shape for enter name
UBYTE dummy_space; // used to get width for space sprite (not displayed)
BYTE x_gap_size; // x gap between characters
BYTE y_gap_size; // y gap between characters
UBYTE slash;
Font_adjust adjust[32]; // list of frames that require adjustment
}Font_data;
typedef struct
{
Font_data *font_data;
UBYTE lookup_list[256];
}Font;
void add_font ( Font_data *font_data, UWORD font_num );
void init_fonts();
void unspawn_text_string( Sprite *sprite );
void unspawn_all_text_strings();
void set_text_string_velocity( Sprite *sprite, LONG xv1, LONG yv1, LONG xv2, LONG yv2 );
void set_text_string_upd( Sprite *sprite, void *upd );
void apply_to_sprite_string( Sprite *sprite );
void get_group_sprite ( WORD group );
//extern Sprite *tail_font_sprite;
//extern Font_data font1_data;
//extern Font_data font2_data;
extern Font *resident_fonts[];
void italic_font_logic ( Sprite *sprite );
void milford_font_logic ( Sprite *sprite );
void milford_font_logic_solid ( Sprite *sprite );
void milford_font_logic_sub ( Sprite *sprite );
WORD count_word_size( UBYTE *ptr, WORD font_type );
#define FONT_INIT 0
#define FONT_STAGE1 1
#define FONT_STAGE2 2
#define FONT_STAGE3 3
#define FONT_SELECTED 4
#define FONT_DYING 5
#define FONT_DEAD 6
typedef struct Textman_struct
{
WORD active;
WORD to_die; //kill_flag;
Sprite *head_sprite;
Sprite *tail_sprite;
WORD x,y;
void *font_logic;
WORD font_num;
WORD font_type;
WORD justify_type;
WORD spawn_group;
WORD max_brightness;
WORD x1,x2,y1,y2;
UBYTE string[512];
WORD rt_edge_pos;
struct Gadget *gadget;
WORD fade_up_speed;
WORD die_speed;
WORD depth;
CVECTOR text_color; //tint;
WORD dim_if_requester_box_active;
WORD delay_until_fade_up;
WORD flash_text; /* Yes = flash it */
}Textman_struct;
typedef struct
{
Textman_struct *text_string_list;
WORD max_text_strings;
WORD slot_cnt;
}Textman_header;
extern Textman_header textman_header;
void start_text_manager( WORD text_strings );
void adjust_text_string_pos ( Sprite *sprite, WORD xamount, WORD yamount );
Textman_struct *add_text_string ( WORD slot, UBYTE *string, WORD font_type, void *font_logic, WORD x, WORD y, WORD justify_type, WORD spawn_group, Gadget *gadget, WORD fade_up_speed, WORD die_speed, WORD fade_up_delay );
void spawn_text_string ( Textman_struct *textman );
void set_textman_slot( WORD slot_pos, WORD num_slots );
extern WORD tslot_poses[];
void set_rdb_size_from_tm( Rdb_gadget *rdb, Textman_struct *tm );
void update_text_manager();
void set_ts_title_color( Textman_struct *ts );