diff --git a/src/game/rendering_graph_node.c b/src/game/rendering_graph_node.c index 9c05cf0b8..20c9abc72 100644 --- a/src/game/rendering_graph_node.c +++ b/src/game/rendering_graph_node.c @@ -561,7 +561,9 @@ static void geo_process_camera(struct GraphNodeCamera *node) { if (!increment_mat_stack()) { return; } // save the camera matrix - mtxf_copy(gCamera->mtx, gMatStack[gMatStackIndex]); + if (gCamera) { + mtxf_copy(gCamera->mtx, gMatStack[gMatStackIndex]); + } if (node->fnNode.node.children != 0) { gCurGraphNodeCamera = node; diff --git a/src/pc/gfx/gfx_opengl.c b/src/pc/gfx/gfx_opengl.c index b8dab59e5..b294f9e1c 100644 --- a/src/pc/gfx/gfx_opengl.c +++ b/src/pc/gfx/gfx_opengl.c @@ -266,7 +266,7 @@ static struct ShaderProgram *gfx_opengl_create_and_load_new_shader(struct ColorC for (int i = 0; i < 16 / 4; i++) { u8* c = &cc->shader_commands[i * 4]; do_single[i] = (c[2] == 0); - do_multiply[i] = (c[1] == c[3]); + do_multiply[i] = (c[1] == 0 && c[3] == 0); do_mix[i] = (c[1] == c[3]); } diff --git a/src/pc/gfx/gfx_pc.c b/src/pc/gfx/gfx_pc.c index 8caa8cf2b..7ca76f4c4 100644 --- a/src/pc/gfx/gfx_pc.c +++ b/src/pc/gfx/gfx_pc.c @@ -335,6 +335,7 @@ static struct ColorCombiner *gfx_lookup_or_create_color_combiner(struct CombineM struct ColorCombiner *comb = &color_combiner_pool[color_combiner_pool_size++]; comb->cm = *cm; gfx_generate_cc(comb); + return prev_combiner = comb; }