static void bucketWait() { setEntityAnimation(self, getAnimationTypeAtIndex(self->head)); if (self->head->flags & NO_DRAW) { self->flags |= NO_DRAW; } else { self->flags &= ~NO_DRAW; } self->x = self->head->x + self->offsetX; self->y = self->head->y + self->offsetY; }
void addDuplicateImage(Entity *e) { char shadowAnim[MAX_VALUE_LENGTH]; Entity *duplicate; duplicate = getFreeEntity(); if (duplicate == NULL) { return; } loadProperties(e->name, duplicate); duplicate->x = e->x; duplicate->y = e->y; duplicate->thinkTime = 15; duplicate->draw = &drawLoopingAnimationToMap; duplicate->action = &duplicateWait; duplicate->creditsAction = &duplicateWait; snprintf(shadowAnim, MAX_VALUE_LENGTH, "%s_SHADOW", getAnimationTypeAtIndex(e)); setEntityAnimation(duplicate, shadowAnim); duplicate->currentFrame = e->currentFrame; duplicate->frameSpeed = 0; duplicate->face = e->face; duplicate->layer = BACKGROUND_LAYER; duplicate->flags |= DO_NOT_PERSIST; duplicate->head = e; }
static void scytheWait() { self->face = self->head->face; setEntityAnimation(self, getAnimationTypeAtIndex(self->head)); if (self->face == LEFT) { self->x = self->head->x + self->head->w - self->w - self->offsetX; } else { self->x = self->head->x + self->offsetX; } self->y = self->head->y + self->offsetY; self->alpha = self->head->alpha; if (self->head->flags & NO_DRAW) { self->flags |= NO_DRAW; } else { self->flags &= ~NO_DRAW; } if (self->head->flags & FLASH) { self->flags |= FLASH; } else { self->flags &= ~FLASH; } }
static void scytheCreditsMove() { self->face = self->head->face; setEntityAnimation(self, getAnimationTypeAtIndex(self->head)); if (self->face == LEFT) { self->x = self->head->x + self->head->w - self->w - self->offsetX; } else { self->x = self->head->x + self->offsetX; } self->y = self->head->y + self->offsetY; if (self->head->inUse == FALSE) { self->inUse = FALSE; } }