Skip to content

Commit 8b32c81

Browse files
committed
fix FadeCard
1 parent a5f7425 commit 8b32c81

3 files changed

Lines changed: 9 additions & 4 deletions

File tree

gframe/client_card.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@ class ClientCard {
1515
irr::core::vector3df curRot;
1616
irr::core::vector3df dPos;
1717
irr::core::vector3df dRot;
18-
irr::u32 curAlpha{ 255 };
19-
irr::u32 dAlpha{ 0 };
18+
float curAlpha{ 255.0f };
19+
float dAlpha{ 0.0f };
20+
int targetAlpha{ 255 };
2021
irr::u32 aniFrame{ 0 };
2122
bool is_moving{ false };
2223
bool is_fading{ false };

gframe/client_field.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1117,7 +1117,8 @@ void ClientField::MoveCard(ClientCard * pcard, int frame60) {
11171117
}
11181118
void ClientField::FadeCard(ClientCard * pcard, int alpha, int frame60) {
11191119
int frame = mainGame->ScaleFrame(frame60);
1120-
pcard->dAlpha = (alpha - pcard->curAlpha) / frame;
1120+
pcard->targetAlpha = alpha;
1121+
pcard->dAlpha = (pcard->targetAlpha - pcard->curAlpha) / frame;
11211122
pcard->is_fading = true;
11221123
pcard->aniFrame = frame;
11231124
}

gframe/drawing.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -405,13 +405,16 @@ void Game::DrawCard(ClientCard* pcard) {
405405
pcard->curAlpha += pcard->dAlpha;
406406
pcard->aniFrame--;
407407
if(pcard->aniFrame == 0) {
408+
if(pcard->is_fading)
409+
pcard->curAlpha = pcard->targetAlpha;
408410
pcard->is_moving = false;
409411
pcard->is_fading = false;
410412
pcard->chain_code = 0;
411413
}
412414
}
413415
matManager.mCard.AmbientColor = 0xffffffff;
414-
matManager.mCard.DiffuseColor = (pcard->curAlpha << 24) | 0xffffff;
416+
irr::u32 alpha = myclamp(static_cast<int>(pcard->curAlpha + 0.5f), 0, 255);
417+
matManager.mCard.DiffuseColor = (alpha << 24) | 0xffffff;
415418
driver->setTransform(irr::video::ETS_WORLD, pcard->mTransform);
416419
auto m22 = pcard->mTransform(2, 2);
417420
if(m22 > -0.99 || pcard->is_moving) {

0 commit comments

Comments
 (0)