mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-19 23:59:36 +01:00
Compare commits
18 Commits
experiment
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
33f2b91c99 | ||
|
6ec7c0c701 | ||
|
2c2fd7feb6 | ||
|
f6d105bb9e | ||
|
3467a05eaa | ||
|
14336e8d39 | ||
|
30e6010a88 | ||
|
e4b0fc3f9d | ||
|
dff8fc52f1 | ||
|
cd080f10c4 | ||
|
ab2d86f983 | ||
|
8841285ba9 | ||
|
49a0758602 | ||
|
f4325a73f5 | ||
|
d45f35ab57 | ||
|
3115122074 | ||
|
c37f5b4284 | ||
|
dd7602b1d3 |
@ -70,6 +70,7 @@ Wine (Linux/macOS/Android) only: override `ddraw` in [winecfg](https://wiki.wine
|
|||||||
- Another War
|
- Another War
|
||||||
- Anstoss 3
|
- Anstoss 3
|
||||||
- Arcanum: Of Steamworks and Magick Obscura
|
- Arcanum: Of Steamworks and Magick Obscura
|
||||||
|
- Arcatera the Dark Brotherhood
|
||||||
- Army Men 2
|
- Army Men 2
|
||||||
- Army Men: Air Tactics
|
- Army Men: Air Tactics
|
||||||
- Army Men: Toys in Space
|
- Army Men: Toys in Space
|
||||||
@ -146,6 +147,7 @@ Wine (Linux/macOS/Android) only: override `ddraw` in [winecfg](https://wiki.wine
|
|||||||
- Cloud Kingdom 3 (only with /ddraw command line parameter)
|
- Cloud Kingdom 3 (only with /ddraw command line parameter)
|
||||||
- Dark Earth
|
- Dark Earth
|
||||||
- Dark Reign: The Future of War
|
- Dark Reign: The Future of War
|
||||||
|
- Dark Secret of Africa
|
||||||
- Day Of The Tentacle
|
- Day Of The Tentacle
|
||||||
- Daytona
|
- Daytona
|
||||||
- Daytona USA (Sega - 1996)
|
- Daytona USA (Sega - 1996)
|
||||||
@ -201,6 +203,7 @@ Wine (Linux/macOS/Android) only: override `ddraw` in [winecfg](https://wiki.wine
|
|||||||
- Full Throttle
|
- Full Throttle
|
||||||
- Future Cop L.A.P.D
|
- Future Cop L.A.P.D
|
||||||
- G-Police
|
- G-Police
|
||||||
|
- Gateway (Remake)
|
||||||
- Geneforge
|
- Geneforge
|
||||||
- Gilbert Goodmate And The Mushroom Of Phungoria
|
- Gilbert Goodmate And The Mushroom Of Phungoria
|
||||||
- Gorasul: The Legacy of the Dragon
|
- Gorasul: The Legacy of the Dragon
|
||||||
@ -421,6 +424,7 @@ Wine (Linux/macOS/Android) only: override `ddraw` in [winecfg](https://wiki.wine
|
|||||||
- Sudden Strike 2
|
- Sudden Strike 2
|
||||||
- Superbike 2000
|
- Superbike 2000
|
||||||
- Swarog
|
- Swarog
|
||||||
|
- The Jungle Book Groove Party
|
||||||
- The Curse Of Monkey Island
|
- The Curse Of Monkey Island
|
||||||
- The Dig
|
- The Dig
|
||||||
- The Last Express
|
- The Last Express
|
||||||
|
@ -9,7 +9,6 @@
|
|||||||
#include <SysUtils.hpp>
|
#include <SysUtils.hpp>
|
||||||
#include <Registry.hpp>
|
#include <Registry.hpp>
|
||||||
#include <System.Hash.hpp>
|
#include <System.Hash.hpp>
|
||||||
#include <VersionHelpers.h>
|
|
||||||
#include "ConfigFormUnit.h"
|
#include "ConfigFormUnit.h"
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
#pragma package(smart_init)
|
#pragma package(smart_init)
|
||||||
@ -774,6 +773,87 @@ void TConfigForm::ApplyTranslation(TIniFile *ini)
|
|||||||
BoxingLbl->Hint = upscaleHint + enableUpscaleHint;
|
BoxingLbl->Hint = upscaleHint + enableUpscaleHint;
|
||||||
BoxingChk->Hint = upscaleHint + enableUpscaleHint;
|
BoxingChk->Hint = upscaleHint + enableUpscaleHint;
|
||||||
}
|
}
|
||||||
|
else if (lang == "polish" || (lang == "auto" && priID == LANG_POLISH)) {
|
||||||
|
LanguageImg->Visible = true;
|
||||||
|
|
||||||
|
/* -polish - made by WaRzillA @ github */
|
||||||
|
|
||||||
|
ConfigForm->Caption = L"Konfiguracja cnc-ddraw";
|
||||||
|
DisplayBtn->Caption = L"Ustawienia wyświetlania";
|
||||||
|
AdvancedBtn->Caption = L"Ustawienia zaawansowane";
|
||||||
|
HotkeyBtn->Caption = L"Skróty klawiaturowe";
|
||||||
|
CompatibilityBtn->Caption = L"Ustawienia kompatybilności";
|
||||||
|
RestoreDefaultsBtn->Caption = L"Przywróć ustawienia domyślne";
|
||||||
|
PresentationLbl->Caption = L"Tryb wyświetlania";
|
||||||
|
MaintasLbl->Caption = L"Zachowaj proporcje obrazu";
|
||||||
|
VsyncLbl->Caption = L"Włącz VSync";
|
||||||
|
AdjmouseLbl->Caption = L"Dostosuj czułość myszy";
|
||||||
|
DevmodeLbl->Caption = L"Zablokuj kursor w oknie/na ekranie";
|
||||||
|
RendererLbl->Caption = L"Silnik renderowania";
|
||||||
|
BorderLbl->Caption = L"Pokaż ramki okna w trybie okienkowym";
|
||||||
|
SavesettingsLbl->Caption = L"Zapamiętaj pozycję i rozmiar okna";
|
||||||
|
ShaderLbl->Caption = L"Shader OpenGL";
|
||||||
|
MaxfpsLbl->Caption = L"Ogranicz liczbę klatek na sekundę";
|
||||||
|
BoxingLbl->Caption = L"Włącz windowboxing / integer scaling ";
|
||||||
|
ToggleWindowedLbl->Caption = L"Przełącz na tryb okienkowy";
|
||||||
|
MaximizeWindowLbl->Caption = L"Maksymalizuj okno";
|
||||||
|
UnlockCursor1Lbl->Caption = L"Odblokuj kursor 1";
|
||||||
|
UnlockCursor2Lbl->Caption = L"Odblokuj kursor 2";
|
||||||
|
ScreenshotLbl->Caption = L"Zrzut ekranu";
|
||||||
|
MaxgameticksLbl->Caption = L"Ogranicz prędkość gry";
|
||||||
|
NoactivateappLbl->Caption = L"Napraw nieprawidłowe działanie Alt+Tab";
|
||||||
|
ResolutionsLbl->Caption = L"Odblokuj dodatkowe rozdzielczości ekranu";
|
||||||
|
MinfpsLbl->Caption = L"Wymuś wysokie FPS / Napraw zacinanie Freesync/G-Sync";
|
||||||
|
SinglecpuLbl->Caption = L"Napraw problemy z wydajnością i dźwiękiem";
|
||||||
|
NonexclusiveLbl->Caption = L"Napraw niewidoczne filmy / elementy interfejsu";
|
||||||
|
|
||||||
|
RendererCbx->Items->Clear();
|
||||||
|
RendererCbx->AddItem(L"Automatyczny", NULL);
|
||||||
|
RendererCbx->AddItem(L"Direct3D 9", NULL);
|
||||||
|
RendererCbx->AddItem(L"OpenGL", NULL);
|
||||||
|
RendererCbx->AddItem(L"GDI", NULL);
|
||||||
|
|
||||||
|
PresentationCbx->Items->Clear();
|
||||||
|
PresentationCbx->AddItem(L"Pełny ekran", NULL);
|
||||||
|
PresentationCbx->AddItem(L"Pełny ekran z upscalingiem", NULL);
|
||||||
|
PresentationCbx->AddItem(L"Tryb bezramkowy", NULL);
|
||||||
|
PresentationCbx->AddItem(L"Tryb okienkowy", NULL);
|
||||||
|
|
||||||
|
MaxgameticksCbx->Items->Clear();
|
||||||
|
MaxgameticksCbx->AddItem(L"Bez limitu", NULL);
|
||||||
|
MaxgameticksCbx->AddItem(L"Synchronizacja z odświeżaniem monitora", NULL);
|
||||||
|
MaxgameticksCbx->AddItem(L"Symulacja monitora 60 Hz", NULL);
|
||||||
|
MaxgameticksCbx->AddItem(L"1000 tików na sekundę", NULL);
|
||||||
|
MaxgameticksCbx->AddItem(L"500 tików na sekundę", NULL);
|
||||||
|
MaxgameticksCbx->AddItem(L"250 tików na sekundę", NULL);
|
||||||
|
MaxgameticksCbx->AddItem(L"125 tików na sekundę", NULL);
|
||||||
|
MaxgameticksCbx->AddItem(L"60 tików na sekundę", NULL);
|
||||||
|
MaxgameticksCbx->AddItem(L"30 tików na sekundę", NULL);
|
||||||
|
MaxgameticksCbx->AddItem(L"25 tików na sekundę", NULL);
|
||||||
|
MaxgameticksCbx->AddItem(L"15 tików na sekundę", NULL);
|
||||||
|
|
||||||
|
System::UnicodeString shaderHint =
|
||||||
|
L"Niektóre shadery działają tylko wtedy, gdy włączone jest skalowanie. \n\n";
|
||||||
|
|
||||||
|
System::UnicodeString upscaleHint =
|
||||||
|
L"Skalowanie musi być włączone, aby ta opcja działała. \n\n";
|
||||||
|
|
||||||
|
System::UnicodeString enableUpscaleHint =
|
||||||
|
L"Aby włączyć skalowanie, ustaw tryb wyświetlania na 'Tryb bezramkowy' \n"
|
||||||
|
"lub 'Pełny ekran z upscalingiem'. Dla 'Tryb okienkowy' \n"
|
||||||
|
"musisz zmienić rozmiar lub zmaksymalizować okno.";
|
||||||
|
|
||||||
|
ShaderLbl->Hint = shaderHint + enableUpscaleHint;
|
||||||
|
ShaderD3DCbx->Hint = shaderHint + enableUpscaleHint;
|
||||||
|
ShaderCbx->Hint = shaderHint + enableUpscaleHint;
|
||||||
|
|
||||||
|
MaintasLbl->Hint = upscaleHint + enableUpscaleHint;
|
||||||
|
MaintasChk->Hint = upscaleHint + enableUpscaleHint;
|
||||||
|
AdjmouseLbl->Hint = upscaleHint + enableUpscaleHint;
|
||||||
|
AdjmouseChk->Hint = upscaleHint + enableUpscaleHint;
|
||||||
|
BoxingLbl->Hint = upscaleHint + enableUpscaleHint;
|
||||||
|
BoxingChk->Hint = upscaleHint + enableUpscaleHint;
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
IsEnglish = true;
|
IsEnglish = true;
|
||||||
|
|
||||||
@ -826,6 +906,12 @@ void TConfigForm::ApplyTranslation(TIniFile *ini)
|
|||||||
LanguageImg->Picture->Graphic = png;
|
LanguageImg->Picture->Graphic = png;
|
||||||
LanguageImg->Visible = true;
|
LanguageImg->Visible = true;
|
||||||
}
|
}
|
||||||
|
else if (priID == LANG_POLISH) {
|
||||||
|
TPngImage *png = new TPngImage();
|
||||||
|
png->LoadFromResourceName((int)HInstance, "PngImage_PL");
|
||||||
|
LanguageImg->Picture->Graphic = png;
|
||||||
|
LanguageImg->Visible = true;
|
||||||
|
}
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1199,11 +1285,6 @@ void __fastcall TConfigForm::FormCreate(TObject *Sender)
|
|||||||
|
|
||||||
delete ini;
|
delete ini;
|
||||||
|
|
||||||
VsyncChk->Enabled = VsyncAllowed();
|
|
||||||
if (!VsyncChk->Enabled) {
|
|
||||||
VsyncChk->State = tssOff;
|
|
||||||
}
|
|
||||||
|
|
||||||
Initialized = true;
|
Initialized = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1625,31 +1706,8 @@ bool TConfigForm::GetBool(TIniFile *ini, System::UnicodeString key, bool defValu
|
|||||||
return s == "true" || s == "yes" || s == "1";
|
return s == "true" || s == "yes" || s == "1";
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TConfigForm::VsyncAllowed()
|
|
||||||
{
|
|
||||||
if (GetProcAddress(GetModuleHandleW(L"ntdll.dll"), "wine_get_version")) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!IsWindows8OrGreater()) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (NonexclusiveChk->State == tssOff &&
|
|
||||||
(PresentationCbx->ItemIndex == 0 || PresentationCbx->ItemIndex == 1)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void __fastcall TConfigForm::PresentationCbxChange(TObject *Sender)
|
void __fastcall TConfigForm::PresentationCbxChange(TObject *Sender)
|
||||||
{
|
{
|
||||||
VsyncChk->Enabled = VsyncAllowed();
|
|
||||||
if (!VsyncChk->Enabled) {
|
|
||||||
VsyncChk->State = tssOff;
|
|
||||||
}
|
|
||||||
|
|
||||||
SaveSettings();
|
SaveSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1758,11 +1816,6 @@ void __fastcall TConfigForm::SinglecpuChkClick(TObject *Sender)
|
|||||||
|
|
||||||
void __fastcall TConfigForm::NonexclusiveChkClick(TObject *Sender)
|
void __fastcall TConfigForm::NonexclusiveChkClick(TObject *Sender)
|
||||||
{
|
{
|
||||||
VsyncChk->Enabled = VsyncAllowed();
|
|
||||||
if (!VsyncChk->Enabled) {
|
|
||||||
VsyncChk->State = tssOff;
|
|
||||||
}
|
|
||||||
|
|
||||||
SaveSettings();
|
SaveSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -118,7 +118,6 @@ private: // Benutzer-Deklarationen
|
|||||||
virtual void __fastcall CreateParams(TCreateParams & Params);
|
virtual void __fastcall CreateParams(TCreateParams & Params);
|
||||||
void SaveSettings();
|
void SaveSettings();
|
||||||
bool GetBool(TIniFile *ini, System::UnicodeString key, bool defValue);
|
bool GetBool(TIniFile *ini, System::UnicodeString key, bool defValue);
|
||||||
bool VsyncAllowed();
|
|
||||||
void ApplyTranslation(TIniFile *ini);
|
void ApplyTranslation(TIniFile *ini);
|
||||||
System::UnicodeString GetKeyText(WORD key);
|
System::UnicodeString GetKeyText(WORD key);
|
||||||
WORD GetKeyCode(System::UnicodeString text);
|
WORD GetKeyCode(System::UnicodeString text);
|
||||||
|
BIN
config/Resources/pl.png
Normal file
BIN
config/Resources/pl.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 374 B |
@ -227,6 +227,10 @@
|
|||||||
<ResourceType>RCDATA</ResourceType>
|
<ResourceType>RCDATA</ResourceType>
|
||||||
<ResourceId>PngImage_IT</ResourceId>
|
<ResourceId>PngImage_IT</ResourceId>
|
||||||
</RcItem>
|
</RcItem>
|
||||||
|
<RcItem Include="Resources\pl.png">
|
||||||
|
<ResourceType>RCDATA</ResourceType>
|
||||||
|
<ResourceId>PngImage_PL</ResourceId>
|
||||||
|
</RcItem>
|
||||||
<RcItem Include="Resources\RU.png">
|
<RcItem Include="Resources\RU.png">
|
||||||
<ResourceType>RCDATA</ResourceType>
|
<ResourceType>RCDATA</ResourceType>
|
||||||
<ResourceId>PngImage_RU</ResourceId>
|
<ResourceId>PngImage_RU</ResourceId>
|
||||||
@ -364,7 +368,7 @@
|
|||||||
<DeployFile LocalName=".\Win32\Release\cnc-ddraw config.exe" Configuration="Release" Class="ProjectOutput"/>
|
<DeployFile LocalName=".\Win32\Release\cnc-ddraw config.exe" Configuration="Release" Class="ProjectOutput"/>
|
||||||
<DeployFile LocalName=".\Win32\Release\cnc-ddraw config.exe" Configuration="Release" Class="ProjectOutput">
|
<DeployFile LocalName=".\Win32\Release\cnc-ddraw config.exe" Configuration="Release" Class="ProjectOutput">
|
||||||
<Platform Name="Win32">
|
<Platform Name="Win32">
|
||||||
<RemoteName>cnc-ddraw_config.exe</RemoteName>
|
<RemoteName>cnc-ddraw config.exe</RemoteName>
|
||||||
<Overwrite>true</Overwrite>
|
<Overwrite>true</Overwrite>
|
||||||
</Platform>
|
</Platform>
|
||||||
</DeployFile>
|
</DeployFile>
|
||||||
@ -430,6 +434,12 @@
|
|||||||
<Overwrite>true</Overwrite>
|
<Overwrite>true</Overwrite>
|
||||||
</Platform>
|
</Platform>
|
||||||
</DeployFile>
|
</DeployFile>
|
||||||
|
<DeployFile LocalName="Resources\pl.png" Configuration="Release" Class="ProjectFile">
|
||||||
|
<Platform Name="Win32">
|
||||||
|
<RemoteDir>.\</RemoteDir>
|
||||||
|
<Overwrite>true</Overwrite>
|
||||||
|
</Platform>
|
||||||
|
</DeployFile>
|
||||||
<DeployClass Name="AdditionalDebugSymbols">
|
<DeployClass Name="AdditionalDebugSymbols">
|
||||||
<Platform Name="iOSSimulator">
|
<Platform Name="iOSSimulator">
|
||||||
<Operation>1</Operation>
|
<Operation>1</Operation>
|
||||||
|
@ -4,6 +4,7 @@ PngImage_ES RCDATA "Resources\\ES.png"
|
|||||||
PngImage_FR RCDATA "Resources\\fr.png"
|
PngImage_FR RCDATA "Resources\\fr.png"
|
||||||
PngImage_HU RCDATA "Resources\\hu.png"
|
PngImage_HU RCDATA "Resources\\hu.png"
|
||||||
PngImage_IT RCDATA "Resources\\IT.png"
|
PngImage_IT RCDATA "Resources\\IT.png"
|
||||||
|
PngImage_PL RCDATA "Resources\\pl.png"
|
||||||
PngImage_RU RCDATA "Resources\\RU.png"
|
PngImage_RU RCDATA "Resources\\RU.png"
|
||||||
PngImage_US RCDATA "Resources\\US.png"
|
PngImage_US RCDATA "Resources\\US.png"
|
||||||
PngImage_VN RCDATA "Resources\\VN.png"
|
PngImage_VN RCDATA "Resources\\VN.png"
|
||||||
|
@ -106,6 +106,7 @@ typedef struct CNCDDRAWCONFIG
|
|||||||
BOOL carma95_hack;
|
BOOL carma95_hack;
|
||||||
BOOL sirtech_hack;
|
BOOL sirtech_hack;
|
||||||
BOOL flightsim98_hack;
|
BOOL flightsim98_hack;
|
||||||
|
BOOL darkcolony_hack;
|
||||||
|
|
||||||
} CNCDDRAWCONFIG;
|
} CNCDDRAWCONFIG;
|
||||||
|
|
||||||
|
27
src/config.c
27
src/config.c
@ -116,6 +116,7 @@ void cfg_load()
|
|||||||
GET_BOOL(g_config.carma95_hack, "carma95_hack", FALSE);
|
GET_BOOL(g_config.carma95_hack, "carma95_hack", FALSE);
|
||||||
GET_BOOL(g_config.sirtech_hack, "sirtech_hack", FALSE);
|
GET_BOOL(g_config.sirtech_hack, "sirtech_hack", FALSE);
|
||||||
GET_BOOL(g_config.flightsim98_hack, "flightsim98_hack", FALSE);
|
GET_BOOL(g_config.flightsim98_hack, "flightsim98_hack", FALSE);
|
||||||
|
GET_BOOL(g_config.darkcolony_hack, "darkcolony_hack", FALSE);
|
||||||
|
|
||||||
GameHandlesClose = GameHandlesClose || g_config.infantryhack;
|
GameHandlesClose = GameHandlesClose || g_config.infantryhack;
|
||||||
|
|
||||||
@ -373,7 +374,7 @@ static void cfg_create_ini()
|
|||||||
"; The following settings are for cnc-ddraw config.exe\n"
|
"; The following settings are for cnc-ddraw config.exe\n"
|
||||||
"\n"
|
"\n"
|
||||||
"\n"
|
"\n"
|
||||||
"; cnc-ddraw config program language, possible values: auto, english, chinese, german, spanish, russian, hungarian, french, italian, vietnamese\n"
|
"; cnc-ddraw config program language, possible values: auto, english, chinese, german, spanish, russian, hungarian, french, italian, vietnamese, polish\n"
|
||||||
"configlang=auto\n"
|
"configlang=auto\n"
|
||||||
"\n"
|
"\n"
|
||||||
"; cnc-ddraw config program theme, possible values: Windows10, Cobalt XEMedia\n"
|
"; cnc-ddraw config program theme, possible values: Windows10, Cobalt XEMedia\n"
|
||||||
@ -403,6 +404,12 @@ static void cfg_create_ini()
|
|||||||
"[Atrox]\n"
|
"[Atrox]\n"
|
||||||
"nonexclusive=true\n"
|
"nonexclusive=true\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
"; Arcatera the Dark Brotherhood\n"
|
||||||
|
"[darksun]\n"
|
||||||
|
"maxgameticks=60\n"
|
||||||
|
"maxfps=60\n"
|
||||||
|
"minfps=-1\n"
|
||||||
|
"\n"
|
||||||
"; Atomic Bomberman\n"
|
"; Atomic Bomberman\n"
|
||||||
"[BM]\n"
|
"[BM]\n"
|
||||||
"maxgameticks=60\n"
|
"maxgameticks=60\n"
|
||||||
@ -534,7 +541,7 @@ static void cfg_create_ini()
|
|||||||
"; Atlantis\n"
|
"; Atlantis\n"
|
||||||
"[ATLANTIS]\n"
|
"[ATLANTIS]\n"
|
||||||
"renderer=opengl\n"
|
"renderer=opengl\n"
|
||||||
"maxgameticks=60\n"
|
"maxgameticks=30\n"
|
||||||
"center_cursor_fix=true\n"
|
"center_cursor_fix=true\n"
|
||||||
"\n"
|
"\n"
|
||||||
"; Airline Tycoon Deluxe\n"
|
"; Airline Tycoon Deluxe\n"
|
||||||
@ -874,6 +881,12 @@ static void cfg_create_ini()
|
|||||||
"[corsairs]\n"
|
"[corsairs]\n"
|
||||||
"adjmouse=true\n"
|
"adjmouse=true\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
"; Dark Colony\n"
|
||||||
|
"[dc16]\n"
|
||||||
|
"maxgameticks=30\n"
|
||||||
|
"darkcolony_hack=true\n"
|
||||||
|
"hook_peekmessage=true\n"
|
||||||
|
"\n"
|
||||||
"; Divine Divinity\n"
|
"; Divine Divinity\n"
|
||||||
"[div]\n"
|
"[div]\n"
|
||||||
"resolutions=2\n"
|
"resolutions=2\n"
|
||||||
@ -889,6 +902,12 @@ static void cfg_create_ini()
|
|||||||
"noactivateapp=true\n"
|
"noactivateapp=true\n"
|
||||||
"limiter_type=2\n"
|
"limiter_type=2\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
"; Dark Secret of Africa\n"
|
||||||
|
"[Game/5]\n"
|
||||||
|
"checkfile=.\\CONFIG.CFG\n"
|
||||||
|
"maxfps=60\n"
|
||||||
|
"minfps=-1\n"
|
||||||
|
"\n"
|
||||||
"; Dark Reign: The Future of War\n"
|
"; Dark Reign: The Future of War\n"
|
||||||
"[DKReign]\n"
|
"[DKReign]\n"
|
||||||
"maxgameticks=60\n"
|
"maxgameticks=60\n"
|
||||||
@ -1612,6 +1631,10 @@ static void cfg_create_ini()
|
|||||||
"fake_mode=352x240x32\n"
|
"fake_mode=352x240x32\n"
|
||||||
"fix_not_responding=true\n"
|
"fix_not_responding=true\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
"; Seven Games of the Soul\n"
|
||||||
|
"[faust]\n"
|
||||||
|
"maxgameticks=25\n"
|
||||||
|
"\n"
|
||||||
"; Swarog\n"
|
"; Swarog\n"
|
||||||
"[Swarog]\n"
|
"[Swarog]\n"
|
||||||
"maxfps=60\n"
|
"maxfps=60\n"
|
||||||
|
@ -909,6 +909,11 @@ HRESULT dds_GetClipper(IDirectDrawSurfaceImpl* This, IDirectDrawClipperImpl** lp
|
|||||||
|
|
||||||
HRESULT dds_GetColorKey(IDirectDrawSurfaceImpl* This, DWORD dwFlags, LPDDCOLORKEY lpColorKey)
|
HRESULT dds_GetColorKey(IDirectDrawSurfaceImpl* This, DWORD dwFlags, LPDDCOLORKEY lpColorKey)
|
||||||
{
|
{
|
||||||
|
if (!(This->flags & DDSD_CKSRCBLT))
|
||||||
|
{
|
||||||
|
return DDERR_NOCOLORKEY;
|
||||||
|
}
|
||||||
|
|
||||||
if (dwFlags != DDCKEY_SRCBLT || !lpColorKey)
|
if (dwFlags != DDCKEY_SRCBLT || !lpColorKey)
|
||||||
{
|
{
|
||||||
TRACE(" NOT_IMPLEMENTED dwFlags=%08X, lpColorKey=%p\n", dwFlags, lpColorKey);
|
TRACE(" NOT_IMPLEMENTED dwFlags=%08X, lpColorKey=%p\n", dwFlags, lpColorKey);
|
||||||
@ -1548,17 +1553,18 @@ HRESULT dd_CreateSurface(
|
|||||||
if (dst_surface->hdc)
|
if (dst_surface->hdc)
|
||||||
InterlockedIncrement(&g_dds_gdi_handles);
|
InterlockedIncrement(&g_dds_gdi_handles);
|
||||||
|
|
||||||
|
// CreateDIBSection cannot handle values higher than a WORD - 0xFF00 (guard lines);
|
||||||
|
DWORD map_offset = min(65280, dst_surface->pitch * g_config.guard_lines);
|
||||||
|
|
||||||
dst_surface->mapping =
|
dst_surface->mapping =
|
||||||
CreateFileMappingA(
|
CreateFileMappingA(
|
||||||
INVALID_HANDLE_VALUE,
|
INVALID_HANDLE_VALUE,
|
||||||
NULL,
|
NULL,
|
||||||
PAGE_READWRITE | SEC_COMMIT,
|
PAGE_READWRITE | SEC_COMMIT,
|
||||||
0,
|
0,
|
||||||
bmp_size + 256,
|
bmp_size + 256 + map_offset,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
DWORD map_offset = 0;
|
|
||||||
|
|
||||||
if (dst_surface->mapping)
|
if (dst_surface->mapping)
|
||||||
{
|
{
|
||||||
LPVOID data = MapViewOfFile(dst_surface->mapping, FILE_MAP_ALL_ACCESS, 0, 0, 0);
|
LPVOID data = MapViewOfFile(dst_surface->mapping, FILE_MAP_ALL_ACCESS, 0, 0, 0);
|
||||||
|
@ -780,6 +780,14 @@ BOOL WINAPI fake_GetMessageA(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wM
|
|||||||
|
|
||||||
BOOL WINAPI fake_PeekMessageA(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg)
|
BOOL WINAPI fake_PeekMessageA(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg)
|
||||||
{
|
{
|
||||||
|
if (g_config.darkcolony_hack && !hWnd)
|
||||||
|
{
|
||||||
|
hWnd = g_ddraw.hwnd;
|
||||||
|
|
||||||
|
MSG msg;
|
||||||
|
real_PeekMessageA(&msg, 0, 0, 0, PM_NOREMOVE);
|
||||||
|
}
|
||||||
|
|
||||||
if (g_config.limiter_type == LIMIT_PEEKMESSAGE &&
|
if (g_config.limiter_type == LIMIT_PEEKMESSAGE &&
|
||||||
g_ddraw.ticks_limiter.tick_length > 0 &&
|
g_ddraw.ticks_limiter.tick_length > 0 &&
|
||||||
InterlockedExchange(&g_ddraw.render.screen_updated, FALSE))
|
InterlockedExchange(&g_ddraw.render.screen_updated, FALSE))
|
||||||
@ -2046,6 +2054,14 @@ HWND WINAPI fake_CreateWindowExA(
|
|||||||
dwStyle &= ~WS_POPUP;
|
dwStyle &= ~WS_POPUP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Dark Colony */
|
||||||
|
if (HIWORD(lpClassName) && _strcmpi(lpClassName, "Merc Direct Draw Driver") == 0 &&
|
||||||
|
lpWindowName && _strcmpi(lpWindowName, "Direct Draw Driver") == 0 &&
|
||||||
|
!dwExStyle)
|
||||||
|
{
|
||||||
|
dwExStyle |= WS_EX_APPWINDOW;
|
||||||
|
}
|
||||||
|
|
||||||
/* Fallout 1/2 */
|
/* Fallout 1/2 */
|
||||||
if (HIWORD(lpClassName) && _strcmpi(lpClassName, "GNW95 Class") == 0 &&
|
if (HIWORD(lpClassName) && _strcmpi(lpClassName, "GNW95 Class") == 0 &&
|
||||||
lpWindowName && strstr(lpWindowName, "FALLOUT"))
|
lpWindowName && strstr(lpWindowName, "FALLOUT"))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user