1
0

Merge remote-tracking branch 'origin/master' into redstonefixes

This commit is contained in:
Tiger Wang 2013-11-25 21:45:22 +00:00
commit 56f13f83bb
8 changed files with 149 additions and 41 deletions

View File

@ -138,6 +138,7 @@ typedef unsigned short UInt16;
// CRT stuff: // CRT stuff:
#include <sys/stat.h>
#include <assert.h> #include <assert.h>
#include <stdio.h> #include <stdio.h>
#include <math.h> #include <math.h>

View File

@ -554,8 +554,8 @@ void cProcessor::PopulateFileQueue(const AString & a_WorldFolder)
{ {
Path.push_back(cFile::PathSeparator); Path.push_back(cFile::PathSeparator);
} }
AStringList AllFiles = GetDirectoryContents(Path.c_str()); AStringVector AllFiles = cFile::GetFolderContents(Path.c_str());
for (AStringList::iterator itr = AllFiles.begin(), end = AllFiles.end(); itr != end; ++itr) for (AStringVector::iterator itr = AllFiles.begin(), end = AllFiles.end(); itr != end; ++itr)
{ {
if (itr->rfind(".mca") != itr->length() - 4) if (itr->rfind(".mca") != itr->length() - 4)
{ {

View File

@ -0,0 +1,114 @@
// BiomeColors.cpp
// Implements the g_BiomeColors[] array preparation based on a stored biome-to-color map
#include "Globals.h"
#include "BiomeColors.h"
int g_BiomeColors[256];
static struct
{
EMCSBiome Biome;
int Color;
} g_BiomeColorMap[] =
{
{ biOcean, 0x000070 },
{ biPlains, 0x8db360 },
{ biDesert, 0xfa9418 },
{ biExtremeHills, 0x606060 },
{ biForest, 0x056621 },
{ biTaiga, 0x0b6659 },
{ biSwampland, 0x2fffda },
{ biRiver, 0x3030af },
{ biHell, 0x7f0000 },
{ biSky, 0x007fff },
{ biFrozenOcean, 0xa0a0df },
{ biFrozenRiver, 0xa0a0ff },
{ biIcePlains, 0xffffff },
{ biIceMountains, 0xa0a0a0 },
{ biMushroomIsland, 0xff00ff },
{ biMushroomShore, 0xa000ff },
{ biBeach, 0xfade55 },
{ biDesertHills, 0xd25f12 },
{ biForestHills, 0x22551c },
{ biTaigaHills, 0x163933 },
{ biExtremeHillsEdge, 0x7f8f7f },
{ biJungle, 0x537b09 },
{ biJungleHills, 0x2c4205 },
{ biJungleEdge, 0x628b17 },
{ biDeepOcean, 0x000030 },
{ biStoneBeach, 0xa2a284 },
{ biColdBeach, 0xfaf0c0 },
{ biBirchForest, 0x307444 },
{ biBirchForestHills, 0x1f5f32 },
{ biRoofedForest, 0x40511a },
{ biColdTaiga, 0x31554a },
{ biColdTaigaHills, 0x597d72 },
{ biMegaTaiga, 0x596651 },
{ biMegaTaigaHills, 0x596659 },
{ biExtremeHillsPlus, 0x507050 },
{ biSavanna, 0xbdb25f },
{ biSavannaPlateau, 0xa79d64 },
{ biMesa, 0xd94515 },
{ biMesaPlateauF, 0xb09765 },
{ biMesaPlateau, 0xca8c65 },
// M variants:
{ biSunflowerPlains, 0xb5db88 },
{ biDesertM, 0xffbc40 },
{ biExtremeHillsM, 0x888888 },
{ biFlowerForest, 0x2d8e49 },
{ biTaigaM, 0x338e81 },
{ biSwamplandM, 0x07f9b2 },
{ biIcePlainsSpikes, 0xb4dcdc },
{ biJungleM, 0x7ba331 },
{ biJungleEdgeM, 0x628b17 },
{ biBirchForestM, 0x589c6c },
{ biBirchForestHillsM, 0x47875a },
{ biRoofedForestM, 0x687942 },
{ biColdTaigaM, 0x243f36 },
{ biMegaSpruceTaiga, 0x454f3e },
{ biMegaSpruceTaigaHills, 0x454f4e },
{ biExtremeHillsPlusM, 0x789878 },
{ biSavannaM, 0xe5da87 },
{ biSavannaPlateauM, 0xa79d74 },
{ biMesaBryce, 0xff6d3d },
{ biMesaPlateauFM, 0xd8bf8d },
{ biMesaPlateauM, 0xf2b48d },
} ;
static class cBiomeColorsInitializer
{
public:
cBiomeColorsInitializer(void)
{
// Reset all colors to gray:
for (size_t i = 0; i < ARRAYCOUNT(g_BiomeColors); i++)
{
g_BiomeColors[i] = 0x7f7f7f;
}
for (size_t i = 0; i < ARRAYCOUNT(g_BiomeColorMap); i++)
{
g_BiomeColors[g_BiomeColorMap[i].Biome] = g_BiomeColorMap[i].Color;
}
}
} g_Initializer;

View File

@ -0,0 +1,15 @@
// BiomeColors.h
// Declares the g_BiomeColors[] array used for biome color lookup
extern int g_BiomeColors[256];

View File

@ -7,6 +7,7 @@
#include "BiomeRenderer.h" #include "BiomeRenderer.h"
#include "Pixmap.h" #include "Pixmap.h"
#include "Timer.h" #include "Timer.h"
#include "BiomeColors.h"
@ -96,40 +97,11 @@ bool cBiomeRenderer::Render(cPixmap & a_Pixmap)
int cBiomeRenderer::GetBiomeColor(EMCSBiome a_Biome) int cBiomeRenderer::GetBiomeColor(EMCSBiome a_Biome)
{ {
if ((a_Biome < 0) || (a_Biome > biMaxBiome)) if ((a_Biome < 0) || (a_Biome >= ARRAYCOUNT(g_BiomeColors)))
{ {
return 0xcfcfcf; // LtGray for unknown biomes return 0xff0000;
} }
return g_BiomeColors[a_Biome];
static int BiomeColor[] =
{
// RGB:
0x0000ff, /* Ocean */
0x00cf3f, /* Plains */
0xffff00, /* Desert */
0x7f7f7f, /* Extreme Hills */
0x00cf00, /* Forest */
0x007f3f, /* Taiga */
0x3f7f00, /* Swampland */
0x003fff, /* River */
0x7f0000, /* Hell */
0x007fff, /* Sky */
0x3f3fff, /* Frozen Ocean */
0x3f3fff, /* Frozen River */
0x7fffcf, /* Ice Plains */
0x3fcf7f, /* Ice Mountains */
0xcf00cf, /* Mushroom Island */
0x7f00ff, /* Mushroom Island Shore */
0xffff3f, /* Beach */
0xcfcf00, /* Desert Hills */
0x00cf3f, /* Forest Hills */
0x006f1f, /* Taiga Hills */
0x7f8f7f, /* Extreme Hills Edge */
0x004f00, /* Jungle */
0x003f00, /* Jungle Hills */
} ;
return BiomeColor[a_Biome];
} }

View File

@ -268,6 +268,10 @@
RelativePath=".\BiomeCache.h" RelativePath=".\BiomeCache.h"
> >
</File> </File>
<File
RelativePath=".\BiomeColors.cpp"
>
</File>
<File <File
RelativePath=".\BiomeRenderer.cpp" RelativePath=".\BiomeRenderer.cpp"
> >
@ -489,6 +493,10 @@
</Filter> </Filter>
</Filter> </Filter>
</Filter> </Filter>
<File
RelativePath=".\BiomeColors.h"
>
</File>
</Files> </Files>
<Globals> <Globals>
</Globals> </Globals>

View File

@ -394,13 +394,14 @@ AStringVector cFile::GetFolderContents(const AString & a_Folder)
DIR * dp; DIR * dp;
struct dirent *dirp; struct dirent *dirp;
if (*a_Directory == 0) AString Folder = a_Folder;
if (Folder.empty())
{ {
a_Directory = "."; Folder = ".";
} }
if ((dp = opendir(a_Directory)) == NULL) if ((dp = opendir(Folder.c_str())) == NULL)
{ {
LOGERROR("Error (%i) opening directory \"%s\"\n", errno, a_Directory ); LOGERROR("Error (%i) opening directory \"%s\"\n", errno, Folder.c_str());
} }
else else
{ {

View File

@ -210,9 +210,6 @@ bool cSocket::BindToAnyIPv4(unsigned short a_Port)
bool cSocket::BindToAnyIPv6(unsigned short a_Port) bool cSocket::BindToAnyIPv6(unsigned short a_Port)
{ {
// Cannot use socckaddr_in6, because it is not defined in the default VS2008 SDK
// Must jump through hoops here
sockaddr_in6 local; sockaddr_in6 local;
memset(&local, 0, sizeof(local)); memset(&local, 0, sizeof(local));