mirror of
https://github.com/electronicarts/CNC_TS_and_RA2_Mission_Editor.git
synced 2025-04-30 17:11:40 -04:00
progress display simplified and boosted loading speed .
This commit is contained in:
parent
12914b8303
commit
767264156f
1 changed files with 45 additions and 101 deletions
|
@ -129,7 +129,7 @@ BOOL bUseFirestorm = TRUE;
|
|||
|
||||
void CLoading::Load()
|
||||
{
|
||||
auto startTime = std::chrono::steady_clock::now();
|
||||
m_progress.SetRange(0, 100);
|
||||
|
||||
|
||||
CString artFile;
|
||||
|
@ -157,6 +157,10 @@ void CLoading::Load()
|
|||
ms.dwLength = sizeof(MEMORYSTATUS);
|
||||
GlobalMemoryStatus(&ms);
|
||||
int cs = ms.dwAvailPhys + ms.dwAvailPageFile;
|
||||
|
||||
m_progress.SetPos(10);
|
||||
UpdateWindow();
|
||||
|
||||
InitMixFiles();
|
||||
errstream << "Loading palettes" << std::endl << std::endl;
|
||||
errstream.flush();
|
||||
|
@ -169,13 +173,11 @@ void CLoading::Load()
|
|||
// create a ini file containing some info XCC Mixer needs
|
||||
CreateINI();
|
||||
|
||||
// set progress bar range to 0-2
|
||||
m_progress.SetRange(0, 2);
|
||||
|
||||
// rules.ini
|
||||
m_cap.SetWindowText(GetLanguageStringACP("LoadLoadRules"));
|
||||
m_progress.SetPos(1);
|
||||
m_progress.SetPos(30);
|
||||
UpdateWindow();
|
||||
|
||||
LoadTSIni("Rules.ini", &rules, FALSE);
|
||||
|
||||
#ifdef TS_MODE
|
||||
|
@ -253,21 +255,17 @@ void CLoading::Load()
|
|||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
m_progress.SetPos(2);
|
||||
//rules.DeleteLeadingSpaces(TRUE, TRUE);
|
||||
//rules.DeleteEndingSpaces(TRUE, TRUE);
|
||||
|
||||
PrepareHouses();
|
||||
HackRules();
|
||||
|
||||
UpdateWindow();
|
||||
|
||||
|
||||
// art.ini
|
||||
m_cap.SetWindowText(GetLanguageStringACP("LoadLoadArt"));
|
||||
m_progress.SetPos(1);
|
||||
m_progress.SetPos(35);
|
||||
UpdateWindow();
|
||||
|
||||
LoadTSIni("Art.ini", &art, FALSE);
|
||||
#ifdef TS_MODE
|
||||
if (bUseFirestorm) // LoadTSIni("ArtFs.ini", &art, TRUE);
|
||||
|
@ -318,22 +316,16 @@ void CLoading::Load()
|
|||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
m_progress.SetPos(2);
|
||||
//art.DeleteLeadingSpaces(TRUE, TRUE);
|
||||
//art.DeleteEndingSpaces(TRUE, TRUE);
|
||||
UpdateWindow();
|
||||
|
||||
// tutorial.ini
|
||||
m_cap.SetWindowText(GetLanguageStringACP("LoadLoadTutorial"));
|
||||
m_progress.SetPos(1);
|
||||
UpdateWindow();
|
||||
LoadTSIni("Tutorial.ini", &tutorial, FALSE);
|
||||
|
||||
// sound.ini
|
||||
m_cap.SetWindowText(GetLanguageStringACP("LoadLoadSound"));
|
||||
m_progress.SetPos(1);
|
||||
m_progress.SetPos(40);
|
||||
UpdateWindow();
|
||||
|
||||
|
||||
|
@ -360,76 +352,73 @@ void CLoading::Load()
|
|||
LoadTSIni("Sound.ini", &sound, FALSE);
|
||||
}
|
||||
|
||||
m_progress.SetPos(2);
|
||||
UpdateWindow();
|
||||
|
||||
// eva.INI
|
||||
m_cap.SetWindowText(GetLanguageStringACP("LoadLoadEva"));
|
||||
m_progress.SetPos(1);
|
||||
m_progress.SetPos(45);
|
||||
UpdateWindow();
|
||||
|
||||
LoadTSIni("eva.ini", &eva, FALSE);
|
||||
m_progress.SetPos(2);
|
||||
UpdateWindow();
|
||||
|
||||
// theme.INI
|
||||
m_cap.SetWindowText(GetLanguageStringACP("LoadLoadTheme"));
|
||||
m_progress.SetPos(1);
|
||||
UpdateWindow();
|
||||
LoadTSIni("theme.ini", &theme, FALSE);
|
||||
m_progress.SetPos(2);
|
||||
m_progress.SetPos(50);
|
||||
UpdateWindow();
|
||||
|
||||
LoadTSIni("theme.ini", &theme, FALSE);
|
||||
|
||||
// AI.INI
|
||||
m_cap.SetWindowText(GetLanguageStringACP("LoadLoadAI"));
|
||||
m_progress.SetPos(1);
|
||||
m_progress.SetPos(55);
|
||||
UpdateWindow();
|
||||
|
||||
LoadTSIni("Ai.ini", &ai, FALSE);
|
||||
#ifdef TS_MODE
|
||||
if (bUseFirestorm) LoadTSIni("aifs.ini", &ai, TRUE);;
|
||||
#else
|
||||
if (bUseFirestorm && yuri_mode) LoadTSIni("aimd.ini", &ai, TRUE); // YR
|
||||
#endif
|
||||
m_progress.SetPos(2);
|
||||
UpdateWindow();
|
||||
if (bUseFirestorm && yuri_mode) {
|
||||
// YR
|
||||
LoadTSIni("aimd.ini", &ai, TRUE);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
const BOOL preferLocalTheater = theApp.m_Options.bPreferLocalTheaterFiles ? TRUE : FALSE;
|
||||
|
||||
// Temperat.INI
|
||||
m_cap.SetWindowText(GetLanguageStringACP("LoadLoadTemperat"));
|
||||
m_progress.SetPos(1);
|
||||
m_progress.SetPos(60);
|
||||
UpdateWindow();
|
||||
|
||||
LoadTSIni("Temperat.ini", &tiles_t, FALSE, preferLocalTheater);
|
||||
if (yuri_mode) LoadTSIni("TemperatMD.ini", &tiles_t, TRUE, preferLocalTheater);
|
||||
m_progress.SetPos(2);
|
||||
UpdateWindow();
|
||||
if (yuri_mode) {
|
||||
LoadTSIni("TemperatMD.ini", &tiles_t, TRUE, preferLocalTheater);
|
||||
}
|
||||
|
||||
// Snow.INI
|
||||
m_cap.SetWindowText(GetLanguageStringACP("LoadLoadSnow"));
|
||||
m_progress.SetPos(1);
|
||||
m_progress.SetPos(65);
|
||||
UpdateWindow();
|
||||
|
||||
LoadTSIni("Snow.ini", &tiles_s, FALSE, preferLocalTheater);
|
||||
if (yuri_mode) LoadTSIni("SnowMD.ini", &tiles_s, TRUE, preferLocalTheater);
|
||||
m_progress.SetPos(2);
|
||||
UpdateWindow();
|
||||
if (yuri_mode) {
|
||||
LoadTSIni("SnowMD.ini", &tiles_s, TRUE, preferLocalTheater);
|
||||
}
|
||||
|
||||
// Urban.INI
|
||||
m_cap.SetWindowText(GetLanguageStringACP("LoadLoadUrban"));
|
||||
m_progress.SetPos(1);
|
||||
m_progress.SetPos(70);
|
||||
UpdateWindow();
|
||||
|
||||
LoadTSIni("Urban.ini", &tiles_u, FALSE, preferLocalTheater);
|
||||
if (yuri_mode) LoadTSIni("UrbanMD.ini", &tiles_u, TRUE, preferLocalTheater);
|
||||
m_progress.SetPos(2);
|
||||
UpdateWindow();
|
||||
if (yuri_mode) {
|
||||
LoadTSIni("UrbanMD.ini", &tiles_u, TRUE, preferLocalTheater);
|
||||
}
|
||||
|
||||
if (yuri_mode) {
|
||||
m_cap.SetWindowText(GetLanguageStringACP("LoadLoadUrbanN"));
|
||||
m_progress.SetPos(1);
|
||||
m_progress.SetPos(75);
|
||||
UpdateWindow();
|
||||
LoadTSIni("UrbanNMD.ini", &tiles_un, FALSE, preferLocalTheater);
|
||||
m_progress.SetPos(2);
|
||||
UpdateWindow();
|
||||
|
||||
// MW FIX: MAKE URBAN RAMPS MORPHABLE:
|
||||
if (!tiles_un["TileSet0117"].Exists("Morphable")) {
|
||||
|
@ -437,18 +426,16 @@ void CLoading::Load()
|
|||
}
|
||||
|
||||
m_cap.SetWindowText(GetLanguageStringACP("LoadLoadLunar"));
|
||||
m_progress.SetPos(1);
|
||||
UpdateWindow();
|
||||
LoadTSIni("LunarMD.ini", &tiles_l, FALSE, preferLocalTheater);
|
||||
m_progress.SetPos(2);
|
||||
m_progress.SetPos(80);
|
||||
UpdateWindow();
|
||||
|
||||
LoadTSIni("LunarMD.ini", &tiles_l, FALSE, preferLocalTheater);
|
||||
|
||||
m_cap.SetWindowText(GetLanguageStringACP("LoadLoadDesert"));
|
||||
m_progress.SetPos(1);
|
||||
m_progress.SetPos(85);
|
||||
UpdateWindow();
|
||||
|
||||
LoadTSIni("DesertMD.ini", &tiles_d, FALSE, preferLocalTheater);
|
||||
m_progress.SetPos(2);
|
||||
UpdateWindow();
|
||||
}
|
||||
|
||||
|
||||
|
@ -456,14 +443,14 @@ void CLoading::Load()
|
|||
// load Command & Conquer Rules.ini section names
|
||||
LoadStrings();
|
||||
|
||||
|
||||
// ok now directdraw
|
||||
m_cap.SetWindowText(GetLanguageStringACP("LoadInitDDraw"));
|
||||
m_progress.SetRange(0, 4);
|
||||
m_progress.SetPos(95);
|
||||
UpdateWindow();
|
||||
|
||||
InitDirectDraw();
|
||||
|
||||
m_progress.SetPos(3);
|
||||
m_progress.SetPos(100);
|
||||
UpdateWindow();
|
||||
|
||||
/*errstream << "Now calling InitPics()\n";
|
||||
|
@ -473,11 +460,6 @@ void CLoading::Load()
|
|||
errstream << "InitPics() finished\n\n\n";
|
||||
errstream.flush();*/
|
||||
|
||||
auto delay = std::chrono::duration<double>(theApp.m_Options.fLoadScreenDelayInSeconds);
|
||||
if ((std::chrono::steady_clock::now() - startTime) < delay) {
|
||||
std::this_thread::sleep_until(startTime + delay);
|
||||
}
|
||||
|
||||
DestroyWindow();
|
||||
|
||||
}
|
||||
|
@ -707,8 +689,6 @@ void CLoading::InitPics(CProgressCtrl* prog)
|
|||
|
||||
CalcPicCount();
|
||||
|
||||
if (m_progress.m_hWnd != NULL) m_progress.SetRange(0, m_pic_count / 15 + 1);
|
||||
|
||||
if (!theApp.m_Options.bDoNotLoadBMPs) {
|
||||
int k;
|
||||
CFileFind ff;
|
||||
|
@ -742,11 +722,6 @@ void CLoading::InitPics(CProgressCtrl* prog)
|
|||
FSunPackLib::SetColorKey(((LPDIRECTDRAWSURFACE4)(pics[(LPCTSTR)ff.GetFileName()].pic)), -1);
|
||||
} catch (const BitmapNotFound&) {
|
||||
}
|
||||
|
||||
if (m_progress.m_hWnd != NULL && k % 15 == 0) {
|
||||
m_progress.SetPos(m_progress.GetPos() + 1);
|
||||
UpdateWindow();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1062,10 +1037,6 @@ void CLoading::InitSHPs(CProgressCtrl* prog)
|
|||
auto const& sec = rules["OverlayTypes"];
|
||||
for (i = 0; i < sec.Size(); i++) {
|
||||
LoadOverlayGraphic(sec.Nth(i).second, i);
|
||||
if (m_progress.m_hWnd != NULL && i % 15 == 0) {
|
||||
m_progress.SetPos(m_progress.GetPos() + 1);
|
||||
UpdateWindow();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1073,10 +1044,6 @@ void CLoading::InitSHPs(CProgressCtrl* prog)
|
|||
auto const& sec = rules["VehicleTypes"];
|
||||
for (i = 0; i < sec.Size(); i++) {
|
||||
LoadUnitGraphic(sec.Nth(i).second);
|
||||
if (m_progress.m_hWnd != NULL && i % 15 == 0) {
|
||||
m_progress.SetPos(m_progress.GetPos() + 1);
|
||||
UpdateWindow();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1084,10 +1051,6 @@ void CLoading::InitSHPs(CProgressCtrl* prog)
|
|||
auto const& sec = rules.GetSection("InfantryTypes");
|
||||
for (i = 0; i < sec.Size(); i++) {
|
||||
LoadUnitGraphic(sec.Nth(i).second);
|
||||
if (m_progress.m_hWnd != NULL && i % 15 == 0) {
|
||||
m_progress.SetPos(m_progress.GetPos() + 1);
|
||||
UpdateWindow();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1096,10 +1059,6 @@ void CLoading::InitSHPs(CProgressCtrl* prog)
|
|||
auto const& sec = rules.GetSection("BuildingTypes");
|
||||
for (i = 0; i < sec.Size(); i++) {
|
||||
LoadUnitGraphic(sec.Nth(i).second);
|
||||
if (m_progress.m_hWnd != NULL && i % 15 == 0) {
|
||||
m_progress.SetPos(m_progress.GetPos() + 1);
|
||||
UpdateWindow();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1107,10 +1066,6 @@ void CLoading::InitSHPs(CProgressCtrl* prog)
|
|||
auto const& sec = rules.GetSection("AircraftTypes");
|
||||
for (i = 0; i < sec.Size(); i++) {
|
||||
LoadUnitGraphic(sec.Nth(i).second);
|
||||
if (m_progress.m_hWnd != NULL && i % 15 == 0) {
|
||||
m_progress.SetPos(m_progress.GetPos() + 1);
|
||||
UpdateWindow();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1118,10 +1073,6 @@ void CLoading::InitSHPs(CProgressCtrl* prog)
|
|||
auto const& sec = rules.GetSection("TerrainTypes");
|
||||
for (i = 0; i < sec.Size(); i++) {
|
||||
LoadUnitGraphic(sec.Nth(i).second);
|
||||
if (m_progress.m_hWnd != NULL && i % 15 == 0) {
|
||||
m_progress.SetPos(m_progress.GetPos() + 1);
|
||||
UpdateWindow();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3602,9 +3553,6 @@ BOOL CLoading::InitDirectDraw()
|
|||
errstream << "DirectDrawCreate() successful\n\n";
|
||||
errstream.flush();
|
||||
|
||||
if (m_progress.m_hWnd) m_progress.SetPos(1);
|
||||
if (m_hWnd) UpdateWindow();
|
||||
|
||||
errstream << "Now querying the DirectX 7 or 6 interface\n";
|
||||
errstream.flush();
|
||||
|
||||
|
@ -3642,10 +3590,6 @@ BOOL CLoading::InitDirectDraw()
|
|||
errstream << "SetCooperativeLevel() successful\n\nCreating primary surface\n";
|
||||
errstream.flush();
|
||||
|
||||
|
||||
if (m_progress.m_hWnd) m_progress.SetPos(2);
|
||||
if (m_hWnd) UpdateWindow();
|
||||
|
||||
DDSURFACEDESC2 ddsd;
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue