summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDerek Hensley <hensley.derek58@gmail.com>2022-07-21 22:02:55 -0700
committerGitHub <noreply@github.com>2022-07-22 06:02:55 +0100
commit5c7f21f6d2c77bc061adf0083a949b522355d4cb (patch)
tree314bea914d9a5be016190affd9a8bb5b6bcde8f0 /src
parent64ea6665bd3337308673b6c723729b81489f493e (diff)
Effect Gfire Ok (#941)
* OK * description
Diffstat (limited to 'src')
-rw-r--r--src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c52
1 files changed, 42 insertions, 10 deletions
diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c b/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c
index 65b8a76ac..7bc2d6966 100644
--- a/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c
+++ b/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c
@@ -1,27 +1,59 @@
/*
* File: z_eff_ss_g_fire.c
* Overlay: ovl_Effect_Ss_G_Fire
- * Description:
+ * Description: Flame Footprints
*/
#include "z_eff_ss_g_fire.h"
+#include "objects/gameplay_keep/gameplay_keep.h"
#define PARAMS ((EffectSsGFireInitParams*)initParamsx)
-s32 EffectSsGFire_Init(PlayState* play, u32 index, EffectSs* this, void* initParamsx);
+u32 EffectSsGFire_Init(PlayState* play, u32 index, EffectSs* this, void* initParamsx);
void EffectSsGFire_Update(PlayState* play, u32 index, EffectSs* this);
void EffectSsGFire_Draw(PlayState* play, u32 index, EffectSs* this);
-#if 0
const EffectSsInit Effect_Ss_G_Fire_InitVars = {
EFFECT_SS_G_FIRE,
EffectSsGFire_Init,
};
-#endif
-
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Effect_Ss_G_Fire/EffectSsGFire_Init.s")
-
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Effect_Ss_G_Fire/EffectSsGFire_Draw.s")
-
-#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Effect_Ss_G_Fire/EffectSsGFire_Update.s")
+u32 EffectSsGFire_Init(PlayState* play, u32 index, EffectSs* this, void* initParamsx) {
+ EffectSsGFireInitParams* initParams = PARAMS;
+
+ Math_Vec3f_Copy(&this->velocity, &gZeroVec3f);
+ Math_Vec3f_Copy(&this->accel, &gZeroVec3f);
+ Math_Vec3f_Copy(&this->pos, &initParams->pos);
+ this->draw = EffectSsGFire_Draw;
+ this->update = EffectSsGFire_Update;
+ this->gfx = gEffFireFootprintDL;
+ this->life = 8;
+ this->flags = 0;
+ this->rgScale = 200;
+ this->rgTexIndex = 0;
+ this->rgTexIndexStep = 50;
+ this->rgPrimColorR = 255;
+ this->rgPrimColorG = 220;
+ this->rgPrimColorB = 80;
+ this->rgPrimColorA = 255;
+ this->rgEnvColorR = 130;
+ this->rgEnvColorG = 30;
+ this->rgEnvColorB = 0;
+ this->rgEnvColorA = 0;
+
+ return 1;
+}
+
+void EffectSsGFire_Draw(PlayState* play, u32 index, EffectSs* this) {
+ TexturePtr fireFootprintTextures[] = {
+ gEffFireFootprint1Tex, gEffFireFootprint2Tex, gEffFireFootprint3Tex, gEffFireFootprint4Tex,
+ gEffFireFootprint5Tex, gEffFireFootprint6Tex, gEffFireFootprint7Tex, gEffFireFootprint8Tex,
+ };
+ s16 texIndex = (this->rgTexIndex / 100) % 7;
+
+ EffectSs_DrawGEffect(play, this, fireFootprintTextures[texIndex]);
+}
+
+void EffectSsGFire_Update(PlayState* play, u32 index, EffectSs* this) {
+ this->rgTexIndex += this->rgTexIndexStep;
+}