X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fmousecursor.cpp;h=ff794b206b018b7a73120b145d1b2ade05214ada;hb=157cef71aeb9ae25b7bb90f37dda11bc09329d11;hp=8fd776a479ff5e0035acb5b82bbe73e7da7cc031;hpb=84160722392a024dda42bd86ca9bd85b68c49457;p=supertux.git diff --git a/src/mousecursor.cpp b/src/mousecursor.cpp index 8fd776a47..ff794b206 100644 --- a/src/mousecursor.cpp +++ b/src/mousecursor.cpp @@ -20,17 +20,19 @@ #include "screen.h" #include "mousecursor.h" -MouseCursor::MouseCursor(std::string cursor_file, int frames) +MouseCursor* MouseCursor::current_ = 0; + +MouseCursor::MouseCursor(std::string cursor_file, int frames) : mid_x(0), mid_y(0) { cursor = new Surface(cursor_file, USE_ALPHA); - + cur_state = MC_NORMAL; cur_frame = 0; tot_frames = frames; timer.init(false); timer.start(MC_FRAME_PERIOD); - + SDL_ShowCursor(SDL_DISABLE); } @@ -51,6 +53,12 @@ void MouseCursor::set_state(int nstate) cur_state = nstate; } +void MouseCursor::set_mid(int x, int y) +{ + mid_x = x; + mid_y = y; +} + void MouseCursor::draw() { int x,y,w,h; @@ -80,5 +88,5 @@ void MouseCursor::draw() timer.start(MC_FRAME_PERIOD); } - cursor->draw_part(w*cur_frame, h*cur_state , x, y, w, h); + cursor->draw_part(w*cur_frame, h*cur_state , x-mid_x, y-mid_y, w, h); }