diff options
| -rw-r--r-- | src/studio.cpp | 6 | ||||
| -rw-r--r-- | src/world.cpp | 13 |
2 files changed, 11 insertions, 8 deletions
diff --git a/src/studio.cpp b/src/studio.cpp index 110ce74..c4c3cfb 100644 --- a/src/studio.cpp +++ b/src/studio.cpp | |||
| @@ -125,8 +125,12 @@ void hook_draw_model(void *self, void *results, void *info, void *bone, | |||
| 125 | logf("studio: DrawModel model=\"%s\" prop=%d", model ? model : "?", | 125 | logf("studio: DrawModel model=\"%s\" prop=%d", model ? model : "?", |
| 126 | (int)prop); | 126 | (int)prop); |
| 127 | } | 127 | } |
| 128 | if (prop) | 128 | if (prop) { |
| 129 | float c[4]; | ||
| 130 | prop_color(c); | ||
| 131 | g_orig_set_color(self, c); | ||
| 129 | g_prop_depth++; | 132 | g_prop_depth++; |
| 133 | } | ||
| 130 | g_orig_draw_model(self, results, info, bone, flex, flex_delayed, flags); | 134 | g_orig_draw_model(self, results, info, bone, flex, flex_delayed, flags); |
| 131 | if (prop) | 135 | if (prop) |
| 132 | g_prop_depth--; | 136 | g_prop_depth--; |
diff --git a/src/world.cpp b/src/world.cpp index d7023c7..2fa1fc4 100644 --- a/src/world.cpp +++ b/src/world.cpp | |||
| @@ -180,7 +180,9 @@ bool apply_tint(int world_r, int world_g, int world_b, int sky_r, int sky_g, | |||
| 180 | 180 | ||
| 181 | float wr = world_r / 255.0f, wg = world_g / 255.0f, wb = world_b / 255.0f; | 181 | float wr = world_r / 255.0f, wg = world_g / 255.0f, wb = world_b / 255.0f; |
| 182 | float sr = sky_r / 255.0f, sg = sky_g / 255.0f, sb = sky_b / 255.0f; | 182 | float sr = sky_r / 255.0f, sg = sky_g / 255.0f, sb = sky_b / 255.0f; |
| 183 | float pr = prop_r / 255.0f, pg = prop_g / 255.0f, pb = prop_b / 255.0f; | 183 | (void)prop_r; |
| 184 | (void)prop_g; | ||
| 185 | (void)prop_b; | ||
| 184 | 186 | ||
| 185 | unsigned short inv = invalid(ms); | 187 | unsigned short inv = invalid(ms); |
| 186 | int seen = 0, world_hits = 0, sky_hits = 0, prop_hits = 0; | 188 | int seen = 0, world_hits = 0, sky_hits = 0, prop_hits = 0; |
| @@ -215,13 +217,10 @@ bool apply_tint(int world_r, int world_g, int world_b, int sky_r, int sky_g, | |||
| 215 | mod_fn(mat, sr, sg, sb); | 217 | mod_fn(mat, sr, sg, sb); |
| 216 | sky_hits++; | 218 | sky_hits++; |
| 217 | } else if (is_prop_material(name)) { | 219 | } else if (is_prop_material(name)) { |
| 218 | mod_fn(mat, pr, pg, pb); | 220 | // Props are tinted through IStudioRender (studio.cpp); material |
| 221 | // modulation is overridden per draw by the engine, so leave prop | ||
| 222 | // materials untouched here. | ||
| 219 | prop_hits++; | 223 | prop_hits++; |
| 220 | static int crate_logs = 0; | ||
| 221 | if (crate_logs < 8 && strstr(name, "crate")) { | ||
| 222 | crate_logs++; | ||
| 223 | logf("tint: prop material \"%s\"", name); | ||
| 224 | } | ||
| 225 | } | 224 | } |
| 226 | } | 225 | } |
| 227 | logf("tint: applied world=%d(%d,%d,%d) sky=%d(%d,%d,%d) props=%d(%d,%d,%d) " | 226 | logf("tint: applied world=%d(%d,%d,%d) sky=%d(%d,%d,%d) props=%d(%d,%d,%d) " |
