Huiuiui, da ist von meinem tp2 Code eigentlich fast gar nichts mehr vorhanden.
Ich versuche dir alles zu erklären (soweit ich es selber verstehe) und wenn was nicht klar ist, dann frag ruhig nochmal nach
Code:
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
///// \\\\\
///// Part 1: New Clothmap-style map \\\\\
///// \\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\
BEGIN @1000
DESIGNATED 0
REQUIRE_PREDICATE ENGINE_IS ~tob bgee bg2ee~ ~This mod cannot be installed on this game~
//REQUIRE_PREDICATE "%WEIDU_OS%" STRING_COMPARE_CASE osx OR FILE_EXISTS ~bp-bgt_worldmap/bin/osx/mosunpack~ ~This mod is not available for your platform~
COPY_EXISTING sw1h01.itm ~override/bp-bgt_wm6.wm6~ // flag to say we've installed wm6 in our game
// ==============================
// Part 1.1: Travel Times and Area Visibility, also input construction (areas, links and translations etc) for build_worldmap
// ==============================
INCLUDE ~bp-bgt_worldmap/lib/load_tables.tpa~
Die letzte Zeile ist entscheidend, dort werden in der load_tables.tpa die areas.tbl und link.tbl vorbereitet, bevor sie in der worldmap.wmp installiert werden
load_tables.tpa
Code:
///////////////////////////////////////////////////////////////////////////
// Before tables are loaded ///////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
MKDIR worldmap
ACTION_IF MOD_IS_INSTALLED dq.tp2 0 BEGIN
INCLUDE "bp-bgt_worldmap/lib/compat/fft.tpa"
END
ACTION_IF MOD_IS_INSTALLED wheels.tp2 0 BEGIN
INCLUDE "bp-bgt_worldmap/lib/compat/wheels.tpa"
END
ACTION_IF FILE_EXISTS_IN_GAME "l-sar1.are" AND GAME_INCLUDES ~tob~ BEGIN // Almateria's Restoration Project
INCLUDE "bp-bgt_worldmap/lib/compat/arestorationp.tpa"
END
///////////////////////////////////////////////////////////////////////////
// Tables are loaded //////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
OUTER_SET got_revised = GAME_IS ~tutu tutu_totsc tob bgt~ ? 1 : 0
//Original or Revised?
ACTION_IF got_revised BEGIN
PRINT @2000
ACTION_READLN how
OUTER_WHILE NOT IS_AN_INT how OR how > 2 OR how < 1 BEGIN
PRINT @2000
ACTION_READLN how
END
END ELSE BEGIN
OUTER_SET how = 1
END
ACTION_IF how = 1 BEGIN
INCLUDE ~bp-bgt_worldmap/lib/original.tpa~
END ELSE BEGIN
INCLUDE ~bp-bgt_worldmap/lib/revised.tpa~
END
Der obere Teil benutzt nochmals Tabellen und Funktionen, die Verbesserungen der einzelnen Mods einfügen.
Beim unteren Teil kommt nun die Auswahl Original oder Revised.
Original war ursprünglich so gedacht, dass wirklich nur die aus den Mod mitgelieferten tbls benutzt werden.
Revised stammt von Erebusant, er hat damals sehr viel überarbeitet, viele neue Links, neue Trigger, alte Trigger deaktiviert, neue Reisezeiten usw.
Nun zur original.tpa
Code:
ACTION_IF GAME_IS ~tob bgt~ BEGIN
OUTER_SPRINT fl#area_table ~bp-bgt_worldmap/2da/original_soa_tob_areas.2da~
OUTER_SPRINT fl#link_table ~bp-bgt_worldmap/2da/original_soa_tob_links.2da~
END ELSE ACTION_IF GAME_IS ~tutu tutu_totsc~ BEGIN
OUTER_SPRINT fl#area_table ~bp-bgt_worldmap/2da/original_tutu_areas.2da~
OUTER_SPRINT fl#link_table ~bp-bgt_worldmap/2da/original_tutu_links.2da~
END ELSE ACTION_IF GAME_IS ~bgee~ BEGIN
OUTER_SPRINT fl#area_table ~bp-bgt_worldmap/2da/original_bg1ee_areas.2da~
OUTER_SPRINT fl#link_table ~bp-bgt_worldmap/2da/original_bg1ee_links.2da~
END ELSE ACTION_IF GAME_IS ~bg2ee eet~ BEGIN
OUTER_SPRINT fl#area_table ~bp-bgt_worldmap/2da/original_bg2ee_areas.2da~
OUTER_SPRINT fl#link_table ~bp-bgt_worldmap/2da/original_bg2ee_links.2da~
END
////////////////////////////////////////////
//Standard areas and links
////////////////////////////////////////////
COPY ~%fl#area_table%~ ~%fl#area_table%~
LPM read_area_array_from_2da
BUT_ONLY
COPY ~%fl#link_table%~ ~%fl#link_table%~
LPM read_link_array_from_2da
BUT_ONLY
Hier werden die Areas und links von BG1 und BG2 aller Versionen in einen Array eingelesen.
Dann kommen die originalen worldmap/map_mods_areas.tbl (Das sind die, die im hauptverzeichnis von BG liegen und jeder Mod seine areas und links angehängt hat.)
Code:
////////////////////////////////////////////
//Mod-added areas
////////////////////////////////////////////
ACTION_IF FILE_EXISTS "worldmap/map_mods_areas.tbl" BEGIN
COPY "worldmap/map_mods_areas.tbl" "worldmap/map_mods_areas.tbl"
LPF fix_table END
LPM read_area_array_from_2da
BUT_ONLY
END
und dann werden die originalen nochmals geupdated
Code:
//"Update" the area info with stuff we provide
//This really should be done as patches insead of overwriting all the area info
ACTION_DEFINE_ASSOCIATIVE_ARRAY mod_tables BEGIN
AR6526 => BGT
AR4220 => SOS
DD3300 => TDD
AR3610 => CtB
RR3100 => RoT
DSC001 => DSotSC
AR01PB => NTotSC
BH0100 => SoBH
g3g12a => G3Anniversary
F_7777 => DS
END
ACTION_PHP_EACH mod_tables AS area => table BEGIN
ACTION_IF FILE_EXISTS_IN_GAME "%area%.are" BEGIN
COPY "bp-bgt_worldmap/original/tbl/updates/%table%_areas.tbl" "bp-bgt_worldmap/original/tbl/updates/%table%_areas.tbl"
LPM read_area_array_from_2da
BUT_ONLY
END
END
Nun zur revised.tpa
Code:
ACTION_IF GAME_IS ~tob bgt~ BEGIN
INCLUDE ~bp-bgt_worldmap/lib/revised/megamods.tpa~
END ELSE ACTION_IF GAME_IS ~tutu tutu_totsc~ BEGIN
INCLUDE ~bp-bgt_worldmap/lib/revised/tutu_revised.tpa~
END
megamods.tpa
Code:
////////////////////////////////////////////
//Standard SoA and ToB areas and links
////////////////////////////////////////////
COPY "bp-bgt_worldmap/2da/revised_soa_tob_areas.2da" "bp-bgt_worldmap/2da/revised_soa_tob_areas.2da"
LPM read_area_array_from_2da
BUT_ONLY
COPY "bp-bgt_worldmap/2da/revised_soa_tob_links.2da" "bp-bgt_worldmap/2da/revised_soa_tob_links.2da"
LPM read_link_array_from_2da
BUT_ONLY
////////////////////////////////////////////
//Mod-added areas
////////////////////////////////////////////
//Add areas from "worldmap/map_mods_areas.tbl"
ACTION_IF FILE_EXISTS "worldmap/map_mods_areas.tbl" BEGIN
COPY "worldmap/map_mods_areas.tbl" "worldmap/map_mods_areas.tbl"
LPF fix_table END
LPM read_area_array_from_2da
BUT_ONLY
END
Erst werden die revised_soa_tob_areas.2da eingelesen und dann werden auch die originalen map_mods_areas.tbl (Die von den Mods selber hinterlegt sind) eingelesen und dann werden sie gepatched (siehe Erebusant)
Ich hoffe ich habe dich nicht zu sehr verwirrt. Allerdings, was genau die Änderung der einzelnen Koordinaten auf sich hat, dass kann man nur auf der Karte nachvollziehen.