/* by korenkonder GitHub/GitLab: korenkonder */ #pragma once #include #include "../KKdLib/default.hpp" #include "../KKdLib/database/object.hpp" #include "../KKdLib/database/stage.hpp" #include "../KKdLib/database/texture.hpp" #include "../KKdLib/vec.hpp" #include "frame_rate_control.hpp" enum EffectType { EFFECT_INVALID = -1, EFFECT_AUTH_3D = 0x00, EFFECT_TYPE_1 = 0x01, EFFECT_LEAF = 0x02, EFFECT_TYPE_3 = 0x03, EFFECT_SNOW = 0x04, EFFECT_TYPE_5 = 0x05, EFFECT_RIPPLE = 0x06, EFFECT_RAIN = 0x07, EFFECT_TYPE_8 = 0x08, EFFECT_TYPE_9 = 0x09, EFFECT_TYPE_10 = 0x0A, EFFECT_TYPE_11 = 0x0B, EFFECT_SPLASH = 0x0C, EFFECT_TYPE_13 = 0x0D, EFFECT_FOG_ANIM = 0x0E, EFFECT_TYPE_15 = 0x0F, EFFECT_FOG_RING = 0x10, EFFECT_TYPE_17 = 0x11, EFFECT_PARTICLE = 0x12, EFFECT_LITPROJ = 0x13, EFFECT_STAR = 0x14, EFFECT_MAX = 0x15, }; struct particle_event_data { float_t type; float_t count; float_t size; vec3 pos; float_t force; particle_event_data(); }; extern void leaf_particle_draw(struct render_data_context& rend_data_ctx, const struct cam_data& cam); extern void rain_particle_draw(struct render_data_context& rend_data_ctx, const struct cam_data& cam); extern void particle_draw(struct render_data_context& rend_data_ctx, const struct cam_data& cam); extern void snow_particle_draw(struct render_data_context& rend_data_ctx, const struct cam_data& cam); extern void star_catalog_draw(struct render_data_context& rend_data_ctx, const struct cam_data& cam); extern void effect_init(); extern void effect_free(); extern void effect_fog_ring_data_reset(); extern void effect_splash_data_reset(); extern void effect_manager_event(EffectType type, int32_t event_type, void* data); extern void effect_manager_dest(); extern bool effect_manager_load(); extern void effect_manager_reset(); extern void effect_manager_set_current_stage_hash(uint32_t stage_hash); extern void effect_manager_set_current_stage_index(int32_t stage_index); extern void effect_manager_set_data(void* data, object_database* obj_db, texture_database* tex_db, stage_database* stage_data); extern void effect_manager_set_enable(bool value); extern void effect_manager_set_frame(int32_t value); extern void effect_manager_set_frame_rate_control(FrameRateControl* value); extern void effect_manager_set_stage_hashes(const std::vector& stage_hashes); extern void effect_manager_set_stage_indices(const std::vector& stage_indices); extern bool effect_manager_unload();