Kiski: promiň odmlku...
Já se ve weidu moc nevyznám, takže ti přímo s ním moc neporadím, ale aspoň globální myšlenky.
afaik weidu žádnou přímou funkci pro vložení lokace do worldmapy nemá, tudíž se to musí udělat ručně.
Jednou možností by tady bylo vyloženě "ručně" - číst offsety, počty elemetnů sekcí a v cyklech aktualizovat tyhle hodnoty.
S pomocí informací odsud:
http://iesdp.gibberlings3.net/ieformats/wmap_v1.htm
...bys musel načítat příslušné hodnoty a aktualizovat je. Podstatný by tady byl offset 0x0020 ve worldmap entry, který představuje počet lokací v mapě - ten bys musel o 1 zvýšit.
Pak bys za poslední area entry musel vložit celou strukturu area entry s tvými hodnotami. A protože tím se ti posunou area links, musel bys ve všech area entries přepsat jejich offsety na tyto linky (posunují se o délku area entry).
Ono to zní složitě, složité to ani tak moc ale není, ale do detailů to nerozebírám, protože je zde elegatnější možnost (pouze při použití s ToB):
soubor XNEWAREA.2da a přidání řádku do něj.
http://iesdp.gibberlings3.net/2da/2da_tob/xnewarea.htm
Jeho vyplnění je v zásadě intutivní - pouze položka flags ne. Jde tam o bitovou mapu velikosti 4 bytů (byte=8 bitů). Na místo daného bitu se dá 1, pokud má ona vlastnost platit.
O těchto flags jsou známé následující údaje:
Kód: Vybrat vše
bit 0: is area visible? // je lokace od začátku hry viditelná
bit 1: unknown //? mám tady podezření, že jde o lokace přístupné bez průchodu městskou bránou
bit 2: set if area can be visited // lze do ní rovnou cestovat kliknutím
bit 3: set if area has been visited // zřejmě použito je pro začátek hry pro lokaci, kde se začalo...
bits 4-31: unused?
Pokud např. chci, aby byla lokace viditelná a jakoby začáteční (umělý příklad), musím ji nastavit bity 0 a 3 na hodnotu 1. Jak to vypadá (bit nejvíce vlevo je 31., bit nejvíce vpravo 0.):
000...(nepoužité bity 31-4 - nuly)...1001
Tohle je dvojkové (binární) číslo, které převedeš na desítkové a dostaneš hodnotu, kterou zapsat do sloupce FLAGS. V tomto případě 00...0001001 = 9.
Pro druhý příklad - u ar3000, jak je zapsáno v tom .2da, je flags na 7, což dává bitovou mapu 00...000111 (visible, unknown, can be visited).
(pro převod čísel lze použít kalkulačku ve windows se zapnutým vědeckým rozhraním - tam jsou pak volby mezi dec, hex, bin, oct.
Dále je tam pak sloupec LINK_2DA, kam zapíšeš .2da soubor tvé lokace, kam zapíšeš případné linky.
Takže celý proces spočívá v tom, že pomocí weidu přidáš řádek do XNewArea.2da
Kód: Vybrat vše
COPY_EXISTING ~xnewarea.2da~ ~override~
COUNT_2da_ROWS 5, "numRows" // zjistění, kolik řádků už máme (včetně záhlaví sloupců); 5 zvoleno jen tak, aby se do filtru dostaly důležité řádky a ne i hlavička atp.
APPEND ~xnewarea.2da~ ~("%numRows%" - 1 ) AR9876 AR9876 7 .......~
//a případný APPEND do .2da linků tvé lokace
Takhle nějak rámcově by to mohlo fungovat... ale ber to spíš jako mustr...
jj, ikony patří do mapicons.bam...