// Copyright (c) 2023 Alex Diener. All rights reserved. #include "PROJECT_NAME/EntityComponent_sprite.h" #include "PROJECT_NAME/SharedDefinitions.h" #define stemobject_implementation EntityComponent_sprite stemobject_vtable_begin(); stemobject_vtable_entry(dispose); stemobject_vtable_entry(initCopy); stemobject_vtable_entry(getAnimationTime); stemobject_vtable_end(); bool EntityComponent_sprite_init(EntityComponent_sprite * self, SpriteID spriteID, int drawLayer, int drawPriority) { call_super(init, self); self->spriteID = spriteID; self->drawLayer = drawLayer; self->drawPriority = drawPriority; return true; } void EntityComponent_sprite_dispose(EntityComponent_sprite * self) { call_super_virtual(dispose, self); } void EntityComponent_sprite_initCopy(EntityComponent_sprite * self, compat_type(GameEntityComponent *) originalUntyped) { call_super_virtual(initCopy, self, originalUntyped); EntityComponent_sprite * original = originalUntyped; self->spriteID = original->spriteID; self->drawLayer = original->drawLayer; self->drawPriority = original->drawPriority; } unsigned int EntityComponent_sprite_getAnimationTime(EntityComponent_sprite * self, double referenceTime) { return referenceTime * ANIMATION_FRAME_RATE; }