summaryrefslogtreecommitdiffstats
path: root/libdimension/finish.c
diff options
context:
space:
mode:
Diffstat (limited to 'libdimension/finish.c')
-rw-r--r--libdimension/finish.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/libdimension/finish.c b/libdimension/finish.c
index e5ba88e..620487e 100644
--- a/libdimension/finish.c
+++ b/libdimension/finish.c
@@ -140,25 +140,24 @@ dmnsn_finish_incref(dmnsn_finish *finish)
if (finish->reflection) {
DMNSN_INCREF(finish->reflection);
}
-
}
void
dmnsn_finish_cascade(const dmnsn_finish *default_finish, dmnsn_finish *finish)
{
- if (!finish->ambient) {
+ if (!finish->ambient && default_finish->ambient) {
finish->ambient = default_finish->ambient;
DMNSN_INCREF(finish->ambient);
}
- if (!finish->diffuse) {
+ if (!finish->diffuse && default_finish->diffuse) {
finish->diffuse = default_finish->diffuse;
DMNSN_INCREF(finish->diffuse);
}
- if (!finish->specular) {
+ if (!finish->specular && default_finish->specular) {
finish->specular = default_finish->specular;
DMNSN_INCREF(finish->specular);
}
- if (!finish->reflection) {
+ if (!finish->reflection && default_finish->reflection) {
finish->reflection = default_finish->reflection;
DMNSN_INCREF(finish->reflection);
}