mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-14 03:58:18 +00:00
Add Practice Mode Symbol next to the timer
- Add new hud.png - expand DDNetCharacterDisplayInfo with m_IsInPracticeMode
This commit is contained in:
parent
ef468e8181
commit
940047fb8e
BIN
data/hud.png
BIN
data/hud.png
Binary file not shown.
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 59 KiB |
|
@ -276,7 +276,7 @@ set_guiicons = SpriteSet("guiicons", image_guiicons, 12, 2)
|
||||||
set_demobuttons2 = SpriteSet("demobuttons2", image_demobuttons2, 4, 1)
|
set_demobuttons2 = SpriteSet("demobuttons2", image_demobuttons2, 4, 1)
|
||||||
set_audio_source = SpriteSet("audio_source", image_audio_source, 1, 1)
|
set_audio_source = SpriteSet("audio_source", image_audio_source, 1, 1)
|
||||||
set_strongweak = SpriteSet("strongweak", image_strongweak, 2, 1)
|
set_strongweak = SpriteSet("strongweak", image_strongweak, 2, 1)
|
||||||
set_hud = SpriteSet("hud", image_hud, 14, 6)
|
set_hud = SpriteSet("hud", image_hud, 14, 12)
|
||||||
|
|
||||||
container.spritesets.Add(set_particles)
|
container.spritesets.Add(set_particles)
|
||||||
container.spritesets.Add(set_game)
|
container.spritesets.Add(set_game)
|
||||||
|
@ -454,13 +454,14 @@ container.sprites.Add(Sprite("hud_no_hammer_hit", set_hud, 6,2,2,2))
|
||||||
container.sprites.Add(Sprite("hud_no_shotgun_hit", set_hud, 8,2,2,2))
|
container.sprites.Add(Sprite("hud_no_shotgun_hit", set_hud, 8,2,2,2))
|
||||||
container.sprites.Add(Sprite("hud_no_grenade_hit", set_hud, 10,2,2,2))
|
container.sprites.Add(Sprite("hud_no_grenade_hit", set_hud, 10,2,2,2))
|
||||||
container.sprites.Add(Sprite("hud_no_laser_hit", set_hud, 12,2,2,2))
|
container.sprites.Add(Sprite("hud_no_laser_hit", set_hud, 12,2,2,2))
|
||||||
container.sprites.Add(Sprite("hud_deep_frozen", set_hud, 0,4,2,2))
|
container.sprites.Add(Sprite("hud_deep_frozen", set_hud, 10,4,2,2))
|
||||||
container.sprites.Add(Sprite("hud_live_frozen", set_hud, 2,4,2,2))
|
container.sprites.Add(Sprite("hud_live_frozen", set_hud, 12,4,2,2))
|
||||||
container.sprites.Add(Sprite("hud_teleport_grenade", set_hud, 4,4,2,2))
|
container.sprites.Add(Sprite("hud_teleport_grenade", set_hud, 4,4,2,2))
|
||||||
container.sprites.Add(Sprite("hud_teleport_gun", set_hud, 6,4,2,2))
|
container.sprites.Add(Sprite("hud_teleport_gun", set_hud, 6,4,2,2))
|
||||||
container.sprites.Add(Sprite("hud_teleport_laser", set_hud, 8,4,2,2))
|
container.sprites.Add(Sprite("hud_teleport_laser", set_hud, 8,4,2,2))
|
||||||
container.sprites.Add(Sprite("hud_dummy_hammer", set_hud, 10,4,2,2))
|
container.sprites.Add(Sprite("hud_practice_mode", set_hud, 4,6,2,2))
|
||||||
container.sprites.Add(Sprite("hud_dummy_copy", set_hud, 12,4,2,2))
|
container.sprites.Add(Sprite("hud_dummy_hammer", set_hud, 6,6,2,2))
|
||||||
|
container.sprites.Add(Sprite("hud_dummy_copy", set_hud, 8,6,2,2))
|
||||||
|
|
||||||
anim = Animation("base")
|
anim = Animation("base")
|
||||||
anim.body.frames.Add(AnimKeyframe(0, 0, -4, 0))
|
anim.body.frames.Add(AnimKeyframe(0, 0, -4, 0))
|
||||||
|
|
|
@ -250,6 +250,7 @@ Objects = [
|
||||||
NetTick("m_NinjaActivationTick"),
|
NetTick("m_NinjaActivationTick"),
|
||||||
NetTick("m_FreezeTick"),
|
NetTick("m_FreezeTick"),
|
||||||
NetBool("m_IsInFreeze"),
|
NetBool("m_IsInFreeze"),
|
||||||
|
NetBool("m_IsInPracticeMode"),
|
||||||
]),
|
]),
|
||||||
|
|
||||||
NetObjectEx("DDNetPlayer", "player@netobj.ddnet.tw", [
|
NetObjectEx("DDNetPlayer", "player@netobj.ddnet.tw", [
|
||||||
|
|
|
@ -138,6 +138,17 @@ void CHud::RenderGameTimer()
|
||||||
}
|
}
|
||||||
TextRender()->Text(0, Half - w / 2, 2, FontSize, aBuf, -1.0f);
|
TextRender()->Text(0, Half - w / 2, 2, FontSize, aBuf, -1.0f);
|
||||||
TextRender()->TextColor(1.0f, 1.0f, 1.0f, 1.0f);
|
TextRender()->TextColor(1.0f, 1.0f, 1.0f, 1.0f);
|
||||||
|
|
||||||
|
int DisplayedClientID = m_pClient->m_Snap.m_LocalClientID;
|
||||||
|
if(m_pClient->m_Snap.m_SpecInfo.m_Active && m_pClient->m_Snap.m_SpecInfo.m_SpectatorID != SPEC_FREEVIEW)
|
||||||
|
{
|
||||||
|
DisplayedClientID = m_pClient->m_Snap.m_SpecInfo.m_SpectatorID;
|
||||||
|
}
|
||||||
|
if(m_pClient->m_Snap.m_aCharacters[DisplayedClientID].m_HasExtendedDisplayInfo && m_pClient->m_Snap.m_aCharacters[DisplayedClientID].m_ExtendedDisplayInfo.m_IsInPracticeMode)
|
||||||
|
{
|
||||||
|
Graphics()->TextureSet(m_pClient->m_HudSkin.m_SpriteHudPracticeMode);
|
||||||
|
Graphics()->RenderQuadContainerAsSprite(m_HudQuadContainerIndex, m_PracticeModeOffset, Half + w / 2 + 6, 2 + 5);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -820,11 +831,16 @@ void CHud::PreparePlayerStateQuads()
|
||||||
m_NoGrenadeHitOffset = RenderTools()->QuadContainerAddSprite(m_HudQuadContainerIndex, 0.f, 0.f, 12.f, 12.f);
|
m_NoGrenadeHitOffset = RenderTools()->QuadContainerAddSprite(m_HudQuadContainerIndex, 0.f, 0.f, 12.f, 12.f);
|
||||||
m_NoLaserHitOffset = RenderTools()->QuadContainerAddSprite(m_HudQuadContainerIndex, 0.f, 0.f, 12.f, 12.f);
|
m_NoLaserHitOffset = RenderTools()->QuadContainerAddSprite(m_HudQuadContainerIndex, 0.f, 0.f, 12.f, 12.f);
|
||||||
|
|
||||||
// Quads for displaying dummy actions and freeze status
|
// Quads for displaying freeze status
|
||||||
m_DeepFrozenOffset = RenderTools()->QuadContainerAddSprite(m_HudQuadContainerIndex, 0.f, 0.f, 12.f, 12.f);
|
m_DeepFrozenOffset = RenderTools()->QuadContainerAddSprite(m_HudQuadContainerIndex, 0.f, 0.f, 12.f, 12.f);
|
||||||
m_LiveFrozenOffset = RenderTools()->QuadContainerAddSprite(m_HudQuadContainerIndex, 0.f, 0.f, 12.f, 12.f);
|
m_LiveFrozenOffset = RenderTools()->QuadContainerAddSprite(m_HudQuadContainerIndex, 0.f, 0.f, 12.f, 12.f);
|
||||||
|
|
||||||
|
// Quads for displaying dummy actions
|
||||||
m_DummyHammerOffset = RenderTools()->QuadContainerAddSprite(m_HudQuadContainerIndex, 0.f, 0.f, 12.f, 12.f);
|
m_DummyHammerOffset = RenderTools()->QuadContainerAddSprite(m_HudQuadContainerIndex, 0.f, 0.f, 12.f, 12.f);
|
||||||
m_DummyCopyOffset = RenderTools()->QuadContainerAddSprite(m_HudQuadContainerIndex, 0.f, 0.f, 12.f, 12.f);
|
m_DummyCopyOffset = RenderTools()->QuadContainerAddSprite(m_HudQuadContainerIndex, 0.f, 0.f, 12.f, 12.f);
|
||||||
|
|
||||||
|
// Quad for displaying practice mode
|
||||||
|
m_PracticeModeOffset = RenderTools()->QuadContainerAddSprite(m_HudQuadContainerIndex, 12.f, 12.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CHud::RenderPlayerState(const int ClientID)
|
void CHud::RenderPlayerState(const int ClientID)
|
||||||
|
|
|
@ -125,6 +125,7 @@ private:
|
||||||
int m_LiveFrozenOffset;
|
int m_LiveFrozenOffset;
|
||||||
int m_DummyHammerOffset;
|
int m_DummyHammerOffset;
|
||||||
int m_DummyCopyOffset;
|
int m_DummyCopyOffset;
|
||||||
|
int m_PracticeModeOffset;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -3045,6 +3045,7 @@ void CGameClient::LoadHudSkin(const char *pPath, bool AsDir)
|
||||||
Graphics()->UnloadTexture(&m_HudSkin.m_SpriteHudTeleportGrenade);
|
Graphics()->UnloadTexture(&m_HudSkin.m_SpriteHudTeleportGrenade);
|
||||||
Graphics()->UnloadTexture(&m_HudSkin.m_SpriteHudTeleportGun);
|
Graphics()->UnloadTexture(&m_HudSkin.m_SpriteHudTeleportGun);
|
||||||
Graphics()->UnloadTexture(&m_HudSkin.m_SpriteHudTeleportLaser);
|
Graphics()->UnloadTexture(&m_HudSkin.m_SpriteHudTeleportLaser);
|
||||||
|
Graphics()->UnloadTexture(&m_HudSkin.m_SpriteHudPracticeMode);
|
||||||
Graphics()->UnloadTexture(&m_HudSkin.m_SpriteHudDummyHammer);
|
Graphics()->UnloadTexture(&m_HudSkin.m_SpriteHudDummyHammer);
|
||||||
Graphics()->UnloadTexture(&m_HudSkin.m_SpriteHudDummyCopy);
|
Graphics()->UnloadTexture(&m_HudSkin.m_SpriteHudDummyCopy);
|
||||||
m_HudSkinLoaded = false;
|
m_HudSkinLoaded = false;
|
||||||
|
@ -3101,6 +3102,7 @@ void CGameClient::LoadHudSkin(const char *pPath, bool AsDir)
|
||||||
m_HudSkin.m_SpriteHudTeleportGrenade = Graphics()->LoadSpriteTexture(ImgInfo, &g_pData->m_aSprites[SPRITE_HUD_TELEPORT_GRENADE]);
|
m_HudSkin.m_SpriteHudTeleportGrenade = Graphics()->LoadSpriteTexture(ImgInfo, &g_pData->m_aSprites[SPRITE_HUD_TELEPORT_GRENADE]);
|
||||||
m_HudSkin.m_SpriteHudTeleportGun = Graphics()->LoadSpriteTexture(ImgInfo, &g_pData->m_aSprites[SPRITE_HUD_TELEPORT_GUN]);
|
m_HudSkin.m_SpriteHudTeleportGun = Graphics()->LoadSpriteTexture(ImgInfo, &g_pData->m_aSprites[SPRITE_HUD_TELEPORT_GUN]);
|
||||||
m_HudSkin.m_SpriteHudTeleportLaser = Graphics()->LoadSpriteTexture(ImgInfo, &g_pData->m_aSprites[SPRITE_HUD_TELEPORT_LASER]);
|
m_HudSkin.m_SpriteHudTeleportLaser = Graphics()->LoadSpriteTexture(ImgInfo, &g_pData->m_aSprites[SPRITE_HUD_TELEPORT_LASER]);
|
||||||
|
m_HudSkin.m_SpriteHudPracticeMode = Graphics()->LoadSpriteTexture(ImgInfo, &g_pData->m_aSprites[SPRITE_HUD_PRACTICE_MODE]);
|
||||||
m_HudSkin.m_SpriteHudDummyHammer = Graphics()->LoadSpriteTexture(ImgInfo, &g_pData->m_aSprites[SPRITE_HUD_DUMMY_HAMMER]);
|
m_HudSkin.m_SpriteHudDummyHammer = Graphics()->LoadSpriteTexture(ImgInfo, &g_pData->m_aSprites[SPRITE_HUD_DUMMY_HAMMER]);
|
||||||
m_HudSkin.m_SpriteHudDummyCopy = Graphics()->LoadSpriteTexture(ImgInfo, &g_pData->m_aSprites[SPRITE_HUD_DUMMY_COPY]);
|
m_HudSkin.m_SpriteHudDummyCopy = Graphics()->LoadSpriteTexture(ImgInfo, &g_pData->m_aSprites[SPRITE_HUD_DUMMY_COPY]);
|
||||||
|
|
||||||
|
|
|
@ -674,6 +674,7 @@ public:
|
||||||
IGraphics::CTextureHandle m_SpriteHudTeleportGrenade;
|
IGraphics::CTextureHandle m_SpriteHudTeleportGrenade;
|
||||||
IGraphics::CTextureHandle m_SpriteHudTeleportGun;
|
IGraphics::CTextureHandle m_SpriteHudTeleportGun;
|
||||||
IGraphics::CTextureHandle m_SpriteHudTeleportLaser;
|
IGraphics::CTextureHandle m_SpriteHudTeleportLaser;
|
||||||
|
IGraphics::CTextureHandle m_SpriteHudPracticeMode;
|
||||||
IGraphics::CTextureHandle m_SpriteHudDummyHammer;
|
IGraphics::CTextureHandle m_SpriteHudDummyHammer;
|
||||||
IGraphics::CTextureHandle m_SpriteHudDummyCopy;
|
IGraphics::CTextureHandle m_SpriteHudDummyCopy;
|
||||||
};
|
};
|
||||||
|
|
|
@ -102,7 +102,9 @@ void CCharacterCore::Reset()
|
||||||
m_HasTelegunGun = false;
|
m_HasTelegunGun = false;
|
||||||
m_HasTelegunGrenade = false;
|
m_HasTelegunGrenade = false;
|
||||||
m_HasTelegunLaser = false;
|
m_HasTelegunLaser = false;
|
||||||
|
m_FreezeTick = 0;
|
||||||
m_FreezeEnd = 0;
|
m_FreezeEnd = 0;
|
||||||
|
m_IsInFreeze = false;
|
||||||
m_DeepFrozen = false;
|
m_DeepFrozen = false;
|
||||||
m_LiveFrozen = false;
|
m_LiveFrozen = false;
|
||||||
|
|
||||||
|
|
|
@ -1250,6 +1250,7 @@ void CCharacter::Snap(int SnappingClient)
|
||||||
pDDNetCharacterDisplayInfo->m_NinjaActivationTick = m_Core.m_Ninja.m_ActivationTick;
|
pDDNetCharacterDisplayInfo->m_NinjaActivationTick = m_Core.m_Ninja.m_ActivationTick;
|
||||||
pDDNetCharacterDisplayInfo->m_FreezeTick = m_Core.m_FreezeTick;
|
pDDNetCharacterDisplayInfo->m_FreezeTick = m_Core.m_FreezeTick;
|
||||||
pDDNetCharacterDisplayInfo->m_IsInFreeze = m_Core.m_IsInFreeze;
|
pDDNetCharacterDisplayInfo->m_IsInFreeze = m_Core.m_IsInFreeze;
|
||||||
|
pDDNetCharacterDisplayInfo->m_IsInPracticeMode = Teams()->IsPractice(Team());
|
||||||
}
|
}
|
||||||
|
|
||||||
// DDRace
|
// DDRace
|
||||||
|
|
Loading…
Reference in a new issue