commit
883230abbc
@ -247,15 +247,16 @@ void cBeaconEntity::GiveEffects(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
cPlayerCallback(int a_Radius, int a_PosX, int a_PosY, int a_PosZ, cEntityEffect::eType a_PrimaryEffect, cEntityEffect::eType a_SecondaryEffect, short a_EffectLevel)
|
cPlayerCallback(int a_Radius, int a_PosX, int a_PosY, int a_PosZ, cEntityEffect::eType a_PrimaryEffect, cEntityEffect::eType a_SecondaryEffect, short a_EffectLevel):
|
||||||
: m_Radius(a_Radius)
|
m_Radius(a_Radius),
|
||||||
, m_PosX(a_PosX)
|
m_PosX(a_PosX),
|
||||||
, m_PosY(a_PosY)
|
m_PosY(a_PosY),
|
||||||
, m_PosZ(a_PosZ)
|
m_PosZ(a_PosZ),
|
||||||
, m_PrimaryEffect(a_PrimaryEffect)
|
m_PrimaryEffect(a_PrimaryEffect),
|
||||||
, m_SecondaryEffect(a_SecondaryEffect)
|
m_SecondaryEffect(a_SecondaryEffect),
|
||||||
, m_EffectLevel(a_EffectLevel)
|
m_EffectLevel(a_EffectLevel)
|
||||||
{};
|
{
|
||||||
|
}
|
||||||
|
|
||||||
} PlayerCallback(Radius, m_PosX, m_PosY, m_PosZ, m_PrimaryEffect, SecondaryEffect, EffectLevel);
|
} PlayerCallback(Radius, m_PosX, m_PosY, m_PosZ, m_PrimaryEffect, SecondaryEffect, EffectLevel);
|
||||||
GetWorld()->ForEachPlayer(PlayerCallback);
|
GetWorld()->ForEachPlayer(PlayerCallback);
|
||||||
|
@ -32,7 +32,7 @@ class cBeaconEntity :
|
|||||||
public:
|
public:
|
||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
BLOCKENTITY_PROTODEF(cBeaconEntity);
|
BLOCKENTITY_PROTODEF(cBeaconEntity)
|
||||||
|
|
||||||
cBeaconEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World);
|
cBeaconEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World);
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ class cBlockEntityWithItems :
|
|||||||
public:
|
public:
|
||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
BLOCKENTITY_PROTODEF(cBlockEntityWithItems);
|
BLOCKENTITY_PROTODEF(cBlockEntityWithItems)
|
||||||
|
|
||||||
cBlockEntityWithItems(
|
cBlockEntityWithItems(
|
||||||
BLOCKTYPE a_BlockType, // Type of the block that the entity represents
|
BLOCKTYPE a_BlockType, // Type of the block that the entity represents
|
||||||
|
@ -33,7 +33,7 @@ public:
|
|||||||
|
|
||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
BLOCKENTITY_PROTODEF(cChestEntity);
|
BLOCKENTITY_PROTODEF(cChestEntity)
|
||||||
|
|
||||||
/** Constructor used for normal operation */
|
/** Constructor used for normal operation */
|
||||||
cChestEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World, BLOCKTYPE a_Type);
|
cChestEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World, BLOCKTYPE a_Type);
|
||||||
|
@ -36,7 +36,7 @@ public:
|
|||||||
|
|
||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
BLOCKENTITY_PROTODEF(cCommandBlockEntity);
|
BLOCKENTITY_PROTODEF(cCommandBlockEntity)
|
||||||
|
|
||||||
/// Creates a new empty command block entity
|
/// Creates a new empty command block entity
|
||||||
cCommandBlockEntity(int a_X, int a_Y, int a_Z, cWorld * a_World);
|
cCommandBlockEntity(int a_X, int a_Y, int a_Z, cWorld * a_World);
|
||||||
|
@ -17,7 +17,7 @@ public:
|
|||||||
|
|
||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
BLOCKENTITY_PROTODEF(cDispenserEntity);
|
BLOCKENTITY_PROTODEF(cDispenserEntity)
|
||||||
|
|
||||||
/** Constructor used for normal operation */
|
/** Constructor used for normal operation */
|
||||||
cDispenserEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World);
|
cDispenserEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World);
|
||||||
|
@ -45,7 +45,7 @@ public:
|
|||||||
|
|
||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
BLOCKENTITY_PROTODEF(cDropSpenserEntity);
|
BLOCKENTITY_PROTODEF(cDropSpenserEntity)
|
||||||
|
|
||||||
cDropSpenserEntity(BLOCKTYPE a_BlockType, int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World);
|
cDropSpenserEntity(BLOCKTYPE a_BlockType, int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World);
|
||||||
virtual ~cDropSpenserEntity();
|
virtual ~cDropSpenserEntity();
|
||||||
|
@ -25,7 +25,7 @@ public:
|
|||||||
|
|
||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
BLOCKENTITY_PROTODEF(cDropperEntity);
|
BLOCKENTITY_PROTODEF(cDropperEntity)
|
||||||
|
|
||||||
/// Constructor used for normal operation
|
/// Constructor used for normal operation
|
||||||
cDropperEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World);
|
cDropperEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World);
|
||||||
|
@ -18,7 +18,7 @@ class cEnderChestEntity :
|
|||||||
public:
|
public:
|
||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
BLOCKENTITY_PROTODEF(cEnderChestEntity);
|
BLOCKENTITY_PROTODEF(cEnderChestEntity)
|
||||||
|
|
||||||
cEnderChestEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World);
|
cEnderChestEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World);
|
||||||
virtual ~cEnderChestEntity();
|
virtual ~cEnderChestEntity();
|
||||||
|
@ -36,7 +36,7 @@ public:
|
|||||||
|
|
||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
BLOCKENTITY_PROTODEF(cFlowerPotEntity);
|
BLOCKENTITY_PROTODEF(cFlowerPotEntity)
|
||||||
|
|
||||||
/** Creates a new flowerpot entity at the specified block coords. a_World may be nullptr */
|
/** Creates a new flowerpot entity at the specified block coords. a_World may be nullptr */
|
||||||
cFlowerPotEntity(int a_BlocX, int a_BlockY, int a_BlockZ, cWorld * a_World);
|
cFlowerPotEntity(int a_BlocX, int a_BlockY, int a_BlockZ, cWorld * a_World);
|
||||||
|
@ -38,7 +38,7 @@ public:
|
|||||||
|
|
||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
BLOCKENTITY_PROTODEF(cFurnaceEntity);
|
BLOCKENTITY_PROTODEF(cFurnaceEntity)
|
||||||
|
|
||||||
/** Constructor used for normal operation */
|
/** Constructor used for normal operation */
|
||||||
cFurnaceEntity(int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, cWorld * a_World);
|
cFurnaceEntity(int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, cWorld * a_World);
|
||||||
|
@ -31,7 +31,7 @@ public:
|
|||||||
|
|
||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
BLOCKENTITY_PROTODEF(cHopperEntity);
|
BLOCKENTITY_PROTODEF(cHopperEntity)
|
||||||
|
|
||||||
/// Constructor used for normal operation
|
/// Constructor used for normal operation
|
||||||
cHopperEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World);
|
cHopperEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World);
|
||||||
|
@ -26,7 +26,7 @@ public:
|
|||||||
|
|
||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
BLOCKENTITY_PROTODEF(cJukeboxEntity);
|
BLOCKENTITY_PROTODEF(cJukeboxEntity)
|
||||||
|
|
||||||
cJukeboxEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World);
|
cJukeboxEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World);
|
||||||
virtual ~cJukeboxEntity();
|
virtual ~cJukeboxEntity();
|
||||||
|
@ -34,7 +34,7 @@ public:
|
|||||||
|
|
||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
BLOCKENTITY_PROTODEF(cMobHeadEntity);
|
BLOCKENTITY_PROTODEF(cMobHeadEntity)
|
||||||
|
|
||||||
/** Creates a new mob head entity at the specified block coords. a_World may be nullptr */
|
/** Creates a new mob head entity at the specified block coords. a_World may be nullptr */
|
||||||
cMobHeadEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World);
|
cMobHeadEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World);
|
||||||
|
@ -40,7 +40,7 @@ public:
|
|||||||
|
|
||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
BLOCKENTITY_PROTODEF(cNoteEntity);
|
BLOCKENTITY_PROTODEF(cNoteEntity)
|
||||||
|
|
||||||
/// Creates a new note entity. a_World may be nullptr
|
/// Creates a new note entity. a_World may be nullptr
|
||||||
cNoteEntity(int a_X, int a_Y, int a_Z, cWorld * a_World);
|
cNoteEntity(int a_X, int a_Y, int a_Z, cWorld * a_World);
|
||||||
|
@ -34,7 +34,7 @@ public:
|
|||||||
|
|
||||||
// tolua_end
|
// tolua_end
|
||||||
|
|
||||||
BLOCKENTITY_PROTODEF(cSignEntity);
|
BLOCKENTITY_PROTODEF(cSignEntity)
|
||||||
|
|
||||||
/// Creates a new empty sign entity at the specified block coords and block type (wall or standing). a_World may be nullptr
|
/// Creates a new empty sign entity at the specified block coords and block type (wall or standing). a_World may be nullptr
|
||||||
cSignEntity(BLOCKTYPE a_BlockType, int a_X, int a_Y, int a_Z, cWorld * a_World);
|
cSignEntity(BLOCKTYPE a_BlockType, int a_X, int a_Y, int a_Z, cWorld * a_World);
|
||||||
|
@ -200,7 +200,7 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
BLOCKTYPE BlockStringToType(const AString & a_BlockTypeString)
|
int BlockStringToType(const AString & a_BlockTypeString)
|
||||||
{
|
{
|
||||||
int res = atoi(a_BlockTypeString.c_str());
|
int res = atoi(a_BlockTypeString.c_str());
|
||||||
if ((res != 0) || (a_BlockTypeString.compare("0") == 0))
|
if ((res != 0) || (a_BlockTypeString.compare("0") == 0))
|
||||||
|
@ -1096,7 +1096,7 @@ class cIniFile;
|
|||||||
// tolua_begin
|
// tolua_begin
|
||||||
|
|
||||||
/// Translates a blocktype string into blocktype. Takes either a number or an items.ini alias as input. Returns -1 on failure.
|
/// Translates a blocktype string into blocktype. Takes either a number or an items.ini alias as input. Returns -1 on failure.
|
||||||
extern BLOCKTYPE BlockStringToType(const AString & a_BlockTypeString);
|
extern int BlockStringToType(const AString & a_BlockTypeString);
|
||||||
|
|
||||||
/// Translates an itemtype string into an item. Takes either a number, number^number, number:number or an items.ini alias as input. Returns true if successful.
|
/// Translates an itemtype string into an item. Takes either a number, number^number, number:number or an items.ini alias as input. Returns true if successful.
|
||||||
extern bool StringToItem(const AString & a_ItemTypeString, cItem & a_Item);
|
extern bool StringToItem(const AString & a_ItemTypeString, cItem & a_Item);
|
||||||
|
@ -1869,18 +1869,18 @@ bool cChunk::AddClient(cClientHandle * a_Client)
|
|||||||
|
|
||||||
void cChunk::RemoveClient(cClientHandle * a_Client)
|
void cChunk::RemoveClient(cClientHandle * a_Client)
|
||||||
{
|
{
|
||||||
for (cClientHandleList::iterator itr = m_LoadedByClient.begin(); itr != m_LoadedByClient.end(); ++itr)
|
for (cClientHandleList::iterator itrC = m_LoadedByClient.begin(); itrC != m_LoadedByClient.end(); ++itrC)
|
||||||
{
|
{
|
||||||
if (*itr != a_Client)
|
if (*itrC != a_Client)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_LoadedByClient.erase(itr);
|
m_LoadedByClient.erase(itrC);
|
||||||
|
|
||||||
if (!a_Client->IsDestroyed())
|
if (!a_Client->IsDestroyed())
|
||||||
{
|
{
|
||||||
for (cEntityList::iterator itr = m_Entities.begin(); itr != m_Entities.end(); ++itr)
|
for (cEntityList::iterator itrE = m_Entities.begin(); itrE != m_Entities.end(); ++itrE)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
// DEBUG:
|
// DEBUG:
|
||||||
@ -1889,7 +1889,7 @@ void cChunk::RemoveClient(cClientHandle * a_Client)
|
|||||||
(*itr)->GetUniqueID(), a_Client->GetUsername().c_str()
|
(*itr)->GetUniqueID(), a_Client->GetUsername().c_str()
|
||||||
);
|
);
|
||||||
*/
|
*/
|
||||||
a_Client->SendDestroyEntity(*(*itr));
|
a_Client->SendDestroyEntity(*(*itrE));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@ -289,7 +289,7 @@ void cCraftingRecipes::GetRecipe(cPlayer & a_Player, cCraftingGrid & a_CraftingG
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Built-in recipes:
|
// Built-in recipes:
|
||||||
std::auto_ptr<cRecipe> Recipe(FindRecipe(a_CraftingGrid.GetItems(), a_CraftingGrid.GetWidth(), a_CraftingGrid.GetHeight()));
|
std::unique_ptr<cRecipe> Recipe(FindRecipe(a_CraftingGrid.GetItems(), a_CraftingGrid.GetWidth(), a_CraftingGrid.GetHeight()));
|
||||||
a_Recipe.Clear();
|
a_Recipe.Clear();
|
||||||
if (Recipe.get() == nullptr)
|
if (Recipe.get() == nullptr)
|
||||||
{
|
{
|
||||||
@ -377,7 +377,7 @@ void cCraftingRecipes::AddRecipeLine(int a_LineNum, const AString & a_RecipeLine
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::auto_ptr<cCraftingRecipes::cRecipe> Recipe(new cCraftingRecipes::cRecipe);
|
std::unique_ptr<cCraftingRecipes::cRecipe> Recipe(new cCraftingRecipes::cRecipe);
|
||||||
|
|
||||||
// Parse the result:
|
// Parse the result:
|
||||||
AStringVector ResultSplit = StringSplit(Sides[0], ",");
|
AStringVector ResultSplit = StringSplit(Sides[0], ",");
|
||||||
@ -758,7 +758,7 @@ cCraftingRecipes::cRecipe * cCraftingRecipes::MatchRecipe(const cItem * a_Crafti
|
|||||||
} // for y, for x
|
} // for y, for x
|
||||||
|
|
||||||
// The recipe has matched. Create a copy of the recipe and set its coords to match the crafting grid:
|
// The recipe has matched. Create a copy of the recipe and set its coords to match the crafting grid:
|
||||||
std::auto_ptr<cRecipe> Recipe(new cRecipe);
|
std::unique_ptr<cRecipe> Recipe(new cRecipe);
|
||||||
Recipe->m_Result = a_Recipe->m_Result;
|
Recipe->m_Result = a_Recipe->m_Result;
|
||||||
Recipe->m_Width = a_Recipe->m_Width;
|
Recipe->m_Width = a_Recipe->m_Width;
|
||||||
Recipe->m_Height = a_Recipe->m_Height;
|
Recipe->m_Height = a_Recipe->m_Height;
|
||||||
|
@ -128,7 +128,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
const cItem & GetSlot(int a_Idx) const { return m_Contents.GetSlot(a_Idx); }
|
const cItem & GetSlot(int a_Idx) const { return m_Contents.GetSlot(a_Idx); }
|
||||||
void SetSlot(size_t a_Idx, const cItem & a_Item) { m_Contents.SetSlot(a_Idx, a_Item); }
|
void SetSlot(size_t a_Idx, const cItem & a_Item) { m_Contents.SetSlot(static_cast<int>(a_Idx), a_Item); }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
cItemGrid m_Contents;
|
cItemGrid m_Contents;
|
||||||
|
@ -115,7 +115,7 @@ void cFurnaceRecipe::AddFuelFromLine(const AString & a_Line, unsigned int a_Line
|
|||||||
Line.erase(Line.begin()); // Remove the beginning "!"
|
Line.erase(Line.begin()); // Remove the beginning "!"
|
||||||
Line.erase(std::remove_if(Line.begin(), Line.end(), isspace), Line.end());
|
Line.erase(std::remove_if(Line.begin(), Line.end(), isspace), Line.end());
|
||||||
|
|
||||||
std::auto_ptr<cItem> Item(new cItem);
|
std::unique_ptr<cItem> Item(new cItem);
|
||||||
int BurnTime;
|
int BurnTime;
|
||||||
|
|
||||||
const AStringVector & Sides = StringSplit(Line, "=");
|
const AStringVector & Sides = StringSplit(Line, "=");
|
||||||
@ -157,8 +157,8 @@ void cFurnaceRecipe::AddRecipeFromLine(const AString & a_Line, unsigned int a_Li
|
|||||||
Line.erase(std::remove_if(Line.begin(), Line.end(), isspace), Line.end());
|
Line.erase(std::remove_if(Line.begin(), Line.end(), isspace), Line.end());
|
||||||
|
|
||||||
int CookTime = 200;
|
int CookTime = 200;
|
||||||
std::auto_ptr<cItem> InputItem(new cItem());
|
std::unique_ptr<cItem> InputItem(new cItem());
|
||||||
std::auto_ptr<cItem> OutputItem(new cItem());
|
std::unique_ptr<cItem> OutputItem(new cItem());
|
||||||
|
|
||||||
const AStringVector & Sides = StringSplit(Line, "=");
|
const AStringVector & Sides = StringSplit(Line, "=");
|
||||||
if (Sides.size() != 2)
|
if (Sides.size() != 2)
|
||||||
|
@ -191,13 +191,13 @@ EMCSBiome cChunkGenerator::GetBiomeAt(int a_BlockX, int a_BlockZ)
|
|||||||
BLOCKTYPE cChunkGenerator::GetIniBlock(cIniFile & a_IniFile, const AString & a_SectionName, const AString & a_ValueName, const AString & a_Default)
|
BLOCKTYPE cChunkGenerator::GetIniBlock(cIniFile & a_IniFile, const AString & a_SectionName, const AString & a_ValueName, const AString & a_Default)
|
||||||
{
|
{
|
||||||
AString BlockType = a_IniFile.GetValueSet(a_SectionName, a_ValueName, a_Default);
|
AString BlockType = a_IniFile.GetValueSet(a_SectionName, a_ValueName, a_Default);
|
||||||
BLOCKTYPE Block = BlockStringToType(BlockType);
|
int Block = BlockStringToType(BlockType);
|
||||||
if (Block < 0)
|
if (Block < 0)
|
||||||
{
|
{
|
||||||
LOGWARN("[%s].%s Could not parse block value \"%s\". Using default: \"%s\".", a_SectionName.c_str(), a_ValueName.c_str(), BlockType.c_str(), a_Default.c_str());
|
LOGWARN("[%s].%s Could not parse block value \"%s\". Using default: \"%s\".", a_SectionName.c_str(), a_ValueName.c_str(), BlockType.c_str(), a_Default.c_str());
|
||||||
return BlockStringToType(a_Default);
|
return static_cast<BLOCKTYPE>(BlockStringToType(a_Default));
|
||||||
}
|
}
|
||||||
return Block;
|
return static_cast<BLOCKTYPE>(Block);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ public:
|
|||||||
|
|
||||||
// Fill the rest with stone:
|
// Fill the rest with stone:
|
||||||
static BlockInfo Stone = {E_BLOCK_STONE, 0};
|
static BlockInfo Stone = {E_BLOCK_STONE, 0};
|
||||||
for (size_t i = a_Count; i < cChunkDef::Height; i++)
|
for (int i = static_cast<int>(a_Count); i < cChunkDef::Height; i++)
|
||||||
{
|
{
|
||||||
m_Pattern[i] = Stone;
|
m_Pattern[i] = Stone;
|
||||||
}
|
}
|
||||||
|
@ -66,17 +66,19 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Generate the first octave directly into array:
|
// Generate the first octave directly into array:
|
||||||
const cOctave & FirstOctave = m_Octaves.front();
|
|
||||||
int ArrayCount = a_SizeX * a_SizeY;
|
int ArrayCount = a_SizeX * a_SizeY;
|
||||||
FirstOctave.m_Noise.Generate2D(
|
|
||||||
a_Workspace, a_SizeX, a_SizeY,
|
|
||||||
a_StartX * FirstOctave.m_Frequency, a_EndX * FirstOctave.m_Frequency,
|
|
||||||
a_StartY * FirstOctave.m_Frequency, a_EndY * FirstOctave.m_Frequency
|
|
||||||
);
|
|
||||||
NOISE_DATATYPE Amplitude = FirstOctave.m_Amplitude;
|
|
||||||
for (int i = 0; i < ArrayCount; i++)
|
|
||||||
{
|
{
|
||||||
a_Array[i] = a_Workspace[i] * Amplitude;
|
const cOctave & FirstOctave = m_Octaves.front();
|
||||||
|
FirstOctave.m_Noise.Generate2D(
|
||||||
|
a_Workspace, a_SizeX, a_SizeY,
|
||||||
|
a_StartX * FirstOctave.m_Frequency, a_EndX * FirstOctave.m_Frequency,
|
||||||
|
a_StartY * FirstOctave.m_Frequency, a_EndY * FirstOctave.m_Frequency
|
||||||
|
);
|
||||||
|
NOISE_DATATYPE Amplitude = FirstOctave.m_Amplitude;
|
||||||
|
for (int i = 0; i < ArrayCount; i++)
|
||||||
|
{
|
||||||
|
a_Array[i] = a_Workspace[i] * Amplitude;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add each octave:
|
// Add each octave:
|
||||||
@ -124,18 +126,20 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Generate the first octave directly into array:
|
// Generate the first octave directly into array:
|
||||||
const cOctave & FirstOctave = m_Octaves.front();
|
|
||||||
int ArrayCount = a_SizeX * a_SizeY * a_SizeZ;
|
int ArrayCount = a_SizeX * a_SizeY * a_SizeZ;
|
||||||
FirstOctave.m_Noise.Generate3D(
|
|
||||||
a_Workspace, a_SizeX, a_SizeY, a_SizeZ,
|
|
||||||
a_StartX * FirstOctave.m_Frequency, a_EndX * FirstOctave.m_Frequency,
|
|
||||||
a_StartY * FirstOctave.m_Frequency, a_EndY * FirstOctave.m_Frequency,
|
|
||||||
a_StartZ * FirstOctave.m_Frequency, a_EndZ * FirstOctave.m_Frequency
|
|
||||||
);
|
|
||||||
NOISE_DATATYPE Amplitude = FirstOctave.m_Amplitude;
|
|
||||||
for (int i = 0; i < ArrayCount; i++)
|
|
||||||
{
|
{
|
||||||
a_Array[i] = a_Workspace[i] * Amplitude;
|
const cOctave & FirstOctave = m_Octaves.front();
|
||||||
|
FirstOctave.m_Noise.Generate3D(
|
||||||
|
a_Workspace, a_SizeX, a_SizeY, a_SizeZ,
|
||||||
|
a_StartX * FirstOctave.m_Frequency, a_EndX * FirstOctave.m_Frequency,
|
||||||
|
a_StartY * FirstOctave.m_Frequency, a_EndY * FirstOctave.m_Frequency,
|
||||||
|
a_StartZ * FirstOctave.m_Frequency, a_EndZ * FirstOctave.m_Frequency
|
||||||
|
);
|
||||||
|
NOISE_DATATYPE Amplitude = FirstOctave.m_Amplitude;
|
||||||
|
for (int i = 0; i < ArrayCount; i++)
|
||||||
|
{
|
||||||
|
a_Array[i] = a_Workspace[i] * Amplitude;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add each octave:
|
// Add each octave:
|
||||||
|
@ -54,7 +54,7 @@ public:
|
|||||||
);
|
);
|
||||||
for (int i = 0; i < ArrayCount; i++)
|
for (int i = 0; i < ArrayCount; i++)
|
||||||
{
|
{
|
||||||
a_Array[i] = fabs(a_Array[i]);
|
a_Array[i] = std::abs(a_Array[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ public:
|
|||||||
);
|
);
|
||||||
for (int i = 0; i < ArrayCount; i++)
|
for (int i = 0; i < ArrayCount; i++)
|
||||||
{
|
{
|
||||||
a_Array[i] = fabs(a_Array[i]);
|
a_Array[i] = std::abs(a_Array[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user