diff options
author | Tavian Barnes <tavianator@gmail.com> | 2010-02-28 13:23:38 -0500 |
---|---|---|
committer | Tavian Barnes <tavianator@gmail.com> | 2010-02-28 13:23:38 -0500 |
commit | 0e6d09432d7c22c8c0f3acedefc1afac67624a8d (patch) | |
tree | e888b15d4dd155c2c7dc46065509e124d873f4a9 /dimension | |
parent | 5f4baeb85dbdb26ea56b214280eeb0f6233c1861 (diff) | |
download | dimension-0e6d09432d7c22c8c0f3acedefc1afac67624a8d.tar.xz |
Allow bare finishes in object modifiers.
Diffstat (limited to 'dimension')
-rw-r--r-- | dimension/common.rules | 5 | ||||
-rw-r--r-- | dimension/realize.c | 12 |
2 files changed, 14 insertions, 3 deletions
diff --git a/dimension/common.rules b/dimension/common.rules index 7b4c609..cc7411f 100644 --- a/dimension/common.rules +++ b/dimension/common.rules @@ -150,9 +150,8 @@ OBJECT_MODIFIERS: /* empty */ { OBJECT_MODIFIER: TRANSFORMATION | TEXTURE - | PIGMENT { - $$ = dmnsn_new_astnode1(DMNSN_AST_TEXTURE, @$, $1); - } + | PIGMENT + | FINISH | INTERIOR ; diff --git a/dimension/realize.c b/dimension/realize.c index b20ec9f..e5dfcb4 100644 --- a/dimension/realize.c +++ b/dimension/realize.c @@ -590,6 +590,18 @@ dmnsn_realize_object_modifiers(dmnsn_astnode astnode, dmnsn_object *object) dmnsn_delete_texture(object->texture); object->texture = dmnsn_realize_texture(modifier); break; + case DMNSN_AST_PIGMENT: + if (!object->texture) + object->texture = dmnsn_new_texture(); + dmnsn_delete_pigment(object->texture->pigment); + object->texture->pigment = dmnsn_realize_pigment(modifier); + break; + case DMNSN_AST_FINISH: + if (!object->texture) + object->texture = dmnsn_new_texture(); + dmnsn_delete_finish(object->texture->finish); + object->texture->finish = dmnsn_realize_finish(modifier); + break; case DMNSN_AST_INTERIOR: dmnsn_delete_interior(object->interior); |