8#define EFFECT_GLOBALS_TLB_IDX 0x10
16#define FX_ENTRY(name, gfx_name) { \
17 .entryPoint = name##_main, \
18 .dmaStart = effect_##name##_ROM_START, \
19 .dmaEnd = effect_##name##_ROM_END, \
20 .dmaDest = effect_##name##_VRAM, \
21 .graphicsDmaStart = gfx_name##_ROM_START, \
22 .graphicsDmaEnd = gfx_name##_ROM_END, \
25#include "effects/effect_table.c"
27s32
D_8007FEB8[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 5, 3, 4, 13, 60, 0, 512, 0, 0, 3, 0 };
80 effectInstance->
shared->
flags &= ~FX_SHARED_DATA_CAN_FREE;
107 sharedData->
flags = 0;
122 if (effectInstance != NULL) {
147 if (effectInstance != NULL) {
167 gSPClearGeometryMode(
gMainGfxPos++, G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG |
168 G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD |
169 G_SHADING_SMOOTH | G_CLIPPING | 0x40F9FA);
170 gSPSetGeometryMode(
gMainGfxPos++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH);
182 G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
186 renderUI(effectInstance);
210 ASSERT(newEffectInst != NULL);
229 if (sharedData->
update == NULL) {
245 newEffectInst->
shared = sharedData;
247 if (effectBp->
init != NULL) {
248 effectBp->
init(newEffectInst);
254 return newEffectInst;
268 if (effectInstance->
data.
any == NULL) {
285 if (effect->
data.
any != NULL) {
#define general_heap_malloc
#define create_effect_instance
EffectInstance * gEffectInstances[96]
void update_effects(void)
void remove_all_effects(void)
void set_effect_pos_offset(EffectInstance *effect, f32 x, f32 y, f32 z)
void stub_effect_delegate(EffectInstance *effect)
Used for unbound function points in effect structs.
void clear_effect_data(void)
TlbEntry TlbMappablePage[15]
void render_effects_scene(void)
TlbMappablePage gEffectDataBuffer
BSS EffectSharedData gEffectSharedData[15]
#define EFFECT_GLOBALS_TLB_IDX
void render_effects_UI(void)
EffectInstanceDataPtr data
struct EffectSharedData * shared
#define ASSERT(condition)
@ FX_INSTANCE_FLAG_BATTLE
@ FX_INSTANCE_FLAG_ENABLED
@ FX_INSTANCE_FLAG_HAS_UPDATED
@ FX_SHARED_DATA_CAN_FREE
u32 dma_copy(Addr romStart, Addr romEnd, void *vramDest)
s32 general_heap_free(void *data)
#define DMA_COPY_SEGMENT(segment)
void(* renderUI)(EffectInstance *effectInst)
void(* init)(EffectInstance *effectInst)
void(* update)(EffectInstance *effectInst)
void(* renderScene)(EffectInstance *effectInst)
void(* update)(EffectInstance *effectInst)
void(* renderScene)(EffectInstance *effectInst)
void(* renderUI)(EffectInstance *effectInst)
u8 Addr[]
Linker symbol address, as in ld_addrs.h.
GameStatus * gGameStatusPtr
DisplayContext * gDisplayContext