*Żeby trochę rozjaśnić ten temat, wkleję fragment kodu źródłowego z programu OSP2CPMA Config Converter, który kiedyś napisałem, pewnie część osób pamięta. Jest dostępny w necie: [www.quake.net.pl/?page=konwerter](../?page=konwerter)
*
Swoją drogą, chyba od teraz będę pisał na forum taką oto złotą czcionką. Fajna jest.
*Niestety caly kod nie mieści się w jednym poście, obcina :(
*
//OSP2CPMA Config Converter
//Autor: [M]aniek
//CKonwerter.cpp
//Klasa do konwersji
includeincludeinclude "CKonwerter.h"
CKonwerter::CKonwerter()
{
Init();
}
void CKonwerter::Init()
{
//ustawic takie defaultowe wartosci komend, jakie ustawia OSP
//po prawej musza byc tylko male litery
KomendyOSP[cf_CrosshairNames].name = "cf_crosshairnames";
KomendyOSP[cf_CrosshairNames].parametr = "12x12";
KomendyOSP[cf_Following].name = "cf_following";
KomendyOSP[cf_Following].parametr = "24x24";
KomendyOSP[cf_FragMsg].name = "cf_fragmsg";
KomendyOSP[cf_FragMsg].parametr = "16x16";
KomendyOSP[cf_PickupString].name = "cf_pickupstring";
KomendyOSP[cf_PickupString].parametr = "10x14";
KomendyOSP[cf_Scores].name = "cf_scores";
KomendyOSP[cf_Scores].parametr = "16x16";
KomendyOSP[cf_StatusBar].name = "cf_statusbar";
KomendyOSP[cf_StatusBar].parametr = "32x32";
KomendyOSP[cf_TeamChat].name = "cf_teamchat";
KomendyOSP[cf_TeamChat].parametr = "8x12";
KomendyOSP[cf_TeamCrosshairHealth].name = "cf_teamcrosshairhealth";
KomendyOSP[cf_TeamCrosshairHealth].parametr = "12x12";
KomendyOSP[cf_TeamOverlay].name = "cf_teamoverlay";
KomendyOSP[cf_TeamOverlay].parametr = "6x11";
KomendyOSP[cf_Vote].name = "cf_vote";
KomendyOSP[cf_Vote].parametr = "10x14";
KomendyOSP[cg_AltLightning_].name = "cg_altlightning";
KomendyOSP[cg_AltLightning_].parametr = "0";
KomendyOSP[cg_CrosshairSize].name = "cg_crosshairsize";
KomendyOSP[cg_CrosshairSize].parametr = "24";
KomendyOSP[cg_Draw3DIcons].name = "cg_draw3dicons";
KomendyOSP[cg_Draw3DIcons].parametr = "1";
KomendyOSP[cg_DrawAttacker].name = "cg_drawattacker";
KomendyOSP[cg_DrawAttacker].parametr = "1";
KomendyOSP[cg_DrawAmmoWarning].name = "cg_drawammowarning";
KomendyOSP[cg_DrawAmmoWarning].parametr = "1";
KomendyOSP[cg_DrawCrosshair_].name = "cg_drawcrosshair";
KomendyOSP[cg_DrawCrosshair_].parametr = "4";
KomendyOSP[cg_DrawFPS].name = "cg_drawfps";
KomendyOSP[cg_DrawFPS].parametr = "0";
KomendyOSP[cg_DrawIcons].name = "cg_drawicons";
KomendyOSP[cg_DrawIcons].parametr = "1";
KomendyOSP[cg_DrawPing].name = "cg_drawping";
KomendyOSP[cg_DrawPing].parametr = "0";
KomendyOSP[cg_DrawTeamOverlay].name = "cg_drawteamoverlay";
KomendyOSP[cg_DrawTeamOverlay].parametr = "0";
KomendyOSP[cg_DrawTimer].name = "cg_drawtimer";
KomendyOSP[cg_DrawTimer].parametr = "0";
KomendyOSP[cg_EnableOSPHUD].name = "cg_enableosphud";
KomendyOSP[cg_EnableOSPHUD].parametr = "1";
KomendyOSP[cg_EnemyColors_].name = "cg_enemycolors";
KomendyOSP[cg_EnemyColors_].parametr = "0";
KomendyOSP[cg_LagoMeter].name = "cg_lagometer";
KomendyOSP[cg_LagoMeter].parametr = "1";
KomendyOSP[cg_NoProjectileTrail].name = "cg_noprojectiletrail";
KomendyOSP[cg_NoProjectileTrail].parametr = "0";
KomendyOSP[cg_OldRail].name = "cg_oldrail";
KomendyOSP[cg_OldRail].parametr = "1";
KomendyOSP[cg_TeamChatHeight].name = "cg_teamchatheight";
KomendyOSP[cg_TeamChatHeight].parametr = "0";
KomendyOSP[cg_TeamChatTime].name = "cg_teamchattime";
KomendyOSP[cg_TeamChatTime].parametr = "3000";
KomendyOSP[ch_3WaveFont].name = "ch_3wavefont";
KomendyOSP[ch_3WaveFont].parametr = "0";
KomendyOSP[ch_CrosshairNamesLeft].name = "ch_crosshairnamesleft";
KomendyOSP[ch_CrosshairNamesLeft].parametr = "0";
KomendyOSP[ch_CrosshairColor_].name = "ch_crosshaircolor";
KomendyOSP[ch_CrosshairColor_].parametr = "white";
KomendyOSP[ch_DrawSpeed].name = "ch_drawspeed";
KomendyOSP[ch_DrawSpeed].parametr = "0";
KomendyOSP[ch_Graphs].name = "ch_graphs";
KomendyOSP[ch_Graphs].parametr = "1";
KomendyOSP[ch_InverseTeamChat].name = "ch_inverseteamchat";
KomendyOSP[ch_InverseTeamChat].parametr = "1";
KomendyOSP[ch_StatusBarFormat].name = "ch_statusbarformat";
KomendyOSP[ch_StatusBarFormat].parametr = "10";
KomendyOSP[ch_TeamCrosshairHealth].name = "ch_teamcrosshairhealth";
KomendyOSP[ch_TeamCrosshairHealth].parametr = "1";
KomendyOSP[ch_WeaponSwitch].name = "ch_weaponswitch";
KomendyOSP[ch_WeaponSwitch].parametr = "4";
KomendyOSP[cl_MouseAccel].name = "cl_mouseaccel";
KomendyOSP[cl_MouseAccel].parametr = "0";
KomendyOSP[Color1].name = "color1";
KomendyOSP[Color1].parametr = "4";
KomendyOSP[Color2].name = "color2";
KomendyOSP[Color2].parametr = "5";
KomendyOSP[Model].name = "model";
KomendyOSP[Model].parametr = "sarge/default";
KomendyOSP[r_RailSegmentLength].name = "r_railsegmentlength";
KomendyOSP[r_RailSegmentLength].parametr = "32";
KomendyOSP[r_RailCoreWidth].name = "r_railcorewidth";
KomendyOSP[r_RailCoreWidth].parametr = "6";
KomendyOSP[r_RailWidth].name = "r_railwidth";
KomendyOSP[r_RailWidth].parametr = "16";
KomendyOSP[rate_].name = "rate";
KomendyOSP[rate_].parametr = "25000";
KomendyOSP[snaps_].name = "snaps";
KomendyOSP[snaps_].parametr = "30";
KomendyOSP[cl_TimeNudge_].name = "cl_timenudge";
KomendyOSP[cl_TimeNudge_].parametr = "0";
KomendyOSP[cl_PacketDup_].name = "cl_packetdup";
KomendyOSP[cl_PacketDup_].parametr = "0";
//ustawic tylko nazwy HUDa
HUD[DEFAULT].name = "!DEFAULT";
HUD[DEFAULT].rect = RECT_(0, 0, 0, 0);
HUD[DEFAULT].fontsize = FONTSIZE(16, 16);
HUD[DEFAULT].font = ID;
HUD[DEFAULT].color = COLOR(1, 1, 1, 1);
HUD[DEFAULT].bgcolor = COLOR(0, 0, 0, 0);
HUD[DEFAULT].fade = COLOR(1, 1, 1, 1);
HUD[DEFAULT].angles = ANGLES(0, 0, 0, 0);
HUD[DEFAULT].textstyle = 1;
HUD[DEFAULT].textalign = R;
HUD[DEFAULT].time = 0; //time rowne 0 nie jest zapisywane!!!
HUD[DEFAULT].fill = false; //false nie sa zapisywane
HUD[DEFAULT].monospace = false;
HUD[DEFAULT].doublebar = false;
HUD[DEFAULT].draw3d = false;
HUD[DEFAULT].model = "";
HUD[DEFAULT].image = "";
for (int i = 1; i < HUDTypeSize; i++)
HUD[i] = HUD[DEFAULT];
HUD[Decorate1].name = "PreDecorate";
HUD[Decorate2].name = "PreDecorate";
HUD[Decorate3].name = "PreDecorate";
HUD[Decorate4].name = "PreDecorate";
HUD[Decorate5].name = "PreDecorate";
HUD[Decorate6].name = "PreDecorate";
HUD[Decorate7].name = "PreDecorate";
HUD[AmmoMessage].name = "AmmoMessage";
HUD[AttackerIcon].name = "AttackerIcon";
HUD[AttackerName].name = "AttackerName";
HUD[Chat1].name = "Chat1";
HUD[Chat2].name = "Chat2";
HUD[Chat3].name = "Chat3";
HUD[Chat4].name = "Chat4";
HUD[Chat5].name = "Chat5";
HUD[Chat6].name = "Chat6";
HUD[Chat7].name = "Chat7";
HUD[Chat8].name = "Chat8";
HUD[Console].name = "Console";
HUD[FlagStatus_NME].name = "FlagStatus_NME";
HUD[FlagStatus_OWN].name = "FlagStatus_OWN";
HUD[FollowMessage].name = "FollowMessage";
HUD[FPS].name = "FPS";
HUD[FragMessage].name = "FragMessage";
HUD[GameTime].name = "GameTime";
HUD[GameType].name = "GameType";
HUD[ItemPickup].name = "ItemPickup";
HUD[ItemPickupIcon].name = "ItemPickupIcon";
HUD[NetGraph].name = "NetGraph";
HUD[NetGraphPing].name = "NetGraphPing";
HUD[PlayerSpeed].name = "PlayerSpeed";
HUD[PowerUp1_Icon].name = "PowerUp1_Icon";
HUD[PowerUp2_Icon].name = "PowerUp2_Icon";
HUD[PowerUp3_Icon].name = "PowerUp3_Icon";
HUD[PowerUp4_Icon].name = "PowerUp4_Icon";
HUD[PowerUp1_Time].name = "PowerUp1_Time";
HUD[PowerUp2_Time].name = "PowerUp2_Time";
HUD[PowerUp3_Time].name = "PowerUp3_Time";
HUD[PowerUp4_Time].name = "PowerUp4_Time";
HUD[RankMessage].name = "RankMessage";
HUD[Score_Limit].name = "Score_Limit";
HUD[Score_NME].name = "Score_NME";
HUD[Score_OWN].name = "Score_OWN";
HUD[SpecMessage].name = "SpecMessage";
HUD[StatusBar_ArmorBar].name = "StatusBar_ArmorBar";
HUD[StatusBar_ArmorCount].name = "StatusBar_ArmorCount";
HUD[StatusBar_ArmorIcon].name = "StatusBar_ArmorIcon";
HUD[StatusBar_AmmoBar].name = "StatusBar_AmmoBar";
HUD[StatusBar_AmmoCount].name = "StatusBar_AmmoCount";
HUD[StatusBar_AmmoIcon].name = "StatusBar_AmmoIcon";
HUD[StatusBar_HealthBar].name = "StatusBar_HealthBar";
HUD[StatusBar_HealthCount].name = "StatusBar_HealthCount";
HUD[StatusBar_HealthIcon].name = "StatusBar_HealthIcon";
HUD[TargetName].name = "TargetName";
HUD[TargetStatus].name = "TargetStatus";
HUD[TeamCount_NME].name = "TeamCount_NME";
HUD[TeamCount_OWN].name = "TeamCount_OWN";
HUD[TeamIcon_NME].name = "TeamIcon_NME";
HUD[TeamIcon_OWN].name = "TeamIcon_OWN";
HUD[Team1].name = "Team1";
HUD[Team2].name = "Team2";
HUD[Team3].name = "Team3";
HUD[Team4].name = "Team4";
HUD[Team5].name = "Team5";
HUD[Team6].name = "Team6";
HUD[Team7].name = "Team7";
HUD[Team8].name = "Team8";
HUD[VoteMessageArena].name = "VoteMessageArena";
HUD[VoteMessageWorld].name = "VoteMessageWorld";
HUD[WarmupInfo].name = "WarmupInfo";
HUD[WeaponList].name = "WeaponList";
//ammowarning na 0 zawsze!
KomendyCPMA[cg_AltLightning].name = "cg_altlightning";
KomendyCPMA[cg_AltLightning].parametr = "0";
KomendyCPMA[cg_AmmoWarning].name = "cg_ammowarning";
KomendyCPMA[cg_AmmoWarning].parametr = "0";
KomendyCPMA[cg_DrawCrosshair].name = "cg_drawcrosshair";
KomendyCPMA[cg_DrawCrosshair].parametr = "11";
KomendyCPMA[cg_EnemyColors].name = "cg_enemycolors";
KomendyCPMA[cg_EnemyColors].parametr = "iiiii";
KomendyCPMA[cg_RailCoreWidth].name = "cg_railcorewidth";
KomendyCPMA[cg_RailCoreWidth].parametr = "2";
KomendyCPMA[cg_RailRingStep].name = "cg_railringstep";
KomendyCPMA[cg_RailRingStep].parametr = "32";
KomendyCPMA[cg_RailRingWidth].name = "cg_railringwidth";
KomendyCPMA[cg_RailRingWidth].parametr = "8";
KomendyCPMA[cg_RailStyle].name = "cg_railstyle";
KomendyCPMA[cg_RailStyle].parametr = "5";
KomendyCPMA[cg_Smoke_SG].name = "cg_smoke_sg";
KomendyCPMA[cg_Smoke_SG].parametr = "1";
KomendyCPMA[cg_SmokeRadius_RL].name = "cg_smokeradius_rl";
KomendyCPMA[cg_SmokeRadius_RL].parametr = "4";
KomendyCPMA[cg_SmokeRadius_GL].name = "cg_smokeradius_gl";
KomendyCPMA[cg_SmokeRadius_GL].parametr = "6";
KomendyCPMA[ch_CrosshairColor].name = "ch_crosshaircolor";
KomendyCPMA[ch_CrosshairColor].parametr = "y";
KomendyCPMA[ch_DrawWeaponSelect].name = "ch_drawweaponselect";
KomendyCPMA[ch_DrawWeaponSelect].parametr = "0";
KomendyCPMA[ch_SelfOnTeamOverlay].name = "ch_selfonteamoverlay";
KomendyCPMA[ch_SelfOnTeamOverlay].parametr = "0";
KomendyCPMA[Color].name = "color";
KomendyCPMA[Color].parametr = "77777";
KomendyCPMA[m_Accel].name = "m_accel";
KomendyCPMA[m_Accel].parametr = "0";
KomendyCPMA[rate].name = "rate";
KomendyCPMA[rate].parametr = "25000";
KomendyCPMA[snaps].name = "snaps";
KomendyCPMA[snaps].parametr = "30";
KomendyCPMA[cl_TimeNudge].name = "cl_timenudge";
KomendyCPMA[cl_TimeNudge].parametr = "0";
KomendyCPMA[cl_PacketDup].name = "cl_packetdup";
KomendyCPMA[cl_PacketDup].parametr = "0";
KomendyCPMA[cg_Nudge].name = "cg_nudge";
KomendyCPMA[cg_Nudge].parametr = "0";
KomendyCPMA[cg_XerpClients].name = "cg_xerpclients";
KomendyCPMA[cg_XerpClients].parametr = "0";
KomendyCPMA[cg_OptimiseBW].name = "cg_optimisebw";
KomendyCPMA[cg_OptimiseBW].parametr = "1";
KomendyCPMA[cg_LagHax].name = "cg_laghax";
KomendyCPMA[cg_LagHax].parametr = "-1";
KomendyCPMA[cg_Predict].name = "cg_predict";
KomendyCPMA[cg_Predict].parametr = "1";
KomendyCPMA[ch_File].name = "ch_file";
KomendyCPMA[ch_File].parametr = "hud";
}
void CKonwerter::Parsuj()
{
Init();
char bufor[500];
ifstream plik_in(s_path.c_str());
ofstream plik_out(d_path.c_str());
CCommand komenda;
if (plik_in)
do
{
plik_in.getline(bufor, sizeof(bufor));
komenda = Rozloz(bufor);
Zapisywarka(komenda);
if (!NieZapisujTeraz(komenda)) //Pomija komeny, ktore trzeba zmienic, beda zapisane pozniej na koncu
{
plik_out << bufor;
if (!plik_in.eof())
plik_out << '\n';
}
}
while(!plik_in.eof());
plik_in.close();
plik_out.close();
ToHUD();
ZapiszHUD();
ZapiszConfig();
//ROZMIAR rozmiar;
//rozmiar = GetRozmiar(Rozloz(bufor).parametr);
//char napis[20];
//sprintf(napis, "%d %d", rozmiar.x, rozmiar.y);
//temp = napis;
}
void CKonwerter::Zapisywarka(CCommand komenda)
{
if (komenda.type == SETA)
{
for (int i = 0; i < OSPSize; i++)
if (KomendyOSP[i].name == LowCase(komenda.name))
{
KomendyOSP[i].parametr = komenda.parametr;
return;
}
//cg_enemycolor color1 itp tutaj przechowywac
for (int i = 0; i < CPMASize; i++)
if (KomendyCPMA[i].name == LowCase(komenda.name))
{
KomendyCPMA[i].parametr = komenda.parametr;
return;
}
}
}
void CKonwerter::Zamieniarka()
{
char buf[40];
//ch_WeaponSwitch
if (atoi(KomendyOSP[ch_WeaponSwitch].parametr.c_str()) == 1 ||
atoi(KomendyOSP[ch_WeaponSwitch].parametr.c_str()) == 9)
{
KomendyCPMA[ch_DrawWeaponSelect].parametr = "1";
}
else
KomendyCPMA[ch_DrawWeaponSelect].parametr = "0";
if (atoi(KomendyOSP[cg_EnableOSPHUD].parametr.c_str()) == 0)
{
KomendyCPMA[ch_DrawWeaponSelect].parametr = "1";
}
if (atoi(KomendyOSP[cg_DrawCrosshair_].parametr.c_str()) >= 10)
{
sprintf(buf, "%d", atoi(KomendyOSP[cg_DrawCrosshair_].parametr.c_str()) % 10);
KomendyCPMA[cg_DrawCrosshair].parametr = buf;
}
else
if (atoi(KomendyOSP[cg_DrawCrosshair_].parametr.c_str()) < 0)
{
sprintf(buf, "%d", atoi(KomendyOSP[cg_DrawCrosshair_].parametr.c_str()) % 10 + 10);
KomendyCPMA[cg_DrawCrosshair].parametr = buf;
}
else
KomendyCPMA[cg_DrawCrosshair].parametr = KomendyOSP[cg_DrawCrosshair_].parametr;
if (atoi(KomendyOSP[cg_DrawCrosshair_].parametr.c_str()) == 7)
KomendyCPMA[cg_DrawCrosshair].parametr = "1";
KomendyCPMA[m_Accel].parametr = KomendyOSP[cl_MouseAccel].parametr;
KomendyCPMA[cg_RailRingStep].parametr = KomendyOSP[r_RailSegmentLength].parametr;
sprintf(buf, "%d", int(atoi(KomendyOSP[r_RailWidth].parametr.c_str()) * 0.334));
KomendyCPMA[cg_RailRingWidth].parametr = buf;
KomendyCPMA[cg_RailCoreWidth].parametr = KomendyOSP[r_RailCoreWidth].parametr;
if (atoi(KomendyOSP[cg_OldRail].parametr.c_str()) == 0)
{
KomendyCPMA[cg_RailStyle].parametr = "3";
}
KomendyCPMA[cg_RailStyle].parametr = "5";
for (int i = 0; i < KomendyOSP[Color1].parametr.length(); i++)
{
if (KomendyOSP[Color1].parametr[i] == '7')
KomendyOSP[Color1].parametr[i] = 'd';
else
if (KomendyOSP[Color1].parametr[i] == '5')
KomendyOSP[Color1].parametr[i] = '6';
else
if (KomendyOSP[Color1].parametr[i] == '6')
KomendyOSP[Color1].parametr[i] = '5';
else
if (KomendyOSP[Color1].parametr[i] == '0')
KomendyOSP[Color1].parametr[i] = '7';
}
for (int i = 0; i < KomendyOSP[Color2].parametr.length(); i++)
{
if (KomendyOSP[Color2].parametr[i] == '7')
KomendyOSP[Color2].parametr[i] = 'd';
else
if (KomendyOSP[Color2].parametr[i] == '5')
KomendyOSP[Color2].parametr[i] = '6';
else
if (KomendyOSP[Color2].parametr[i] == '6')
KomendyOSP[Color2].parametr[i] = '5';
else
if (KomendyOSP[Color2].parametr[i] == '0')
KomendyOSP[Color2].parametr[i] = '7';
}
if (KomendyOSP[Color1].parametr.length() > 0)
{
KomendyCPMA[Color].parametr[0] = KomendyOSP[Color1].parametr[0];
if (KomendyOSP[Color1].parametr.length() > 1)
{
KomendyCPMA[Color].parametr[1] = KomendyOSP[Color1].parametr[1];
if (KomendyOSP[Color1].parametr.length() > 2)
{
KomendyCPMA[Color].parametr[2] = KomendyOSP[Color1].parametr[2];
if (KomendyOSP[Color1].parametr.length() > 3)
{
KomendyCPMA[Color].parametr[3] = KomendyOSP[Color1].parametr[3];
}
}
}
}
KomendyCPMA[Color].parametr[4] = KomendyOSP[Color2].parametr[0];
for (int i = 0; i < KomendyOSP[cg_EnemyColors_].parametr.length(); i++)
{
if (KomendyOSP[cg_EnemyColors_].parametr[i] == '7')
KomendyOSP[cg_EnemyColors_].parametr[i] = 'd';
else
if (KomendyOSP[cg_EnemyColors_].parametr[i] == '5')
KomendyOSP[cg_EnemyColors_].parametr[i] = '6';
else
if (KomendyOSP[cg_EnemyColors_].parametr[i] == '6')
KomendyOSP[cg_EnemyColors_].parametr[i] = '5';
else
if (KomendyOSP[cg_EnemyColors_].parametr[i] == '0')
KomendyOSP[cg_EnemyColors_].parametr[i] = '7';
}
if (KomendyOSP[cg_EnemyColors_].parametr.length() > 0)
{
KomendyCPMA[cg_EnemyColors].parametr[0] = KomendyOSP[cg_EnemyColors_].parametr[0];
if (KomendyOSP[cg_EnemyColors_].parametr.length() > 1)
{
KomendyCPMA[cg_EnemyColors].parametr[1] = KomendyOSP[cg_EnemyColors_].parametr[1];
if (KomendyOSP[cg_EnemyColors_].parametr.length() > 2)
{
KomendyCPMA[cg_EnemyColors].parametr[2] = KomendyOSP[cg_EnemyColors_].parametr[2];
if (KomendyOSP[cg_EnemyColors_].parametr.length() > 3)
{
KomendyCPMA[cg_EnemyColors].parametr[3] = KomendyOSP[cg_EnemyColors_].parametr[3];
if (KomendyOSP[cg_EnemyColors_].parametr.length() > 4)
{
KomendyCPMA[cg_EnemyColors].parametr[4] = KomendyOSP[cg_EnemyColors_].parametr[4];
}
}
}
}
}
if (KomendyOSP[cg_EnemyColors_].parametr.length() < 5)
KomendyCPMA[cg_EnemyColors].parametr.erase(KomendyCPMA[cg_EnemyColors].parametr.begin() + KomendyOSP[cg_EnemyColors_].parametr.length(), KomendyCPMA[cg_EnemyColors].parametr.end());
if (LowCase(KomendyOSP[ch_CrosshairColor_].parametr.c_str()) == "white")
KomendyCPMA[ch_CrosshairColor].parametr = "y";
else
if (LowCase(KomendyOSP[ch_CrosshairColor_].parametr.c_str()) == "6")
KomendyCPMA[ch_CrosshairColor].parametr = "5";
else
if (LowCase(KomendyOSP[ch_CrosshairColor_].parametr.c_str()) == "5")
KomendyCPMA[ch_CrosshairColor].parametr = "6";
else
if (LowCase(KomendyOSP[ch_CrosshairColor_].parametr.c_str()) == "black")
KomendyCPMA[ch_CrosshairColor].parametr = "0";
else
if (LowCase(KomendyOSP[ch_CrosshairColor_].parametr.c_str()) == "white")
KomendyCPMA[ch_CrosshairColor].parametr = "y";
else
if (LowCase(KomendyOSP[ch_CrosshairColor_].parametr.c_str()) == "red")
KomendyCPMA[ch_CrosshairColor].parametr = "1";
else
if (LowCase(KomendyOSP[ch_CrosshairColor_].parametr.c_str()) == "green")
KomendyCPMA[ch_CrosshairColor].parametr = "2";
else
if (LowCase(KomendyOSP[ch_CrosshairColor_].parametr.c_str()) == "yellow")
KomendyCPMA[ch_CrosshairColor].parametr = "3";
else
if (LowCase(KomendyOSP[ch_CrosshairColor_].parametr.c_str()) == "blue")
KomendyCPMA[ch_CrosshairColor].parametr = "4";
else
if (LowCase(KomendyOSP[ch_CrosshairColor_].parametr.c_str()) == "cyan")
KomendyCPMA[ch_CrosshairColor].parametr = "5";
else
KomendyCPMA[ch_CrosshairColor].parametr = KomendyOSP[ch_CrosshairColor_].parametr;
if (KomendyOSP[cg_NoProjectileTrail].parametr.c_str())
{
KomendyCPMA[cg_Smoke_SG].parametr = "0";
KomendyCPMA[cg_SmokeRadius_RL].parametr = "0";
KomendyCPMA[cg_SmokeRadius_GL].parametr = "0";
}
}
void CKonwerter::ToHUD()
{
MODEL model = GetModel(KomendyOSP[Model].parametr.c_str());
string path_model, path_skin, path_icon;
int lagometer_y = 4, drawping_y = 4, timer_y = 4, drawspeed_y = 4, drawfps_y = 4, score_y = 429, powerup_y;
int attacker_y = 4, chat_szerokosc = 620;
int hud_wysokosc = 48, overlay_podnies = 0, chat_podnies = 0;
int crosshair_size = atoi(KomendyOSP[cg_CrosshairSize].parametr.c_str());
int pomoc = 0;
ROZMIAR rozmiar;
//fonty beda przechowywane w tablicy razem z innymi komendami
path_model = "models/players/";
path_model += model.model;
path_model += "/head.md3";
path_skin = "models/players/";
path_skin += model.model;
path_skin += "/head_";
path_skin += model.skin;
path_skin += ".skin";
path_icon = "models/players/";
path_icon += model.model;
path_icon += "/icon_";
path_icon += model.skin;
path_icon += ".tga";
KomendyCPMA[ch_File].parametr = d_nazwapliku + "_hud";
if (atoi(KomendyOSP[ch_3WaveFont].parametr.c_str()))
HUD[DEFAULT].font = THREEWAVE;
else
HUD[DEFAULT].font = ID;
for (int i = 1; i < HUDTypeSize; i++)
HUD[i].font = HUD[DEFAULT].font;
if (atoi(KomendyOSP[cg_DrawTeamOverlay].parametr.c_str()) == 1)
{
if (atoi(KomendyOSP[cg_EnableOSPHUD].parametr.c_str()) &&
(atoi(KomendyOSP[ch_StatusBarFormat].parametr.c_str()) == 0 ||
atoi(KomendyOSP[ch_StatusBarFormat].parametr.c_str()) == 4))
{
pomoc = 4 * GetRozmiar(KomendyOSP[cf_TeamOverlay].parametr.c_str()).y;
}
else
{
pomoc = 4 * 11;
}
drawfps_y += pomoc;
lagometer_y += pomoc;
drawping_y += pomoc;
timer_y += pomoc;
drawspeed_y += pomoc;
attacker_y += pomoc;
}
if (atoi(KomendyOSP[cg_DrawFPS].parametr.c_str()))
{
HUD[FPS].rect = RECT_(638, drawfps_y, 0, 0);
HUD[FPS].monospace = true;
lagometer_y += 18;
drawping_y += 18;
timer_y += 18;
drawspeed_y += 18;
attacker_y += 18;
}
if (atoi(KomendyOSP[cg_DrawTimer].parametr.c_str()))
{
HUD[GameTime].rect = RECT_(638, timer_y, 0, 0);
HUD[GameTime].monospace = true;
lagometer_y += 18;
drawping_y += 18;
drawspeed_y += 18;
attacker_y += 18;
}
if (atoi(KomendyOSP[ch_DrawSpeed].parametr.c_str()) == 1)
{
HUD[PlayerSpeed].rect = RECT_(638, drawspeed_y, 0, 0);
HUD[PlayerSpeed].monospace = true;
lagometer_y += 18;
drawping_y += 18;
attacker_y += 18;
}
else
if (atoi(KomendyOSP[ch_DrawSpeed].parametr.c_str()) == 2)
{
HUD[PlayerSpeed].rect = RECT_(320, 240 - 16 - (crosshair_size / 2), 0, 0);
HUD[PlayerSpeed].fontsize = FONTSIZE(10, 10);
HUD[PlayerSpeed].textstyle = 0;
HUD[PlayerSpeed].textalign = C;
HUD[PlayerSpeed].monospace = true;
HUD[PlayerSpeed].color = COLOR(1, 1, 1, 0.4);
}
if (atoi(KomendyOSP[cg_LagoMeter].parametr.c_str()) == 1)
{
if (atoi(KomendyOSP[cg_DrawPing].parametr.c_str()) >= 1)
{
HUD[NetGraphPing].rect = RECT_(640, 418, 0, 0);
HUD[NetGraphPing].fontsize = FONTSIZE(12, 12);
HUD[NetGraphPing].monospace = true;
score_y -= 14;
overlay_podnies += 14;
}
HUD[NetGraph].rect = RECT_(592, 432, 48, 48);
HUD[Decorate1].rect = RECT_(592, 432, 48, 48);
HUD[Decorate1].image = "gfx/2d/lag.jpg";
}
else
if (atoi(KomendyOSP[cg_LagoMeter].parametr.c_str()) >= 2)
{
if (atoi(KomendyOSP[cg_DrawPing].parametr.c_str()) >= 1)
{
HUD[NetGraphPing].rect = RECT_(640, drawping_y, 0, 0);
HUD[NetGraphPing].fontsize = FONTSIZE(12, 12);
HUD[NetGraphPing].monospace = true;
lagometer_y += 14;
attacker_y += 14;
}
HUD[NetGraph].rect = RECT_(592, lagometer_y, 48, 48);
HUD[Decorate1].rect = RECT_(592, lagometer_y, 48, 48);
HUD[Decorate1].image = "gfx/2d/lag.jpg";
attacker_y += 48;
}
else
{
if (atoi(KomendyOSP[cg_DrawPing].parametr.c_str()) >= 1)
{
HUD[NetGraphPing].rect = RECT_(640, drawping_y, 0, 0);
HUD[NetGraphPing].fontsize = FONTSIZE(12, 12);
HUD[NetGraphPing].monospace = true;
attacker_y += 14;
}
}
if (atoi(KomendyOSP[cg_DrawAttacker].parametr.c_str()))
{
HUD[AttackerIcon].rect = RECT_(576, attacker_y, 64, 64);
HUD[AttackerIcon].time = 10000;
HUD[AttackerName].rect = RECT_(640, attacker_y + 64, 0, 0);
HUD[AttackerName].textalign = R;
HUD[AttackerName].monospace = true;
HUD[AttackerName].time = 10000;
}
if (atoi(KomendyOSP[cg_Draw3DIcons].parametr.c_str()))
{
HUD[AttackerIcon].angles = ANGLES(0, 180, 0, 0);
HUD[AttackerIcon].draw3d = true;
HUD[StatusBar_AmmoIcon].angles = ANGLES(0, 90, 0, 20);
HUD[StatusBar_AmmoIcon].draw3d = true;
HUD[StatusBar_ArmorIcon].angles = ANGLES(0, 0, 0, 180);
HUD[StatusBar_ArmorIcon].draw3d = true;
HUD[StatusBar_HealthIcon].angles = ANGLES(0, 180, 0, 20);
HUD[StatusBar_HealthIcon].draw3d = true;
}
else
{
}
if (atoi(KomendyOSP[cg_DrawAmmoWarning].parametr.c_str()))
{
HUD[AmmoMessage].rect = RECT_(320, 60, 0, 0);
HUD[AmmoMessage].textalign = C;
HUD[AmmoMessage].monospace = true;
}
if (atoi(KomendyOSP[cg_EnableOSPHUD].parametr.c_str()))
{
if (atoi(KomendyOSP[ch_WeaponSwitch].parametr.c_str()) == 2 ||
atoi(KomendyOSP[ch_WeaponSwitch].parametr.c_str()) == 3)
{
HUD[WeaponList].rect = RECT_(550, 120, 80, 16);
HUD[WeaponList].color = COLOR(0.3, 0.3, 0.3, 0.5);
HUD[WeaponList].fontsize = FONTSIZE(16, 16);
HUD[WeaponList].textalign = L;
HUD[WeaponList].monospace = true;
HUD[WeaponList].textstyle = 0;
if (atoi(KomendyOSP[ch_WeaponSwitch].parametr.c_str()) == 2)
HUD[WeaponList].time = 1500;
}
else
if (atoi(KomendyOSP[ch_WeaponSwitch].parametr.c_str()) == 4 ||
atoi(KomendyOSP[ch_WeaponSwitch].parametr.c_str()) == 5)
{
HUD[WeaponList].rect = RECT_(10, 120, 80, 16);
HUD[WeaponList].color = COLOR(0.3, 0.3, 0.3, 0.5);
HUD[WeaponList].fontsize = FONTSIZE(16, 16);
HUD[WeaponList].textalign = L;
HUD[WeaponList].monospace = true;
HUD[WeaponList].textstyle = 0;
if (atoi(KomendyOSP[ch_WeaponSwitch].parametr.c_str()) == 4)
HUD[WeaponList].time = 1500;
}
else
if (atoi(KomendyOSP[ch_WeaponSwitch].parametr.c_str()) == 6)
{
HUD[WeaponList].rect = RECT_(8, 52, 80, 16);
HUD[WeaponList].color = COLOR(0, 0, 1, 0.3);
HUD[WeaponList].fontsize = FONTSIZE(16, 16);
HUD[WeaponList].textalign = L;
HUD[WeaponList].monospace = true;
HUD[Decorate7].rect = RECT_(4, 48, 76, 1);
HUD[Decorate7].bgcolor = COLOR(1, 1, 1, 1);
HUD[Decorate7].fill = true;
}
else
if (atoi(KomendyOSP[ch_WeaponSwitch].parametr.c_str()) == 7)
{
HUD[WeaponList].rect = RECT_(556, 52, 80, 16);
HUD[WeaponList].color = COLOR(0, 0, 1, 0.3);
HUD[WeaponList].fontsize = FONTSIZE(16, 16);
HUD[WeaponList].textalign = L;
HUD[WeaponList].monospace = true;
HUD[Decorate7].rect = RECT_(560, 48, 76, 1);
HUD[Decorate7].bgcolor = COLOR(1, 1, 1, 1);
HUD[Decorate7].fill = true;
}
else
if (atoi(KomendyOSP[ch_WeaponSwitch].parametr.c_str()) == 8)
{
HUD[WeaponList].rect = RECT_(320, 380, 56, 13);
HUD[WeaponList].color = COLOR(0, 0, 1, 0.3);
HUD[WeaponList].fontsize = FONTSIZE(10, 10);
HUD[WeaponList].textalign = C;
HUD[WeaponList].monospace = true;
}
//zaleznie od cf_Vote
rozmiar = GetRozmiar(KomendyOSP[cf_Vote].parametr.c_str());
HUD[VoteMessageArena].fontsize = rozmiar;
HUD[VoteMessageWorld].fontsize = rozmiar;
if (atoi(KomendyOSP[ch_StatusBarFormat].parametr.c_str()) == 0 ||
atoi(KomendyOSP[ch_StatusBarFormat].parametr.c_str()) == 4 ||
atoi(KomendyOSP[ch_StatusBarFormat].parametr.c_str()) >= 13)
{
//taki sam jak dla cg_enableosp 0
HUD[StatusBar_AmmoCount].rect = RECT_(100, 432, 0, 0);
HUD[StatusBar_AmmoCount].font = IDBLOCK;
HUD[StatusBar_AmmoCount].fontsize = FONTSIZE(32, 48);
HUD[StatusBar_AmmoCount].textstyle = 0;
HUD[StatusBar_ArmorCount].rect = RECT_(469, 432, 0, 0);
HUD[StatusBar_ArmorCount].font = IDBLOCK;
HUD[StatusBar_ArmorCount].fontsize = FONTSIZE(32, 48);
HUD[StatusBar_ArmorCount].textstyle = 0;
HUD[StatusBar_HealthCount].rect = RECT_(284, 432, 0, 0);
HUD[StatusBar_HealthCount].font = IDBLOCK;
HUD[StatusBar_HealthCount].fontsize = FONTSIZE(32, 48);
HUD[StatusBar_HealthCount].textstyle = 0;
if (atoi(KomendyOSP[cg_DrawIcons].parametr.c_str()))
{
HUD[StatusBar_ArmorIcon].rect = RECT_(469, 432, 48, 48);
if (atoi(KomendyOSP[cg_Draw3DIcons].parametr.c_str()))
{
HUD[StatusBar_AmmoIcon].rect = RECT_(100, 436, 40, 40);
HUD[StatusBar_HealthIcon].rect = RECT_(292, 426, 48, 50);
HUD[StatusBar_HealthIcon].model = path_model;
HUD[StatusBar_HealthIcon].image = path_skin;
}
else
{
HUD[StatusBar_AmmoIcon].rect = RECT_(100, 432, 48, 48);
HUD[StatusBar_HealthIcon].rect = RECT_(286, 420, 60, 60);
HUD[StatusBar_HealthIcon].image = path_icon;
}
}
}
else
if (atoi(KomendyOSP[ch_StatusBarFormat].parametr.c_str()) == 1 ||
atoi(KomendyOSP[ch_StatusBarFormat].parametr.c_str()) == 2 ||
atoi(KomendyOSP[ch_StatusBarFormat].parametr.c_str()) == 3)
{
hud_wysokosc = GetRozmiar(KomendyOSP[cf_StatusBar].parametr.c_str()).y;
rozmiar = GetRozmiar(KomendyOSP[cf_StatusBar].parametr.c_str());
HUD[StatusBar_AmmoCount].rect = RECT_(320 + rozmiar.x / 2 - ((rozmiar.x * 3) / 2) - rozmiar.x * 2, 480 - rozmiar.y, 0, 0);
HUD[StatusBar_AmmoCount].font = IDBLOCK;
HUD[StatusBar_AmmoCount].fontsize = FONTSIZE(rozmiar.x, rozmiar.y);
HUD[StatusBar_AmmoCount].textstyle = 0;
HUD[StatusBar_ArmorCount].rect = RECT_(320 + rozmiar.x / 2 + rozmiar.x * 3 + ((rozmiar.x * 3) / 2) + 4 + rozmiar.x, 480 - rozmiar.y, 0, 0);
HUD[StatusBar_ArmorCount].font = IDBLOCK;
HUD[StatusBar_ArmorCount].fontsize = FONTSIZE(rozmiar.x, rozmiar.y);
HUD[StatusBar_ArmorCount].textstyle = 0;
HUD[StatusBar_HealthCount].rect = RECT_(320 + rozmiar.x / 2 + (rozmiar.x * 3) / 2 + 4, 480 - rozmiar.y, 0, 0);
HUD[StatusBar_HealthCount].font = IDBLOCK;
HUD[StatusBar_HealthCount].fontsize = FONTSIZE(rozmiar.x, rozmiar.y);
HUD[StatusBar_HealthCount].textstyle = 0;
HUD[StatusBar_AmmoIcon].rect = RECT_(320 + rozmiar.x / 2 - ((rozmiar.x * 3) / 2) - rozmiar.x * 2, 480 - rozmiar.y, rozmiar.x, rozmiar.y);
HUD[StatusBar_AmmoIcon].draw3d = false;
if (atoi(KomendyOSP[ch_WeaponSwitch].parametr.c_str()) == 1 ||
atoi(KomendyOSP[ch_WeaponSwitch].parametr.c_str()) == 9)
if(atoi(KomendyOSP[ch_StatusBarFormat].parametr.c_str()) == 3)
{
HUD[WeaponList].rect = RECT_(0, 435, 50, 8);
HUD[WeaponList].color = COLOR(0.3, 0.3, 0.3, 1);
HUD[WeaponList].fontsize = FONTSIZE(8, 8);
HUD[WeaponList].textalign = L;
HUD[WeaponList].monospace = true;
HUD[WeaponList].textstyle = 0;
}
}
else
if (atoi(KomendyOSP[ch_StatusBarFormat].parametr.c_str()) == 5)
{
if (atoi(KomendyOSP[ch_Graphs].parametr.c_str()))
{
HUD[StatusBar_HealthBar].rect = RECT_(65, 433, 200, 35);
HUD[StatusBar_HealthBar].color = COLOR(0, 0, 0, 0);
HUD[StatusBar_HealthBar].doublebar = true;
HUD[StatusBar_ArmorBar].rect = RECT_(375, 433, 200, 35);
HUD[StatusBar_ArmorBar].color = COLOR(0, 0, 0, 0);
HUD[StatusBar_ArmorBar].doublebar = true;
HUD[StatusBar_ArmorBar].textalign = L;