/** * Release all variables in pGlobal */ void global_freeUserVar() { gfmQuadtree_free(&(pGlobal->pQt)); gfmGroup_free(&(pGlobal->pHitbox)); gfmTilemap_free(&(pGlobal->pTMap)); entity_free(&(pGlobal->pGirl)); entity_free(&(pGlobal->pBoy)); }
void entity_close(){ //deallocates all entities int i; for(i = 0; i < ENTITY_MAX; i++){ if(entityList[i].inuse == true){ entity_free(&entityList[i]); } } memset(entityList, 0, sizeof(entity) * ENTITY_MAX); }
void world_free(core_world_t world) { world_t w = (world_t) world; int it; for (it=0;it<w->amount_entity;it++) entity_free(w->entities[it]); free(w->entities); free(w->lines); free(w); }
void entity_update_all(){ int i = 0; Vec2d new_pos; Vec2d old_pos; for(i = 0; i < ENTITY_MAX; i++){ if(!entityList[i].inuse){ continue; } if(!entityList[i].sprite) { entity_free(&entityList[i]); } if(entityList[i].position.x < 0 ) { entityList[i].position.x =0; } if(entityList[i].position.x + entityList[i].sprite->frameW > TOTAL_TILES_X * TILE_WIDTH) { entityList[i].position.x = TOTAL_TILES_X * TILE_WIDTH - entityList[i].sprite->frameW; } if(entityList[i].position.y < 0 ) { entityList[i].position.y =0; } if(entityList[i].position.y + entityList[i].sprite->frameH > TOTAL_TILES_Y * TILE_HEIGHT) { entityList[i].position.y = TOTAL_TILES_Y * TILE_HEIGHT - entityList[i].sprite->frameH; } if(!entityList[i].update){ continue; } entityList[i].update(&entityList[i]); if(entityList[i].health <= 0 && !entityList[i].player) { entity_free(&entityList[i]); } if(entityList[i].weapon){ entityList[i].weapon->face_dir = entityList[i].face_dir; } } }
void closeEntitySystem() { int i; Entity *ent; for (i = 0; i < MaxEntities;i++) { ent= &EntityList[i]; entity_free(&ent); } free(EntityList); }
static void entity_deinitialize() { int i; for (i = 0;i < __entity_max;i++) { if (__entity_list[i].inuse) { entity_free(&__entity_list[i]); } } free(__entity_list); __entity_max = 0; __entity_initialized = 0; }
void entity_update_all() { int i; int j; Entity *e; for (i = 0; i < MaxEntities;i++) { e = &EntityList[i]; if(EntityList[i].cleanUp) { entity_free(&e); continue; } if (!EntityList[i].inuse) { continue; } vec2d_add(EntityList[i].position,EntityList[i].velocity,EntityList[i].position); if (!EntityList[i].update) { continue; } EntityList[i].update(&EntityList[i]); for(j=0;j < EntityList[j].inuse && j != i;j++) { if(EntityList[i].touch != NULL) { (*EntityList[i].touch)(&EntityList[i],&EntityList[j]); } } } }
void entity_death(entity *self){ //death animation //free entity_free(self); }
void animal_free(Entity *entity) { entity_free(&entity); }