#ifndef Z64EFF_TIRE_MARK_H #define Z64EFF_TIRE_MARK_H #include "ultra64.h" #include "color.h" #include "z64math.h" #include "unk.h" struct CollisionContext; struct CollisionPoly; struct GraphicsContext; #define EFFECT_TIRE_MARK_ELEMENT_FLAG_1 (1 << 0) #define EFFECT_TIRE_MARK_ELEMENT_FLAG_2 (1 << 1) typedef struct EffectTireMarkElement { /* 0x00 */ u16 flags; /* 0x02 */ Vec3s p1; /* 0x08 */ Vec3s p2; /* 0x0E */ s16 life; /* 0x10 */ UNK_TYPE1 pad10[0x4]; /* 0x14 */ struct CollisionPoly* colPoly; } EffectTireMarkElement; // size = 0x18 typedef struct EffectTireMarkInit { /* 0x0 */ s16 unk0; /* 0x2 */ s16 elemDuration; /* 0x4 */ Color_RGBA8 color; } EffectTireMarkInit; // size = 0x8 typedef struct EffectTireMark { /* 0x000 */ EffectTireMarkElement elements[64]; /* 0x600 */ s16 unk600; /* 0x602 */ s16 numElements; /* 0x604 */ s16 elemDuration; /* 0x606 */ Color_RGBA8 color; } EffectTireMark; // size = 0x60C void func_800AE930(struct CollisionContext* colCtx, EffectTireMark* this, Vec3f* pos, f32 arg3, s16 angle, struct CollisionPoly* colPoly, s32 bgId); void func_800AEF44(EffectTireMark* this); void EffectTireMark_Init(void* thisx, void* initParamsx); void EffectTireMark_Destroy(void* thisx); s32 EffectTireMark_Update(void* thisx); void EffectTireMark_Draw(void* thisx, struct GraphicsContext* gfxCtx); #endif