コード例 #1
0
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);
	}
}  
コード例 #2
0
ファイル: sock.c プロジェクト: zonbrisad/makeplates
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
}  
コード例 #3
0
ファイル: text.cpp プロジェクト: iPodLinux-Community/iScummVM
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();
}
コード例 #4
0
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;
}
コード例 #5
0
ファイル: sock.c プロジェクト: zonbrisad/makeplates
static int set_nonblock(int socket)
{
   restore_block(socket, 1);
   return 0;
}