home *** CD-ROM | disk | FTP | other *** search
/ Gambler 19 / GAMBLERCD19.BIN / UTILS / DDTPACK / PROGS / SAVEGAME / README.TXT < prev    next >
Text File  |  1997-09-05  |  22KB  |  430 lines

  1. ▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░
  2.                                         [polskie znaki w standardzie LATIN II]
  3.  
  4.  
  5. SaveGamer 1.666ß by Krzysztof ¥az.
  6. ──────────────────────────────────
  7.  
  8.  
  9.  
  10.      Spis treÿci:
  11.      [1]. Przeznaczenie programu/krótka charakterystyka.
  12.      [2]. Edycja plików savegame.
  13.      [3]. Opcje programu.
  14.      [4]. Modyfikowanie pliku SG1666.DTA.
  15.      [5]. Uwagi koΣcowe. Kontakt z autorem.
  16.  
  17.  
  18.  
  19. [1]. Przeznaczenie programu/krótka charakterystyka.
  20. ═══════════════════════════════════════════════════
  21.  
  22.      SaveGamer 1.666ß sêu╛y do modyfikowania plików savegame zwanych dalej SG
  23.      (czyli plików z zapisem stanu gry). W tej wersji programu mon╛na zmieniå
  24.      pliki SG dla okoêo 120 ró╛nych gier. Dodatkowo u╛ytkownik, we wêasnym
  25.      zakresie, mo╛e w êatwy sposób wprowadzaå nowe pozycje.
  26.  
  27.      Program byê pisany z myÿlÑ o graczach, którzy napotykajÑ na powa╛ne
  28.      przeszkody w przechodzeniu gier. SaveGamer mo╛e si⌐ tak╛e przydaå tym,
  29.      którzy nie przepadajÑ za oszukiwaniem w grach - wprowadzanie niewielkich
  30.      modyfikacji w plikach SG cz⌐sto powoduje, ╛e gra staje si⌐ atrakcyjna.
  31.      Generalnie jednak bezmyÿlna, niczym niepohamowana ch⌐å do oszukiwania w
  32.      grach psuje caêÑ zabaw⌐, dlatego przed u╛yciem SaveGamera i programów mu
  33.      podobnych nale╛y si⌐ dobrze zastanowiå.
  34.  
  35.      Wymagania:
  36.      pami⌐å RAM      - 200kB,
  37.      pami⌐å EMS      - 10~20 kB. W pliku C:\CONFIG.SYS musi si⌐ znale½å wpis
  38.                        DEVICE=C:\WINDOWS\EMM386.EXE AUTO RAM lub podobny,
  39.      miejsce na HDD  - 550 kB,
  40.      karta graf.     - VGA (SVGA zgodna z VESA, która jest potrzebna do
  41.                        wyÿwietlenia obrazka przy uruchomieniu SaveGamera),
  42.      procesor        - 386 lub lepszy,
  43.      mysz            - MS MOUSE lub kompatybilna
  44.  
  45.      Pliki wchodzÑce w skêad programu:
  46.      SG1666.EXE      - gêówny plik wykonywalny,
  47.      SG1666.DTA      - plik z informacjami niezb⌐dnymi do poprawnego funkcjo-
  48.                        nowania SaveGamera,
  49.      SG1666.MBF      - obrazek-logo wyÿwietlany przy uruchomieniu
  50.      SG1666.FON      - plik z matrycÑ znaków (font)
  51.      SG1666.CFG      - plik z konfiguracjÑ
  52.      README.TXT      - wêaÿnie go czytasz
  53.  
  54.      UWAGA: Wersja 1.666ß znacznie ró╛ni si⌐ od wczeÿniejszych (1.05 i 1.06);
  55.             prawie zupeênie zostaê zmieniony plik skryptów, dlatego nie mo╛na
  56.             wykorzystywaå jego starej wersji.
  57.  
  58.      Po uruchomieniu programu naszym oczom ukazuje si⌐ menu gêówne, w którym
  59.      jest 7 pozycji:
  60.          Wybierz gr⌐
  61.          Wybierz plik SG
  62.          Edytuj plik SG
  63.          Archiwizuj plik SG
  64.          Opcje
  65.          Info
  66.          Wyjÿcie
  67.  
  68.  
  69.  
  70. [2]. Edycja plików savegame.
  71. ════════════════════════════
  72.  
  73.      ChcÑc zmieniå plik savegame jakiejÿ gry musimy wczeÿniej t⌐ gr⌐ wybraå,
  74.      sêu╛y do tego pozycja [Wybierz gr⌐]. Podczas wybierania mo╛emy korzystaå
  75.      z nast⌐pujÑcych klawiszy:
  76.          PgUp      - przesuni⌐cie listy o stron⌐ w gór⌐
  77.          PgDown    - przesuni⌐cie listy o stron⌐ w dóê
  78.          Home      - przeskok na poczÑtek listy
  79.          End       - przeskok na koniec listy
  80.          UpArrow   - jedna pozycja w gór⌐
  81.          DownArrow - jedna pozycja w dóê
  82.          Esc       - anulowanie wybierania
  83.          Enter     - akceptacja wyboru
  84.      Po wybraniu gry program zapyta o lokalizacj⌐ i nazw⌐ pliku SG; w tym
  85.      celu wyÿwietlone zostanÑ pliki i katalogi na bie╛Ñcym dysku, który
  86.      jednak mo╛na zmieniå naciskajÑc klawisz Tab a pó½niej liter⌐ ╛Ñdanego
  87.      dysku.
  88.  
  89.      Po czynnoÿciach opisanych wy╛ej mo╛liwa jest ju╛ wêaÿciwie edycja
  90.      wybranego pliku SG; nale╛y wybraå pozycj⌐ [Edytuj plik SG]. W tym
  91.      miejscu program mo╛e zapytaå o pewne dane niezb⌐dne do prawidêowego
  92.      obliczenia offsetów w pliku SG. To czy program za╛Ñda interakcji od
  93.      u╛ytkownika zale╛y od konkretnej gry i budowy tworzonego przez t⌐ gr⌐
  94.      pliku SG:
  95.      [■] Na przykêad w grze [HEROES OF MIGHT & MAGIC 2] SaveGamer poprosi
  96.          o wprowadzenie imienia bohatera; po tym nastÑpi próba znalezienia
  97.          tego imenia w pliku SG, by wreszcie program mógê poprawnie obliczyå
  98.          offsety ró╛nych charakterystyk bohatera.
  99.          UWAGA: rozró╛niane sÑ maêe i du╛e litery, tak wi⌐c ciÑg 'Kastore'
  100.                 to nie to samo, co 'KASTORE'!
  101.      [■] W grze [WARCRAFT 2: TIDES OF DARKNESS] mamy do czynienia z wieloma
  102.          typami jednostek i budynków; przy edycji plików SG tej gry SaveGamer
  103.          zapyta o numer jednostki/budynku ('KtórÑ jednostk⌐/budowl⌐ chcesz
  104.          edytowaå?') - wyswietlone zostanie okienko, w którym b⌐dziemy mogli
  105.          ten numer wprowadziå przy u╛yciu klawiszy strzaêek (UpArrow
  106.          DownArrow), klawisza End i Home.
  107.  
  108.      Gdy wreszcie dojdziemy do okienka edycji pliku SG mo╛emy zaczÑå
  109.      wprowadzaå zmiany w charakterystykach bohaterów, ró╛nych zasobach,
  110.      mo╛emy zmieniaå np. stan konta, liczb⌐ ╛yå, itp. Wszystkie zmiany sÑ
  111.      uwidaczniane na ekranie, dodatkowo program wyÿwietla wiele u╛ytecznych
  112.      informacji (zaczynajÑc od górnej cz⌐ÿci ekranu):
  113.      [■] [Nazwa gry:] - nazwa aktualnie wybranej gry,
  114.      [■] [Nazwa pliku SG:] - tutaj wyÿwietlana jest nazwa wybranego pliku
  115.          savegame'a lub maska tego pliku (np. '*.SAV'),
  116.      [■] [Lokalizacja SG:] - jest to miejsce na dysku, w którym znajduje si⌐
  117.          wybrany plik savegame,
  118.      [■] [Adres bazowy:] - informacja dla bardziej zaawansowanych
  119.          u╛ytkowników, którzy we wêasnym zakresie dodajÑ nowe pozycje do
  120.          pliku SG1666.DTA,
  121.      [■] [Wartoÿå maks.:] - jest maksymalnÑ wartoÿciÑ jakÑ mo╛e przyjÑå
  122.                             bie╛Ñce pole,
  123.      [■] [Liczba pól:] - liczba wszystkich pól, które mo╛emy zmieniå,
  124.      [■] [Interpretacja wart.:] - czasami istnieje potrzeba sêownej
  125.          interpretacji wartoÿci jakiegoÿ pola (np. w gierce
  126.          [F-15 STRIKE EAGLE 3] pole [Ranga] mo╛e przyjÑå waroÿci od 00h do 06h
  127.          oznaczajace kolejno 2nd Lieutenant, 1st Lieutenant, Captain ...itd.);
  128.          wêaÿnie w tym miejscu jest ona wyÿwietlana,
  129.      [■] [Autor poprawki     :] - jest to imi⌐, nazwisko lub ksywa autora
  130.          poprawki, która znajduje si⌐ w pliku SG1666.DTA,
  131.  
  132.      U╛ytkownik mo╛e poruszaå si⌐ po liÿcie z polami korzystajÑc z klawiszy
  133.      strzaêek (Up- i DownArrow), klawiszy PgUp, PgDown, Home, End.
  134.      Do zmiany wartoÿci bie╛Ñcego pola sêu╛Ñ nast⌐pujÑce klawisze:
  135.          LeftArrow        - (czyli strzêka w lewo) powoduje zmniejszenie
  136.                             wart. pola o 1
  137.          RightArrow       - (czyli strzêka w prawo) powoduje zwi⌐kszenie
  138.                             wart. pola o 1
  139.          Shift+LeftArrow  - powoduje zmniejszenie wart. pola o 1*10
  140.          Shift+RightArrow - powoduje zwi⌐kszenie wart. pola o 1*10
  141.          Ctrl+LeftArrow   - powoduje zmniejszenie wart. pola o 1*100
  142.          Ctrl+RightArrow  - powoduje zwi⌐kszenie wart. pola o 1*100
  143.          Insert           - zmiana wart. pola o +1000
  144.          Delete           - zmiana wart. pola o -1000
  145.          Shift+Delete     - zmiana +1000*10
  146.          Shift+Insert     - zmiana -1000*10
  147.          Ctrl+Delete      - +1000*100
  148.          Ctrl+Insert      - -1000*100
  149.          +/- (take szary) - wartoÿå zostaje zmieniona o +1000000/-1000000
  150.          Shift z +/-      - zmiana +1000000*10/-1000000*10
  151.          Ctrl+End         - ustawienie wartoÿci na max
  152.          Ctrl+Home        - ustawienie wartoÿci na 0
  153.      Klawiszem Enter zatwierdzamy edycj⌐ (zmieniony plik SG zostanie zapisany
  154.      na dysk), natomiast klaw. Esc powoduje porzucenie edycji (i anulowanie
  155.      wszystkich wprowadzonych zmian).
  156.  
  157.      UWAGI:
  158.      [■] Pliku SG nie powinniÿmy edytowaå bez wczeÿniejszego utworzenia
  159.          kopii zapasowej tego pliku.
  160.      [■] Czasami zdarza si⌐, ╛e wartoÿå pola odczytana z pliku SG jest
  161.          wi⌐ksza ni╛ wartoÿå maksymalna - w takiej sytuacji nie dziaêajÑ
  162.          klawisze zmiany wartoÿci (oprócz CTRL+HOME i CTRL+END).
  163.      [■] Podczas zapisywania pliku SG mo╛e pojawiå si⌐ komunikat
  164.          'Zapisano wartoÿci tylko pod poprawne offsety! Bê⌐dnych adresów:'
  165.          PrzyczynÑ pojawienia si⌐ tego komunikatu jest zêy zakres jednego
  166.          lub wi⌐cej offsetów (offset z powodu bêedu w pliku SG1666.DTA mo╛e
  167.          byå wi⌐kszy ni╛ plik SG lub mo╛e byå ujemny).
  168.  
  169.  
  170.  
  171. [3]. Opcje programu.
  172. ════════════════════
  173.      Po wybraniu pozycji [Opcje] z menu gêównego wyÿwietlone zostaje okienko
  174.      z nast⌐pujÑcymi pozycjami:
  175.      [■] [Têo] - jest to znak, który b⌐dzie p⌐êniê rol⌐ têa; najlepszy wydaje
  176.          si⌐ byå znak '▒' o kodzie ASCII 177. Aby zmieniå ten znak nale╛y
  177.          najpierw nacisnÑå spacj⌐,pó½niej ╛Ñdany znak a na koΣcu Enter,
  178.      [■] [Obrazek] - opcja zaznaczona powoduje, ╛e przy uruchamianiu SaveGamera
  179.          wyÿwietlany b⌐dzie obrazek (SG1666.MBF),
  180.      [■] [Auto archiwizacja] - gdy zaznaczona, to przed zapisaniem zmian w
  181.          edytowanym pliku SG zostanie utworzona jego kopia zapasowa (w pliku
  182.          AUTOSAVE.SAV, w katalogu SaveGamera),
  183.      [■] [Pytanie o wyjÿcie] - ustawiona powoduje, ╛e przed wyjÿciem
  184.          z programu pojawi si⌐ okienko z proÿbÑ o potwierdzenie wyjÿcia,
  185.      [■] [Pytanie o zapis] - opcja decyduje o tym, czy przed zapisaniem
  186.          edytowanego pliku SG u╛ytkownik zostanie poproszony o potwierdzenie
  187.          tej operacji,
  188.      [■] [Sortuj nazwy gier] - wêÑcza/wyêÑcza sortowanie nazw gier (pojawia-
  189.          jÑcej si⌐ po wybraniu poz. [Wybierz gr⌐] z menu gêównego),
  190.      [■] [Sortuj nazwy plików] - jw., ale dotyczy listy plików i katalogów przy
  191.          wyborze pliku savegame (sortowanie alfabetyczne),
  192.      [■] [Pasek post⌐pu] - opcja zaznaczona powoduje, ╛e podczas pewnych
  193.          operacji (min. I/O) wyÿwietlany jest pasek post⌐pu,
  194.      [■] [Wart. w systemie hex] - decyduje o sposobie reprezentacji liczb;
  195.          liczby mogÑ byå wyÿwietlane w systemie szesnastkowym lub dziesi⌐tnym,
  196.  
  197.      Po okienku z opcjami mo╛emy poruszaå si⌐ tylko przy u╛yciu klawiatury
  198.      (strzaêki góra/dóê lub lewo/prawo). Bie╛ÑcÑ opcj⌐ wêÑczamy/wyêÑczamy
  199.      klawiszem spacji, natomiast zapis opcji (do pliku SG1666.CFG) nast⌐puje
  200.      po naciÿni⌐ciu klawisza Enter.
  201.  
  202.      UWAGI:
  203.      [■] Gdyby podczas uruchamiania SaveGamera komputer si⌐ zawiesiê to
  204.          nale╛y skasowaå plik SG1666.CFG -podczas nast⌐pnego uruchomienia
  205.          ustawione zostanÑ opcje domyÿlne (min. nie b⌐dzie pokazywany obrazek,
  206.          który jest w rozdzielczoÿci wymagajÑcej karty SVGA zgodnej z VESA)
  207.      [■] Czasami podczas wybierania pliku SG mogÑ wystÑpiå pewne bê⌐dy
  208.          (tak si⌐ dzieje, gdy w katalogu jest baaardzo du╛o plików) -
  209.          dlatego nale╛y wyêÑczyå opcj⌐ [Sortuj nazwy plików].
  210.  
  211.  
  212.  
  213. [4]. Modyfikowanie pliku SG1666.DTA.
  214. ════════════════════════════════════
  215.      Aby zmodyfikowaå okreÿlony plik SG,SaveGamer musi dysponowaå wieloma
  216.      informacjami tzn. nazwÑ pliku savegame, offsetami w tym pliku, znaczeniem
  217.      offsetów, itd. Te informacje pobierane sÑ z pliku SG1666.DTA - plik ten
  218.      mo╛e byå edytowany przez u╛ytkownika, jednak dopiero po wczeÿniejszym
  219.      zrozumieniu znaczenia znajdujÑcych si⌐ w tam zapisów.
  220.  
  221.      W pliku SG1666.DTA znajdujÑ si⌐ sekcje - ka╛da sekcja dotyczy poprawki
  222.      tylko dla jednego pliku SG. ChcÑc dopisaå nowÑ pozycj⌐ do pliku musimy
  223.      utworzyå wêaÿnie sekcj⌐, która ma nast⌐pujÑcÑ budow⌐ (za ÿrednikami
  224.      znajduje si⌐ komentarz):
  225.  
  226.  
  227.          ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  228.          <unikalna_nazwa_gry>                       ;\
  229.          SG=nazwa_pliku_sg1, nazwa_pliku_sg2, ...   ; » prolog sekcji
  230.          AUTHOR=autor_poprawki                      ;/
  231.  
  232.          SIZE=rozmiar_zapisu1                       ; (*)
  233.          MAX=maksymalna_wartoÿå_zapisu1             ; (*)
  234.          SEARCHINFO=pytanie_o_string                ; (*)
  235.          OBJECT=first,count,size,wyÿwietlany_string ; (*)
  236.          BASEADDR=offset_bazowy                     ; (*)
  237.  
  238.          MAX=maksymalna_wartoÿå_zapisu2
  239.          DEFINE=identyfikator                       ; (*)
  240.            #00h=interpret_wartoÿci_00h              ; (*)
  241.            #04h=interpret_wartoÿci_04h              ; (*)
  242.            #06h..10=interpret_wartoÿci_od_06h_do_10 ; (*)
  243.  
  244.          ADDRESS=offset_w_pliku_sg_2_1, offset_w_pliku_sg_2_2, ...
  245.          FIELDID=nazwa_pola2
  246.  
  247.          SIZE=rozmiar_zapisu3                       ;\
  248.          MAX=maksymalna_wartoÿå_zapisu3             ; » blok dotyczÑcy jednego
  249.          ADDRESS=offset_w_pliku_sg_3_1, ...         ; » pola (nazwa_pola3)
  250.          FIELDID=nazwa_pola3                        ;/
  251.  
  252.          ADDRESS=offset_w_pliku_sg_4_1, ...
  253.          FIELDID=nazwa_pola4
  254.          .
  255.          .
  256.          .
  257.          ENTRY_END                                  ; epilog sekcji
  258.          ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  259.          ;Gwiazdka w komentarzu ('; (*)') oznacza, ╛e ten wpis nie jest
  260.          ;niezb⌐dny w sekcji.
  261.  
  262.  
  263.      [■] Wpisy, które sÑ niezb⌐dne do utworzenia poprawnie zbudowanej sekcji:
  264.          ────────────────────────────────────────────────────────────────────
  265.  
  266.          Pierwszy zapis ('<unikalna_nazwa_gry>') to poczÑtek sekcji; pomi⌐dzy
  267.          ostrymi nawiasami musi si⌐ znale½å nazwa gry, której dotyczy poprawka.
  268.          Nale╛y si⌐ upewniå, czy taka nazwa nie wyst⌐puje wczeÿniej a jeÿli
  269.          wyst⌐puje to nale╛y jÑ odpowiednio zmieniå, np. dodajÑc dodatkowÑ
  270.          informacj⌐ o charakterze poprawki (np. '{dotyczy pliku SG.SAV}', itp.)
  271.          UWAGA: znaków '<' i '>' nie wolno u╛ywaå w innych miejscach pliku
  272.                 SG1666.DAT (nawet w linijkach z komentarzem - poprzedzonych
  273.                 znakiem ';')
  274.  
  275.          Zapis 'SG=nazwa_pliku_sg1' informuje SaveGamera jaka jest maska pliku
  276.          savegame. Gdy jakaÿ gra zapisuje savegame'y w plikach o ró╛nych
  277.          nazwach (np. HEROES OF MIGHT & MAGIC zapisuje save'y w plikach *.CGM
  278.          oraz *.GM?), to maski nale╛y oddzieliå przecinkiem ('SG=*.CGM,*.GM?').
  279.          UWAGA: poprawka z JEDNEJ sekcji mo╛e dotyczyå tylko i wyêÑcznie
  280.                 JEDNEGO pliku SG!
  281.  
  282.          Po wpisie 'ADDRESS=' nale╛y umieÿciå offsety w pliku SG dotyczÑce
  283.          jednego pola. Offsety mo╛na umieszczaå jeden za drugim oddzielajÑc
  284.          je jednak przecinkiem (np. ADDRESS=1Fh, 24, $30) lub dla ka╛dego
  285.          offsetu stosowaå oddzielny zapis, tzn.:
  286.          ADDRESS=1Fh
  287.          ADDRESS=24
  288.          ADDRESS=$30
  289.          Format adresu mo╛e byå bardziej dowolny, bo np. zamiast wpisywaå
  290.          'ADDRESS=10' mo╛emy napisaå 'ADDRESS=5+5'. Do tego dochodzÑ dodatkowe
  291.          mo╛liwoÿci takie, jak:
  292.          ADDRESS=%FILESIZE-100+12h
  293.          ADDRESS=%SEARCHSTR+10h
  294.          ADDRESS=%OBJ+10h
  295.          '%FILESIZE', '%SEARCHSTR', '%OBJ' to specjalne zmienne, które
  296.          opisane sÑ gdzieÿ dalej.
  297.  
  298.          'FieldID=' zamyka blok dotyczÑcy jednego pola; wpis ten zawsze
  299.          powinien si⌐ znale½å na koΣcu bloku.
  300.  
  301.          Wpis 'ENTRY_END' zamyka caêÑ sekcj⌐.
  302.  
  303.  
  304.      [■] Wpisy dodatkowe, rozszerzajÑce standardowÑ budow⌐ sekcji:
  305.          ─────────────────────────────────────────────────────────
  306.  
  307.          Po wpisie 'AUTHOR=' nale╛y umieÿciå imi⌐/nazwisko/ksyw⌐ autora
  308.          poprawki (maks. 60 znaków).
  309.  
  310.          'SIZE=' ustawia rozmiar zapisu do pliku SG (od 1 do 4 bajtów); jeÿli
  311.          poni╛ej nie wystÑpi nast⌐pny taki wpis to b⌐dzie si⌐ on odnosiê do
  312.          wszystkich pozostaêych pól. Domyÿlnie rozmiar zapisu wynosi 1.
  313.  
  314.          'MAX=' ustawia najwi⌐kszÑ mo╛liwÑ wartoÿå, jakÑ mo╛e przyjÑå zapis
  315.          do pliku SG. Najwi⌐kszÑ liczbÑ, jakÑ mo╛na wpisaå za 'MAX=' jest
  316.          7F FF FF FFh, natomiast najmniejszÑ 0. Domyÿlnie MAX=FFh.
  317.  
  318.          'SEARCHINFO=txt_do_wyÿwietlenia' - po zastosowaniu tego wpisu
  319.          SaveGamer, po wybraniu pozycji [Edytuj plik SG] z menu gêównego,
  320.          wyÿwietli okienko z napisem 'txt_do_wyÿwietlenia' i za╛Ñda od
  321.          u╛ytkownika wprowadzenia ciÑgu tekstowego. Po tym nastÑpi próba
  322.          odnalezienia tego ciÑgu w pliku SG; offset, na którym ten ciÑg
  323.          zostanie znaleziony b⌐dzie odtÑd pami⌐tany w zmiennej %SEARCHSTR.
  324.          Domyÿlnie zmienna %SEARCHSTR ma wartoÿå 0.
  325.  
  326.          'OBJECT=first,count,size,wyÿwietlany_string' - jest to informacja o
  327.          obiektach w grze. Obiekty to np. jednostki wojskowe, bohaterzy w
  328.          grach RPG, miasta, budynki oraz wiele innych.
  329.          {z DDT PACK:}
  330.          Zazwyczaj struktura danych ka╛dego obiektu jest taka sama - istnieje
  331.          pewna matryca, wedêug której sÑ zapisywane informacje o wszystkich
  332.          obiektach. Dane ka╛dego z nich zajmujÑ tyle samo bajtów, liczby na
  333.          tych samych pozycjach odpowiadajÑ za te same wêaÿciwoÿci obiektu.
  334.          Tak wi⌐c je╛eli rozszyfrujemy, jak zapisano informacje o jednym
  335.          obiekcie, b⌐dziemy mogli od razu zmieniaå dane innych.
  336.          'first' to offset pierwszego obiektu, 'count' to liczba wszystkich
  337.          obiektów, 'size' to rozmiar danych jednego obiektu, chocia╛ jest
  338.          to bardziej odlegêoÿå w bajtach pomi⌐dzy dwoma sÑsiednimi obiektami,
  339.          'wyÿwietlany_string' to ciÑg tekstowy wyÿwietlany w momencie, gdy
  340.          SaveGamer zapyta u╛ytkownika o numer obiektu. Gdy ten numer zostanie
  341.          ju╛ wprowadzony to w zmiennej %OBJ powinna si⌐ znale½å wartoÿå
  342.          obliczona z nast⌐pujÑcego wzoru: [first+(count-1)*size].
  343.          Domyÿlnie zmienna %OBJ ma wartoÿå 0.
  344.  
  345.          'BASEADDR=offset_bazowy' - w ten sposób ustawiamy wartoÿå tzw.
  346.          offsetu bazowego. Offset bazowy jest zawsze dodawany do wszystkich
  347.          offsetów wyst⌐pujÑcych po wpisie 'ADDRESS='.
  348.          Przykêad:
  349.          BASEADDR=5
  350.          ADDRESS=10
  351.          FieldID=Pole1   ;offset tego pola w rzeczywistoÿci wynosi 10+5=15
  352.          ADDRESS=12
  353.          FieldID=Pole2   ;offset tego pola w rzeczywistoÿci wynosi 12+5=17
  354.          BASEADDR=2
  355.          ADDRESS=10
  356.          FieldID=Pole1   ;offset tego pola w rzeczywistoÿci wynosi 10+2=12
  357.          Domyÿlnie adres (offset) bazowy wynosi 0.
  358.  
  359.          'DEFINE=ident' tworzy nowÑ list⌐ sêownych interpretacji wartoÿci,
  360.          które czasami sÑ bardzo przydatne w edytowaniu plików SG; np. w grze
  361.          [F-15 STRIKE EAGLE 3] na pozycji 25h pliku SG tej gry (ROOSTER.DAT)
  362.          znajduje si⌐ informacja o randze pilota - wpisanie pod ten offset
  363.          wart. 0 oznacza, ╛e pilot ma rang⌐ '2nd Lieutenant', itd...
  364.          ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  365.          <F-15 STRIKE EAGLE 3>
  366.          SG=ROSTER.DAT
  367.          MAX=06h
  368.          DEFINE=ranga
  369.            #00h=2nd Lieutenant
  370.            #01h=1st Lieutenant
  371.            #02h=Captain
  372.            #03h=Major
  373.            #04h=Lieutenant Colonel
  374.            #05h=Colonel
  375.            #06h=Brigade General (po misji nie b⌐dziesz mógê lataå)
  376.          ADDRESS=25h
  377.          FieldID=Ranga
  378.          ENTRY_END
  379.          ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  380.          Jak êatwo zauwa╛yå dodawanie interpretacji sêownych nie jest
  381.          skomplikowane: przed wartoÿciÑ nale╛y umieÿciå znak hasz '#',
  382.          a po wartoÿci musi si⌐ znale½å znak '=' i sêowna interpretacja.
  383.          Mo╛na tak╛e definiowaå sêowne interpretacje dla zakresu wartoÿci:
  384.            #00h..64h=zakres od 0 do 100 (64 hex).
  385.          OkreÿlonÑ list⌐ interpretacji sêownych tworzymy tylko raz - gdy
  386.          chcemy jÑ wykorzystaå przy innych polach to umieszaczmy przy nich
  387.          jedynie wpis 'DEFINE=zdefiniowana_wczeÿniej_lista_interpretacji':
  388.          ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  389.          DEFINE=lista_interpretacji   ; nadanie nazwy liÿcie
  390.            #00h=interpret00           ; zdefiniwanie wartoÿci,
  391.            #01h=interpret01           ;   które b⌐dÑ interpretowane sêownie
  392.            #02h=interpret02
  393.          ADDRESS=$10
  394.          FieldID=pole1
  395.  
  396.          ADDRESS=$12                  ; tu nie wykorzystujemy
  397.          FieldID=pole2                ;   listy interpretacji sêownych
  398.  
  399.          DEFINE=lista_interpretacji   ; ponowne wykorzystanie listy
  400.          ADDRESS=$12
  401.          FieldID=pole2
  402.          ;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  403.  
  404.         UWAGI:
  405.         [■] Zmienna %FILESIZE zawiera rozmiar wybranego pliku SG.
  406.         [■] Liczby w pliku SG1666.DTA mogÑ byå podawane w systemie dziesi⌐tnym
  407.             (bez ╛adnych dodatkowych znaków) lub te╛ w systemie szesnastkowym
  408.             ale ze znakiem 'h' na koΣcu albo znakiem '$' na poczÑtku:$64=64h.
  409.         [■] Ka╛dy wpis powinien byå w osobnej linii, której maksymalna
  410.             dêugoÿå wynosi 192 znaki.
  411.         [■] Dêugoÿci wszystkich ciÑgów tekstowych (pomi⌐dzy znakami '<' i '>',
  412.             za wpisem 'FiledID=', 'DEFINE=', 'SEARCHINFO=' i innych) nie mo╛e
  413.             przekraczaå 60 znaków.
  414.         [■] Wszelkie komentarze nale╛y umieszczaå po ÿredniku.
  415.  
  416.  
  417. [5]. Uwagi koΣcowe. Kontakt z autorem.
  418. ══════════════════════════════════════
  419.  
  420.      Dzi⌐kuj⌐ za wsparcie i cenne uwagi/komentarze Marcinowi Wicharemu oraz
  421.      Jimowi Midnite z Gamblera. Jednoczeÿnie zach⌐cam wszystkich
  422.      zainteresowanych grzebaniem w plikach savegame do ÿciÑgni⌐cia sobie
  423.      tzw. DDT PACKa.
  424.  
  425.      Opinie, uwagi, itp. prosz⌐ przesyêaå e-mailem na adres sourcer@polbox.com
  426.      Miêej zabawy ╛yczy
  427.                                                        AUTOR.
  428.  
  429.  
  430. ▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░▒▓░