From 9f7f6a18fcda48b4017ef8a4f530da503de4b932 Mon Sep 17 00:00:00 2001 From: MsrSgtShooterPerson Date: Fri, 6 Sep 2024 01:47:18 +0800 Subject: [PATCH 1/3] OTEX Module now includes custom liquids. --- games/doom/fabs/window/gtd_window_bay.wad | Bin 10816 -> 10816 bytes games/doom/fabs/window/gtd_window_cage.wad | Bin 7308 -> 7308 bytes .../fabs/window/gtd_window_slump_tall.wad | Bin 35388 -> 35388 bytes .../window/gtd_windows_low_gap_closed.wad | Bin 21320 -> 21320 bytes .../fabs/window/gtd_windows_tall_octagon.wad | Bin 28586 -> 28586 bytes modules/zdoom_otex.lua | 155 ++++++++++++++++-- 6 files changed, 143 insertions(+), 12 deletions(-) diff --git a/games/doom/fabs/window/gtd_window_bay.wad b/games/doom/fabs/window/gtd_window_bay.wad index 298fc71263037ef09eddc28da0b7112ddb3da918..4a3daea5774576ebdb06362a084a8359dc7b6167 100644 GIT binary patch delta 492 zcmX>Qav)^GCq`LD21W*51_*%B!Jz>G{y`ze%#%Md%1+i{+9rcf)#QInS7g5Y$8F5y zcg!)e_!KZte#oo5xr?QO9j`J*pmXFm+wpiY%HwknD}&BtK_==oIEoyU~v11adM%Q?B)afQ@DU$XTlkRn+v3(nDB-%+hkoP t>&Z&8F?jvN1ohJn*(-|p>|Qav)^GC&o#9B9k3hI2f5HA7l{)vbZMeF>RSFz{@f@k5^!F0T0(C=1WLip2?q> zBPLJdlbigAS7~z>O9lJnLo6a7b(3$%%51jb@nM9k1{%xE%Ahk@kV$&-A>JUc;nVnJ zCR_1+g4xPCIZ#G+@&SIi$sc&cz@`*Q$!tErKZOfuhs@>zsVFA6aT{d$CL1xCO;(bP qfr|m%%LuVxhwK%Q3s~70-u`Ep?8qZId55gnU;5wl{E=H;2A?^bBUqH!37GMa*?4jRH-{V}13tTe&fbRCDxhmkC-*aP;#IU+hS!K{ g?unbs!Xz{~fk$IYk`hez^h>M2hllf0H`%i&j0`b delta 172 zcmeCN?6KS+z&!a1lj!7rCicl6xE&_vFk4Oj#4W?fH2EWw?BoZ`3X`*#MJ6XOb4-53 zr7}5ySz>bpixT_fDp47rfcWJ3T)dO}M5K_6*ann?7zfkb$HX;RfJbJt46hMBjd7EY dF$+yj;L(^IBWeS-wU3Dd=q8)ZA4KP{0RUsxIe!2E diff --git a/games/doom/fabs/window/gtd_window_slump_tall.wad b/games/doom/fabs/window/gtd_window_slump_tall.wad index 55398a68471704fe9b1f66e9c5bad18bc08d8efa..8440e8a11366b408760c8d5d71b22ae6655aba5e 100644 GIT binary patch delta 1566 zcmdlpg=x9?E(sp*(q?a1?~c z#=yY9$N<*P$S^rTBo0IQK~}}d38FJLUtvq(hDy@X9@3l@LyGbTGKG`%g;Xc66Jnbr zWI>8fp#MowzWIU7FJXxK$&N9K%uJB*1+t|kpJ!s99AF4__T;x_ut-si1BJ5OJy zzN;5llk49GTXJ#!k7#}$%PlkOsH8IPJirnUKnlg}He clNd&IMl#@nV1Y5$WCux6(oNW$Q*=Qb0J#KsumAu6 delta 1306 zcmdlpg=x{ z!U=SKAe07$6;b{s!AYAR$ovwXWFa$|BSst=1rYj7v^dzQ0fsS?za)uFis765%`6PW zoZOHs2aF9+2+K`=U=E5I7+ZX@e2g5(7)FN4frio8G(Lz`o2+0`HMzk6ZYO@l3HDJi z$KhAFz#3$#G1M1w#AzbQDG(coba#Vo6;in3cY1<7(P}q4II2ibJ{OJ12xp?@CVxs2 z1I5sTn6Sw%1`w&B*cc#N1}FuIr3J=Z!2BaJ`9PivI2|!1f#lKE+D%>)Uon|029nlr zs|kdsW9(`^p*Rt{8e;6aM4?+L)!z?G(UV~r0+a`F`KQiE2Am@xVJ%9E-px5h7sLVI Ckj57P diff --git a/games/doom/fabs/window/gtd_windows_low_gap_closed.wad b/games/doom/fabs/window/gtd_windows_low_gap_closed.wad index bd0dd13cebf48039132999c9698b97b511d2ee79..c7cda17b3b1ac01999b0272dbe56b9aa09143865 100644 GIT binary patch delta 476 zcmX@HjPb-W#tjL~obEx6k>(5x3`~oxFub1j>6Tx^r?HD~wmD=eYR+>l8k?v0zK#JVuZc;5;l=!sXaO zD&ZDRgj;qN%7R+NG+9A{WwL{m+2#Yf%NRFjNOSSRji95|Ndok+b@Bt&Et|s}KM4W= D(^-DT delta 316 zcmX@HjPb-W#tjL~lNX3`FfvVc6p>|SWMG}_s3FbBI$2-bdh!EivB?L7IVKB87g7PFSqr29 delta 27 jcmZ2=pK;ZF#tmOMIO4+{eS8=g7$ytI-P?SN^Fk^Bo5>2o diff --git a/modules/zdoom_otex.lua b/modules/zdoom_otex.lua index c0d4eddb6d..17625360db 100644 --- a/modules/zdoom_otex.lua +++ b/modules/zdoom_otex.lua @@ -235,6 +235,7 @@ OTEX_THEME_RESTRICTIONS = BONE = {"hell"}, FLSH = {"hell"}, HELL = {"hell"}, + PALC = {"hell", "urban"}, BRCK = {"hell", "urban"}, BOOK = {"hell", "urban"}, @@ -267,7 +268,7 @@ OTEX_SPECIAL_RESOURCES = OFENCF05 = {t="OFENCF05", rail_h=128}, OFENCF06 = {t="OFENCF06", rail_h=96}, OFENCF07 = {t="OFENCF07", rail_h=32}, - OFENCF08 = {t="OFENCF08", rail_h=128}, + OFENCF08 = {t="OFENCF08", rail_h=32}, OFENCF09 = {t="OFENCF09", rail_h=128}, OFENCF10 = {t="OFENCF10", rail_h=96}, OFENCF11 = {t="OFENCF11", rail_h=64}, @@ -376,6 +377,112 @@ OTEX_SPECIAL_RESOURCES = OBKMTD38 = 30, OBKMTD39 = 30 } + }, + + liquid_materials = + { + OBLODA01 = { t="OFALLB01", f="0BLODA01"}, + OGOOPY01 = { t="OFALLG01", f="0POOPY01"}, + OICYWA01 = { t="OFALLW11", f="0ICYWA01"}, + + OLAVAA01 = { t="OFALLL01", f="0LAVAA01"}, + OLAVAA02 = { t="OFALLM01", f="0LAVAA02"}, + OLAVAB01 = { t="OFALLL01", f="0LAVAB01"}, + OLAVAC01 = { t="OFALLL01", f="0LAVAC01"}, + OLAVAD01 = { t="OFALLM01", f="0LAVAD01"}, + OLAVAE01 = { t="OFALLL11", f="0LAVAE01"}, + OLAVAF01 = { t="OFALLL11", f="0LAVAF01"}, + + ONUKEA01 = { t="OFALLN01", f="0NUKEA01"}, + OSLUDG01 = { t="OFALLS01", f="0SLUDG01"}, + OPOOPY01 = { t="OFALLP01", f="0POOPY01"}, + OTAR__01 = { t="OFALLT01", f="0TAR__01"}, + OWATER01 = { t="OFALLW01", f="0WATER01"} + }, + + liquid_defs = + { + otex_blood = { mat="OBLODA01", special=0}, + otex_goop = { mat="OGOOPY01", special=0}, + otex_ice = { mat="OICYWA01", special=0}, + + otex_lavaA1 = { mat="OLAVAA01", light_add=56, special=5, damage=10}, + otex_lavaA2 = { mat="OLAVAA02", light_add=56, special=5, damage=10}, + otex_lavaB1 = { mat="OLAVAB01", light_add=56, special=5, damage=10}, + otex_lavaC1 = { mat="OLAVAC01", light_add=56, special=5, damage=10}, + otex_lavaD1 = { mat="OLAVAD01", light_add=56, special=5, damage=10}, + otex_lavaE1 = { mat="OLAVAE01", light_add=56, special=5, damage=10}, + otex_lavaF1 = { mat="OLAVAF01", light_add=56, special=5, damage=10}, + + otex_nukage = { mat="ONUKEA01", light_add=56, special=7, damage=5}, + + otex_sludge = { mat="OSLUDG01", special=0}, + otex_poop = { mat="OPOOPY01", special=0}, + otex_tar = { mat="OTAR__01", special=0}, + otex_water = { mat="OWATER01", special=0} + }, + + liquid_themes = + { + tech = + { + otex_goop = 10, + otex_ice = 20, + + otex_lavaA1 = 3, + otex_lavaA2 = 3, + otex_lavaB1 = 3, + otex_lavaC1 = 3, + otex_lavaD1 = 3, + otex_lavaE1 = 3, + otex_lavaF1 = 3, + + otex_nukage = 50, + otex_sludge = 30, + otex_poop = 10, + otex_tar = 40, + otex_water = 20 + }, + + urban = + { + otex_blood = 20, + otex_goop = 10, + otex_ice = 20, + + otex_lavaA1 = 2, + otex_lavaA2 = 2, + otex_lavaB1 = 2, + otex_lavaC1 = 2, + otex_lavaD1 = 2, + otex_lavaE1 = 2, + otex_lavaF1 = 2, + + otex_nukage = 10, + otex_sludge = 20, + otex_poop = 50, + otex_tar = 40, + otex_water = 20 + }, + + hell = + { + otex_blood = 70, + otex_goop = 10, + otex_ice = 20, + + otex_lavaA1 = 12, + otex_lavaA2 = 12, + otex_lavaB1 = 12, + otex_lavaC1 = 12, + otex_lavaD1 = 12, + otex_lavaE1 = 12, + otex_lavaF1 = 12, + + otex_sludge = 30, + otex_tar = 40, + otex_poop = 40 + } } } @@ -520,7 +627,10 @@ function OTEX_PROC_MODULE.synthesize_procedural_themes() for _,F in pairs(resource_group.flats) do local side_tex, group_pick -- hack fix to assign DMD flats a side texture rather than just a default - if string.find(group_name, "DMD") then + if string.find(group_name, "DMD") + or string.find(group_name, "TL16") + or string.find(group_name, "TL32") + or string.find(group_name, "TLMX") then group_pick = rand.key_by_probs(group_pick_list["urban"].textures) side_tex = rand.pick(resource_tab[group_pick].textures) else @@ -573,22 +683,28 @@ function OTEX_PROC_MODULE.synthesize_procedural_themes() room_theme.ceilings = {} tab_pick = rand.key_by_probs(group_pick_list[T].textures) - tex_pick = rand.pick(resource_tab[tab_pick].textures) - room_theme.walls[tex_pick] = 5 + for j = 1, 3 do + tex_pick = rand.pick(resource_tab[tab_pick].textures) + room_theme.walls[tex_pick] = 5 + end RT_name = RT_name .. tex_pick .. "_" if rand.odds(25) or resource_tab[tab_pick].has_flats == false then tab_pick = rand.key_by_probs(group_pick_list[T].flats) end - tex_pick = rand.pick(resource_tab[tab_pick].flats) - room_theme.floors[tex_pick] = 5 + for j = 1, 3 do + tex_pick = rand.pick(resource_tab[tab_pick].flats) + room_theme.floors[tex_pick] = 5 + end RT_name = RT_name .. tex_pick .. "_" if rand.odds(25) or resource_tab[tab_pick].has_flats == false then tab_pick = rand.key_by_probs(group_pick_list[T].flats) end - tex_pick = rand.pick(resource_tab[tab_pick].flats) - room_theme.ceilings[tex_pick] = 5 + for j = 1, 3 do + tex_pick = rand.pick(resource_tab[tab_pick].flats) + room_theme.ceilings[tex_pick] = 5 + end RT_name = RT_name .. tex_pick room_theme.name = RT_name @@ -658,14 +774,29 @@ function OTEX_PROC_MODULE.synthesize_procedural_themes() end local scenic_fence_tab = table.copy(OTEX_SPECIAL_RESOURCES.rail_scenic_fences) for fence,prob in pairs(scenic_fence_tab.tech) do - GAME.THEMES.tech.scenic_fences[fence] = prob - GAME.THEMES.urban.scenic_fences[fence] = prob + GAME.THEMES.tech.scenic_fences[fence] = int(prob * 0.75) + GAME.THEMES.urban.scenic_fences[fence] = int(prob * 0.75) end for fence,prob in pairs(scenic_fence_tab.gothic) do - GAME.THEMES.hell.scenic_fences[fence] = prob - GAME.THEMES.urban.scenic_fences[fence] = prob + GAME.THEMES.hell.scenic_fences[fence] = int(prob * 0.75) + GAME.THEMES.urban.scenic_fences[fence] = int(prob * 0.75) end + -- create liquid attachments + local liquid_tab = table.copy(OTEX_SPECIAL_RESOURCES.liquid_materials) + for liquid_mat,_ in pairs(liquid_tab) do + GAME.MATERIALS[liquid_mat]={t=_.t, f=_.f} + end + local liquid_defs = table.copy(OTEX_SPECIAL_RESOURCES.liquid_defs) + for liquid,_ in pairs(liquid_defs) do + GAME.LIQUIDS[liquid]=liquid_defs[liquid] + end + local liquid_themes = table.copy(OTEX_SPECIAL_RESOURCES.liquid_themes) + for theme,l_tab in pairs(liquid_themes) do + for liquid,prob in pairs(l_tab) do + GAME.THEMES[theme].liquids[liquid] = prob + end + end end From c92d256e6609bb38b45a9e0c6e9676587a875d02 Mon Sep 17 00:00:00 2001 From: MsrSgtShooterPerson Date: Thu, 12 Sep 2024 22:32:56 +0800 Subject: [PATCH 2/3] Added more exclusions to some OTEX themes. --- .../fabs/item/dem_secret_closets_urban.lua | 2 +- modules/zdoom_otex.lua | 81 ++++++++++++------- 2 files changed, 51 insertions(+), 32 deletions(-) diff --git a/games/doom/fabs/item/dem_secret_closets_urban.lua b/games/doom/fabs/item/dem_secret_closets_urban.lua index 337683bc6a..aaa82a02d7 100644 --- a/games/doom/fabs/item/dem_secret_closets_urban.lua +++ b/games/doom/fabs/item/dem_secret_closets_urban.lua @@ -198,7 +198,7 @@ PREFABS.Item_secret_yard_closet1 = deep = 16, over = -16, - prob = 350, + prob = 150, key = "secret", diff --git a/modules/zdoom_otex.lua b/modules/zdoom_otex.lua index 17625360db..98960d44d8 100644 --- a/modules/zdoom_otex.lua +++ b/modules/zdoom_otex.lua @@ -79,7 +79,12 @@ OTEX_EXCLUSIONS = -- just plain weird CRPT = "textures", TRAK = "all", - KEYS = "all" + KEYS = "all", + EFCT = "all", + + -- too colorful + TECH = "textures", + FADE = "all" } -- some textures that must be removed manually from the DB @@ -205,6 +210,8 @@ OTEX_DIRECT_REMOVALS = { textures = { + "OVENTE01", + "OVENTE02", "OVENTE03", "OVENTE04", "OVENTE13", @@ -231,20 +238,27 @@ OTEX_DIRECT_REMOVALS = OTEX_THEME_RESTRICTIONS = { - MRBL = {"hell"}, - BONE = {"hell"}, - FLSH = {"hell"}, - HELL = {"hell"}, - PALC = {"hell", "urban"}, - - BRCK = {"hell", "urban"}, - BOOK = {"hell", "urban"}, - WOOD = {"hell", "urban"}, + MRBL = {"tech"}, + BONE = {"tech", "urban"}, + FLSH = {"tech", "urban"}, + HELL = {"tech", "urban"}, + SKIN = {"tech"}, + CMBD = {"tech"}, + + FNCY = {"tech"}, + PALC = {"tech"}, + STCC = {"tech"}, + + BRCK = {"tech"}, + BOOK = {"tech"}, + WOOD = {"tech"}, + TUDR = {"tech"}, - SOIL = {"hell", "urban"}, - ROCK = {"hell"}, - SAND = {"hell"}, - DIRT = {"hell"} + STON = {"tech"}, + SOIL = {"tech"}, + ROCK = {"tech", "urban"}, + SAND = {"tech", "urban"}, + DIRT = {"tech", "urban"} } OTEX_SPECIAL_RESOURCES = @@ -539,22 +553,24 @@ function OTEX_PROC_MODULE.synthesize_procedural_themes() if OTEX_EXCLUSIONS[group] and OTEX_EXCLUSIONS[group] == "all" then -- do nothing else - if OTEX_THEME_RESTRICTIONS[group] - and check_elem(OTEX_THEME_RESTRICTIONS[group], theme) then - if resource_tab[group].has_textures == true - and not OTEX_EXCLUSIONS[group] then - local prob = table.size(resource_tab[group].textures) - group_pick_list[theme].textures[group] = prob + if OTEX_THEME_RESTRICTIONS then + if OTEX_THEME_RESTRICTIONS[group] + and check_elem(OTEX_THEME_RESTRICTIONS[group], theme) then + -- do nothing + else + if resource_tab[group].has_textures == true + and not OTEX_EXCLUSIONS[group] then + local prob = table.size(resource_tab[group].textures) + group_pick_list[theme].textures[group] = prob + end + + if resource_tab[group].has_flats == true + and not OTEX_EXCLUSIONS[group] then + local prob = table.size(resource_tab[group].flats) + group_pick_list[theme].flats[group] = prob + end end - - if resource_tab[group].has_flats == true - and not OTEX_EXCLUSIONS[group] then - local prob = table.size(resource_tab[group].flats) - group_pick_list[theme].flats[group] = prob - end - end - - if not OTEX_THEME_RESTRICTIONS[group] then + else if resource_tab[group].has_textures == true and not OTEX_EXCLUSIONS[group] then local prob = table.size(resource_tab[group].textures) @@ -566,7 +582,8 @@ function OTEX_PROC_MODULE.synthesize_procedural_themes() local prob = table.size(resource_tab[group].flats) group_pick_list[theme].flats[group] = prob end - end + end + end end @@ -628,9 +645,11 @@ function OTEX_PROC_MODULE.synthesize_procedural_themes() local side_tex, group_pick -- hack fix to assign DMD flats a side texture rather than just a default if string.find(group_name, "DMD") + or string.find(group_name, "PAVE") or string.find(group_name, "TL16") or string.find(group_name, "TL32") - or string.find(group_name, "TLMX") then + or string.find(group_name, "TLMX") + or string.find(group_name, "TRHX") then group_pick = rand.key_by_probs(group_pick_list["urban"].textures) side_tex = rand.pick(resource_tab[group_pick].textures) else From a5f0f8a1c1f9775a2ba0ccd0fa86ca9dfe362a06 Mon Sep 17 00:00:00 2001 From: MsrSgtShooterPerson Date: Wed, 18 Sep 2024 02:25:06 +0800 Subject: [PATCH 3/3] Fixed rail height settings on various OTEX fences, fixed material combinations for more flats. --- .../fabs/item/dem_secret_closets_urban.lua | 2 +- .../doom/fabs/joiner/scionox_secret_lift.lua | 2 +- modules/zdoom_otex.lua | 20 ++++++++++--------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/games/doom/fabs/item/dem_secret_closets_urban.lua b/games/doom/fabs/item/dem_secret_closets_urban.lua index aaa82a02d7..a832273517 100644 --- a/games/doom/fabs/item/dem_secret_closets_urban.lua +++ b/games/doom/fabs/item/dem_secret_closets_urban.lua @@ -198,7 +198,7 @@ PREFABS.Item_secret_yard_closet1 = deep = 16, over = -16, - prob = 150, + prob = 90, key = "secret", diff --git a/games/doom/fabs/joiner/scionox_secret_lift.lua b/games/doom/fabs/joiner/scionox_secret_lift.lua index 818f76b261..936757710e 100644 --- a/games/doom/fabs/joiner/scionox_secret_lift.lua +++ b/games/doom/fabs/joiner/scionox_secret_lift.lua @@ -5,7 +5,7 @@ PREFABS.Joiner_scionox_secret_lift = file = "joiner/scionox_secret_lift.wad", map = "MAP01", - prob = 50, + prob = 25, theme = "tech", key = "secret", style = "steepness", diff --git a/modules/zdoom_otex.lua b/modules/zdoom_otex.lua index 98960d44d8..4f6e208257 100644 --- a/modules/zdoom_otex.lua +++ b/modules/zdoom_otex.lua @@ -267,7 +267,7 @@ OTEX_SPECIAL_RESOURCES = { OFENCA01 = {t="OFENCA01", rail_h=128}, OFENCA02 = {t="OFENCA02", rail_h=128}, - OFENCB01 = {t="OFENCB01", rail_h=48}, + OFENCB01 = {t="OFENCB01", rail_h=56}, OFENCB02 = {t="OFENCB02", rail_h=64}, OFENCC01 = {t="OFENCC01", rail_h=128}, OFENCC64 = {t="OFENCC64", rail_h=64}, @@ -295,8 +295,8 @@ OTEX_SPECIAL_RESOURCES = OFENCG01 = {t="OFENCG01", rail_h=128}, OFENCG02 = {t="OFENCG02", rail_h=64}, - OFENCH01 = {t="OFENCH01", rail_h=128}, - OFENCH02 = {t="OFENCH02", rail_h=128}, + OFENCH01 = {t="OFENCH01", rail_h=96}, + OFENCH02 = {t="OFENCH02", rail_h=96}, OFENCJ11 = {t="OFENCJ11", rail_h=128}, @@ -313,10 +313,10 @@ OTEX_SPECIAL_RESOURCES = OFENCN11 = {t="OFENCN11", rail_h=128}, OFENCN12 = {t="OFENCN12", rail_h=128}, - ORAILA01 = {t="ORAILA01", rail_h=48}, - ORAILA02 = {t="ORAILA02", rail_h=48}, - ORAILA03 = {t="ORAILA03", rail_h=48}, - ORAILB01 = {t="ORAILB01", rail_h=48}, + ORAILA01 = {t="ORAILA01", rail_h=32}, + ORAILA02 = {t="ORAILA02", rail_h=32}, + ORAILA03 = {t="ORAILA03", rail_h=32}, + ORAILB01 = {t="ORAILB01", rail_h=32}, OBKMTA92 = {t="OBKMTA92", rail_h=128}, OBKMTA93 = {t="OBKMTA93", rail_h=128}, @@ -649,8 +649,10 @@ function OTEX_PROC_MODULE.synthesize_procedural_themes() or string.find(group_name, "TL16") or string.find(group_name, "TL32") or string.find(group_name, "TLMX") - or string.find(group_name, "TRHX") then - group_pick = rand.key_by_probs(group_pick_list["urban"].textures) + or string.find(group_name, "TRHX") + or string.find(group_name, "BSKT") + or string.find(group_name, "LLLL") then + group_pick = rand.key_by_probs(group_pick_list["urban"].textures) side_tex = rand.pick(resource_tab[group_pick].textures) else side_tex = "BROWNHUG"