Make -2 the magic infinite loops value

This commit is contained in:
2025-02-19 21:23:50 -06:00
committed by Celtic Minstrel
parent bb3937d40a
commit 434577426e
5 changed files with 13 additions and 7 deletions

View File

@@ -178,7 +178,7 @@ Picture number
Picture type
Unused
Unused
Animation Loops (-1 for infinite)
Animation Loops (-2 for infinite)
Unused
Unused
Animation FPS (-1 for default 2)

View File

@@ -93,7 +93,7 @@ Picture number
Picture type
Label of 2nd button (-1 - no button)
Special if button 2 pressed
Animation Loops (-1 for infinite)
Animation Loops (-2 for infinite)
Label of 3rd button (-1 - no button)
Special if button 3 pressed
Animation FPS (-1 for default 2)
@@ -144,7 +144,7 @@ Picture number
Picture type
Item to give
Amount of gold to give
Animation Loops (-1 for infinite)
Animation Loops (-2 for infinite)
Amount of food to give
Special if item IS taken
Animation FPS (-1 for default 2)
@@ -229,7 +229,7 @@ Picture number
Picture type
Type of trap
Trap severity (0 .. 3)
Animation Loops (-1 for infinite)
Animation Loops (-2 for infinite)
Penalty (0 .. 100, higher is harder)
(Custom only) Special node for effect
Animation FPS (-1 for default 2)

View File

@@ -314,7 +314,7 @@ Picture number
Picture type
Unused
If Pulled, call this special ...
Animation Loops (-1 for infinite)
Animation Loops (-2 for infinite)
Unused
Unused
Animation FPS (-1 for default 2)
@@ -331,7 +331,7 @@ Picture number
Picture type
X coordinate to telep. to
Y coordinate to telep. to
Animation Loops (-1 for infinite)
Animation Loops (-2 for infinite)
Unused
Unused
Animation FPS (-1 for default 2)

View File

@@ -935,6 +935,12 @@ void cPict::drawPresetField(short num, rectangle to_rect){
rect_draw_some_item(*from_gw, from_rect, getWindow(), to_rect, sf::BlendAlpha);
}
void cPict::setAnimLoops(short value) {
// -2 is infinite loops. Anything else <= 0 is no animation.
if(value >= 0 || value == -2) animLoops = value;
else animLoops = 0;
}
void cPict::updateAnim(short loop_frames) {
if(prevAnimFrame != animFrame){
if(animFrame % loop_frames == 0 && animLoops > 0)

View File

@@ -85,7 +85,7 @@ public:
cPict& operator=(cPict& other) = delete;
cPict(cPict& other) = delete;
inline static void resetAnim() { animFrame = 0; }
inline void setAnimLoops(short value) { animLoops = value; }
void setAnimLoops(short value);
private:
static std::shared_ptr<const sf::Texture> getSheetInternal(eSheetType type, size_t n);
std::shared_ptr<const sf::Texture> getSheet(eSheetType type, size_t n = 0);