2021-05-04 14:01:47 +00:00
|
|
|
#include "pkt_01_welcome.h"
|
2021-05-04 21:12:32 +00:00
|
|
|
#include "packet_utils.h"
|
2021-05-05 09:25:05 +00:00
|
|
|
#include "world/world.h"
|
2021-05-04 19:45:51 +00:00
|
|
|
#include "game.h"
|
2021-05-03 22:44:39 +00:00
|
|
|
|
2021-05-05 09:25:05 +00:00
|
|
|
#ifdef CLIENT
|
|
|
|
#include "entity_view.h"
|
2021-05-05 10:14:52 +00:00
|
|
|
#include "camera.h"
|
2021-05-05 09:25:05 +00:00
|
|
|
#endif
|
|
|
|
|
2021-05-04 11:04:15 +00:00
|
|
|
pkt_desc pkt_01_welcome_desc[] = {
|
2021-05-05 09:25:05 +00:00
|
|
|
{ PKT_FIELD(CWP_ITEM_POSITIVE_INTEGER, pkt_01_welcome, ent_id) },
|
2021-05-04 17:39:50 +00:00
|
|
|
{ PKT_FIELD(CWP_ITEM_POSITIVE_INTEGER, pkt_01_welcome, block_size) },
|
2021-05-03 23:57:19 +00:00
|
|
|
{ PKT_FIELD(CWP_ITEM_POSITIVE_INTEGER, pkt_01_welcome, chunk_size) },
|
2021-05-04 17:39:50 +00:00
|
|
|
{ PKT_FIELD(CWP_ITEM_POSITIVE_INTEGER, pkt_01_welcome, world_size) },
|
2021-05-03 23:57:19 +00:00
|
|
|
{ PKT_END },
|
|
|
|
};
|
2021-05-03 22:44:39 +00:00
|
|
|
|
2021-05-04 11:04:15 +00:00
|
|
|
size_t pkt_01_welcome_encode(pkt_01_welcome *table) {
|
|
|
|
cw_pack_context pc = {0};
|
2021-05-04 21:12:32 +00:00
|
|
|
pkt_pack_msg(&pc, pkt_pack_desc_args(pkt_01_welcome_desc));
|
2021-05-04 11:04:15 +00:00
|
|
|
pkt_pack_struct(&pc, pkt_01_welcome_desc, PKT_STRUCT_PTR(table));
|
|
|
|
return pkt_pack_msg_size(&pc);
|
|
|
|
}
|
|
|
|
|
2021-05-03 22:44:39 +00:00
|
|
|
int32_t pkt_01_welcome_handler(pkt_header *header) {
|
|
|
|
pkt_01_welcome table;
|
2021-05-04 21:12:32 +00:00
|
|
|
PKT_IF(pkt_msg_decode(header, pkt_01_welcome_desc, pkt_pack_desc_args(pkt_01_welcome_desc), PKT_STRUCT_PTR(&table)));
|
2021-05-03 22:44:39 +00:00
|
|
|
|
2021-05-05 09:25:05 +00:00
|
|
|
#ifdef CLIENT
|
2021-05-04 19:45:51 +00:00
|
|
|
if (game_is_networked()) {
|
2021-05-05 09:25:05 +00:00
|
|
|
zpl_printf("[INFO] initializing read-only world view ...\n");
|
2021-05-04 19:45:51 +00:00
|
|
|
world_init_minimal(table.block_size, table.chunk_size, table.world_size, NULL, NULL);
|
|
|
|
}
|
2021-05-05 09:25:05 +00:00
|
|
|
|
|
|
|
entity_view_update_or_create(table.ent_id, (entity_view){0});
|
2021-05-05 10:14:52 +00:00
|
|
|
camera_set_follow(table.ent_id);
|
2021-05-05 09:25:05 +00:00
|
|
|
#endif
|
2021-05-03 22:44:39 +00:00
|
|
|
return 0;
|
|
|
|
}
|