From c95fd081b028ee878dba522ab1a45d52ae96d91f Mon Sep 17 00:00:00 2001 From: Norgesnerd <5824576+Norgesnerd@users.noreply.github.com> Date: Sun, 25 May 2025 16:30:09 +0200 Subject: [PATCH] Implement & link ef_lovelove --- configure.py | 2 +- src/effect/ef_lovelove.c | 23 +++++++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/configure.py b/configure.py index 6d4cb48d..39dab37d 100644 --- a/configure.py +++ b/configure.py @@ -1289,7 +1289,7 @@ config.libs = [ Object(NonMatching, "effect/ef_kpun.c"), Object(Matching, "effect/ef_kyousou_onpu.c"), Object(Matching, "effect/ef_lamp_light.c"), - Object(NonMatching, "effect/ef_lovelove.c"), + Object(Matching, "effect/ef_lovelove.c"), Object(NonMatching, "effect/ef_lovelove2.c"), Object(NonMatching, "effect/ef_lovelove_heart.c"), Object(Matching, "effect/ef_make_hem.c"), diff --git a/src/effect/ef_lovelove.c b/src/effect/ef_lovelove.c index bccc0f20..53e9b6d9 100644 --- a/src/effect/ef_lovelove.c +++ b/src/effect/ef_lovelove.c @@ -1,5 +1,7 @@ #include "ef_effect_control.h" +#include "m_common_data.h" + static void eLove_init(xyz_t pos, int prio, s16 angle, GAME* game, u16 item_name, s16 arg0, s16 arg1); static void eLove_ct(eEC_Effect_c* effect, GAME* game, void* ct_arg); static void eLove_mv(eEC_Effect_c* effect, GAME* game); @@ -18,17 +20,30 @@ eEC_PROFILE_c iam_ef_lovelove = { }; static void eLove_init(xyz_t pos, int prio, s16 angle, GAME* game, u16 item_name, s16 arg0, s16 arg1) { - // TODO + pos.y -= 10.0f; + eEC_CLIP->make_effect_proc(eEC_EFFECT_LOVELOVE, pos, NULL, game, NULL, item_name, prio, 0, 0); } static void eLove_ct(eEC_Effect_c* effect, GAME* game, void* ct_arg) { - // TODO + effect->timer = 52; } static void eLove_mv(eEC_Effect_c* effect, GAME* game) { - // TODO + s32 prio; + u16 name; + + eEC_CLIP->set_continious_env_proc(effect, 52, 102); + sAdo_OngenPos((u32)effect, 14, &effect->position); + + if ((effect->timer & 7) == 0) { + name = effect->item_name; + prio = effect->prio; + if ((eEC_CLIP != NULL)) { + eEC_CLIP->effect_make_proc(eEC_EFFECT_LOVELOVE_HEART, effect->position, prio, 0, game, name, 0, 0); + } + } } static void eLove_dw(eEC_Effect_c* effect, GAME* game) { - // TODO + return; }