Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 16 KiB |
BIN
data/skins/00Beast.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
data/skins/00Bibi.png
Normal file
After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 94 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 8.4 KiB |
|
@ -178,6 +178,7 @@ public:
|
|||
|
||||
virtual int OnSnapInput(int *pData) = 0;
|
||||
virtual void SendDummyInfo(bool Start) = 0;
|
||||
virtual void ResetDummyInput() = 0;
|
||||
|
||||
virtual const char *GetItemName(int Type) = 0;
|
||||
virtual const char *Version() = 0;
|
||||
|
|
|
@ -472,6 +472,16 @@ void CClient::SendInput()
|
|||
{
|
||||
mem_copy(&DummyInput, &m_aInputs[!g_Config.m_ClDummy][(m_CurrentInput[!g_Config.m_ClDummy]+200-1)%200], sizeof(DummyInput));
|
||||
m_LastDummy = g_Config.m_ClDummy;
|
||||
|
||||
if (g_Config.m_ClDummyResetOnSwitch)
|
||||
{
|
||||
DummyInput.m_Jump = 0;
|
||||
DummyInput.m_Hook = 0;
|
||||
if(DummyInput.m_Fire & 1)
|
||||
DummyInput.m_Fire++;
|
||||
DummyInput.m_Direction = 0;
|
||||
GameClient()->ResetDummyInput();
|
||||
}
|
||||
}
|
||||
|
||||
if(!g_Config.m_ClDummy)
|
||||
|
|
|
@ -69,6 +69,24 @@ void CControls::OnReset()
|
|||
m_OldMouseX = m_OldMouseY = 0.0f;
|
||||
}
|
||||
|
||||
void CControls::ResetDummyInput()
|
||||
{
|
||||
m_LastData[!g_Config.m_ClDummy].m_Direction = 0;
|
||||
if(m_LastData[!g_Config.m_ClDummy].m_Fire & 1)
|
||||
m_LastData[!g_Config.m_ClDummy].m_Fire++;
|
||||
m_LastData[!g_Config.m_ClDummy].m_Hook = 0;
|
||||
m_LastData[!g_Config.m_ClDummy].m_Jump = 0;
|
||||
|
||||
m_InputData[!g_Config.m_ClDummy].m_Direction = 0;
|
||||
if(m_InputData[!g_Config.m_ClDummy].m_Fire & 1)
|
||||
m_InputData[!g_Config.m_ClDummy].m_Fire++;
|
||||
m_InputData[!g_Config.m_ClDummy].m_Hook = 0;
|
||||
m_InputData[!g_Config.m_ClDummy].m_Jump = 0;
|
||||
|
||||
m_InputDirectionLeft[!g_Config.m_ClDummy] = 0;
|
||||
m_InputDirectionRight[!g_Config.m_ClDummy] = 0;
|
||||
}
|
||||
|
||||
void CControls::OnRelease()
|
||||
{
|
||||
//OnReset();
|
||||
|
|
|
@ -44,5 +44,6 @@ public:
|
|||
|
||||
int SnapInput(int *pData);
|
||||
void ClampMousePos();
|
||||
void ResetDummyInput();
|
||||
};
|
||||
#endif
|
||||
|
|
|
@ -250,15 +250,18 @@ void CHud::RenderScoreHud()
|
|||
{
|
||||
// draw name
|
||||
int ID = apPlayerInfo[t]->m_ClientID;
|
||||
const char *pName = m_pClient->m_aClients[ID].m_aName;
|
||||
float w = TextRender()->TextWidth(0, 8.0f, pName, -1);
|
||||
TextRender()->Text(0, min(Whole-w-1.0f, Whole-ScoreWidthMax-ImageSize-2*Split-PosSize), StartY+(t+1)*20.0f-3.0f, 8.0f, pName, -1);
|
||||
if(ID >= 0 && ID < MAX_CLIENTS)
|
||||
{
|
||||
const char *pName = m_pClient->m_aClients[ID].m_aName;
|
||||
float w = TextRender()->TextWidth(0, 8.0f, pName, -1);
|
||||
TextRender()->Text(0, min(Whole-w-1.0f, Whole-ScoreWidthMax-ImageSize-2*Split-PosSize), StartY+(t+1)*20.0f-3.0f, 8.0f, pName, -1);
|
||||
|
||||
// draw tee
|
||||
CTeeRenderInfo Info = m_pClient->m_aClients[ID].m_RenderInfo;
|
||||
Info.m_Size = 18.0f;
|
||||
RenderTools()->RenderTee(CAnimState::GetIdle(), &Info, EMOTE_NORMAL, vec2(1,0),
|
||||
vec2(Whole-ScoreWidthMax-Info.m_Size/2-Split, StartY+1.0f+Info.m_Size/2+t*20));
|
||||
// draw tee
|
||||
CTeeRenderInfo Info = m_pClient->m_aClients[ID].m_RenderInfo;
|
||||
Info.m_Size = 18.0f;
|
||||
RenderTools()->RenderTee(CAnimState::GetIdle(), &Info, EMOTE_NORMAL, vec2(1,0),
|
||||
vec2(Whole-ScoreWidthMax-Info.m_Size/2-Split, StartY+1.0f+Info.m_Size/2+t*20));
|
||||
}
|
||||
}
|
||||
|
||||
// draw position
|
||||
|
|
|
@ -63,8 +63,11 @@ void CMenus::RenderGame(CUIRect MainView)
|
|||
static int s_SpectateButton = 0;
|
||||
if(DoButton_Menu(&s_SpectateButton, Localize("Spectate"), 0, &Button))
|
||||
{
|
||||
m_pClient->SendSwitchTeam(TEAM_SPECTATORS);
|
||||
SetActive(false);
|
||||
if(g_Config.m_ClDummy == 0 || m_pClient->Client()->DummyConnected())
|
||||
{
|
||||
m_pClient->SendSwitchTeam(TEAM_SPECTATORS);
|
||||
SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1365,11 +1365,11 @@ void CMenus::RenderSettingsHUD(CUIRect MainView)
|
|||
TextRender()->TextColor(rgb.r, rgb.g, rgb.b, 1.0f);
|
||||
char name[16];
|
||||
str_copy(name, g_Config.m_PlayerName, sizeof(name));
|
||||
str_format(aBuf, sizeof(aBuf), ": %s: %s!", name, Localize ("This is highlighted message"));
|
||||
str_format(aBuf, sizeof(aBuf), ": %s: %s!", name, Localize ("This is a highlighted message"));
|
||||
while (TextRender()->TextWidth(0, 12.0f, aBuf, -1) > Button.w)
|
||||
{
|
||||
name[str_length(name) - 1] = 0;
|
||||
str_format(aBuf, sizeof(aBuf), ": %s: %s!", name, Localize("This is highlighted message"));
|
||||
str_format(aBuf, sizeof(aBuf), ": %s: %s!", name, Localize("This is a highlighted message"));
|
||||
}
|
||||
UI()->DoLabelScaled(&Button, aBuf, 12.0f, -1);
|
||||
|
||||
|
|
|
@ -104,6 +104,11 @@ const char *CGameClient::Version() { return GAME_VERSION; }
|
|||
const char *CGameClient::NetVersion() { return GAME_NETVERSION; }
|
||||
const char *CGameClient::GetItemName(int Type) { return m_NetObjHandler.GetObjName(Type); }
|
||||
|
||||
void CGameClient::ResetDummyInput()
|
||||
{
|
||||
m_pControls->ResetDummyInput();
|
||||
}
|
||||
|
||||
void CGameClient::OnConsoleInit()
|
||||
{
|
||||
m_pEngine = Kernel()->RequestInterface<IEngine>();
|
||||
|
|
|
@ -240,6 +240,7 @@ public:
|
|||
virtual void OnGameOver();
|
||||
virtual void OnStartGame();
|
||||
|
||||
virtual void ResetDummyInput();
|
||||
virtual const char *GetItemName(int Type);
|
||||
virtual const char *Version();
|
||||
virtual const char *NetVersion();
|
||||
|
|
|
@ -407,6 +407,9 @@ void CGameTeams::OnTeamFinish(CPlayer** Players, unsigned int Size)
|
|||
for(unsigned int i = 0; i < Size; i++)
|
||||
{
|
||||
PlayerCIDs[i] = Players[i]->GetCID();
|
||||
|
||||
if(g_Config.m_SvTeam != 3 && (m_Core.Team(Players[i]->GetCID()) >= TEAM_SUPER || !m_TeamLocked[m_Core.Team(Players[i]->GetCID())]))
|
||||
SetForceCharacterTeam(Players[i]->GetCID(), 0);
|
||||
}
|
||||
|
||||
if (CallSaveScore && Size >= 2)
|
||||
|
|
|
@ -93,6 +93,7 @@ MACRO_CONFIG_INT(DummyColorFeet, dummy_color_feet, 65408, 0, 0xFFFFFF, CFGFLAG_C
|
|||
MACRO_CONFIG_STR(DummySkin, dummy_skin, 24, "default", CFGFLAG_CLIENT|CFGFLAG_SAVE, "Dummy skin")
|
||||
MACRO_CONFIG_INT(ClDummy, cl_dummy, 0, 0, 1, CFGFLAG_CLIENT, "0 - player / 1 - dummy")
|
||||
MACRO_CONFIG_INT(ClDummyHammer, cl_dummy_hammer, 0, 0, 1, CFGFLAG_CLIENT, "Whether dummy is hammering for a hammerfly")
|
||||
MACRO_CONFIG_INT(ClDummyResetOnSwitch, cl_dummy_resetonswitch, 0, 0, 1, CFGFLAG_CLIENT|CFGFLAG_SAVE, "Whether dummy should stop pressing keys when you switch")
|
||||
|
||||
// server
|
||||
MACRO_CONFIG_INT(SvWarmup, sv_warmup, 0, 0, 0, CFGFLAG_SERVER, "Number of seconds to do warmup before round starts")
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
#ifndef GAME_VERSION_H
|
||||
#define GAME_VERSION_H
|
||||
#include "generated/nethash.cpp"
|
||||
#define GAME_VERSION "0.6.2, 4.4"
|
||||
#define GAME_VERSION "0.6.2, 4.5"
|
||||
#define GAME_NETVERSION "0.6 626fce9a778df4d4"
|
||||
static const char GAME_RELEASE_VERSION[8] = "4.4";
|
||||
#define CLIENT_VERSIONNR 404
|
||||
static const char GAME_RELEASE_VERSION[8] = "4.5";
|
||||
#define CLIENT_VERSIONNR 405
|
||||
#endif
|
||||
|
|