Skip to content

Commit f764297

Browse files
committedJun 23, 2013
Math mapgen fix, ip show on connect, pathfinder segfault fix
1 parent 75b8c13 commit f764297

7 files changed

+21
-34
lines changed
 

‎src/mapgen_math.cpp

+5-2
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ double sphere(double x, double y, double z, double d, int ITR = 1) {
145145
}
146146

147147

148-
//////////////////////// Mapgen Singlenode parameter read/write
148+
//////////////////////// Mapgen Math parameter read/write
149149

150150
bool MapgenMathParams::readParams(Settings *settings) {
151151
//params = settings->getJson("mg_math");
@@ -171,6 +171,8 @@ void MapgenMathParams::writeParams(Settings *settings) {
171171

172172
MapgenMath::MapgenMath(int mapgenid, MapgenMathParams *params_, EmergeManager *emerge) : MapgenV7(mapgenid, params_, emerge) {
173173
mg_params = params_;
174+
this->lighting = 0;
175+
this->ridges = 0;
174176

175177
Json::Value & params = mg_params->params;
176178
invert = params["invert"].empty() ? 1 : params["invert"].asBool(); //params["invert"].empty()?1:params["invert"].asBool();
@@ -238,7 +240,7 @@ MapgenMath::~MapgenMath() {
238240

239241
void MapgenMath::generateTerrain() {
240242

241-
MapNode n_air(CONTENT_AIR), n_water_source(c_water_source, LIGHT_SUN);
243+
MapNode n_air(CONTENT_AIR, LIGHT_SUN), n_water_source(c_water_source, LIGHT_SUN);
242244
MapNode n_stone(c_stone, LIGHT_SUN);
243245
u32 index = 0;
244246
v3s16 em = vm->m_area.getExtent();
@@ -263,6 +265,7 @@ void MapgenMath::generateTerrain() {
263265
if (vm->m_data[i].getContent() == CONTENT_IGNORE)
264266
vm->m_data[i] = (y > water_level + biome->filler_height) ?
265267
MapNode(biome->c_filler) : n_stone;
268+
// vm->m_data[i] = n_stone;
266269
} else if (y <= water_level) {
267270
vm->m_data[i] = n_water_source;
268271
} else {

‎src/mapgen_math.h

-2
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@ class MapgenMath : public MapgenV7 {
4242
MapgenMath(int mapgenid, MapgenMathParams *mg_params, EmergeManager *emerge);
4343
~MapgenMath();
4444

45-
46-
//void makeChunk(BlockMakeData *data);
4745
void generateTerrain();
4846
int getGroundLevelAtPoint(v2s16 p);
4947

‎src/mapgen_v7.cpp

+8-3
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,10 @@ MapgenV7::MapgenV7(int mapgenid, MapgenV7Params *params, EmergeManager *emerge)
7676

7777
this->seed = (int)params->seed;
7878
this->water_level = params->water_level;
79-
this->flags = params->flags;
79+
this->flags = params->flags;
80+
this->lighting = 1;
81+
this->ridges = 1;
82+
8083
this->csize = v3s16(1, 1, 1) * params->chunksize * MAP_BLOCKSIZE;
8184
this->ystride = csize.X; //////fix this
8285

@@ -183,7 +186,8 @@ void MapgenV7::makeChunk(BlockMakeData *data) {
183186
c_lava_source = ndef->getId("mapgen_lava_source");
184187

185188
generateTerrain();
186-
carveRidges();
189+
if (this->ridges)
190+
carveRidges();
187191

188192
if (flags & MG_CAVES)
189193
generateCaves(stone_surface_max_y);
@@ -211,7 +215,8 @@ void MapgenV7::makeChunk(BlockMakeData *data) {
211215

212216
updateLiquid(&data->transforming_liquid, full_node_min, full_node_max);
213217

214-
calcLighting(node_min - v3s16(1, 0, 1) * MAP_BLOCKSIZE,
218+
if (this->lighting)
219+
calcLighting(node_min - v3s16(1, 0, 1) * MAP_BLOCKSIZE,
215220
node_max + v3s16(1, 0, 1) * MAP_BLOCKSIZE);
216221
//setLighting(node_min - v3s16(1, 0, 1) * MAP_BLOCKSIZE,
217222
// node_max + v3s16(1, 0, 1) * MAP_BLOCKSIZE, 0xFF);

‎src/mapgen_v7.h

+2
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ class MapgenV7 : public Mapgen {
6060
int ystride;
6161
v3s16 csize;
6262
u32 flags;
63+
bool lighting;
64+
bool ridges;
6365

6466
u32 blockseed;
6567
v3s16 node_min;

‎src/pathfinder.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -880,7 +880,7 @@ bool pathfinder::update_cost_heuristic( v3s16 ipos,
880880
/******************************************************************************/
881881
void pathfinder::build_path(std::vector<v3s16>& path,v3s16 pos, int level) {
882882
level ++;
883-
if (level > 1000) {
883+
if (level > 700) {
884884
ERROR_TARGET
885885
<< LVL "Pathfinder: path is too long aborting" << std::endl;
886886
return;

‎src/server.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -2154,7 +2154,7 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
21542154
os<<player->getName()<<" ";
21552155
}
21562156

2157-
actionstream<<player->getName()<<" joins game. List of players: "
2157+
actionstream<<player->getName()<<" ["<<addr_s<<"] "<<" joins game. List of players: "
21582158
<<os.str()<<std::endl;
21592159
}
21602160

‎src/socket.cpp

+4-25
Original file line numberDiff line numberDiff line change
@@ -185,32 +185,11 @@ void Address::Resolve(const char *name)
185185
// IP address -> textual representation
186186
std::string Address::serializeString() const
187187
{
188-
if(m_addr_family == AF_INET)
189-
{
190-
u8 a, b, c, d, addr;
191-
addr = ntohl(m_address.ipv4.sin_addr.s_addr);
192-
a = (addr & 0xFF000000) >> 24;
193-
b = (addr & 0x00FF0000) >> 16;
194-
c = (addr & 0x0000FF00) >> 8;
195-
d = (addr & 0x000000FF);
196-
return itos(a) + "." + itos(b) + "." + itos(c) + "." + itos(d);
188+
char str[INET6_ADDRSTRLEN];
189+
if (inet_ntop(m_addr_family, (m_addr_family == AF_INET) ? (void*)&(m_address.ipv4.sin_addr) : (void*)&(m_address.ipv6.sin6_addr), str, INET6_ADDRSTRLEN) == NULL) {
190+
return std::string("");
197191
}
198-
else if(m_addr_family == AF_INET6)
199-
{
200-
std::ostringstream os;
201-
for(int i = 0; i < 16; i += 2)
202-
{
203-
u16 section =
204-
(m_address.ipv6.sin6_addr.s6_addr[i] << 8) |
205-
(m_address.ipv6.sin6_addr.s6_addr[i + 1]);
206-
os << std::hex << section;
207-
if(i < 14)
208-
os << ":";
209-
}
210-
return os.str();
211-
}
212-
else
213-
return std::string("");
192+
return std::string(str);
214193
}
215194

216195
struct sockaddr_in Address::getAddress() const

0 commit comments

Comments
 (0)