mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'show-emerald-again' into 'master'
Draw Chaos Emerald again for Sealed Star Closes #1271 See merge request KartKrew/Kart!2281
This commit is contained in:
commit
feb9fdfaa1
3 changed files with 105 additions and 100 deletions
|
|
@ -4532,7 +4532,7 @@ static void G_DoCompleted(void)
|
||||||
{
|
{
|
||||||
// Increase your total rings
|
// Increase your total rings
|
||||||
INT32 ringtotal = player->hudrings;
|
INT32 ringtotal = player->hudrings;
|
||||||
if (ringtotal > 0)
|
if (ringtotal > 0 && grandprixinfo.eventmode != GPEVENT_SPECIAL)
|
||||||
{
|
{
|
||||||
if (ringtotal > 20)
|
if (ringtotal > 20)
|
||||||
ringtotal = 20;
|
ringtotal = 20;
|
||||||
|
|
|
||||||
200
src/k_podium.cpp
200
src/k_podium.cpp
|
|
@ -599,12 +599,12 @@ void podiumData_s::Draw(void)
|
||||||
.text(va("%c", ('A' + p)));
|
.text(va("%c", ('A' + p)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Do not draw any stats for GAME OVERed player
|
else
|
||||||
else if (gpRank_level_perplayer_t *const dta = &lvl->perPlayer[p]; dta->grade != GRADE_INVALID)
|
|
||||||
{
|
{
|
||||||
|
gpRank_level_perplayer_t *const dta = &lvl->perPlayer[p];
|
||||||
srb2::Draw drawer_rank = drawer_perplayer.xy(2, 0);
|
srb2::Draw drawer_rank = drawer_perplayer.xy(2, 0);
|
||||||
|
|
||||||
if (lvl->event != GPEVENT_SPECIAL)
|
if (lvl->event != GPEVENT_SPECIAL && dta->grade != GRADE_INVALID)
|
||||||
{
|
{
|
||||||
drawer_rank
|
drawer_rank
|
||||||
.xy(0, -1)
|
.xy(0, -1)
|
||||||
|
|
@ -612,124 +612,128 @@ void podiumData_s::Draw(void)
|
||||||
.patch(va("R_CUPRN%c", K_GetGradeChar(dta->grade)));
|
.patch(va("R_CUPRN%c", K_GetGradeChar(dta->grade)));
|
||||||
}
|
}
|
||||||
|
|
||||||
srb2::Draw drawer_gametype = drawer_rank.xy(18, 0);
|
// Do not draw any stats for GAME OVERed player
|
||||||
|
if (dta->grade != GRADE_INVALID || lvl->event == GPEVENT_SPECIAL)
|
||||||
switch (lvl->event)
|
|
||||||
{
|
{
|
||||||
case GPEVENT_BONUS:
|
srb2::Draw drawer_gametype = drawer_rank.xy(18, 0);
|
||||||
|
|
||||||
|
switch (lvl->event)
|
||||||
{
|
{
|
||||||
drawer_gametype
|
case GPEVENT_BONUS:
|
||||||
.xy(0, 1)
|
|
||||||
.patch("K_CAPICO");
|
|
||||||
|
|
||||||
drawer_gametype
|
|
||||||
.xy(22, 1)
|
|
||||||
.align(srb2::Draw::Align::kCenter)
|
|
||||||
.font(srb2::Draw::Font::kPing)
|
|
||||||
.text(va("%d/%d", dta->prisons, lvl->totalPrisons));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case GPEVENT_SPECIAL:
|
|
||||||
{
|
|
||||||
srb2::Draw drawer_emerald = drawer_gametype;
|
|
||||||
UINT8 emeraldNum = g_podiumData.emeraldnum;
|
|
||||||
|
|
||||||
boolean useWhiteFrame = ((leveltime & 1) || !dta->gotSpecialPrize);
|
|
||||||
patch_t *emeraldPatch = nullptr;
|
|
||||||
skincolornum_t emeraldColor = SKINCOLOR_NONE;
|
|
||||||
|
|
||||||
if (emeraldNum == 0)
|
|
||||||
{
|
{
|
||||||
// Prize -- todo, currently using fake Emerald
|
drawer_gametype
|
||||||
emeraldColor = SKINCOLOR_GOLD;
|
.xy(0, 1)
|
||||||
|
.patch("K_CAPICO");
|
||||||
|
|
||||||
|
drawer_gametype
|
||||||
|
.xy(22, 1)
|
||||||
|
.align(srb2::Draw::Align::kCenter)
|
||||||
|
.font(srb2::Draw::Font::kPing)
|
||||||
|
.text(va("%d/%d", dta->prisons, lvl->totalPrisons));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
else
|
case GPEVENT_SPECIAL:
|
||||||
{
|
{
|
||||||
emeraldColor = static_cast<skincolornum_t>( SKINCOLOR_CHAOSEMERALD1 + ((emeraldNum - 1) % 7) );
|
srb2::Draw drawer_emerald = drawer_gametype;
|
||||||
}
|
UINT8 emeraldNum = g_podiumData.emeraldnum;
|
||||||
|
|
||||||
{
|
boolean useWhiteFrame = ((leveltime & 1) || !dta->gotSpecialPrize);
|
||||||
std::string emeraldName;
|
patch_t *emeraldPatch = nullptr;
|
||||||
if (emeraldNum > 7)
|
skincolornum_t emeraldColor = SKINCOLOR_NONE;
|
||||||
|
|
||||||
|
if (emeraldNum == 0)
|
||||||
{
|
{
|
||||||
emeraldName = (useWhiteFrame ? "K_SUPER2" : "K_SUPER1");
|
// Prize -- todo, currently using fake Emerald
|
||||||
|
emeraldColor = SKINCOLOR_GOLD;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
emeraldName = (useWhiteFrame ? "K_EMERC" : "K_EMERW");
|
emeraldColor = static_cast<skincolornum_t>( SKINCOLOR_CHAOSEMERALD1 + ((emeraldNum - 1) % 7) );
|
||||||
}
|
}
|
||||||
|
|
||||||
emeraldPatch = static_cast<patch_t*>( W_CachePatchName(emeraldName.c_str(), PU_CACHE) );
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dta->gotSpecialPrize)
|
|
||||||
{
|
|
||||||
if (emeraldColor != SKINCOLOR_NONE)
|
|
||||||
{
|
{
|
||||||
drawer_emerald = drawer_emerald.colormap( emeraldColor );
|
std::string emeraldName;
|
||||||
|
if (emeraldNum > 7)
|
||||||
|
{
|
||||||
|
emeraldName = (useWhiteFrame ? "K_SUPER2" : "K_SUPER1");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
emeraldName = (useWhiteFrame ? "K_EMERC" : "K_EMERW");
|
||||||
|
}
|
||||||
|
|
||||||
|
emeraldPatch = static_cast<patch_t*>( W_CachePatchName(emeraldName.c_str(), PU_CACHE) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (dta->gotSpecialPrize)
|
||||||
|
{
|
||||||
|
if (emeraldColor != SKINCOLOR_NONE)
|
||||||
|
{
|
||||||
|
drawer_emerald = drawer_emerald.colormap( emeraldColor );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
drawer_emerald = drawer_emerald.colormap( TC_BLINK, SKINCOLOR_BLACK );
|
||||||
|
}
|
||||||
|
|
||||||
|
drawer_emerald
|
||||||
|
.xy(6 - (emeraldPatch->width * 0.5), 0)
|
||||||
|
.patch(emeraldPatch);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
else
|
default:
|
||||||
{
|
{
|
||||||
drawer_emerald = drawer_emerald.colormap( TC_BLINK, SKINCOLOR_BLACK );
|
drawer_gametype
|
||||||
|
.xy(0, 1)
|
||||||
|
.patch("K_SPTLAP");
|
||||||
|
|
||||||
|
drawer_gametype
|
||||||
|
.xy(22, 1)
|
||||||
|
.align(srb2::Draw::Align::kCenter)
|
||||||
|
.font(srb2::Draw::Font::kPing)
|
||||||
|
.text(va("%d/%d", dta->lapPoints, lvl->totalLapPoints));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (singlePlayer)
|
||||||
|
{
|
||||||
|
srb2::Draw drawer_rings = drawer_gametype.xy(36, 0);
|
||||||
|
|
||||||
|
if (lvl->event == GPEVENT_NONE)
|
||||||
|
{
|
||||||
|
drawer_rings
|
||||||
|
.xy(0, -1)
|
||||||
|
.patch("K_SRING1");
|
||||||
|
|
||||||
|
drawer_rings
|
||||||
|
.xy(22, 1)
|
||||||
|
.colormap(TC_RAINBOW, SKINCOLOR_YELLOW)
|
||||||
|
.align(srb2::Draw::Align::kCenter)
|
||||||
|
.font(srb2::Draw::Font::kPing)
|
||||||
|
.text(va("%d", dta->rings));
|
||||||
}
|
}
|
||||||
|
|
||||||
drawer_emerald
|
srb2::Draw drawer_timer = drawer_rings.xy(36, 0);
|
||||||
.xy(6 - (emeraldPatch->width * 0.5), 0)
|
|
||||||
.patch(emeraldPatch);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
drawer_gametype
|
|
||||||
.xy(0, 1)
|
|
||||||
.patch("K_SPTLAP");
|
|
||||||
|
|
||||||
drawer_gametype
|
drawer_timer
|
||||||
.xy(22, 1)
|
.xy(0, 0)
|
||||||
|
.patch("K_STTIMS");
|
||||||
|
|
||||||
|
drawer_timer
|
||||||
|
.xy(32, 1)
|
||||||
.align(srb2::Draw::Align::kCenter)
|
.align(srb2::Draw::Align::kCenter)
|
||||||
.font(srb2::Draw::Font::kPing)
|
.font(srb2::Draw::Font::kPing)
|
||||||
.text(va("%d/%d", dta->lapPoints, lvl->totalLapPoints));
|
.text(lvl->time == UINT32_MAX ?
|
||||||
break;
|
"--'--\"--" : va(
|
||||||
|
"%i'%02i\"%02i",
|
||||||
|
G_TicsToMinutes(lvl->time, true),
|
||||||
|
G_TicsToSeconds(lvl->time),
|
||||||
|
G_TicsToCentiseconds(lvl->time)
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (singlePlayer)
|
|
||||||
{
|
|
||||||
srb2::Draw drawer_rings = drawer_gametype.xy(36, 0);
|
|
||||||
|
|
||||||
if (lvl->event == GPEVENT_NONE)
|
|
||||||
{
|
|
||||||
drawer_rings
|
|
||||||
.xy(0, -1)
|
|
||||||
.patch("K_SRING1");
|
|
||||||
|
|
||||||
drawer_rings
|
|
||||||
.xy(22, 1)
|
|
||||||
.colormap(TC_RAINBOW, SKINCOLOR_YELLOW)
|
|
||||||
.align(srb2::Draw::Align::kCenter)
|
|
||||||
.font(srb2::Draw::Font::kPing)
|
|
||||||
.text(va("%d", dta->rings));
|
|
||||||
}
|
|
||||||
|
|
||||||
srb2::Draw drawer_timer = drawer_rings.xy(36, 0);
|
|
||||||
|
|
||||||
drawer_timer
|
|
||||||
.xy(0, 0)
|
|
||||||
.patch("K_STTIMS");
|
|
||||||
|
|
||||||
drawer_timer
|
|
||||||
.xy(32, 1)
|
|
||||||
.align(srb2::Draw::Align::kCenter)
|
|
||||||
.font(srb2::Draw::Font::kPing)
|
|
||||||
.text(lvl->time == UINT32_MAX ?
|
|
||||||
"--'--\"--" : va(
|
|
||||||
"%i'%02i\"%02i",
|
|
||||||
G_TicsToMinutes(lvl->time, true),
|
|
||||||
G_TicsToSeconds(lvl->time),
|
|
||||||
G_TicsToCentiseconds(lvl->time)
|
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
drawer_perplayer = drawer_perplayer.x(56);
|
drawer_perplayer = drawer_perplayer.x(56);
|
||||||
|
|
|
||||||
|
|
@ -331,7 +331,8 @@ void level_tally_t::Init(player_t *player)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((gametypes[gt]->rules & GTR_SPHERES) == 0)
|
if ((gametypes[gt]->rules & GTR_SPHERES) == 0
|
||||||
|
&& (!grandprixinfo.gp || grandprixinfo.eventmode != GPEVENT_SPECIAL))
|
||||||
{
|
{
|
||||||
if (player->hudrings > 0) // Don't count negative rings
|
if (player->hudrings > 0) // Don't count negative rings
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue