link ef_buruburu

This commit is contained in:
Prakxo
2024-04-21 18:01:39 +02:00
parent a17c42d27e
commit 5f72a844de
2 changed files with 43 additions and 4 deletions
+4
View File
@@ -998,6 +998,10 @@ ef_bubu.c:
.text: [0x8060672C, 0x80606878]
.rodata: [0x8064BD60, 0x8064BD68]
.data: [0x806D1F20, 0x806D1F38]
ef_buruburu.c:
.text: [0x80606878, 0x80606A68]
.rodata: [0x8064BD68, 0x8064BD78]
.data: [0x806D1F38, 0x806D1F68]
ef_coin.c:
.text: [0x80608060, 0x806087EC]
.rodata: [0x8064BE48, 0x8064BEA0]
+39 -4
View File
@@ -1,10 +1,17 @@
#include "ef_effect_control.h"
#include "m_common_data.h"
extern u8 ef_buruburu01_0_int_i4[];
extern u8 ef_buruburu01_1_int_i4[];
extern Gfx ef_buruburu01_00_modelT[];
static void eBR_init(xyz_t pos, int prio, s16 angle, GAME* game, u16 item_name, s16 arg0, s16 arg1);
static void eBR_ct(eEC_Effect_c* effect, GAME* game, void* ct_arg);
static void eBR_mv(eEC_Effect_c* effect, GAME* game);
static void eBR_dw(eEC_Effect_c* effect, GAME* game);
eEC_PROFILE_c iam_ef_buruburu = {
// clang-format off
&eBR_init,
@@ -17,18 +24,46 @@ eEC_PROFILE_c iam_ef_buruburu = {
// clang-format on
};
static f32 eBR_scale_x[] = { 0.015f, 0.016f };
static f32 eBR_scale_z[] = { 0.01f, 0.011f };
static u8* eBR_tex_anime_table[] = {
ef_buruburu01_0_int_i4,ef_buruburu01_1_int_i4,
};
static void eBR_init(xyz_t pos, int prio, s16 angle, GAME* game, u16 item_name, s16 arg0, s16 arg1) {
// TODO
xyz_t offs;
offs.x = 0.0f;
offs.y = -10.0f;
offs.z = 0.0f;
eEC_CLIP->make_effect_proc(eEC_EFFECT_BURUBURU,pos,&offs,game,NULL,item_name,prio,0,0);
}
static void eBR_ct(eEC_Effect_c* effect, GAME* game, void* ct_arg) {
// TODO
effect->scale.x = 0.01f;
effect->scale.y = 0.01f;
effect->scale.z = 0.01f;
effect->timer = 8;
}
static void eBR_mv(eEC_Effect_c* effect, GAME* game) {
// TODO
eEC_CLIP->set_continious_env_proc(effect,8,8);
sAdo_OngenPos((u32) effect, 0x2D, &effect->position);
}
static void eBR_dw(eEC_Effect_c* effect, GAME* game) {
// TODO
s16 idx = (effect->timer >> 1) & 1;
effect->scale.x = eBR_scale_x[idx];
effect->scale.z = eBR_scale_z[idx];
OPEN_DISP(game->graph);
eEC_CLIP->auto_matrix_xlu_offset_proc(game, &effect->position, &effect->scale, &effect->offset);
gSPSegment(NEXT_POLY_XLU_DISP,G_MWO_SEGMENT_8,eBR_tex_anime_table[idx]);
gSPDisplayList(NEXT_POLY_XLU_DISP,ef_buruburu01_00_modelT);
CLOSE_DISP(game->graph);
}