From e26dc5cc0aaeb81ee7c6419ea91f8eef7d072ef3 Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Sat, 1 Feb 2014 21:40:50 +0000 Subject: [PATCH] Added checks for ice into IsBlockWater() * This fixes players spawning in vast oceans of ice, as opposed to the previous water --- src/Defines.h | 11 +++++++++-- src/World.cpp | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/Defines.h b/src/Defines.h index 3a26f4be6..b3dbcc93e 100644 --- a/src/Defines.h +++ b/src/Defines.h @@ -254,9 +254,16 @@ inline bool IsValidItem(int a_ItemType) -inline bool IsBlockWater(BLOCKTYPE a_BlockType) +inline bool IsBlockWater(BLOCKTYPE a_BlockType, bool a_IncludeFrozenWater = false) { - return ((a_BlockType == E_BLOCK_WATER) || (a_BlockType == E_BLOCK_STATIONARY_WATER)); + if (a_IncludeFrozenWater) + { + return ((a_BlockType == E_BLOCK_WATER) || (a_BlockType == E_BLOCK_STATIONARY_WATER) || (a_BlockType == E_BLOCK_ICE)); + } + else + { + return ((a_BlockType == E_BLOCK_WATER) || (a_BlockType == E_BLOCK_STATIONARY_WATER)); + } } diff --git a/src/World.cpp b/src/World.cpp index f2981bf84..2571a6782 100644 --- a/src/World.cpp +++ b/src/World.cpp @@ -635,7 +635,7 @@ void cWorld::GenerateRandomSpawn(void) { LOGD("Generating random spawnpoint..."); - while (IsBlockWater(GetBlock((int)m_SpawnX, GetHeight((int)m_SpawnX, (int)m_SpawnZ), (int)m_SpawnZ))) + while (IsBlockWater(GetBlock((int)m_SpawnX, GetHeight((int)m_SpawnX, (int)m_SpawnZ), (int)m_SpawnZ), true)) { if ((GetTickRandomNumber(4) % 2) == 0) // Randomise whether to increment X or Z coords {