diff --git a/overviewer_core/rendermodes.py b/overviewer_core/rendermodes.py index 2a58255..4b81681 100644 --- a/overviewer_core/rendermodes.py +++ b/overviewer_core/rendermodes.py @@ -28,6 +28,11 @@ class RenderPrimitive(object): if not key in self.options: raise ValueError("primitive `{0}' has no option `{1}'".format(self.name, key)) self.option_values[key] = val + + # set up defaults + for name, (description, default) in self.options.iteritems(): + if not name in self.option_values: + self.option_values[name] = default class Base(RenderPrimitive): name = "base" @@ -44,14 +49,14 @@ class HeightFading(RenderPrimitive): class Depth(RenderPrimitive): name = "depth" options = { - "min": "lowest level of blocks to render (default: 0)", - "max": "highest level of blocks to render (default: 127)", + "min": ("lowest level of blocks to render", 0), + "max": ("highest level of blocks to render", 127), } class EdgeLines(RenderPrimitive): name = "edge-lines" options = { - "opacity": "darkness of the edge lines, from 0.0 to 1.0 (default: 0.15)", + "opacity": ("darkness of the edge lines, from 0.0 to 1.0", 0.15), } # Render 3 blending masks for lighting diff --git a/overviewer_core/src/primitives/depth.c b/overviewer_core/src/primitives/depth.c index 4a2899c..87a14a6 100644 --- a/overviewer_core/src/primitives/depth.c +++ b/overviewer_core/src/primitives/depth.c @@ -26,11 +26,8 @@ static int depth_start(void *data, RenderState *state, PyObject *support) { PrimitiveDepth *self = (PrimitiveDepth *)data; - self->min = 0; if (!render_mode_parse_option(support, "min", "I", &(self->min))) return 1; - - self->max = 127; if (!render_mode_parse_option(support, "max", "I", &(self->max))) return 1; diff --git a/overviewer_core/src/primitives/edge-lines.c b/overviewer_core/src/primitives/edge-lines.c index 54b7407..f1e4e42 100644 --- a/overviewer_core/src/primitives/edge-lines.c +++ b/overviewer_core/src/primitives/edge-lines.c @@ -24,8 +24,6 @@ typedef struct { static int edge_lines_start(void *data, RenderState *state, PyObject *support) { PrimitiveEdgeLines *self = (PrimitiveEdgeLines *)data; - - self->opacity = 0.15; if (!render_mode_parse_option(support, "opacity", "f", &(self->opacity))) return 1; return 0; diff --git a/overviewer_core/src/rendermodes.c b/overviewer_core/src/rendermodes.c index 9a70ba1..6ff99de 100644 --- a/overviewer_core/src/rendermodes.c +++ b/overviewer_core/src/rendermodes.c @@ -176,16 +176,16 @@ int render_mode_parse_option(PyObject *support, const char *name, const char *fo int ret; if (support == NULL || name == NULL) - return 1; + return 0; dict = PyObject_GetAttrString(support, "option_values"); if (!dict) - return 1; + return 0; item = PyDict_GetItemString(dict, name); if (item == NULL) { Py_DECREF(dict); - return 1; + return 0; }; /* make sure the item we're parsing is a tuple