#include "config.h" #include "bonus.h" #include #include extern bopti_image_t img_emp_circ; extern bopti_image_t img_life_bonus; extern bopti_image_t img_sat_bonus; Bonus::Bonus( int16_t _x, int16_t _y, uint8_t _id ) { x = libnum::num( _x ); y = libnum::num( _y ); ID = _id; if (ID==0) { width = img_life_bonus.width/2; height = img_life_bonus.height/2; speed = 0; } else if (ID==1) { width = img_sat_bonus.width/2; height = img_sat_bonus.height/2; speed = 0; } xmin = (int) x - width; xmax = (int) x + width; ymin = (int) y - height; ymax = (int) y + height; toberemoved = false; currentframe = libnum::num(0); } Bonus::~Bonus() { if (hasTrajectory) delete(pathToFollow); } void Bonus::Update( float dt ) { if (!hasTrajectory) { /* libnum::num a = libnum::num( dt / 60000.0f ); x += a * libnum::num( dirx * speed ); y += a * libnum::num( diry * speed ); if (xazrp_width-width) dirx=-1*dirx; if (yazrp_height-height) diry=-1*diry; */ } else { pathToFollow->CalculatePosition( dt, speed, true, &x, &y ); } xmin = (int) x - width; xmax = (int) x + width; ymin = (int) y - height; ymax = (int) y + height; libnum::num a = libnum::num( dt / 150000.0f ); currentframe += a; if (currentframe >7 ) currentframe = libnum::num(0); } void Bonus::Render( void ) { uint8_t dximg = (int) currentframe * 15; uint8_t sz = (int) currentframe; azrp_subimage_p8( (int) x-sz, (int) y-sz, &img_emp_circ, dximg+7-sz, 7-sz, sz*2+1, sz*2+1, DIMAGE_NONE ); if (ID==0) { azrp_image_p8_effect(xmin, ymin, &img_life_bonus, DIMAGE_NONE); } else if (ID==1) { azrp_image_p8_effect(xmin, ymin, &img_sat_bonus, DIMAGE_NONE); } }