1.
No właśnie, skrypt generuje kilka stringów po kolei, a gdzieś tam w głębi xr'owych flaków ustawione jest, że każdy z nich dostaje nową linię. Czyli wychodzi na to, że returnowe \n nie ma tu nic do rzeczy, tylko, jeśli dobrze główkuję, przy każdym kolejnym "return t_prorerty_name.." "..value" czy "return t_prorerty_name" tworzy się kolejna <upgr_line>.
2.
I ja też za cholerę nie mogę znaleźć tego "stopnia wyżej", gdzie byłby czytelny ten mechanizm. Dlatego myślę o oszukaniu go własną bronią. Niech skrypt, a konkretnie fukcja property_functor_a nie generuje nam kilku outputów, tylko jeden. (A najplepiej wszystkie trzy funkcje property_functor.) Być może tak obejdziemy tą "wyższą konieczność" tworzenia nowej <upgr_line>. Tyle, że od tego momentu mogę gdybać tylko, bo nie potrafię tego skryptu tak zmienić, już mnie płaty czołowe bolą od CTD'ów.
3.
Co do wywołania skryptu. Szukając w plikach *.script stringu "inventory_upgrades", znalazłem 4 pliki go zawierające, z czego - być może - relewantna jest jego obecność w funkcji w xr_effects.script :
line: 3586 w Misery, line: 3276 w vanilli:
function upgrade_hint(actor, npc, p)
if(p) then
inventory_upgrades.cur_hint = p
end
end
Choć przyznam, że jeszcze nie wiem, na co patrzę. Ten plik odwiedzam pierwszy raz.
4.
Próbowałem wyśledzić te ikonki od tyłu. I tak - graficznie są w pliku ui_actor_sleep_screen.dds, logicznie wyszczególnione są w pliku ui_actor_sleep_screen.xml. Kolejny search, nazwy ikonek pojawiają się w upgrades_properties.ltx w kolejnych sekcjach, przykładowo dla odrzutu wygląda to tak:
[prop_recoil]
name = st_prop_recoil
icon = ui_wp_prop_otdacha
functor = inventory_upgrades.property_functor_a
params = prop_rpm
Czyli mamy cały zestaw, razem z nazwą funkcji. Po kolei:
- outputowa nazwa - ćpana z pliku st_items_weapons_upgrades.xml
- outputowa ikona - ćpana z pliku ui_actor_sleep_screen.dds za pomocą logiki z ui_actor_sleep_screen.xml
- functor - tłumaczy, którą z trzech funkcji property_functor_[a, b lub c] wykona inventory_upgrades.script
- params - jakieś parametry, pewnie co i o ile (pojawia się w ltx'ach ulepszeń poszczególnych broni (weapons\upgrades\w_[GIWERA]_up.ltx))
co do functora:
Po prześledzeniu upgrades_properties.ltx staje się jasne, że
- property_functor_a - dotyczy właściwości giwer per se i wszystkich właściwości outfitów (poza trzema: autolock, sprint, scanner, te są w "b")
- property_functor_b - dotyczy głównie celownik'ów, plus: kalibru, trybu ognia, nightwizji itp.
- property_functor_c - dotyczy akcesoriów: tłumiki, slot na podlufowce, granatniki podwieszane