From 58b1a7ebba329f209120a93addb2ffb878b2881c Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Thu, 8 Sep 2022 13:56:42 +0200 Subject: [PATCH] Move canvas stuff to separate files/folders. --- animdefs.misc | 2 + gldefs.mortalrifle | 10 ++ language.version | 4 +- models/canvas/MortalBG.png | Bin 0 -> 7404 bytes models/{ => canvas}/QuadLEDBase.png | Bin models/{ => canvas}/QuadLEDCharge.png | Bin models/{ => canvas}/QuadLEDRound.png | Bin models/{ => canvas}/SheenLEDBar.png | Bin models/{ => canvas}/SheenLEDBase.png | Bin models/{ => canvas}/SheenLEDNums.png | Bin models/{ => canvas}/SheenLEDSpeed.png | Bin zscript.txt | 2 + zscript/dlc1/swwm_dlcweapons_canvas.zsc | 133 ++++++++++++++++++++++++ zscript/dlc1/swwm_heavymahsheengun.zsc | 32 ------ zscript/dlc1/swwm_notashotgun.zsc | 42 -------- zscript/weapons/swwm_weapons_canvas.zsc | 10 ++ 16 files changed, 159 insertions(+), 76 deletions(-) create mode 100644 models/canvas/MortalBG.png rename models/{ => canvas}/QuadLEDBase.png (100%) rename models/{ => canvas}/QuadLEDCharge.png (100%) rename models/{ => canvas}/QuadLEDRound.png (100%) rename models/{ => canvas}/SheenLEDBar.png (100%) rename models/{ => canvas}/SheenLEDBase.png (100%) rename models/{ => canvas}/SheenLEDNums.png (100%) rename models/{ => canvas}/SheenLEDSpeed.png (100%) create mode 100644 zscript/dlc1/swwm_dlcweapons_canvas.zsc create mode 100644 zscript/weapons/swwm_weapons_canvas.zsc diff --git a/animdefs.misc b/animdefs.misc index 778ee3d99..a5369c4eb 100644 --- a/animdefs.misc +++ b/animdefs.misc @@ -1,3 +1,5 @@ canvastexture LOGOFADE 4 4 canvastexture SHEENLED 128 128 canvastexture QUADRLED 64 64 +canvastexture MORTLED1 256 128 +canvastexture MORTLED2 64 16 diff --git a/gldefs.mortalrifle b/gldefs.mortalrifle index 745b8ee1d..c5b067bea 100644 --- a/gldefs.mortalrifle +++ b/gldefs.mortalrifle @@ -100,3 +100,13 @@ HardwareShader Texture "models/MortalGrenade_Used.png" Define "RIMFACT" = "1.2" Define "RIMSTEP" = ".2" } +HardwareShader Texture "models/MortalLED.png" +{ + Shader "shaders/glsl/BrightCanvas.fp" + Texture "scrtex" "MORTLED1" +} +HardwareShader Texture "models/MortalLED2.png" +{ + Shader "shaders/glsl/BrightCanvas.fp" + Texture "scrtex" "MORTLED2" +} diff --git a/language.version b/language.version index 641dedbc1..6cc2dd220 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r414 \cu(Thu 8 Sep 00:18:01 CEST 2022)\c-"; -SWWM_SHORTVER="\cw1.3pre r414 \cu(2022-09-08 00:18:01)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r415 \cu(Thu 8 Sep 13:56:42 CEST 2022)\c-"; +SWWM_SHORTVER="\cw1.3pre r415 \cu(2022-09-08 13:56:42)\c-"; diff --git a/models/canvas/MortalBG.png b/models/canvas/MortalBG.png new file mode 100644 index 0000000000000000000000000000000000000000..d3222f095264afdaa5034c49b7cef6454f56676b GIT binary patch literal 7404 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 literal 0 HcmV?d00001 diff --git a/models/QuadLEDBase.png b/models/canvas/QuadLEDBase.png similarity index 100% rename from models/QuadLEDBase.png rename to models/canvas/QuadLEDBase.png diff --git a/models/QuadLEDCharge.png b/models/canvas/QuadLEDCharge.png similarity index 100% rename from models/QuadLEDCharge.png rename to models/canvas/QuadLEDCharge.png diff --git a/models/QuadLEDRound.png b/models/canvas/QuadLEDRound.png similarity index 100% rename from models/QuadLEDRound.png rename to models/canvas/QuadLEDRound.png diff --git a/models/SheenLEDBar.png b/models/canvas/SheenLEDBar.png similarity index 100% rename from models/SheenLEDBar.png rename to models/canvas/SheenLEDBar.png diff --git a/models/SheenLEDBase.png b/models/canvas/SheenLEDBase.png similarity index 100% rename from models/SheenLEDBase.png rename to models/canvas/SheenLEDBase.png diff --git a/models/SheenLEDNums.png b/models/canvas/SheenLEDNums.png similarity index 100% rename from models/SheenLEDNums.png rename to models/canvas/SheenLEDNums.png diff --git a/models/SheenLEDSpeed.png b/models/canvas/SheenLEDSpeed.png similarity index 100% rename from models/SheenLEDSpeed.png rename to models/canvas/SheenLEDSpeed.png diff --git a/zscript.txt b/zscript.txt index 3230521ec..90d42fb69 100644 --- a/zscript.txt +++ b/zscript.txt @@ -123,6 +123,7 @@ version "4.9" #include "zscript/weapons/swwm_deathlydeathcannon.zsc" #include "zscript/weapons/swwm_deathlydeathcannon_fx.zsc" #include "zscript/weapons/swwm_weapons_hud.zsc" +#include "zscript/weapons/swwm_weapons_canvas.zsc" // monsters #include "zscript/swwm_monsters.zsc" // DLC1 - Weapon Set @@ -148,6 +149,7 @@ version "4.9" #include "zscript/dlc1/swwm_ultimate.zsc" #include "zscript/dlc1/swwm_ultimate_fx.zsc" #include "zscript/dlc1/swwm_dlcweapons_hud.zsc" +#include "zscript/dlc1/swwm_dlcweapons_canvas.zsc" // DLC2 - Game Set #include "zscript/dlc2/swwm_demoland.zsc" #include "zscript/dlc2/swwm_demoshmup.zsc" diff --git a/zscript/dlc1/swwm_dlcweapons_canvas.zsc b/zscript/dlc1/swwm_dlcweapons_canvas.zsc new file mode 100644 index 000000000..c3f94ac70 --- /dev/null +++ b/zscript/dlc1/swwm_dlcweapons_canvas.zsc @@ -0,0 +1,133 @@ +// RenderTexture code for DLC weapons + +// Plasma Blaster +extend Class PlasmaBlast +{ + override void RenderTexture( RenderEvent e ) + { + // ammo display + // dynamic glow + } +} + +extend Class DualPlasmaBlast +{ + override void RenderTexture( RenderEvent e ) + { + // render right-hand weapon's scripted textures as well + SWWMWeapon(SisterWeapon).RenderTexture(e); + // ammo display + // dynamic glow + } +} + +// Sheen HMG +extend Class HeavyMahSheenGun +{ + transient ui Canvas AmmoLed; + ui TextureID AmmoLedBase, AmmoLedBar, AmmoLedSpeed, AmmoLedNums; + + override void RenderTexture( RenderEvent e ) + { + if ( !AmmoLed ) AmmoLed = TexMan.GetCanvas("SHEENLED"); + if ( !AmmoLedBase ) AmmoLedBase = TexMan.CheckForTexture("models/canvas/SheenLEDBase.png",TexMan.Type_Any); + if ( !AmmoLedBar ) AmmoLedBar = TexMan.CheckForTexture("models/canvas/SheenLEDBar.png",TexMan.Type_Any); + if ( !AmmoLedSpeed ) AmmoLedSpeed = TexMan.CheckForTexture("models/canvas/SheenLEDSpeed.png",TexMan.Type_Any); + if ( !AmmoLedNums ) AmmoLedNums = TexMan.CheckForTexture("models/canvas/SheenLEDNums.png",TexMan.Type_Any); + int d1 = Ammo1.Amount%10; + int d2 = (Ammo1.Amount/10)%10; + int d3 = (Ammo1.Amount/100)%10; + AmmoLed.DrawTexture(AmmoLedBase,false,0,0,DTA_Color,0xFF00FF00); + AmmoLed.DrawTexture(AmmoLedSpeed,false,16,16,DTA_SrcHeight,16,DTA_DestHeight,16,DTA_Color,(firespeed==0)?0xFF80FF00:0xFF408000,DTA_LegacyRenderStyle,STYLE_Add); + AmmoLed.DrawTexture(AmmoLedSpeed,false,48,16,DTA_SrcY,16,DTA_SrcHeight,16,DTA_DestHeight,16,DTA_Color,(firespeed==1)?0xFFFFFF00:0xFF808000,DTA_LegacyRenderStyle,STYLE_Add); + AmmoLed.DrawTexture(AmmoLedSpeed,false,80,16,DTA_SrcY,32,DTA_SrcHeight,16,DTA_DestHeight,16,DTA_Color,(firespeed==2)?0xFFFF8000:0xFF804000,DTA_LegacyRenderStyle,STYLE_Add); + if ( incooldown ) + AmmoLed.DrawTexture(AmmoLedNums,false,16,32,DTA_SrcX,64,DTA_SrcY,64,DTA_SrcWidth,96,DTA_SrcHeight,64,DTA_DestWidth,96,DTA_DestHeight,64,DTA_Color,((gametic%8)>=4)?0xFFFF0000:0xFF800000,DTA_LegacyRenderStyle,STYLE_Add); + else + { + Vector3 rgb = SWWMUtility.HSVtoRGB(((Ammo1.Amount/4.)/Ammo1.MaxAmount,1.,1.)); + Color numcol = Color(255,int(rgb.x*255),int(rgb.y*255),int(rgb.z*255)); + Color blkcol = Color(255,int(rgb.x*128),int(rgb.y*128),int(rgb.z*128)); + AmmoLed.DrawTexture(AmmoLedNums,false,16,32,DTA_SrcX,(d3%8)*32,DTA_SrcY,(d3/8)*64,DTA_SrcWidth,32,DTA_SrcHeight,64,DTA_DestWidth,32,DTA_DestHeight,64,DTA_Color,(!d3)?blkcol:numcol,DTA_LegacyRenderStyle,STYLE_Add); + AmmoLed.DrawTexture(AmmoLedNums,false,48,32,DTA_SrcX,(d2%8)*32,DTA_SrcY,(d2/8)*64,DTA_SrcWidth,32,DTA_SrcHeight,64,DTA_DestWidth,32,DTA_DestHeight,64,DTA_Color,(!d3&&!d2)?blkcol:numcol,DTA_LegacyRenderStyle,STYLE_Add); + AmmoLed.DrawTexture(AmmoLedNums,false,80,32,DTA_SrcX,(d1%8)*32,DTA_SrcY,(d1/8)*64,DTA_SrcWidth,32,DTA_SrcHeight,64,DTA_DestWidth,32,DTA_DestHeight,64,DTA_Color,(!d3&&!d2&&!d1)?blkcol:numcol,DTA_LegacyRenderStyle,STYLE_Add); + } + double ht = barrelheat*.96; + AmmoLed.DrawTexture(AmmoLedBar,false,16,100,DTA_SrcWidth,ht,DTA_DestWidthF,ht,DTA_Color,0xFFFF0000,DTA_LegacyRenderStyle,STYLE_Add); + } +} + +// Quadravol +extend Class Quadravol +{ + transient ui Canvas AmmoLed; + ui TextureID AmmoLedBase, AmmoLedRound, AmmoLedCharge; + + override void RenderTexture( RenderEvent e ) + { + if ( !AmmoLed ) AmmoLed = TexMan.GetCanvas("QUADRLED"); + if ( !AmmoLedBase ) AmmoLedBase = TexMan.CheckForTexture("models/canvas/QuadLEDBase.png",TexMan.Type_Any); + if ( !AmmoLedRound ) AmmoLedRound = TexMan.CheckForTexture("models/canvas/QuadLEDRound.png",TexMan.Type_Any); + if ( !AmmoLedCharge ) AmmoLedCharge = TexMan.CheckForTexture("models/canvas/QuadLEDCharge.png",TexMan.Type_Any); + AmmoLed.Clear(0,0,64,64,0xFF101033); + AmmoLed.DrawTexture(AmmoLedBase,false,0,0,DTA_LegacyRenderStyle,STYLE_Shaded,DTA_FillColor,0xFF00FFFF); + Color col; + switch ( chargelevel ) + { + default: + col = 0xFF00FF00; + break; + case 1: + case 9: + col = 0xFF0080FF; + break; + case 2: + case 8: + col = 0xFF0000FF; + break; + case 3: + case 7: + col = 0xFF8000FF; + break; + case 4: + case 6: + col = 0xFFFF0080; + break; + case 5: + col = 0xFFFF0000; + break; + } + AmmoLed.DrawTexture(AmmoLedCharge,false,12,4,DTA_SrcX,(chargelevel%4)*64,DTA_SrcY,(chargelevel/4)*64,DTA_SrcWidth,40,DTA_SrcHeight,40,DTA_DestWidth,40,DTA_DestHeight,40,DTA_LegacyRenderStyle,STYLE_Shaded,DTA_FillColor,col); + for ( int i=0; i=4)?0xFFFF0000:0xFF800000,DTA_LegacyRenderStyle,STYLE_Add); - else - { - Vector3 rgb = SWWMUtility.HSVtoRGB(((Ammo1.Amount/4.)/Ammo1.MaxAmount,1.,1.)); - Color numcol = Color(255,int(rgb.x*255),int(rgb.y*255),int(rgb.z*255)); - Color blkcol = Color(255,int(rgb.x*128),int(rgb.y*128),int(rgb.z*128)); - AmmoLed.DrawTexture(AmmoLedNums,false,16,32,DTA_SrcX,(d3%8)*32,DTA_SrcY,(d3/8)*64,DTA_SrcWidth,32,DTA_SrcHeight,64,DTA_DestWidth,32,DTA_DestHeight,64,DTA_Color,(!d3)?blkcol:numcol,DTA_LegacyRenderStyle,STYLE_Add); - AmmoLed.DrawTexture(AmmoLedNums,false,48,32,DTA_SrcX,(d2%8)*32,DTA_SrcY,(d2/8)*64,DTA_SrcWidth,32,DTA_SrcHeight,64,DTA_DestWidth,32,DTA_DestHeight,64,DTA_Color,(!d3&&!d2)?blkcol:numcol,DTA_LegacyRenderStyle,STYLE_Add); - AmmoLed.DrawTexture(AmmoLedNums,false,80,32,DTA_SrcX,(d1%8)*32,DTA_SrcY,(d1/8)*64,DTA_SrcWidth,32,DTA_SrcHeight,64,DTA_DestWidth,32,DTA_DestHeight,64,DTA_Color,(!d3&&!d2&&!d1)?blkcol:numcol,DTA_LegacyRenderStyle,STYLE_Add); - } - double ht = barrelheat*.96; - AmmoLed.DrawTexture(AmmoLedBar,false,16,100,DTA_SrcWidth,ht,DTA_DestWidthF,ht,DTA_Color,0xFFFF0000,DTA_LegacyRenderStyle,STYLE_Add); - } - override void HudTick() { Super.HudTick(); diff --git a/zscript/dlc1/swwm_notashotgun.zsc b/zscript/dlc1/swwm_notashotgun.zsc index a403da627..2660fd834 100644 --- a/zscript/dlc1/swwm_notashotgun.zsc +++ b/zscript/dlc1/swwm_notashotgun.zsc @@ -11,50 +11,8 @@ Class Quadravol : SWWMWeapon Property ClipCount : clipcount; - transient ui Canvas AmmoLed; - ui TextureID AmmoLedBase, AmmoLedRound, AmmoLedCharge; - int wastecycle; // for easter egg - override void RenderTexture( RenderEvent e ) - { - if ( !AmmoLed ) AmmoLed = TexMan.GetCanvas("QUADRLED"); - if ( !AmmoLedBase ) AmmoLedBase = TexMan.CheckForTexture("models/QuadLEDBase.png",TexMan.Type_Any); - if ( !AmmoLedRound ) AmmoLedRound = TexMan.CheckForTexture("models/QuadLEDRound.png",TexMan.Type_Any); - if ( !AmmoLedCharge ) AmmoLedCharge = TexMan.CheckForTexture("models/QuadLEDCharge.png",TexMan.Type_Any); - AmmoLed.Clear(0,0,64,64,0xFF101033); - AmmoLed.DrawTexture(AmmoLedBase,false,0,0,DTA_LegacyRenderStyle,STYLE_Shaded,DTA_FillColor,0xFF00FFFF); - Color col; - switch ( chargelevel ) - { - default: - col = 0xFF00FF00; - break; - case 1: - case 9: - col = 0xFF0080FF; - break; - case 2: - case 8: - col = 0xFF0000FF; - break; - case 3: - case 7: - col = 0xFF8000FF; - break; - case 4: - case 6: - col = 0xFFFF0080; - break; - case 5: - col = 0xFFFF0000; - break; - } - AmmoLed.DrawTexture(AmmoLedCharge,false,12,4,DTA_SrcX,(chargelevel%4)*64,DTA_SrcY,(chargelevel/4)*64,DTA_SrcWidth,40,DTA_SrcHeight,40,DTA_DestWidth,40,DTA_DestHeight,40,DTA_LegacyRenderStyle,STYLE_Shaded,DTA_FillColor,col); - for ( int i=0; i0)||(chambered&&!charged)||(clipcount>0)||(Ammo1.Amount > 0); diff --git a/zscript/weapons/swwm_weapons_canvas.zsc b/zscript/weapons/swwm_weapons_canvas.zsc new file mode 100644 index 000000000..2e3030aa8 --- /dev/null +++ b/zscript/weapons/swwm_weapons_canvas.zsc @@ -0,0 +1,10 @@ +// RenderTexture code for all weapons + +// Ynykron Artifact +extend Class Ynykron +{ + // TODO for 1.4: re-add the glowing red indicators from SWWM Platinum + override void RenderTexture( RenderEvent e ) + { + } +}