sfSprite *radar_blip_from_object(game_object *obj) { if(!obj->sprite) { return NULL; } sfSprite *objsprite = sfSprite_create(); sfVector2u texture_origin; if(strcmp(obj->object_type,"player") == 0) { sfSprite_setTexture(objsprite,radar_blip_texture_player,1); texture_origin = sfTexture_getSize(radar_blip_texture_player); }else if(strcmp(obj->object_type,"enemy") == 0) { sfSprite_setTexture(objsprite,radar_blip_texture,1); texture_origin = sfTexture_getSize(radar_blip_texture); } float _x = (float)texture_origin.x; float _y = (float)texture_origin.y; sfVector2f new_org; new_org.x = _x /2 ; new_org.y = _y /2 ; sfSprite_setOrigin(objsprite,new_org); sfSprite_setPosition(objsprite,radar_position_translation(sfSprite_getPosition(obj->sprite))); return objsprite; }
CAMLprim value caml_sfSprite_setOrigin(value sprite, value origin) { sfSprite_setOrigin(SfSprite_val(sprite), SfVector2f_val(origin)); return Val_unit; }