From fb835a478f1cf567a0501a22b785dfa1777b1bea Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Mon, 28 Apr 2025 10:08:05 +0200 Subject: [PATCH] README update, a couple other things, and more partial progress on the Visual Thinker migration. --- README.md | 10 ++- language.version | 4 +- models/modelnotes.txt | 31 ++++---- zmapinfo.txt | 14 ++-- zscript/items/swwm_collectibles_gesture.zsc | 6 +- zscript/swwm_gesture.zsc | 6 +- zscript/swwm_gesture_fx.zsc | 82 ++++++++------------- 7 files changed, 68 insertions(+), 85 deletions(-) diff --git a/README.md b/README.md index f54369b64..f45c715b1 100644 --- a/README.md +++ b/README.md @@ -54,21 +54,25 @@ Recommended settings are as follows: - **Textures:** Filtering set to either "`None`" or "`None (Trilinear)`". Textures are meant to be chunky. - **Post-processing:** - Bloom is recommended at minimum, FXAA should be fine as well. - - Only enable SSAO if you have beefy hardware, it's expensive *(though it doesn't look that great)*. + - Only enable SSAO if you have *REALLY* beefy hardware, it's expensive *(though it doesn't look that great)*. - It is not advised to use VKDoom's tonemap filters, as they can cause glitches with some visual effects. - For other post-processing, use [MariFX](https://git.marisa.pw/OrdinaryMagician/marifx_m) *(shameless self-plug)*. - **Lighting:** - Dynamic lights must be enabled, or you'll be missing out on a lot. - It's advised to use "`Classic`" sector lighting, as other modes may over-brighten weapon models. - If affordable by the hardware, raytraced shadows are recommended *(don't use the "precise" options unless you have a 30xx series card or higher)*. + - With RT shadows, keeping the shadow quality at "`Nearest`" is recommended. That setting has a much higher performance hit when not using regular shadow mapping. + - "`GPU (Per-pixel)`" sprite lighting is also recommended on high-end hardware, though do note that this may cause performance issues on slaughtermaps *(I mean, that's kind of expected)*. - **Audio:** - Increasing sound channels to their maximum limit is advised. - - HRTF is not recommended, it may result in excessive CPU usage. + - HRTF is not recommended, it may result in excessive CPU usage and lower quality full-stereo SFX. -This was verified to run smoothly on the Steam Deck *(rarely if ever dips below 60 FPS in combat unless playing geometrically dense maps)*. Still, it is not really possible to bind *ALL* controls beyond the bare essentials, *(this might be addressed in the future)*, and setting up VKDoom itself on the Deck is complicated as well, but the devs are working on that, [last I checked](https://bsky.app/profile/vkdoom.bsky.social/post/3lgarbh5phs2s). +This was verified to run smoothly on the Steam Deck *(rarely if ever dips below 60 FPS in combat unless playing geometrically dense maps)*. Still, it is not really possible to bind *ALL* controls beyond the bare essentials, *(this might be addressed in the future)*, note that for the time being, VKDoom has to be installed on the Deck through an [unofficial flatpak repo](https://github.com/fpiesche/flatpak-builds). *(Testers are welcome for narrowing down more precise hardware requirements)* +*(If you're going to be playing slaughtermaps with this, these specs and settings may not be enough, duh)* + --- ## The Demolitionist diff --git a/language.version b/language.version index 73f27c918..bbd72b5fd 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r1211 \cu(vie 04 abr 2025 20:51:37 CEST)\c-"; -SWWM_SHORTVER="\cw1.3pre r1211 \cu(2025-04-04 20:51:37)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r1212 \cu(lun 28 abr 2025 10:08:05 CEST)\c-"; +SWWM_SHORTVER="\cw1.3pre r1212 \cu(2025-04-28 10:08:05)\c-"; diff --git a/models/modelnotes.txt b/models/modelnotes.txt index d149cc705..2b032b220 100644 --- a/models/modelnotes.txt +++ b/models/modelnotes.txt @@ -15,23 +15,23 @@ Weapon models: Ammo models: x Plasma Ammo - SMW.05 Ammo - - Single - - Beta speedloader - - Gamma mag + - 1/2/3 Round(s) + - Beta Speedloader + - Gamma Mag x Sheen Ammo - x 1/2/3 Rounds + x 1/2/3 Round(s) x 10 Pack x 50 Box x Quadravol Ammo ½ Sparkster Ammo - ½ Kinylum Round - ½ Nokron Round + ½ 1/2/3 Kinylum Round(s) + ½ 1/2/3 Nokron Round(s) x Mortal Rifle Ammo - x Round + x 1/2/3/5 Round(s) x Mag x Grenade - Ray-Khom Ammo - - Single + - 1/2/5 Round(s) - Mag - Rafan-Kos Ammo - Pod @@ -42,10 +42,10 @@ Collectible models: # Misc -Gib models: - - Meat chunk [0/3] - - Meat chunk w/ bone [0/3] - - Nondescript organ [0/2] +Less generic gib models: + - Meat Chunk [0/3] + - Meat Chunk w/ Bone [0/3] + - Heart/Liver/Stomach [0/3] Gag gib models: x Steak @@ -68,8 +68,11 @@ New stuff: - Battle-Boi Sentry Extra models: - - Hexen keys - - Hexen puzzle items + - Hexen keys [0/11] + - Hexen puzzle items [0/9] + +Collectible models: + - Blåhaj Character models: - White Lady diff --git a/zmapinfo.txt b/zmapinfo.txt index 4d302abcd..f32658331 100644 --- a/zmapinfo.txt +++ b/zmapinfo.txt @@ -124,22 +124,26 @@ GameInfo "graphics/M_DEMOCHAN_QUADRAVOL.png", "graphics/M_DEMOCHAN_MISTER.png", // preload canvas textures for some weapons + "models/PlasmaLED_L.png", + "models/PlasmaLED_R.png", "models/canvas/NukuriFnt.png", - "models/canvas/PlasmaLED_L.png", - "models/canvas/PlasmaLED_R.png", - "models/canvas/SheenLEDBar.png", + "models/SheenLED.png", "models/canvas/SheenLEDBase.png", + "models/canvas/SheenLEDBar.png", "models/canvas/SheenLEDNums.png", "models/canvas/SheenLEDSpeed.png", + "models/QuadLED.png", "models/canvas/QuadLEDBase.png", "models/canvas/QuadLEDCharge.png", "models/canvas/QuadLEDRound.png", "models/canvas/RayZap.png", + "models/MortalLED.png", "models/canvas/MortalBG.png", - "models/canvas/MortalFireIcons.png", - "models/canvas/MortalFlatChars.png", "models/canvas/MortalFrameTex.png", + "models/canvas/MortalFireIcons.png", "models/canvas/MortalGrenadeIcons.png", + "models/MortalLED2.png", + "models/canvas/MortalFlatChars.png", // preload a few random materials to ensure shaders are compiled // CanvasProxy.fp, NewLogoAnimated.fp and TexFilterHack.fp // should already be handled by previous textures in the list diff --git a/zscript/items/swwm_collectibles_gesture.zsc b/zscript/items/swwm_collectibles_gesture.zsc index 738270812..d2890db79 100644 --- a/zscript/items/swwm_collectibles_gesture.zsc +++ b/zscript/items/swwm_collectibles_gesture.zsc @@ -286,11 +286,7 @@ Class KirinPlushGesture : SWWMItemGesture SWWMHandler.DoFlash(self,Color(24,255,128,128),30); int numpt = Random[ExploS](6,9); for ( int i=0; i 0 ) - { - freezetics--; - return; - } - if ( isFrozen() ) return; - A_FadeOut(.01); scale *= .95; - } - States - { - Spawn: - DOKI A -1 Bright; - Stop; + Alpha = max(0.,Alpha-.01); + if ( Alpha <= 0. ) + Destroy(); } } -Class LoveHeartSparkle : SWWMNonInteractiveActor +Class LoveHeartSparkle : SWWMStaticSprite { - Default + double scalestep, fadestep; + + override void SetupSprite() { - Scale .03; - +FORCEXYBILLBOARD; + Super.SetupSprite(); + texture = TexMan.CheckForTexture("DOKIA0"); + Scale = (.03,.03); + Alpha = .5; } override void PostBeginPlay() { Scale *= FRandom[ExploS](.75,1.5); - specialf1 = FRandom[ExploS](.95,.98); - specialf2 = FRandom[ExploS](.01,.03); - vel = SWWMUtility.Vec3FromAngles(angle,pitch)*FRandom[ExploS](2,8); + scalestep = FRandom[ExploS](.95,.98); + fadestep = FRandom[ExploS](.01,.03); + double ang = FRandom[ExploS](0,360); + double pt = FRandom[ExploS](-90,90); + vel = SWWMUtility.Vec3FromAngles(ang,pt)*FRandom[ExploS](2,8); } - override void Tick() + override void OnTick() { - if ( freezetics > 0 ) - { - freezetics--; - return; - } - if ( isFrozen() ) return; - A_SetScale(scale.x*specialf1); - A_FadeOut(specialf2); Vector3 dir = vel; double magvel = dir.length(); magvel *= .99; @@ -60,13 +49,10 @@ Class LoveHeartSparkle : SWWMNonInteractiveActor dir += .2*SWWMUtility.Vec3FromAngles(FRandom[ExploS](0,360),FRandom[ExploS](-90,90)); vel = dir.unit()*magvel; } - SetOrigin(level.Vec3Offset(pos,vel),true); - } - States - { - Spawn: - DOKI A -1 Bright; - Stop; + Scale *= scalestep; + Alpha = max(0.,Alpha-fadestep); + if ( Alpha <= 0. ) + Destroy(); } } @@ -188,16 +174,12 @@ Class LoveHeart : Actor for ( int i=2; i<6; i++ ) { Vector3 dir2 = vel.unit(); - let t = Spawn('LoveHeartTrail',level.Vec3Offset(pos,-dir2*steppy*i)); + let t = SWWMStaticSprite.SpawnAt('LoveHeartTrail',level.Vec3Offset(pos,-dir2*steppy*i)); t.scale = scale; } int numpt = Random[ExploS](1,3); for ( int i=0; i