﻿Uncertain Sky - opis działania (PL)
===================================

CZYM JEST
Mały pomocnik Win32 do Planescape: Torment: Enhanced Edition (x64) dla wersji 3.2.2,
przywracający ukrytą pogodę w grze, sprawia, że deszcz, śnieg, mgła, błyskawice 
naprawdę działają w grze.

Dodatkowo odblokowuję flagę 13 w animacjach (w pliku .are), otwierając drogę do używania plików WBM 
(ustaw flagę 13 i "is shown" w sekcji animacji).
 
Nie zmienia Torment.exe na dysku - wszystko dzieje się w pamięci gry!

Możesz zastosować program na dwa spsosoby: wymusić pogodę panelem, 
lub wpisać w pliku .are prawdpodobieństwo pogody.

Debug console: C:SetWeather(1) - deszcz, 2 - śnieg, 3 - mgła, 0 - wyłączona.

START
0. Skopiuj .exe i folder "override" do folderu z grą i uruchom Uncertain_Sky.exe. 
1. "Uruchom grę" startuje Torment.exe wstrzymany, łata go i wznawia.
   "Dołącz" robi to samo z już uruchomioną grą.
2. Program czyta sekcję .text gry i znajduje miejsca łatek po sygnaturach
   bajtowych (z wildcardami). Sygnatura musi pasować dokładnie raz, inaczej jest
   uznana za nieznalezioną lub niejednoznaczną.
3. Łatki są w grupach (noop, render, fog, fastroll). Grupa jest stosowana
   atomowo: jeśli którekolwiek miejsce zawiedzie, cała grupa jest pomijana.
   - "noop" jest obowiązkowa. Gdy zawiedzie, nic nie jest zapisane, a
     uruchomiona gra jest zamykana.
   - Pozostałe grupy są opcjonalne i tylko logowane jako pominięte.
4. Następnie program znajduje kontekst gry (CChitin, CGame, nagłówek ARE
   bieżącego obszaru, obiekt pogody) kolejnymi sygnaturami.
5. Nie trzeba resetować gry przy niektórych ustawieniach aby zmiany miały miejsce.

PĘTLA NA ŻYWO (co 100 ms)
- Prawdopodobieństwa: dla deszczu, śniegu, mgły i błyskawic wybierasz Auto
  (wartość z pliku ARE obszaru), Wyłączone (0%) albo Wymuś (Twoja wartość).
  Wynik trafia do nagłówka obszaru.
- Natychmiastowe losowanie: silnik losuje pogodę tylko raz na godzinę gry (około
  5 minut realnych). Gdy wymusisz wartość albo wejdziesz do nowego obszaru z
  wymuszoną wartością, pomocnik od razu uruchamia jedno losowanie. Na chwilę
  ustawia dzielnik godziny na 1 i przywraca 4500, gdy silnik zużyje tick.
- Naprawa mgły: PST nie ma tabeli typów mgły, więc mgła byłaby czarna i
  niewidoczna. Pomocnik zapisuje wtedy kontrast 85, Twój kolor i alfę 0,85. Sam
  też wypełnia siatkę gęstości: jako plamy dryfujące (gładki szum; ustawienia
  gęstości, pokrycia i wielkości plam) albo jednolicie.
- Naprawa skoków czasu (Ctrl+T): skok czasu może przeskoczyć dokładny tick
  godzinnego losowania. Pomocnik wykrywa skok, czyści znaczniki "z przyszłości"
  i wykonuje pominięte losowania. Gdy długo nie ma pogody, odblokowuje bramki
  losowania.
- Błyskawice: silnik ustawia siłę błyskawic z wartości ARE w chwili startu
  deszczu, więc błyskawice pojawiają się tylko razem z deszczem.

MGŁA NOCĄ BEZ CZERWIENI (checkbox)
Funkcja mgły mnoży jej kolor przez kolor oświetlenia obszaru, który nocą bywa
czerwony. Po włączeniu opcji pod RVA 0x305FD8 instaluje się mała procedura. Woła
ona oryginalną funkcję i zamienia zwrócony kolor na jego szary odpowiednik, więc
noc nadal przyciemnia mgłę, ale bez zabarwienia. Przed zapisem sprawdzane jest
miejsce (opcode E8 i cel wywołania). Checkbox przełącza efekt na żywo.

GLICZE ITP.
Pogoda przyciemnia nieco obraz, dlatego animacje BAM i WBM otoczenia, 
należy tworzyć z uwzględnieniem zmian oświetleniowych, 
w przeciwnym razie przy włączonej pogodzie widoczny będzie obrys tła.
Albo użyj czerni w BAM i ustaw flagę blnded.

Min i max wartości suwaków dla mgły nie są zalecane ;).

POZOSTAŁE
Plik INI obok exe (ustawienia, język, pozycja okna). 
Program szuka Torment.exe obok siebie lub w katalogu roboczym. 
Okno pomocnika musi zostać otwarte podczas gry. 
Po "Stop" łatki zostają w grze do jej zamknięcia.

ZGODNOŚĆ WERSJI
- Miejsca łatek i kontekst są znajdowane po sygnaturach, więc drobne przebudowy
  gry zwykle nadal działają, a niedopasowana sygnatura zatrzymuje łatanie
  zamiast pisać na ślepo.
- Część offsetów pól silnika (czas gry, obiekt pogody, obiekt mgły) oraz miejsce
  wywołania dla mgły nocą (RVA 0x305FD8) jest stała dla sprawdzonej wersji
  Torment.exe. Na innej wersji sprawdź log; w razie wątpliwości nie używaj.
- Tylko x64 Enhanced Edition.

CREDITS:
Ikona programu pochodzi z forum beamdog, od użytkownika: Buttercheese.

ZASTRZEŻENIE:
Do stworzenia programu pomogła AI (głównie Claude). Bez tego nie powstałoby nic.

---
szef (501)
