void explosion_terrain_new ( u16 x, u16 y ) { u16 aux = _find(); u16 sprite = sd_new(); expTerrains[aux].timeout = EXPLOSION_TERRAIN_COUNTER; expTerrains[aux].sprite = sprite; SPR_initSprite(&sprites[sprite], &leo, x*8*2, y*8*2, TILE_ATTR(PAL3, TRUE, FALSE, FALSE)); SPR_setAnim(&sprites[sprite], EXPLOSION_TERRAIN_SPRITE_POS ); }
void *sha_setLocalDataForKey(ShmemArray *array, unsigned int elementNumber, const char *key, void *data, sha_clearLocalDataCallback clearCallback) { void *oldValue = NULL; if (elementNumber < array->elementCount) { if (!array->elements[elementNumber].localData) array->elements[elementNumber].localData = sd_new(1); oldValue = sd_add(array->elements[elementNumber].localData, key, data); if (clearCallback != NULL) { if (!array->elements[elementNumber].localDataCleanupCallbacks) array->elements[elementNumber].localDataCleanupCallbacks = wolist_new(1); if (wolist_indexOf(array->elements[elementNumber].localDataCleanupCallbacks, (void *)clearCallback) == wolist_elementNotFound) wolist_add(array->elements[elementNumber].localDataCleanupCallbacks, (void *)clearCallback); } } return oldValue; }