commit 85e6e35
uint
·
2026-08-05 01:37:39 +0000 UTC
parent 8867659
use magnolia types in mc protos
7 files changed,
+117,
-116
M
TODO
+3,
-2
1@@ -1,10 +1,10 @@
2 uint:
3-[ ] Clean up test_scene.h
4-[ ] Consolidate variable initaliasation methods
5+[ ] Remove `renderer_backend`
6 [ ] mc_*, mg_random type cleanup (int->i8 on bool)
7 [ ] Review `block`
8 [ ] Small3DLib inline?? check ANSI
9
10+[ ] Consolidate variable initaliasation methods
11 [-] Face Hiding
12 [-] Chunk meshing
13 [ ] Greedily
14@@ -21,6 +21,7 @@ uint:
15
16 [ ] Check it works on Windows
17
18+[X] Clean up test_scene.h
19 [X] Maus wayland
20 [X] Wireframe
21 [X] Separate SDL from main.c
+6,
-6
1@@ -56,7 +56,7 @@ typedef enum {
2
3 /* log in to minecraft server
4 returns 1 on success, 0 on failure */
5-int mc_client_login(MCClient** out, const char* address, const MCAccount* account, char* error, size_t error_size);
6+i8 mc_client_login(MCClient** out, const char* address, const MCAccount* account, char* error, size_t error_size);
7
8 /* interrupt blocking client operations */
9 void mc_client_interrupt(MCClient* client);
10@@ -66,23 +66,23 @@ void mc_client_destroy(MCClient* client);
11
12 /* read next packet from client
13 returns 1 on success, 0 on failure */
14-int mc_client_read(MCClient* client, MCPacket* packet, char* error, size_t error_size);
15+i8 mc_client_read(MCClient* client, MCPacket* packet, char* error, size_t error_size);
16
17 /* write packet to client
18 returns 1 on success, 0 on failure */
19-int mc_client_write(MCClient* client, i32 packet_id, const void* data, size_t size);
20+i8 mc_client_write(MCClient* client, i32 packet_id, const void* data, size_t size);
21
22 /* poll for packets
23 returns 1: packet recieved, 0: no packet awaiting, -1: connection error */
24-int mc_client_poll(MCClient* client, MCPacket* packet, char* error, size_t error_size);
25+i8 mc_client_poll(MCClient* client, MCPacket* packet, char* error, size_t error_size);
26
27 /* free packet data */
28 void mc_packet_free(MCPacket* packet);
29
30 /* send server player look data
31 returns 1 on success, 0 on failure */
32-int mc_client_send_position_look(MCClient* client, double x, double feet_y, double z, float yaw, float pitch,
33- i8 grounded);
34+i8 mc_client_send_position_look(MCClient* client, double x, double feet_y, double z, float yaw, float pitch,
35+ i8 grounded);
36
37 /* get client username
38 returns username, or empty string for null client */
+9,
-9
1@@ -13,13 +13,13 @@
2 #define MC_JOIN_PATH "/session/minecraft/join"
3
4 static long http_status(const MCBuffer* response);
5-static int json_string(MCBuffer* buffer, const char* value);
6-static int tls_read_response(struct tls* tls, MCBuffer* response);
7-static int tls_write_all(struct tls* tls, const void* data, size_t size);
8+static i8 json_string(MCBuffer* buffer, const char* value);
9+static i8 tls_read_response(struct tls* tls, MCBuffer* response);
10+static i8 tls_write_all(struct tls* tls, const void* data, size_t size);
11
12 /* write escaped JSON string
13 returns 1 on success, 0 on failure */
14-static int json_string(MCBuffer* buffer, const char* value)
15+static i8 json_string(MCBuffer* buffer, const char* value)
16 {
17 const unsigned char* p = (const unsigned char*)value;
18 if (!bufwrite_u8(buffer, '"'))
19@@ -81,7 +81,7 @@ static int json_string(MCBuffer* buffer, const char* value)
20
21 /* write all bytes to TLS connection
22 returns 1 on success, 0 on failure */
23-static int tls_write_all(struct tls* tls, const void* data, size_t size)
24+static i8 tls_write_all(struct tls* tls, const void* data, size_t size)
25 {
26 const u8* bytes = (const u8*)data;
27 size_t sent = 0;
28@@ -99,7 +99,7 @@ static int tls_write_all(struct tls* tls, const void* data, size_t size)
29
30 /* read TLS response
31 returns 1 on success, 0 on failure */
32-static int tls_read_response(struct tls* tls, MCBuffer* response)
33+static i8 tls_read_response(struct tls* tls, MCBuffer* response)
34 {
35 u8 data[2048];
36
37@@ -130,8 +130,8 @@ static long http_status(const MCBuffer* response)
38 return status;
39 }
40
41-int mc_join_server(const MCAccount* account, const char* server_id, const u8 shared_secret[16], const u8* public_key,
42- size_t public_key_size, char* error, size_t error_size)
43+i8 mc_join_server(const MCAccount* account, const char* server_id, const u8 shared_secret[16], const u8* public_key,
44+ size_t public_key_size, char* error, size_t error_size)
45 {
46 struct tls_config* config = NULL;
47 struct tls* tls = NULL;
48@@ -141,7 +141,7 @@ int mc_join_server(const MCAccount* account, const char* server_id, const u8 sha
49 char hash[42];
50 char headers[512];
51 long status;
52- int ok = 0;
53+ i8 ok = 0;
54
55 if (!account->access_token || !account->access_token[0] || !account->profile_uuid ||
56 !account->profile_uuid[0]) {
+23,
-23
1@@ -36,7 +36,7 @@ void buffree(MCBuffer* buffer)
2 }
3
4 /* make sure an MCBuffer has can fit its current size + extra bytes */
5-int bufreserve(MCBuffer* buffer, size_t extra)
6+i8 bufreserve(MCBuffer* buffer, size_t extra)
7 {
8 size_t needed;
9 size_t capacity;
10@@ -63,7 +63,7 @@ int bufreserve(MCBuffer* buffer, size_t extra)
11 return 1;
12 }
13
14-int bufwrite(MCBuffer* buffer, const void* data, size_t size)
15+i8 bufwrite(MCBuffer* buffer, const void* data, size_t size)
16 {
17 if (!bufreserve(buffer, size))
18 return 0;
19@@ -73,12 +73,12 @@ int bufwrite(MCBuffer* buffer, const void* data, size_t size)
20 return 1;
21 }
22
23-int bufwrite_u8(MCBuffer* buffer, u8 value)
24+i8 bufwrite_u8(MCBuffer* buffer, u8 value)
25 {
26 return bufwrite(buffer, &value, 1);
27 }
28
29-int bufwrite_u16(MCBuffer* buffer, u16 value)
30+i8 bufwrite_u16(MCBuffer* buffer, u16 value)
31 {
32 u8 data[2];
33 /* minecraft protocol integers are big-endian except VarInt
34@@ -88,7 +88,7 @@ int bufwrite_u16(MCBuffer* buffer, u16 value)
35 return bufwrite(buffer, data, sizeof(data));
36 }
37
38-int bufwrite_i32(MCBuffer* buffer, i32 value)
39+i8 bufwrite_i32(MCBuffer* buffer, i32 value)
40 {
41 u32 v = (u32)value;
42 u8 data[4];
43@@ -99,31 +99,31 @@ int bufwrite_i32(MCBuffer* buffer, i32 value)
44 return bufwrite(buffer, data, sizeof(data));
45 }
46
47-int bufwrite_i64(MCBuffer* buffer, i64 value)
48+i8 bufwrite_i64(MCBuffer* buffer, i64 value)
49 {
50 u64 v = (u64)value;
51 u8 data[8];
52- int i;
53+ i32 i;
54 for (i = 0; i < 8; ++i)
55 data[i] = (u8)(v >> (56 - i * 8));
56 return bufwrite(buffer, data, sizeof(data));
57 }
58
59-int bufwrite_f32(MCBuffer* buffer, float value)
60+i8 bufwrite_f32(MCBuffer* buffer, float value)
61 {
62 u32 bits;
63 memcpy(&bits, &value, sizeof(bits));
64 return bufwrite_i32(buffer, (i32)bits);
65 }
66
67-int bufwrite_f64(MCBuffer* buffer, double value)
68+i8 bufwrite_f64(MCBuffer* buffer, double value)
69 {
70 u64 bits;
71 memcpy(&bits, &value, sizeof(bits));
72 return bufwrite_i64(buffer, (i64)bits);
73 }
74
75-int bufwrite_varint(MCBuffer* buffer, i32 value)
76+i8 bufwrite_varint(MCBuffer* buffer, i32 value)
77 {
78 u32 v = (u32)value;
79 /* minecraft VarInt is 7 data bits per byte (5 bytes max on i32) and
80@@ -140,7 +140,7 @@ int bufwrite_varint(MCBuffer* buffer, i32 value)
81 return 1;
82 }
83
84-int bufwrite_string(MCBuffer* buffer, const char* value)
85+i8 bufwrite_string(MCBuffer* buffer, const char* value)
86 {
87 size_t size = strlen(value);
88 if (size > MC_MAX_STRING_SIZE)
89@@ -148,7 +148,7 @@ int bufwrite_string(MCBuffer* buffer, const char* value)
90 return bufwrite_varint(buffer, (i32)size) && bufwrite(buffer, value, size);
91 }
92
93-int bufread(MCBuffer* buffer, void* out, size_t size)
94+i8 bufread(MCBuffer* buffer, void* out, size_t size)
95 {
96 if (size > buffer->size - buffer->cursor)
97 return 0;
98@@ -158,12 +158,12 @@ int bufread(MCBuffer* buffer, void* out, size_t size)
99 return 1;
100 }
101
102-int bufread_u8(MCBuffer* buffer, u8* value)
103+i8 bufread_u8(MCBuffer* buffer, u8* value)
104 {
105 return bufread(buffer, value, 1);
106 }
107
108-int bufread_u16(MCBuffer* buffer, u16* value)
109+i8 bufread_u16(MCBuffer* buffer, u16* value)
110 {
111 u8 data[2];
112 if (!bufread(buffer, data, sizeof(data)))
113@@ -172,7 +172,7 @@ int bufread_u16(MCBuffer* buffer, u16* value)
114 return 1;
115 }
116
117-int bufread_i32(MCBuffer* buffer, i32* value)
118+i8 bufread_i32(MCBuffer* buffer, i32* value)
119 {
120 u8 data[4];
121 u32 result;
122@@ -183,11 +183,11 @@ int bufread_i32(MCBuffer* buffer, i32* value)
123 return 1;
124 }
125
126-int bufread_i64(MCBuffer* buffer, i64* value)
127+i8 bufread_i64(MCBuffer* buffer, i64* value)
128 {
129 u8 data[8];
130 u64 result = 0;
131- int i;
132+ i32 i;
133 if (!bufread(buffer, data, sizeof(data)))
134 return 0;
135 for (i = 0; i < 8; ++i)
136@@ -196,7 +196,7 @@ int bufread_i64(MCBuffer* buffer, i64* value)
137 return 1;
138 }
139
140-int bufread_f32(MCBuffer* buffer, float* value)
141+i8 bufread_f32(MCBuffer* buffer, float* value)
142 {
143 i32 bits;
144 if (!bufread_i32(buffer, &bits))
145@@ -205,7 +205,7 @@ int bufread_f32(MCBuffer* buffer, float* value)
146 return 1;
147 }
148
149-int bufread_f64(MCBuffer* buffer, double* value)
150+i8 bufread_f64(MCBuffer* buffer, double* value)
151 {
152 i64 bits;
153 if (!bufread_i64(buffer, &bits))
154@@ -214,10 +214,10 @@ int bufread_f64(MCBuffer* buffer, double* value)
155 return 1;
156 }
157
158-int bufread_varint(MCBuffer* buffer, i32* value)
159+i8 bufread_varint(MCBuffer* buffer, i32* value)
160 {
161 u32 result = 0;
162- int shift;
163+ i32 shift;
164
165 /* VarInt is at best 5 bytes for a 32-bit value
166 https://wikivg.booky.dev/Protocol#VarInt_and_VarLong
167@@ -236,7 +236,7 @@ int bufread_varint(MCBuffer* buffer, i32* value)
168 return 0;
169 }
170
171-int bufread_string(MCBuffer* buffer, char* value, size_t value_size)
172+i8 bufread_string(MCBuffer* buffer, char* value, size_t value_size)
173 {
174 i32 length;
175 if (!bufread_varint(buffer, &length) || length < 0 || (size_t)length >= value_size ||
176@@ -248,7 +248,7 @@ int bufread_string(MCBuffer* buffer, char* value, size_t value_size)
177 return 1;
178 }
179
180-int bufread_bytes(MCBuffer* buffer, const u8** value, size_t* size)
181+i8 bufread_bytes(MCBuffer* buffer, const u8** value, size_t* size)
182 {
183 i32 length;
184 if (!bufread_varint(buffer, &length) || length < 0 || (size_t)length > buffer->size - buffer->cursor)
+35,
-35
1@@ -18,21 +18,21 @@
2 #define MSG_NOSIGNAL 0
3 #endif
4
5-static int handle_encryption(MCClient* client, const MCAccount* account, MCPacket* packet, char* error,
6- size_t error_size);
7-static int login_loop(MCClient* client, const MCAccount* account, char* error, size_t error_size);
8-static int send_handshake(MCClient* client);
9-static int send_login_start(MCClient* client);
10-static int socket_read(MCClient* client, u8* data, size_t size);
11-static int socket_read_varint(MCClient* client, i32* value);
12-static int socket_write(MCClient* client, const u8* data, size_t size);
13-static int split_address(const char* address, char* host, size_t host_size, u16* port, char* error, size_t error_size);
14-static int tcp_connect(MCClient* client, char* error, size_t error_size);
15+static i8 handle_encryption(MCClient* client, const MCAccount* account, MCPacket* packet, char* error,
16+ size_t error_size);
17+static i8 login_loop(MCClient* client, const MCAccount* account, char* error, size_t error_size);
18+static i8 send_handshake(MCClient* client);
19+static i8 send_login_start(MCClient* client);
20+static i8 socket_read(MCClient* client, u8* data, size_t size);
21+static i8 socket_read_varint(MCClient* client, i32* value);
22+static i8 socket_write(MCClient* client, const u8* data, size_t size);
23+static i8 split_address(const char* address, char* host, size_t host_size, u16* port, char* error, size_t error_size);
24+static i8 tcp_connect(MCClient* client, char* error, size_t error_size);
25
26 /* handle server encryption request
27 returns 1 on success, 0 on failure */
28-static int handle_encryption(MCClient* client, const MCAccount* account, MCPacket* packet, char* error,
29- size_t error_size)
30+static i8 handle_encryption(MCClient* client, const MCAccount* account, MCPacket* packet, char* error,
31+ size_t error_size)
32 {
33 MCBuffer input = { packet->data, packet->size, packet->size, 0 };
34 MCBuffer response;
35@@ -46,7 +46,7 @@ static int handle_encryption(MCClient* client, const MCAccount* account, MCPacke
36 u8* encrypted_token = NULL;
37 size_t encrypted_secret_size = 0;
38 size_t encrypted_token_size = 0;
39- int ok = 0;
40+ i8 ok = 0;
41
42 /* parse the server encryption request */
43 if (!bufread_string(&input, server_id, sizeof(server_id)) ||
44@@ -94,7 +94,7 @@ cleanup:
45
46 /* process login packets until play state
47 returns 1 on success, 0 on failure */
48-static int login_loop(MCClient* client, const MCAccount* account, char* error, size_t error_size)
49+static i8 login_loop(MCClient* client, const MCAccount* account, char* error, size_t error_size)
50 {
51 /* login state packet ids for protocol 47:
52 0x00 disconnect
53@@ -122,7 +122,7 @@ static int login_loop(MCClient* client, const MCAccount* account, char* error, s
54 return 0;
55 }
56 if (packet.id == 0x01) {
57- int ok = handle_encryption(client, account, &packet, error, error_size);
58+ i8 ok = handle_encryption(client, account, &packet, error, error_size);
59 mc_packet_free(&packet);
60 if (!ok)
61 return 0;
62@@ -163,10 +163,10 @@ static int login_loop(MCClient* client, const MCAccount* account, char* error, s
63
64 /* send handshake packet
65 returns 1 on success, 0 on failure */
66-static int send_handshake(MCClient* client)
67+static i8 send_handshake(MCClient* client)
68 {
69 MCBuffer payload;
70- int ok;
71+ i8 ok;
72 bufinit(&payload);
73 /* handshake to next state 2 switches the connection into login state */
74 ok = bufwrite_varint(&payload, MC_PROTOCOL_1_8_9) && bufwrite_string(&payload, client->host) &&
75@@ -178,10 +178,10 @@ static int send_handshake(MCClient* client)
76
77 /* send login start packet
78 returns 1 on success, 0 on failure */
79-static int send_login_start(MCClient* client)
80+static i8 send_login_start(MCClient* client)
81 {
82 MCBuffer payload;
83- int ok;
84+ i8 ok;
85 bufinit(&payload);
86 ok = bufwrite_string(&payload, client->username) && mc_client_write(client, 0x00, payload.data, payload.size);
87 buffree(&payload);
88@@ -190,7 +190,7 @@ static int send_login_start(MCClient* client)
89
90 /* read bytes from socket
91 returns 1 on success, 0 on failure */
92-static int socket_read(MCClient* client, u8* data, size_t size)
93+static i8 socket_read(MCClient* client, u8* data, size_t size)
94 {
95 size_t offset = 0;
96 while (offset < size) {
97@@ -212,10 +212,10 @@ static int socket_read(MCClient* client, u8* data, size_t size)
98
99 /* read VarInt from socket
100 returns 1 on success, 0 on failure */
101-static int socket_read_varint(MCClient* client, i32* value)
102+static i8 socket_read_varint(MCClient* client, i32* value)
103 {
104 u32 result = 0;
105- int shift;
106+ i32 shift;
107 for (shift = 0; shift < 35; shift += 7) {
108 u8 byte;
109 if (!socket_read(client, &byte, 1))
110@@ -231,7 +231,7 @@ static int socket_read_varint(MCClient* client, i32* value)
111
112 /* write bytes to socket
113 returns 1 on success, 0 on failure */
114-static int socket_write(MCClient* client, const u8* data, size_t size)
115+static i8 socket_write(MCClient* client, const u8* data, size_t size)
116 {
117 u8 encrypted[4096];
118 size_t offset = 0;
119@@ -263,7 +263,7 @@ static int socket_write(MCClient* client, const u8* data, size_t size)
120
121 /* parse address into host and port
122 returns 1 on success, 0 on failure */
123-static int split_address(const char* address, char* host, size_t host_size, u16* port, char* error, size_t error_size)
124+static i8 split_address(const char* address, char* host, size_t host_size, u16* port, char* error, size_t error_size)
125 {
126 const char* colon = strrchr(address, ':');
127 const char* end = address + strlen(address);
128@@ -306,7 +306,7 @@ static int split_address(const char* address, char* host, size_t host_size, u16*
129
130 /* connect to the configured server address
131 returns 1 on success, 0 on failure */
132-static int tcp_connect(MCClient* client, char* error, size_t error_size)
133+static i8 tcp_connect(MCClient* client, char* error, size_t error_size)
134 {
135 struct addrinfo hints;
136 struct addrinfo* addresses = NULL;
137@@ -345,14 +345,14 @@ static int tcp_connect(MCClient* client, char* error, size_t error_size)
138 return 1;
139 }
140
141-int mc_client_write(MCClient* client, i32 packet_id, const void* data, size_t size)
142+i8 mc_client_write(MCClient* client, i32 packet_id, const void* data, size_t size)
143 {
144 MCBuffer body;
145 MCBuffer framed;
146 MCBuffer length;
147 u8* compressed = NULL;
148 uLongf compressed_size;
149- int ok = 0;
150+ i8 ok = 0;
151
152 if (!client || client->socket_fd < 0 || size > MC_MAX_PACKET_SIZE)
153 return 0;
154@@ -405,15 +405,15 @@ cleanup:
155 return ok;
156 }
157
158-int mc_client_read(MCClient* client, MCPacket* packet, char* error, size_t error_size)
159+i8 mc_client_read(MCClient* client, MCPacket* packet, char* error, size_t error_size)
160 {
161 i32 frame_length;
162 MCBuffer frame;
163 MCBuffer decoded;
164 i32 data_length;
165 i32 packet_id;
166- int decoded_allocated = 0;
167- int ok = 0;
168+ i8 decoded_allocated = 0;
169+ i8 ok = 0;
170
171 memset(packet, 0, sizeof(*packet));
172 bufinit(&frame);
173@@ -495,7 +495,7 @@ void mc_packet_free(MCPacket* packet)
174 }
175
176 /*create a client */
177-int mc_client_login(MCClient** out, const char* address, const MCAccount* account, char* error, size_t error_size)
178+i8 mc_client_login(MCClient** out, const char* address, const MCAccount* account, char* error, size_t error_size)
179 {
180 MCClient* client;
181 size_t username_size;
182@@ -555,7 +555,7 @@ void mc_client_destroy(MCClient* client)
183 free(client);
184 }
185
186-int mc_client_poll(MCClient* client, MCPacket* packet, char* error, size_t error_size)
187+i8 mc_client_poll(MCClient* client, MCPacket* packet, char* error, size_t error_size)
188 {
189 struct pollfd fd;
190 int result;
191@@ -596,11 +596,11 @@ int mc_client_poll(MCClient* client, MCPacket* packet, char* error, size_t error
192 return 0;
193 }
194
195-int mc_client_send_position_look(MCClient* client, double x, double feet_y, double z, float yaw, float pitch,
196- i8 grounded)
197+i8 mc_client_send_position_look(MCClient* client, double x, double feet_y, double z, float yaw, float pitch,
198+ i8 grounded)
199 {
200 MCBuffer payload;
201- int ok;
202+ i8 ok;
203
204 bufinit(&payload);
205
+17,
-17
1@@ -12,9 +12,9 @@ typedef struct {
2 } DERReader;
3
4 static u8 cipher_byte(MCCipher* cipher);
5-static int der_length(DERReader* reader, size_t* length);
6-static int der_value(DERReader* reader, u8 tag, DERReader* value);
7-static int rsa_public_key(const u8* der, size_t der_size, br_rsa_public_key* key, char* error, size_t error_size);
8+static i8 der_length(DERReader* reader, size_t* length);
9+static i8 der_value(DERReader* reader, u8 tag, DERReader* value);
10+static i8 rsa_public_key(const u8* der, size_t der_size, br_rsa_public_key* key, char* error, size_t error_size);
11 static void twos_complement(u8* data, size_t size);
12
13 /* generate next cipher stream byte
14@@ -30,12 +30,12 @@ static u8 cipher_byte(MCCipher* cipher)
15
16 /* read DER length
17 returns 1 on success, 0 on failure */
18-static int der_length(DERReader* reader, size_t* length)
19+static i8 der_length(DERReader* reader, size_t* length)
20 {
21- u8 first;
22- size_t value = 0;
23- unsigned count;
24- unsigned i;
25+ u8 first;
26+ size_t value = 0;
27+ u32 count;
28+ u32 i;
29
30 if (reader->cursor >= reader->size)
31 return 0;
32@@ -57,7 +57,7 @@ static int der_length(DERReader* reader, size_t* length)
33
34 /* read DER value by tag
35 returns 1 on success, 0 on failure */
36-static int der_value(DERReader* reader, u8 tag, DERReader* value)
37+static i8 der_value(DERReader* reader, u8 tag, DERReader* value)
38 {
39 size_t length;
40 if (reader->cursor >= reader->size || reader->data[reader->cursor++] != tag || !der_length(reader, &length))
41@@ -71,7 +71,7 @@ static int der_value(DERReader* reader, u8 tag, DERReader* value)
42
43 /* parse the server's X.509 RSA pubkey for BearSSL
44 returns 1 on success, 0 on failure */
45-static int rsa_public_key(const u8* der, size_t der_size, br_rsa_public_key* key, char* error, size_t error_size)
46+static i8 rsa_public_key(const u8* der, size_t der_size, br_rsa_public_key* key, char* error, size_t error_size)
47 {
48 DERReader root = { der, der_size, 0 };
49 DERReader spki;
50@@ -109,12 +109,12 @@ static int rsa_public_key(const u8* der, size_t der_size, br_rsa_public_key* key
51 /* convert bytes to twos complement in place */
52 static void twos_complement(u8* data, size_t size)
53 {
54- size_t i = size;
55- unsigned carry = 1;
56+ size_t i = size;
57+ u32 carry = 1;
58 while (i > 0) {
59- unsigned value;
60+ u32 value;
61 --i;
62- value = (unsigned)(data[i] ^ 0xff) + carry;
63+ value = (u32)(data[i] ^ 0xff) + carry;
64 data[i] = (u8)value;
65 carry = value >> 8;
66 }
67@@ -148,8 +148,8 @@ void mc_cipher_decrypt(MCCipher* cipher, u8* data, size_t size)
68 }
69 }
70
71-int mc_rsa_encrypt(const u8* public_key, size_t public_key_size, const u8* message, size_t message_size, u8** encrypted,
72- size_t* encrypted_size, char* error, size_t error_size)
73+i8 mc_rsa_encrypt(const u8* public_key, size_t public_key_size, const u8* message, size_t message_size, u8** encrypted,
74+ size_t* encrypted_size, char* error, size_t error_size)
75 {
76 br_rsa_public_key key;
77 br_rsa_public rsa;
78@@ -210,7 +210,7 @@ void mc_server_hash(const char* server_id, const u8 shared_secret[16], const u8*
79 size_t first = 0;
80 size_t i;
81 size_t out = 0;
82- int negative;
83+ i8 negative;
84
85 br_sha1_init(&sha);
86 br_sha1_update(&sha, server_id, strlen(server_id));
+24,
-24
1@@ -30,7 +30,7 @@ struct MCClient {
2 char username[17];
3 char uuid[37];
4 i32 compression_threshold;
5- int encrypted;
6+ i8 encrypted;
7 MCCipher read_cipher;
8 MCCipher write_cipher;
9 };
10@@ -39,36 +39,36 @@ void mc_set_error(MCErrorCode code, char* error, size_t error_size, const char*
11
12 void bufinit(MCBuffer* buffer);
13 void buffree(MCBuffer* buffer);
14-int bufreserve(MCBuffer* buffer, size_t extra);
15-int bufwrite(MCBuffer* buffer, const void* data, size_t size);
16-int bufwrite_u8(MCBuffer* buffer, u8 value);
17-int bufwrite_u16(MCBuffer* buffer, u16 value);
18-int bufwrite_i32(MCBuffer* buffer, i32 value);
19-int bufwrite_i64(MCBuffer* buffer, i64 value);
20-int bufwrite_f32(MCBuffer* buffer, float value);
21-int bufwrite_f64(MCBuffer* buffer, double value);
22-int bufwrite_varint(MCBuffer* buffer, i32 value);
23-int bufwrite_string(MCBuffer* buffer, const char* value);
24+i8 bufreserve(MCBuffer* buffer, size_t extra);
25+i8 bufwrite(MCBuffer* buffer, const void* data, size_t size);
26+i8 bufwrite_u8(MCBuffer* buffer, u8 value);
27+i8 bufwrite_u16(MCBuffer* buffer, u16 value);
28+i8 bufwrite_i32(MCBuffer* buffer, i32 value);
29+i8 bufwrite_i64(MCBuffer* buffer, i64 value);
30+i8 bufwrite_f32(MCBuffer* buffer, float value);
31+i8 bufwrite_f64(MCBuffer* buffer, double value);
32+i8 bufwrite_varint(MCBuffer* buffer, i32 value);
33+i8 bufwrite_string(MCBuffer* buffer, const char* value);
34
35-int bufread(MCBuffer* buffer, void* out, size_t size);
36-int bufread_u8(MCBuffer* buffer, u8* value);
37-int bufread_u16(MCBuffer* buffer, u16* value);
38-int bufread_i32(MCBuffer* buffer, i32* value);
39-int bufread_i64(MCBuffer* buffer, i64* value);
40-int bufread_f32(MCBuffer* buffer, float* value);
41-int bufread_f64(MCBuffer* buffer, double* value);
42-int bufread_varint(MCBuffer* buffer, i32* value);
43-int bufread_string(MCBuffer* buffer, char* value, size_t value_size);
44-int bufread_bytes(MCBuffer* buffer, const u8** value, size_t* size);
45+i8 bufread(MCBuffer* buffer, void* out, size_t size);
46+i8 bufread_u8(MCBuffer* buffer, u8* value);
47+i8 bufread_u16(MCBuffer* buffer, u16* value);
48+i8 bufread_i32(MCBuffer* buffer, i32* value);
49+i8 bufread_i64(MCBuffer* buffer, i64* value);
50+i8 bufread_f32(MCBuffer* buffer, float* value);
51+i8 bufread_f64(MCBuffer* buffer, double* value);
52+i8 bufread_varint(MCBuffer* buffer, i32* value);
53+i8 bufread_string(MCBuffer* buffer, char* value, size_t value_size);
54+i8 bufread_bytes(MCBuffer* buffer, const u8** value, size_t* size);
55
56 void mc_cipher_init(MCCipher* cipher, const u8 key[16]);
57 void mc_cipher_encrypt(MCCipher* cipher, u8* data, size_t size);
58 void mc_cipher_decrypt(MCCipher* cipher, u8* data, size_t size);
59-int mc_rsa_encrypt(const u8* public_key, size_t public_key_size, const u8* message, size_t message_size, u8** encrypted,
60- size_t* encrypted_size, char* error, size_t error_size);
61+i8 mc_rsa_encrypt(const u8* public_key, size_t public_key_size, const u8* message, size_t message_size, u8** encrypted,
62+ size_t* encrypted_size, char* error, size_t error_size);
63 void mc_server_hash(const char* server_id, const u8 shared_secret[16], const u8* public_key, size_t public_key_size,
64 char output[42]);
65-int mc_join_server(const MCAccount* account, const char* server_id, const u8 shared_secret[16], const u8* public_key,
66+i8 mc_join_server(const MCAccount* account, const char* server_id, const u8 shared_secret[16], const u8* public_key,
67 size_t public_key_size, char* error, size_t error_size);
68
69 #endif /* MC_PROTO_INTERNAL_H */