X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=lib%2Fspecial%2Fsprite.cpp;h=9bd8a989bfad1205770f7ece5d0e03884ea6561b;hb=f5849145d99db1e654d7219933672587a3d2f2e5;hp=7387e3dfd8b21e5baeb1af0ca7208e9ac219c191;hpb=4bd61c269ff9984329b700f015e94bca89417bd7;p=supertux.git diff --git a/lib/special/sprite.cpp b/lib/special/sprite.cpp index 7387e3dfd..9bd8a989b 100644 --- a/lib/special/sprite.cpp +++ b/lib/special/sprite.cpp @@ -39,6 +39,8 @@ Sprite::Sprite(lisp_object_t* cur) name = lisp_string(data); else if(token == "action") parse_action(reader); + else + std::cerr << "Warning: Unknown sprite field: " << token << std::endl; } if(name.empty()) @@ -68,8 +70,8 @@ Sprite::parse_action(LispReader& lispreader) if(!lispreader.read_string("name", action->name)) if(!actions.empty()) Termination::abort("Error: If there are more than one action, they need names!", ""); - lispreader.read_int("x-hotspot", action->x_hotspot); - lispreader.read_int("y-hotspot", action->y_hotspot); + lispreader.read_int("x-offset", action->x_hotspot); + lispreader.read_int("y-offset", action->y_hotspot); lispreader.read_float("fps", action->fps); std::vector images; @@ -104,6 +106,11 @@ if(!next_action.empty() && animation_loops > 0) return; } Actions::iterator i = actions.find(act); +if(i == actions.end()) + { + std::cerr << "Warning: Action '" << act << "' not found on Sprite '" << name << "'\n"; + return; + } action = i->second; } @@ -119,7 +126,7 @@ Sprite::reset() { frame = 0; last_tick = SDL_GetTicks(); -animation_reversed = true; +animation_reversed = false; next_action.clear(); } @@ -157,7 +164,7 @@ else if(animation_reversed) { float excedent = frame - 0; - if(excedent < 0 || excedent >= get_frames()) + if((int)excedent < 0 || excedent >= get_frames()) { // last case can happen when not used reverse_animation() frame = get_frames() - 1; if(animation_loops > 0) @@ -177,7 +184,7 @@ if(animation_reversed) else { float excedent = frame - action->surfaces.size(); - if(excedent >= 0) + if((int)excedent >= 0) { frame = 0; if(animation_loops > 0)