Skip to content

Commit

Permalink
Make -2 the magic infinite loops value
Browse files Browse the repository at this point in the history
  • Loading branch information
NQNStudios committed Mar 3, 2025
1 parent 2a6f76f commit 50a5dfe
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 7 deletions.
2 changes: 1 addition & 1 deletion rsrc/strings/specials-text-general.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
6 changes: 3 additions & 3 deletions rsrc/strings/specials-text-once.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down
4 changes: 2 additions & 2 deletions rsrc/strings/specials-text-town.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
Expand Down
6 changes: 6 additions & 0 deletions src/dialogxml/widgets/pict.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion src/dialogxml/widgets/pict.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ class cPict : public cControl {
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);
Expand Down

0 comments on commit 50a5dfe

Please sign in to comment.