void restore_and_move (mc_connection *mc, int t, int x, int y, int z) { int xp = mc->mc_server_data.mc_player_db[256].x; int yp = mc->mc_server_data.mc_player_db[256].y; int zp = mc->mc_server_data.mc_player_db[256].z; if (dist3d(x, y, z, xp, yp, zp) < 6) { restore_block(mc, t, x, y, z); } else { mc_proto_send_pos(mc, x, y, z, 130, 130); mc_proto_send_pos(mc, x, y, z, 130, 130); restore_block(mc, t, x, y, z); } }
void swill_sock_restore_block(int sock, int value) { restore_block(sock, value); #if defined(GONZO_DEBUG) && (GONZO_DEBUG > 0) fprintf(stderr, "GONZO: Restored block on socket %d to value %d\n", sock, value); #endif }
void TextMan::erase_textbox() { if (!game.window.active) { debugC(3, kDebugLevelText, "no window active"); return; } debugC(4, kDebugLevelText, "x1=%d, y1=%d, x2=%d, y2=%d", game.window.x1, game.window.y1, game.window.x2, game.window.y2); restore_block(game.window.x1, game.window.y1, game.window.x2, game.window.y2, game.window.buffer); free(game.window.buffer); game.window.active = false; do_update(); }
int mc_client_parse_packet (mc_connection *mc, char *buffer) { int i, ii; int x, y, z; char buf[129]; if (buffer[0] == 0x00) { memset(buffer+2, 0x20, 129); memcpy(buffer+2, mc->mc_client_name, strlen(mc->mc_client_name)); memcpy(buffer+66, mc->mc_server_password, strlen(mc->mc_server_password)); } else if (buffer[0] == 0x05) { memcpy(&x, &buffer[1], sizeof(short)); memcpy(&y, &buffer[3], sizeof(short)); memcpy(&z, &buffer[5], sizeof(short)); mc->mc_server_data.mc_level_data[offset(mc, htons(x), htons(y), htons(z))] = buffer[8]; if (mc->mc_mode & MC_WAITING_FOR_1) { mc->mc_server_data.x1 = htons(x); mc->mc_server_data.y1 = htons(y); mc->mc_server_data.z1 = htons(z); printf("First point: %d %d %d\n", mc->mc_server_data.x1, mc->mc_server_data.y1, mc->mc_server_data.z1); restore_block(mc, buffer[8], mc->mc_server_data.x1, mc->mc_server_data.y1, mc->mc_server_data.z1); mc->mc_mode &= ~MC_WAITING_FOR_1; mc->mc_mode |= MC_WAITING_FOR_2; return MC_CONTINUE; } else if (mc->mc_mode & MC_WAITING_FOR_2) { mc->mc_server_data.x2 = htons(x); mc->mc_server_data.y2 = htons(y); mc->mc_server_data.z2 = htons(z); printf("Second point: %d %d %d\n", mc->mc_server_data.x2, mc->mc_server_data.y2, mc->mc_server_data.z2); restore_block(mc, buffer[8], mc->mc_server_data.x2, mc->mc_server_data.y2, mc->mc_server_data.z2); if (mc->mc_mode & MC_USE_TYPE) { mc->mc_server_data.type = buffer[8]; printf("Using type %d\n", buffer[8]); mc->mc_mode &= ~MC_USE_TYPE; } mc->mc_mode &= ~MC_WAITING_FOR_2; pthread_t thd; pthread_create(&thd, NULL, cuboid_thread, mc); pthread_join(thd, NULL); return MC_CONTINUE; } } else if (buffer[0] == 0x08) { if (mc->mc_mode & MC_HIDE_POSITION) { return MC_CONTINUE; } } else if (buffer[0] == 0x0D) { for(i = 2, ii = 0; i < 66; ++i, ++ii) { if(buffer[i] == '&') { if(i <= 64) i += 2; } buf[ii] = buffer[i]; } buf[64] = 0; if (buf[0] == '\'') { mc_client_command_parser(mc, buf); return MC_CONTINUE; } } return MC_SEND; }
static int set_nonblock(int socket) { restore_block(socket, 1); return 0; }