#include "twn_draw.h" #include "twn_draw_c.h" #include #include static float start_cache, end_cache, density_cache; static Color color_cache; static bool fog_used = false; void draw_fog(float start, float end, float density, Color color) { start_cache = start; end_cache = end; density_cache = density; color_cache = color; fog_used = true; } void apply_fog(void) { if (!fog_used) return; DeferredCommand command = { .type = DEFERRED_COMMAND_TYPE_APPLY_FOG, .apply_fog = (DeferredCommandApplyFog){ .start = start_cache, .end = end_cache, .density = density_cache, .color = color_cache } }; arrpush(deferred_commands, command); } void pop_fog(void) { if (!fog_used) return; DeferredCommand command = { .type = DEFERRED_COMMAND_TYPE_POP_FOG, }; arrpush(deferred_commands, command); }