0

Don't crash if a biome-chunk is missing

This commit is contained in:
Andrew Chin
2011-04-02 14:30:44 -04:00
parent 7cf8add231
commit 6c1d85f699

View File

@@ -49,17 +49,28 @@ rendermode_normal_start(void *data, RenderState *state) {
self->biome_data = PyObject_CallMethod(state->textures, "getBiomeData", "OOO", self->biome_data = PyObject_CallMethod(state->textures, "getBiomeData", "OOO",
worlddir, chunk_x_py, chunk_y_py); worlddir, chunk_x_py, chunk_y_py);
self->foliagecolor = PyObject_GetAttrString(state->textures, "foliagecolor"); if (self->biome_data == Py_None) {
self->grasscolor = PyObject_GetAttrString(state->textures, "grasscolor"); self->biome_data = NULL;
self->foliagecolor = NULL;
self->leaf_texture = PyObject_GetAttrString(state->textures, "biome_leaf_texture"); self->grasscolor = NULL;
self->grass_texture = PyObject_GetAttrString(state->textures, "biome_grass_texture");
self->leaf_texture = NULL;
facemasks_py = PyObject_GetAttrString(state->chunk, "facemasks"); self->grass_texture = NULL;
/* borrowed reference, needs to be incref'd if we keep it */ self->facemask_top = NULL;
self->facemask_top = PyTuple_GetItem(facemasks_py, 0); } else {
Py_INCREF(self->facemask_top);
Py_DECREF(facemasks_py); self->foliagecolor = PyObject_GetAttrString(state->textures, "foliagecolor");
self->grasscolor = PyObject_GetAttrString(state->textures, "grasscolor");
self->leaf_texture = PyObject_GetAttrString(state->textures, "biome_leaf_texture");
self->grass_texture = PyObject_GetAttrString(state->textures, "biome_grass_texture");
facemasks_py = PyObject_GetAttrString(state->chunk, "facemasks");
/* borrowed reference, needs to be incref'd if we keep it */
self->facemask_top = PyTuple_GetItem(facemasks_py, 0);
Py_INCREF(self->facemask_top);
Py_DECREF(facemasks_py);
}
} else { } else {
self->biome_data = NULL; self->biome_data = NULL;
self->foliagecolor = NULL; self->foliagecolor = NULL;