Merge remote-tracking branch 'upstream/master'

master
Maksim Gamarnik 2016-02-25 13:57:55 +02:00
commit 531f4188bc
3 changed files with 20 additions and 14 deletions

View File

@ -194,7 +194,7 @@ void main(void)
vec4 col = vec4(color.rgb * gl_Color.rgb, 1.0);
#if MATERIAL_TYPE == TILE_MATERIAL_LIQUID_TRANSPARENT || MATERIAL_TYPE == TILE_MATERIAL_LIQUID_OPAQUE
#if MATERIAL_TYPE == TILE_MATERIAL_LIQUID_TRANSPARENT
float alpha = gl_Color.a;
if (fogDistance != 0.0) {
float d = max(0.0, min(vPosition.z / fogDistance * 1.5 - 0.6, 1.0));

View File

@ -179,7 +179,12 @@ void OreSheet::generate(MMVManip *vm, int mapseed, u32 blockseed,
MapNode n_ore(c_ore, 0, ore_param2);
u16 max_height = column_height_max;
int y_start = pr.range(nmin.Y + max_height, nmax.Y - max_height);
int y_start_min = nmin.Y + max_height;
int y_start_max = nmax.Y - max_height;
int y_start = y_start_min < y_start_max ?
pr.range(y_start_min, y_start_max) :
(y_start_min + y_start_max) / 2;
if (!noise) {
int sx = nmax.X - nmin.X + 1;
@ -204,10 +209,10 @@ void OreSheet::generate(MMVManip *vm, int mapseed, u32 blockseed,
u16 height = pr.range(column_height_min, column_height_max);
int ymidpoint = y_start + noiseval;
int y0 = ymidpoint - height * (1 - column_midpoint_factor);
int y1 = y0 + height;
int y0 = MYMAX(nmin.Y, ymidpoint - height * (1 - column_midpoint_factor));
int y1 = MYMIN(nmax.Y, y0 + height - 1);
for (int y = y0; y < y1; y++) {
for (int y = y0; y <= y1; y++) {
u32 i = vm->m_area.index(x, y, z);
if (!vm->m_area.contains(i))
continue;

View File

@ -762,14 +762,14 @@ void Server::handleCommand_GotBlocks(NetworkPacket* pkt)
RemoteClient *client = getClient(pkt->getPeerId());
for (u16 i = 0; i < count; i++) {
if ((s16)pkt->getSize() < 1 + (i + 1) * 6)
throw con::InvalidIncomingDataException
if ((s16)pkt->getSize() < 1 + (int)count * 6) {
throw con::InvalidIncomingDataException
("GOTBLOCKS length is too short");
}
for (u16 i = 0; i < count; i++) {
v3s16 p;
*pkt >> p;
client->GotBlock(p);
}
}
@ -865,13 +865,14 @@ void Server::handleCommand_DeletedBlocks(NetworkPacket* pkt)
RemoteClient *client = getClient(pkt->getPeerId());
for (u16 i = 0; i < count; i++) {
if ((s16)pkt->getSize() < 1 + (i + 1) * 6)
throw con::InvalidIncomingDataException
if ((s16)pkt->getSize() < 1 + (int)count * 6) {
throw con::InvalidIncomingDataException
("DELETEDBLOCKS length is too short");
}
for (u16 i = 0; i < count; i++) {
v3s16 p;
*pkt >> p;
client->SetBlockNotSent(p);
}
}