mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-05 15:48:19 +00:00
an update :D
This commit is contained in:
parent
0dd86dd084
commit
8233a44b60
BIN
data/demo.map
BIN
data/demo.map
Binary file not shown.
BIN
data/dm2.map
BIN
data/dm2.map
Binary file not shown.
|
@ -602,6 +602,15 @@ void client::run(const char *direct_connect_server)
|
|||
if(input::pressed(input::lctrl) && input::pressed('Q'))
|
||||
break;
|
||||
|
||||
if(input::pressed(input::f5))
|
||||
{
|
||||
// ack snapshot
|
||||
msg_pack_start_system(NETMSG_SNAPACK, 0);
|
||||
msg_pack_int(-1);
|
||||
msg_pack_end();
|
||||
client_send_msg();
|
||||
}
|
||||
|
||||
// pump the network
|
||||
pump_network();
|
||||
|
||||
|
@ -794,7 +803,7 @@ void client::process_packet(NETPACKET *packet)
|
|||
error("failure to load map");
|
||||
}
|
||||
}
|
||||
else if(msg == NETMSG_SNAP || msg == NETMSG_SNAPSMALL || msg == NETMSG_SNAPEMPTY)
|
||||
else if(msg == NETMSG_SNAP || msg == NETMSG_SNAPEMPTY) //|| msg == NETMSG_SNAPSMALL || msg == NETMSG_SNAPEMPTY)
|
||||
{
|
||||
//dbg_msg("client/network", "got snapshot");
|
||||
int game_tick = msg_unpack_int();
|
||||
|
@ -802,15 +811,19 @@ void client::process_packet(NETPACKET *packet)
|
|||
int num_parts = 1;
|
||||
int part = 0;
|
||||
int part_size = 0;
|
||||
int crc = 0;
|
||||
|
||||
if(msg == NETMSG_SNAP)
|
||||
//if(msg == NETMSG_SNAP)
|
||||
{
|
||||
num_parts = msg_unpack_int();
|
||||
part = msg_unpack_int();
|
||||
//num_parts = msg_unpack_int();
|
||||
//part = msg_unpack_int();
|
||||
}
|
||||
|
||||
if(msg != NETMSG_SNAPEMPTY)
|
||||
{
|
||||
part_size = msg_unpack_int();
|
||||
crc = msg_unpack_int();
|
||||
}
|
||||
|
||||
if(snapshot_part == part)
|
||||
{
|
||||
|
@ -831,6 +844,8 @@ void client::process_packet(NETPACKET *packet)
|
|||
unsigned char tmpbuffer2[MAX_SNAPSHOT_SIZE];
|
||||
if(part_size)
|
||||
{
|
||||
if(msg == NETMSG_SNAPEMPTY)
|
||||
dbg_msg("client", "FAILURE!");
|
||||
int compsize = zerobit_decompress(snapshot_incomming_data, part_size, tmpbuffer);
|
||||
int intsize = intpack_decompress(tmpbuffer, compsize, tmpbuffer2);
|
||||
deltadata = tmpbuffer2;
|
||||
|
@ -858,6 +873,8 @@ void client::process_packet(NETPACKET *packet)
|
|||
}
|
||||
}
|
||||
|
||||
//dbg_msg("UNPACK", "%d unpacked with %d", game_tick, delta_tick);
|
||||
|
||||
unsigned char tmpbuffer3[MAX_SNAPSHOT_SIZE];
|
||||
int snapsize = snapshot_unpack_delta(deltashot, (snapshot*)tmpbuffer3, deltadata, deltasize);
|
||||
|
||||
|
@ -873,6 +890,10 @@ void client::process_packet(NETPACKET *packet)
|
|||
// add new
|
||||
snapshot_info *snap = client_snapshot_add(game_tick, time_get(), tmpbuffer3, snapsize);
|
||||
|
||||
//int ncrc = snapshot_crc((snapshot*)tmpbuffer3);
|
||||
//if(crc != ncrc)
|
||||
//dbg_msg("client", "client snapshot crc failure %d %d", crc, ncrc);
|
||||
|
||||
// apply snapshot, cycle pointers
|
||||
recived_snapshots++;
|
||||
|
||||
|
@ -908,10 +929,13 @@ void client::process_packet(NETPACKET *packet)
|
|||
snapshot_part = 0;
|
||||
|
||||
// ack snapshot
|
||||
msg_pack_start_system(NETMSG_SNAPACK, 0);
|
||||
msg_pack_int(game_tick);
|
||||
msg_pack_end();
|
||||
client_send_msg();
|
||||
//if((rand()%10)==0)
|
||||
{
|
||||
msg_pack_start_system(NETMSG_SNAPACK, 0);
|
||||
msg_pack_int(game_tick);
|
||||
msg_pack_end();
|
||||
client_send_msg();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -175,7 +175,8 @@ bool gfx_init()
|
|||
indecies[i*6 + 5] = i+2;
|
||||
}*/
|
||||
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
|
||||
//glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
|
||||
// create null texture, will get id=0
|
||||
gfx_load_texture_raw(4,4,IMG_RGBA,null_texture_data);
|
||||
|
|
|
@ -164,10 +164,12 @@ public:
|
|||
void *new_item(int type, int id, int size)
|
||||
{
|
||||
snapshot::item *obj = (snapshot::item *)(data+data_size);
|
||||
mem_zero(obj, sizeof(snapshot::item) + size);
|
||||
obj->type_and_id = (type<<16)|id;
|
||||
offsets[num_items] = data_size;
|
||||
data_size += sizeof(snapshot::item) + size;
|
||||
num_items++;
|
||||
|
||||
dbg_assert(data_size < MAX_SNAPSHOT_SIZE, "too much data");
|
||||
dbg_assert(num_items < MAX_ITEMS, "too many items");
|
||||
|
||||
|
|
|
@ -300,10 +300,13 @@ public:
|
|||
delta_tick = clients[i].last_acked_snapshot;
|
||||
deltashot = (snapshot *)delta_data;
|
||||
}
|
||||
else
|
||||
dbg_msg("server", "no delta, sending full snapshot");
|
||||
}
|
||||
|
||||
// create delta
|
||||
int deltasize = snapshot_create_delta(deltashot, (snapshot*)data, deltadata);
|
||||
//dbg_msg("PACK", "%d unpacked with %d", current_tick, delta_tick);
|
||||
|
||||
if(deltasize)
|
||||
{
|
||||
|
@ -327,13 +330,14 @@ public:
|
|||
int chunk = left < max_size ? left : max_size;
|
||||
left -= chunk;
|
||||
|
||||
if(numpackets == 1)
|
||||
msg_pack_start_system(NETMSG_SNAPSMALL, 0);
|
||||
else
|
||||
msg_pack_start_system(NETMSG_SNAP, 0);
|
||||
//if(numpackets == 1)
|
||||
// msg_pack_start_system(NETMSG_SNAPSMALL, 0);
|
||||
//else
|
||||
msg_pack_start_system(NETMSG_SNAP, 0);
|
||||
msg_pack_int(current_tick);
|
||||
msg_pack_int(current_tick-delta_tick); // compressed with
|
||||
msg_pack_int(chunk);
|
||||
msg_pack_int(snapshot_crc((snapshot*)data));
|
||||
msg_pack_raw(&compdata[n*max_size], chunk);
|
||||
msg_pack_end();
|
||||
//const msg_info *info = msg_get_info();
|
||||
|
|
|
@ -27,6 +27,21 @@ void *snapshot_empty_delta()
|
|||
return ∅
|
||||
}
|
||||
|
||||
int snapshot_crc(snapshot *snap)
|
||||
{
|
||||
int crc = 0;
|
||||
|
||||
for(int i = 0; i < snap->num_items; i++)
|
||||
{
|
||||
snapshot::item *item = snap->get_item(i);
|
||||
int size = snap->get_item_datasize(i);
|
||||
|
||||
for(int b = 0; b < size/4; b++)
|
||||
crc += item->data()[b];
|
||||
}
|
||||
return crc;
|
||||
}
|
||||
|
||||
static int diff_item(int *past, int *current, int *out, int size)
|
||||
{
|
||||
/*
|
||||
|
|
|
@ -41,6 +41,7 @@ struct snapshot
|
|||
};
|
||||
|
||||
void *snapshot_empty_delta();
|
||||
int snapshot_crc(snapshot *snap);
|
||||
int snapshot_create_delta(snapshot *from, snapshot *to, void *data);
|
||||
int snapshot_unpack_delta(snapshot *from, snapshot *to, void *data, int data_size);
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ void tilemap_render(float scale, int fg)
|
|||
int endy = (int)(screen_y1/scale)+1;
|
||||
int endx = (int)(screen_x1/scale)+1;
|
||||
|
||||
float frac = (1.0f/1024.0f);//2.0f; //2.0f;
|
||||
float frac = (1.25f/1024.0f);//2.0f; //2.0f;
|
||||
float texsize = 1024.0f;
|
||||
float nudge = 0.5f/texsize;
|
||||
for(int y = starty; y < endy; y++)
|
||||
|
|
|
@ -41,6 +41,9 @@ int run(int port, netaddr4 dest)
|
|||
if(bytes <= 0)
|
||||
break;
|
||||
|
||||
if((rand()%10) == 0) // drop the packet
|
||||
continue;
|
||||
|
||||
// create new packet
|
||||
packet *p = (packet *)mem_alloc(sizeof(packet)+bytes, 1);
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@ int main(int argc, char **argv)
|
|||
tilemap_borderfix(w, h, buffer[0], buffer[1]);
|
||||
|
||||
// save here
|
||||
png_open_file_write(&png, "output.png");
|
||||
png_open_file_write(&png, argv[1]);
|
||||
png_set_data(&png, w, h, 8, PNG_TRUECOLOR_ALPHA, (unsigned char *)buffer[1]);
|
||||
png_close_file(&png);
|
||||
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.9 KiB |
Binary file not shown.
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 50 KiB |
Binary file not shown.
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 21 KiB |
Loading…
Reference in a new issue