KAZIK/build/AssemblerCasinoLauncher.cs
Artvasil09 4f8ae0893b Implement native slots, coin toss, European roulette and hall furniture
Add native assembly scenes and assets for Slots (777), Coin flip, and European Roulette; add 3D hall furniture packs and prompts; improve Russian UI strings in CP1251; update launcher hash and rebuild shipping binaries.
2026-10-10 14:43:30 +03:00

65 lines
2.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Diagnostics;
using System.IO;
using System.Security.Cryptography;
using System.Windows.Forms;
namespace AssemblerCasinoLauncher
{
static class Program
{
const string ExpectedPokerSha256 = "6DE8E29E8A8FCC60C2FB297348BAD5E20697611317EF53C7E5A258BDCADAB657";
[STAThread]
static void Main()
{
var root = AppDomain.CurrentDomain.BaseDirectory;
// The installed launcher is at the root; developer builds live in dist.
if (!File.Exists(Path.Combine(root, "bin", "poker.exe")))
{
var parent = Directory.GetParent(root.TrimEnd(Path.DirectorySeparatorChar));
if (parent != null && Directory.Exists(Path.Combine(parent.FullName, "assets")) &&
File.Exists(Path.Combine(parent.FullName, "bin", "poker.exe")))
root = parent.FullName;
}
var game = Path.Combine(root, "bin", "poker.exe");
if (!File.Exists(game))
{
MessageBox.Show("bin\\poker.exe не найден рядом с лаунчером.", "Assembler Casino", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (!VerifyGame(game))
{
MessageBox.Show("bin\\poker.exe был изменен или поврежден. Запуск остановлен.", "Assembler Casino", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
Process.Start(new ProcessStartInfo
{
FileName = game,
WorkingDirectory = root,
UseShellExecute = false
});
}
static bool VerifyGame(string gamePath)
{
try
{
using (var sha = SHA256.Create())
using (var stream = File.OpenRead(gamePath))
{
var actual = BitConverter.ToString(sha.ComputeHash(stream)).Replace("-", "");
return actual.Equals(ExpectedPokerSha256, StringComparison.OrdinalIgnoreCase);
}
}
catch
{
return false;
}
}
}
}