mirror of
https://github.com/djdevin/recflare-client.git
synced 2026-10-25 23:18:52 -07:00
Compare commits
2 Commits
0.0.2-2025
...
0.0.1-2026
| Author | SHA1 | Date | |
|---|---|---|---|
| 8c3f7be035 | |||
| 1d2b8b75fa |
+22
-16
@@ -6,7 +6,7 @@
|
|||||||
[Setup]
|
[Setup]
|
||||||
AppId={{8E1D2A7B-6C43-4F0A-9B7E-3D5F80C21A96}
|
AppId={{8E1D2A7B-6C43-4F0A-9B7E-3D5F80C21A96}
|
||||||
AppName=RecFlare
|
AppName=RecFlare
|
||||||
AppVersion=2025.1
|
AppVersion=2026.1
|
||||||
AppPublisher=RecFlare project
|
AppPublisher=RecFlare project
|
||||||
AppSupportURL=https://github.com/djdevin/recflare
|
AppSupportURL=https://github.com/djdevin/recflare
|
||||||
DefaultDirName={sd}\Games\RecFlare
|
DefaultDirName={sd}\Games\RecFlare
|
||||||
@@ -29,7 +29,7 @@ Source: "icon.ico"; DestDir: "{app}"; Flags: ignoreversion
|
|||||||
|
|
||||||
[Icons]
|
[Icons]
|
||||||
; The shortcuts must go through the .bat launchers, not Recroom_Release.exe: the
|
; The shortcuts must go through the .bat launchers, not Recroom_Release.exe: the
|
||||||
; bats start Injector.exe first and wait for it to attach 2025Patch.dll, so
|
; bats start Injector.exe first and wait for it to attach 2026patch.dll, so
|
||||||
; launching the exe directly would run an unpatched client. The bats ship in the
|
; launching the exe directly would run an unpatched client. The bats ship in the
|
||||||
; patch zip and carry the +forcemode: argument themselves.
|
; patch zip and carry the +forcemode: argument themselves.
|
||||||
Name: "{autoprograms}\RecFlare (Desktop mode)"; Filename: "{app}\RecRoomScreen.bat"; WorkingDir: "{app}"; IconFilename: "{app}\icon.ico"; Flags: runminimized
|
Name: "{autoprograms}\RecFlare (Desktop mode)"; Filename: "{app}\RecRoomScreen.bat"; WorkingDir: "{app}"; IconFilename: "{app}\icon.ico"; Flags: runminimized
|
||||||
@@ -44,16 +44,20 @@ Type: filesandordirs; Name: "{app}"
|
|||||||
|
|
||||||
[Code]
|
[Code]
|
||||||
const
|
const
|
||||||
PatchVersion = 'v0.0.8';
|
PatchVersion = 'v0.0.2';
|
||||||
DepotManifest = '1151455856673601091';
|
DepotManifest = '8867414017562658247';
|
||||||
|
{ No 2026 community mirror yet: hides the source page and installs from Steam.
|
||||||
|
Set to True (and update ClientMD5/ClientURL) once a mirror exists. }
|
||||||
|
MirrorAvailable = False;
|
||||||
ClientMD5 = '6820e89bff41906ded7f5c066027f1d6';
|
ClientMD5 = '6820e89bff41906ded7f5c066027f1d6';
|
||||||
ClientURL = 'https://s3.g.megas4.com/2koayuyiwxv4groxzwdbbxg43cwustavrkvfb/recflare/2025/client.zip';
|
ClientURL = 'https://s3.g.megas4.com/2koayuyiwxv4groxzwdbbxg43cwustavrkvfb/recflare/2025/client.zip';
|
||||||
DepotDownloaderURL = 'https://github.com/SteamRE/DepotDownloader/releases/download/DepotDownloader_3.4.0/DepotDownloader-windows-x64.zip';
|
DepotDownloaderURL = 'https://github.com/SteamRE/DepotDownloader/releases/download/DepotDownloader_3.4.0/DepotDownloader-windows-x64.zip';
|
||||||
PatchURL = 'https://github.com/recflare/patch-2025/releases/download/' + PatchVersion + '/2025Patch-' + PatchVersion + '-x64.zip';
|
PatchURL = 'https://github.com/recflare/patch-2026/releases/download/' + PatchVersion + '/2026Patch-' + PatchVersion + '-x64.zip';
|
||||||
{ Points the client at the RecFlare server; to use your own instance, fork and
|
{ Points the client at the RecFlare server; to use your own instance, fork and
|
||||||
change these, then rebuild the installer (see README "Custom server"). }
|
change these, then rebuild the installer (see README "Custom server"). }
|
||||||
ApiHost = 'ns.recflare.net';
|
ApiHost = 'https://ns.recflare.net';
|
||||||
PhotonHost = 'photon.recflare.net';
|
ServerDomain = 'recflare.net';
|
||||||
|
VoiceKeyXml = '<RSAKeyValue><Modulus>nu7lFZqLX+siEI2U8/JihESmm4JrBVLsCHdS8NoAipq2NdJqVouOHQoxtFfJTG6u/+kx4wocnsQ1Ydk5AISyy0GQeweQOTLKlkXsR6on/DL7LqKWxWp3M+MG4kkyZROWh2OELCAudC902p8VSaXmEyH8i1Sid9YiKe0FaNsyzWE=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>';
|
||||||
|
|
||||||
var
|
var
|
||||||
SourcePage: TInputOptionWizardPage;
|
SourcePage: TInputOptionWizardPage;
|
||||||
@@ -63,7 +67,7 @@ var
|
|||||||
|
|
||||||
function UsingSteam: Boolean;
|
function UsingSteam: Boolean;
|
||||||
begin
|
begin
|
||||||
Result := SourcePage.Values[0];
|
Result := not MirrorAvailable or SourcePage.Values[0];
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function OnDownloadProgress(const Url, FileName: String; const Progress, ProgressMax: Int64): Boolean;
|
function OnDownloadProgress(const Url, FileName: String; const Progress, ProgressMax: Int64): Boolean;
|
||||||
@@ -96,7 +100,8 @@ end;
|
|||||||
|
|
||||||
function ShouldSkipPage(PageID: Integer): Boolean;
|
function ShouldSkipPage(PageID: Integer): Boolean;
|
||||||
begin
|
begin
|
||||||
Result := (PageID = SteamPage.ID) and not UsingSteam;
|
Result := ((PageID = SourcePage.ID) and not MirrorAvailable) or
|
||||||
|
((PageID = SteamPage.ID) and not UsingSteam);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function NextButtonClick(CurPageID: Integer): Boolean;
|
function NextButtonClick(CurPageID: Integer): Boolean;
|
||||||
@@ -116,7 +121,7 @@ begin
|
|||||||
else
|
else
|
||||||
DownloadPage.Add(ClientURL, 'client.zip', '');
|
DownloadPage.Add(ClientURL, 'client.zip', '');
|
||||||
end;
|
end;
|
||||||
DownloadPage.Add(PatchURL, '2025Patch.zip', '');
|
DownloadPage.Add(PatchURL, '2026Patch.zip', '');
|
||||||
DownloadPage.Show;
|
DownloadPage.Show;
|
||||||
try
|
try
|
||||||
try
|
try
|
||||||
@@ -210,7 +215,8 @@ begin
|
|||||||
Lines[0] := '[config]';
|
Lines[0] := '[config]';
|
||||||
end;
|
end;
|
||||||
SetIniKey(Lines, 'ApiHost', ApiHost);
|
SetIniKey(Lines, 'ApiHost', ApiHost);
|
||||||
SetIniKey(Lines, 'PhotonHost', PhotonHost);
|
SetIniKey(Lines, 'ServerDomain', ServerDomain);
|
||||||
|
SetIniKey(Lines, 'VoiceKeyXml', VoiceKeyXml);
|
||||||
Result := SaveStringsToFile(IniPath, Lines, False);
|
Result := SaveStringsToFile(IniPath, Lines, False);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -244,14 +250,14 @@ begin
|
|||||||
Exit;
|
Exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
SetPreparingStatus('Installing the Rec Room 2025 patch...');
|
SetPreparingStatus('Installing the Rec Room 2026 patch...');
|
||||||
if not ExtractZip(ExpandConstant('{tmp}\2025Patch.zip'), ExpandConstant('{app}')) then begin
|
if not ExtractZip(ExpandConstant('{tmp}\2026Patch.zip'), ExpandConstant('{app}')) then begin
|
||||||
Result := 'Could not extract the Rec Room 2025 patch.';
|
Result := 'Could not extract the Rec Room 2026 patch.';
|
||||||
Exit;
|
Exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if not WritePatchIni(ExpandConstant('{app}\2025patch.ini')) then begin
|
if not WritePatchIni(ExpandConstant('{app}\2026patch.ini')) then begin
|
||||||
Result := 'Could not write 2025patch.ini.';
|
Result := 'Could not write 2026patch.ini.';
|
||||||
Exit;
|
Exit;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|||||||
+11
-10
@@ -1,6 +1,6 @@
|
|||||||
@echo off
|
@echo off
|
||||||
setlocal
|
setlocal
|
||||||
set "PATCH_VERSION=v0.0.8"
|
set "PATCH_VERSION=v0.0.2"
|
||||||
|
|
||||||
rem ANSI colors (Windows 10+): get the ESC character, then define color codes
|
rem ANSI colors (Windows 10+): get the ESC character, then define color codes
|
||||||
for /F "delims=" %%a in ('forfiles /p "%~dp0." /m "%~nx0" /c "cmd /c echo 0x1B"') do set "ESC=%%a"
|
for /F "delims=" %%a in ('forfiles /p "%~dp0." /m "%~nx0" /c "cmd /c echo 0x1B"') do set "ESC=%%a"
|
||||||
@@ -9,8 +9,9 @@ set "GREEN=%ESC%[92m"
|
|||||||
set "RED=%ESC%[91m"
|
set "RED=%ESC%[91m"
|
||||||
set "RESET=%ESC%[0m"
|
set "RESET=%ESC%[0m"
|
||||||
|
|
||||||
choice /C YN /M "Do you have Rec Room in your Steam library? "
|
rem Non-Steam (mirror) option disabled until a 2026 mirror is available
|
||||||
if errorlevel 2 goto :bucket
|
rem choice /C YN /M "Do you have Rec Room in your Steam library? "
|
||||||
|
rem if errorlevel 2 goto :bucket
|
||||||
|
|
||||||
:steam
|
:steam
|
||||||
set "STEAM_USERNAME="
|
set "STEAM_USERNAME="
|
||||||
@@ -27,7 +28,7 @@ tar -xf DepotDownloader.zip -C DepotDownloader || goto :error
|
|||||||
del DepotDownloader.zip
|
del DepotDownloader.zip
|
||||||
|
|
||||||
echo %CYAN%=== Downloading depot via DepotDownloader (will prompt for Steam password) ===%RESET%
|
echo %CYAN%=== Downloading depot via DepotDownloader (will prompt for Steam password) ===%RESET%
|
||||||
DepotDownloader\DepotDownloader.exe -remember-password -app 471710 -depot 471711 -manifest 1151455856673601091 -dir . -username "%STEAM_USERNAME%" || goto :error
|
DepotDownloader\DepotDownloader.exe -remember-password -app 471710 -depot 471711 -manifest 8867414017562658247 -dir . -username "%STEAM_USERNAME%" || goto :error
|
||||||
goto :patch
|
goto :patch
|
||||||
|
|
||||||
:bucket
|
:bucket
|
||||||
@@ -54,13 +55,13 @@ tar -xf client.zip -C . || goto :error
|
|||||||
echo %CYAN%=== Writing steam_appid.txt ===%RESET%
|
echo %CYAN%=== Writing steam_appid.txt ===%RESET%
|
||||||
>steam_appid.txt echo 480
|
>steam_appid.txt echo 480
|
||||||
|
|
||||||
echo %CYAN%=== Downloading Rec Room 2025 patch ===%RESET%
|
echo %CYAN%=== Downloading Rec Room 2026 patch ===%RESET%
|
||||||
curl -s -f -L -o 2025Patch.zip https://github.com/recflare/patch-2025/releases/download/%PATCH_VERSION%/2025Patch-%PATCH_VERSION%-x64.zip || goto :error
|
curl -s -f -L -o 2026Patch.zip https://github.com/recflare/patch-2026/releases/download/%PATCH_VERSION%/2026Patch-%PATCH_VERSION%-x64.zip || goto :error
|
||||||
tar -xf 2025Patch.zip -C . || goto :error
|
tar -xf 2026Patch.zip -C . || goto :error
|
||||||
del 2025Patch.zip
|
del 2026Patch.zip
|
||||||
|
|
||||||
echo %CYAN%=== Pointing 2025patch.ini at RecFlare ===%RESET%
|
echo %CYAN%=== Pointing 2026patch.ini at RecFlare ===%RESET%
|
||||||
powershell -NoProfile -Command "$p='2025patch.ini'; $h=@{ApiHost='ns.recflare.net';PhotonHost='photon.recflare.net'}; $t=@(if (Test-Path $p) { Get-Content $p } else { '[config]' }); foreach ($k in $h.Keys) { $r='^\s*'+$k+'\s*='; if ($t -match $r) { $t = $t -replace ($r+'.*'), ($k+'='+$h[$k]) } else { $t += ($k+'='+$h[$k]) } }; Set-Content -Path $p -Value $t -Encoding ASCII" || goto :error
|
powershell -NoProfile -Command "$p='2026patch.ini'; $h=@{ApiHost='https://ns.recflare.net';ServerDomain='recflare.net';VoiceKeyXml='<RSAKeyValue><Modulus>nu7lFZqLX+siEI2U8/JihESmm4JrBVLsCHdS8NoAipq2NdJqVouOHQoxtFfJTG6u/+kx4wocnsQ1Ydk5AISyy0GQeweQOTLKlkXsR6on/DL7LqKWxWp3M+MG4kkyZROWh2OELCAudC902p8VSaXmEyH8i1Sid9YiKe0FaNsyzWE=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>'}; $t=@(if (Test-Path $p) { Get-Content $p } else { '[config]' }); foreach ($k in $h.Keys) { $r='^\s*'+$k+'\s*='; if ($t -match $r) { $t = $t -replace ($r+'.*'), ($k+'='+$h[$k]) } else { $t += ($k+'='+$h[$k]) } }; Set-Content -Path $p -Value $t -Encoding ASCII" || goto :error
|
||||||
|
|
||||||
echo %GREEN%=== Done ===%RESET%
|
echo %GREEN%=== Done ===%RESET%
|
||||||
pause
|
pause
|
||||||
|
|||||||
Reference in New Issue
Block a user