This commit is contained in:
Nishi 2025-12-20 11:06:31 +09:00
commit 65c2ac8212
Signed by: nishi
GPG key ID: 27EF69B208EB9343
6 changed files with 56 additions and 6 deletions

View file

@ -125,6 +125,11 @@ static void cross(double* out, double v00, double v01, double v02, double v10, d
out[2] = v00 * v11 - v01 * v10;
}
/*
* v0-v2
* | /
* v1/
*/
void gl_calc_normal3(double* out, double v00, double v01, double v02, double v10, double v11, double v12, double v20, double v21, double v22) {
double v[3];
double l = 0;
@ -141,3 +146,28 @@ void gl_calc_normal3(double* out, double v00, double v01, double v02, double v10
out[i] = v[i] / l;
}
}
/*
* v0-v3
* | |
* v1-v2
*/
void gl_calc_normal4(double* out, double v00, double v01, double v02, double v10, double v11, double v12, double v20, double v21, double v22, double v30, double v31, double v32) {
double v0[3];
double v1[3];
int i;
double l = 0;
gl_calc_normal3(&v0[0], v00, v01, v02, v10, v11, v12, v30, v31, v32);
gl_calc_normal3(&v1[0], v10, v11, v12, v20, v21, v22, v30, v31, v32);
for(i = 0; i < 3; i++) {
out[i] = v0[i] + v1[i];
}
l = sqrt(out[0] * out[0] + out[1] * out[1] + out[2] * out[2]);
for(i = 0; i < 3; i++) {
out[i] = out[i] / l;
}
}

View file

@ -10,6 +10,9 @@ static void on_packet(fishsoup_client_t* client, fishsoup_packet_t* pkt) {
}
void net_connect(const char* username, const char* hostname, int port) {
fishsoup_packet_t pkt;
af_packet_join_t join;
scene_change(AF_SCENE_CONNECTING);
client = fishsoup_client(hostname, port == 0 ? AF_DEFAULT_PORT : port);
if(client == NULL) {
@ -17,7 +20,13 @@ void net_connect(const char* username, const char* hostname, int port) {
return;
}
pkt.header.type = AF_PACKET_JOIN;
pkt.header.length = sizeof(join);
pkt.data = &join;
fishsoup_client_on_packet(client, on_packet);
fishsoup_packet_send(client->fd, &pkt);
}
void net_poll(void) {

@ -1 +1 @@
Subproject commit 19a044c00adf6a839c30337be51c53399adc1f75
Subproject commit 6b9eb5de20afd9899aec561d43791f9c7aaac534

View file

@ -39,6 +39,7 @@ void gl_render(void);
void gl_resize(int width, int height);
void gl_scene_change(void);
void gl_calc_normal3(double* out, double v00, double v01, double v02, double v10, double v11, double v12, double v20, double v21, double v22);
void gl_calc_normal4(double* out, double v00, double v01, double v02, double v10, double v11, double v12, double v20, double v21, double v22, double v30, double v31, double v32);
/* gl_font.c */
void gl_font_init(void);

View file

@ -21,10 +21,14 @@
#define AF_VERSION "0.0.0"
#define AF_COPYRIGHT "Copyright (C) 2025 Fishsoup"
/* should be broadcasted! otherwise other user wouldn't know */
typedef struct af_pkt_join {
unsigned char length;
char* name;
} af_pkt_join_t;
enum AF_USER_PACKETS {
AF_PACKET_JOIN = FISHSOUP_PACKET_USER
};
#pragma pack(1)
typedef struct af_packet_join {
char name[256];
} af_packet_join_t;
#pragma pack()
#endif

View file

@ -1,4 +1,10 @@
#include <af_common.h>
int main(int argc, char** argv) {
fishsoup_server_t* server;
int port = 0;
server = fishsoup_server(port == 0 ? AF_DEFAULT_PORT : port);
fishsoup_server_loop(server);
}