5
5
6
6
uint8_t s3dat_image_header [4 ] = {12 , 0 , 0 , 0 };
7
7
8
- void s3dat_internal_extract_bitmap (s3dat_extracthandler_t * me , s3dat_res_t * res , s3dat_exception_t * * throws ) {
8
+ void s3dat_internal_extract_bitmap (s3dat_extracthandler_t * me , s3dat_res_t * res , s3util_exception_t * * throws ) {
9
9
s3dat_t * handle = me -> parent ;
10
10
11
11
uint32_t from = s3dat_internal_seek_to (handle , res , throws );
12
- S3DAT_HANDLE_EXCEPTION ( handle , throws , __FILE__ , __func__ , __LINE__ );
12
+ S3UTIL_HANDLE_EXCEPTION ( s3dat_memset ( handle ) , throws , __FILE__ , __func__ , __LINE__ );
13
13
14
14
void * header ;
15
15
uint32_t header_size = 12 ;
16
16
if (res -> type == s3dat_gui ) header_size = 8 ;
17
17
if (res -> type == s3dat_landscape ) header_size = 6 ;
18
18
19
19
20
- header = s3dat_alloc_func ( handle , header_size , throws );
21
- S3DAT_HANDLE_EXCEPTION ( handle , throws , __FILE__ , __func__ , __LINE__ );
20
+ header = s3util_alloc_func ( s3dat_memset ( handle ) , header_size , throws );
21
+ S3UTIL_HANDLE_EXCEPTION ( s3dat_memset ( handle ) , throws , __FILE__ , __func__ , __LINE__ );
22
22
23
- if (!handle -> read_func (handle -> io_arg , header , header_size )) {
24
- s3dat_free_func ( handle , header );
25
- s3dat_add_to_stack ( handle , throws , __FILE__ , __func__ , __LINE__ );
23
+ if (!s3dat_ioset ( handle ) -> read_func (s3dat_ioset ( handle ) -> arg , header , header_size )) {
24
+ s3util_free_func ( s3dat_memset ( handle ) , header );
25
+ s3util_add_to_stack ( s3dat_memset ( handle ) , throws , __FILE__ , __func__ , __LINE__ );
26
26
return ;
27
27
}
28
28
29
29
if (from % 2 == 1 ) {
30
- s3dat_internal_read8 ( handle , throws ); // this fill byte can be dropped
31
- S3DAT_HANDLE_EXCEPTION ( handle , throws , __FILE__ , __func__ , __LINE__ );
30
+ S3DAT_INTERNAL_READ ( 8 , handle , throws ); // this fill byte can be dropped
31
+ S3UTIL_HANDLE_EXCEPTION ( s3dat_memset ( handle ) , throws , __FILE__ , __func__ , __LINE__ );
32
32
}
33
33
34
34
uint16_t * img_meta ;
35
35
36
36
if (res -> type != s3dat_gui && res -> type != s3dat_landscape ) {
37
37
if (memcmp (header , s3dat_image_header , 4 ) != 0 ) {
38
- s3dat_throw ( handle , throws , S3DAT_EXCEPTION_HEADER , __FILE__ , __func__ , __LINE__ );
38
+ s3util_throw ( s3dat_memset ( handle ) , throws , S3UTIL_EXCEPTION_HEADER , __FILE__ , __func__ , __LINE__ );
39
39
return ;
40
40
}
41
41
@@ -45,28 +45,28 @@ void s3dat_internal_extract_bitmap(s3dat_extracthandler_t* me, s3dat_res_t* res,
45
45
}
46
46
47
47
if (img_meta [0 ] == 0 || img_meta [1 ] == 0 ) {
48
- s3dat_throw ( handle , throws , S3DAT_EXCEPTION_HEADER , __FILE__ , __func__ , __LINE__ );
48
+ s3util_throw ( s3dat_memset ( handle ) , throws , S3UTIL_EXCEPTION_HEADER , __FILE__ , __func__ , __LINE__ );
49
49
return ;
50
50
}
51
51
52
52
uint32_t pixel_size = 2 ;
53
53
if (res -> type == s3dat_shadow ) pixel_size = 0 ;
54
54
if (res -> type == s3dat_torso ) pixel_size = 1 ;
55
55
56
- uint16_t width = s3dat_le16 (img_meta [0 ]);
57
- uint16_t height = s3dat_le16 (img_meta [1 ]);
56
+ uint16_t width = s3util_le16 (img_meta [0 ]);
57
+ uint16_t height = s3util_le16 (img_meta [1 ]);
58
58
59
59
uint32_t bfr_size = pixel_size * width * height + header_size ;
60
- void * bfr = s3dat_alloc_func ( handle , bfr_size , throws );
60
+ void * bfr = s3util_alloc_func ( s3dat_memset ( handle ) , bfr_size , throws );
61
61
62
62
if (* throws != NULL ) {
63
- s3dat_free_func ( handle , header );
64
- s3dat_add_to_stack ( handle , throws , __FILE__ , __func__ , __LINE__ );
63
+ s3util_free_func ( s3dat_memset ( handle ) , header );
64
+ s3util_add_to_stack ( s3dat_memset ( handle ) , throws , __FILE__ , __func__ , __LINE__ );
65
65
return ;
66
66
}
67
67
68
68
memcpy (bfr , header , header_size );
69
- s3dat_free_func ( handle , header );
69
+ s3util_free_func ( s3dat_memset ( handle ) , header );
70
70
71
71
uint32_t read_size = header_size ;
72
72
@@ -76,26 +76,26 @@ void s3dat_internal_extract_bitmap(s3dat_extracthandler_t* me, s3dat_res_t* res,
76
76
bool end = false;
77
77
78
78
while (!end ) {
79
- uint16_t meta = s3dat_internal_read16LE ( handle , throws );
79
+ uint16_t meta = S3DAT_INTERNAL_READ ( 16L E , handle , throws );
80
80
if (* throws != NULL ) {
81
- s3dat_add_to_stack ( handle , throws , __FILE__ , __func__ , __LINE__ );
81
+ s3util_add_to_stack ( s3dat_memset ( handle ) , throws , __FILE__ , __func__ , __LINE__ );
82
82
end = true;
83
83
} else {
84
84
x += (meta & 0xFF );
85
85
x += ((meta >> 8 ) & 0x7F );
86
86
uint16_t data_len = ((meta & 0xFF )* pixel_size )+ 2 ;
87
87
88
88
uint8_t data_bfr [data_len ];
89
- * ((uint16_t * )data_bfr ) = s3dat_le16 (meta );
90
- if (handle -> read_func (handle -> io_arg , data_bfr + 2 , data_len - 2 )) {
89
+ * ((uint16_t * )data_bfr ) = s3util_le16 (meta );
90
+ if (s3dat_ioset ( handle ) -> read_func (s3dat_ioset ( handle ) -> arg , data_bfr + 2 , ( size_t ) data_len - 2 )) {
91
91
if (read_size + data_len > bfr_size ) {
92
- void * bfr2 = s3dat_alloc_func ( handle , bfr_size * 2 , throws );
92
+ void * bfr2 = s3util_alloc_func ( s3dat_memset ( handle ) , bfr_size * 2 , throws );
93
93
if (* throws != NULL ) {
94
94
end = true;
95
- s3dat_add_to_stack ( handle , throws , __FILE__ , __func__ , __LINE__ );
95
+ s3util_add_to_stack ( s3dat_memset ( handle ) , throws , __FILE__ , __func__ , __LINE__ );
96
96
} else {
97
97
memcpy (bfr2 , bfr , read_size );
98
- s3dat_free_func ( handle , bfr );
98
+ s3util_free_func ( s3dat_memset ( handle ) , bfr );
99
99
bfr = bfr2 ;
100
100
bfr_size *= 2 ;
101
101
}
@@ -106,7 +106,7 @@ void s3dat_internal_extract_bitmap(s3dat_extracthandler_t* me, s3dat_res_t* res,
106
106
read_size += data_len ;
107
107
}
108
108
} else {
109
- s3dat_throw ( handle , throws , S3DAT_EXCEPTION_IOERROR , __FILE__ , __func__ , __LINE__ );
109
+ s3util_throw ( s3dat_memset ( handle ) , throws , S3UTIL_EXCEPTION_IOERROR , __FILE__ , __func__ , __LINE__ );
110
110
end = true;
111
111
}
112
112
}
@@ -122,29 +122,29 @@ void s3dat_internal_extract_bitmap(s3dat_extracthandler_t* me, s3dat_res_t* res,
122
122
123
123
if ((x > width || y > height ) && * throws == NULL ) {
124
124
end = true;
125
- s3dat_throw ( handle , throws , S3DAT_EXCEPTION_OUT_OF_RANGE , __FILE__ , __func__ , __LINE__ );
125
+ s3util_throw ( s3dat_memset ( handle ) , throws , S3UTIL_EXCEPTION_OUT_OF_RANGE , __FILE__ , __func__ , __LINE__ );
126
126
}
127
127
}
128
128
129
129
if (* throws != NULL ) {
130
- s3dat_add_to_stack ( handle , throws , __FILE__ , __func__ , __LINE__ );
131
- s3dat_free_func ( handle , bfr );
130
+ s3util_add_to_stack ( s3dat_memset ( handle ) , throws , __FILE__ , __func__ , __LINE__ );
131
+ s3util_free_func ( s3dat_memset ( handle ) , bfr );
132
132
return ;
133
133
}
134
134
135
135
if (bfr_size != read_size ) {
136
- void * bfr2 = s3dat_alloc_func ( handle , read_size , NULL );
136
+ void * bfr2 = s3util_alloc_func ( s3dat_memset ( handle ) , read_size , NULL );
137
137
if (bfr2 ) {
138
138
memcpy (bfr2 , bfr , read_size );
139
- s3dat_free_func ( handle , bfr );
139
+ s3util_free_func ( s3dat_memset ( handle ) , bfr );
140
140
bfr = bfr2 ;
141
141
}
142
142
}
143
143
144
144
s3dat_ref_t * pack = s3dat_new_packed (handle , throws );
145
145
if (* throws != NULL ) {
146
- s3dat_free_func ( handle , bfr );
147
- s3dat_add_to_stack ( handle , throws , __FILE__ , __func__ , __LINE__ );
146
+ s3util_free_func ( s3dat_memset ( handle ) , bfr );
147
+ s3util_add_to_stack ( s3dat_memset ( handle ) , throws , __FILE__ , __func__ , __LINE__ );
148
148
} else {
149
149
pack -> data .pkd -> parent = handle ;
150
150
pack -> data .pkd -> data = bfr ;
@@ -153,7 +153,7 @@ void s3dat_internal_extract_bitmap(s3dat_extracthandler_t* me, s3dat_res_t* res,
153
153
}
154
154
}
155
155
156
- void s3dat_pack_bitmap (s3dat_t * handle , s3dat_bitmap_t * bitmap , s3dat_content_type type , s3dat_packed_t * packed , s3dat_exception_t * * throws ) {
156
+ void s3dat_pack_bitmap (s3dat_t * handle , s3dat_bitmap_t * bitmap , s3dat_content_type type , s3dat_packed_t * packed , s3util_exception_t * * throws ) {
157
157
uint32_t pixel_size = 2 ;
158
158
if (type == s3dat_shadow ) pixel_size = 0 ;
159
159
if (type == s3dat_torso ) pixel_size = 1 ;
@@ -191,8 +191,8 @@ void s3dat_pack_bitmap(s3dat_t* handle, s3dat_bitmap_t* bitmap, s3dat_content_ty
191
191
}
192
192
193
193
packed -> len = header_size + (metas * 2 )+ (datas * pixel_size );
194
- packed -> data = s3dat_alloc_func ( handle , header_size + (metas * 2 )+ (datas * pixel_size ), throws );
195
- S3DAT_HANDLE_EXCEPTION ( handle , throws , __FILE__ , __func__ , __LINE__ );
194
+ packed -> data = s3util_alloc_func ( s3dat_memset ( handle ) , header_size + (metas * 2 )+ (datas * pixel_size ), throws );
195
+ S3UTIL_HANDLE_EXCEPTION ( s3dat_memset ( handle ) , throws , __FILE__ , __func__ , __LINE__ );
196
196
197
197
uint16_t * size_meta ;
198
198
@@ -206,13 +206,13 @@ void s3dat_pack_bitmap(s3dat_t* handle, s3dat_bitmap_t* bitmap, s3dat_content_ty
206
206
memcpy (packed -> data , s3dat_image_header , 4 );
207
207
size_meta = packed -> data + 4 ;
208
208
209
- uint16_t * off_ptr = packed -> data + 8 ;
210
- off_ptr [0 ] = s3dat_le16 ( bitmap -> xoff );
211
- off_ptr [1 ] = s3dat_le16 ( bitmap -> yoff );
209
+ int16_t * off_ptr = packed -> data + 8 ;
210
+ off_ptr [0 ] = s3util_le16 (( uint16_t ) bitmap -> xoff );
211
+ off_ptr [1 ] = s3util_le16 (( uint16_t ) bitmap -> yoff );
212
212
}
213
213
214
- size_meta [0 ] = s3dat_le16 (bitmap -> width );
215
- size_meta [1 ] = s3dat_le16 (bitmap -> height );
214
+ size_meta [0 ] = s3util_le16 (bitmap -> width );
215
+ size_meta [1 ] = s3util_le16 (bitmap -> height );
216
216
217
217
uint16_t * meta = packed -> data + header_size ;
218
218
uint8_t * data = packed -> data + header_size + 2 ;
@@ -233,7 +233,7 @@ void s3dat_pack_bitmap(s3dat_t* handle, s3dat_bitmap_t* bitmap, s3dat_content_ty
233
233
current_clear ++ ;
234
234
}else if (stat == 2 ) {
235
235
stat = 3 ;
236
- } else if ( stat == 0 ) {
236
+ } else { // stat == 0
237
237
stat = 1 ;
238
238
}
239
239
}
@@ -245,7 +245,7 @@ void s3dat_pack_bitmap(s3dat_t* handle, s3dat_bitmap_t* bitmap, s3dat_content_ty
245
245
current_clear = 0 ;
246
246
247
247
if ((x + 1 ) == bitmap -> width ) tmp_meta |= (1 <<15 );
248
- * meta = s3dat_le16 (tmp_meta );
248
+ * meta = s3util_le16 (tmp_meta );
249
249
250
250
meta = (uint16_t * )data ;
251
251
data += 2 ;
@@ -269,7 +269,7 @@ s3dat_color_t s3dat_internal_ex(void* addr, s3dat_color_type type) {
269
269
return color ;
270
270
}
271
271
272
- uint16_t raw = s3dat_le16p (addr );
272
+ uint16_t raw = s3util_le16p (addr );
273
273
274
274
if (type == s3dat_rgb555 ) {
275
275
color .red = (uint8_t )(((raw >> 10 ) & 0x1F )* d58 );
@@ -316,26 +316,26 @@ void s3dat_internal_8b_to_native(s3dat_color_t* color, void* to, s3dat_color_typ
316
316
green = (green ) << 5 ;
317
317
}
318
318
319
- * ptr16 = s3dat_le16 (red + green + blue );
319
+ * ptr16 = s3util_le16 (red + green + blue );
320
320
}
321
321
322
322
s3dat_color_t s3dat_internal_error_color = {0 , 0 , 0 , 0 };
323
323
324
- s3dat_color_t s3dat_extract_palette_color (s3dat_t * handle , uint16_t palette , uint8_t brightness , uint32_t x , s3dat_exception_t * * throws ) {
324
+ s3dat_color_t s3dat_extract_palette_color (s3dat_t * handle , uint16_t palette , uint8_t brightness , uint32_t x , s3util_exception_t * * throws ) {
325
325
if (palette > handle -> palette_index -> len ) {
326
- s3dat_throw ( handle , throws , S3DAT_EXCEPTION_OUT_OF_RANGE , __FILE__ , __func__ , __LINE__ );
326
+ s3util_throw ( s3dat_memset ( handle ) , throws , S3UTIL_EXCEPTION_OUT_OF_RANGE , __FILE__ , __func__ , __LINE__ );
327
327
return s3dat_internal_error_color ;
328
328
}
329
329
330
- s3dat_internal_seek_func (handle , handle -> palette_index -> pointers [palette ]+ brightness * handle -> palette_line_length + x , S3DAT_SEEK_SET , throws );
330
+ s3dat_internal_seek_func (handle , handle -> palette_index -> pointers [palette ]+ brightness * handle -> palette_line_length + x , S3UTIL_SEEK_SET , throws );
331
331
if (* throws != NULL ) {
332
- s3dat_add_to_stack ( handle , throws , __FILE__ , __func__ , __LINE__ );
332
+ s3util_add_to_stack ( s3dat_memset ( handle ) , throws , __FILE__ , __func__ , __LINE__ );
333
333
return s3dat_internal_error_color ;
334
334
}
335
335
336
- uint16_t color = s3dat_internal_read16LE ( handle , throws );
336
+ uint16_t color = S3DAT_INTERNAL_READ ( 16L E , handle , throws );
337
337
if (* throws != NULL ) {
338
- s3dat_add_to_stack ( handle , throws , __FILE__ , __func__ , __LINE__ );
338
+ s3util_add_to_stack ( s3dat_memset ( handle ) , throws , __FILE__ , __func__ , __LINE__ );
339
339
return s3dat_internal_error_color ;
340
340
}
341
341
0 commit comments