mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	vcmi: fix week animation
This commit is contained in:
		| @@ -64,6 +64,7 @@ CInfoBar::VisibleDateInfo::VisibleDateInfo() | ||||
| 	OBJECT_CONSTRUCTION_CAPTURING(255-DISPOSE); | ||||
|  | ||||
| 	animation = std::make_shared<CShowableAnim>(1, 0, getNewDayName(), CShowableAnim::PLAY_ONCE, 180);// H3 uses around 175-180 ms per frame | ||||
| 	animation->setDuration(1500); | ||||
|  | ||||
| 	std::string labelText; | ||||
| 	if(LOCPLINT->cb->getDate(Date::DAY_OF_WEEK) == 1 && LOCPLINT->cb->getDate(Date::DAY) != 1) // monday of any week but first - show new week info | ||||
| @@ -81,7 +82,7 @@ std::string CInfoBar::VisibleDateInfo::getNewDayName() | ||||
| 	if(LOCPLINT->cb->getDate(Date::DAY) == 1) | ||||
| 		return "NEWDAY"; | ||||
|  | ||||
| 	if(LOCPLINT->cb->getDate(Date::DAY) != 1) | ||||
| 	if(LOCPLINT->cb->getDate(Date::DAY_OF_WEEK) != 1) | ||||
| 		return "NEWDAY"; | ||||
|  | ||||
| 	switch(LOCPLINT->cb->getDate(Date::WEEK)) | ||||
|   | ||||
| @@ -392,6 +392,11 @@ void CShowableAnim::rotate(bool on, bool vertical) | ||||
| 		flags &= ~flag; | ||||
| } | ||||
|  | ||||
| void CShowableAnim::setDuration(int durationMs) | ||||
| { | ||||
| 	frameTimeTotal = durationMs/(last - first); | ||||
| } | ||||
|  | ||||
| CCreatureAnim::CCreatureAnim(int x, int y, std::string name, ui8 flags, ECreatureAnimType type): | ||||
| 	CShowableAnim(x, y, name, flags, 100, size_t(type)) // H3 uses 100 ms per frame, irregardless of battle speed settings | ||||
| { | ||||
|   | ||||
| @@ -169,6 +169,9 @@ public: | ||||
| 	//set frame to first, call callback | ||||
| 	virtual void reset(); | ||||
|  | ||||
| 	//set animation duration | ||||
| 	void setDuration(int durationMs); | ||||
|  | ||||
| 	//show current frame and increase counter | ||||
| 	void show(SDL_Surface * to) override; | ||||
| 	void showAll(SDL_Surface * to) override; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user