diff --git a/language.version b/language.version index 071865fe7..23f159837 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r751 \cu(Fri 24 Feb 22:38:48 CET 2023)\c-"; -SWWM_SHORTVER="\cw1.3pre r751 \cu(2023-02-24 22:38:48)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r752 \cu(Tue 28 Feb 00:00:43 CET 2023)\c-"; +SWWM_SHORTVER="\cw1.3pre r752 \cu(2023-02-28 00:00:43)\c-"; diff --git a/modeldef/dlc1/hammer.txt b/modeldef/dlc1/hammer.txt index a177075e5..1fa1cfcd6 100644 --- a/modeldef/dlc1/hammer.txt +++ b/modeldef/dlc1/hammer.txt @@ -32,14 +32,14 @@ Model "ItamexHammer" { Path "models" - Model 1 "CombatHammer1st_d.3d" + Model 1 "CombatHammer1st.iqm" SurfaceSkin 1 0 "DemoTags.png" SurfaceSkin 1 1 "DemoArms.png" SurfaceSkin 1 2 "DemoSoft.png" SurfaceSkin 1 3 "CombatHammer.png" AngleOffset -90 - Scale -0.01 0.005 0.01 + Scale -128 64 128 // Still FrameIndex XZW2 A 1 0 diff --git a/modeldef/dlc1/mortalrifle.txt b/modeldef/dlc1/mortalrifle.txt index 17e1aa2fe..4f670c716 100644 --- a/modeldef/dlc1/mortalrifle.txt +++ b/modeldef/dlc1/mortalrifle.txt @@ -134,8 +134,7 @@ Model "MisterRifle" DONTCULLBACKFACES FrameIndex XZW1 A 0 0 - Model 0 "MortalRiflePickupBoltLock.iqm" - FrameIndex XZW1 B 0 0 + FrameIndex XZW1 B 0 1 } Model "MisterRifle" @@ -173,7 +172,7 @@ Model "MisterRifle" { Path "models" - Model 1 "MortalRifle1st_d.3d" + Model 1 "MortalRifle1st.iqm" SurfaceSkin 1 0 "DemoTags.png" SurfaceSkin 1 1 "DemoArms.png" SurfaceSkin 1 2 "DemoSoft.png" @@ -182,7 +181,8 @@ Model "MisterRifle" SurfaceSkin 1 5 "MortalLED2.png" SurfaceSkin 1 6 "MortalSight.png" - Scale -0.01 0.005 0.01 + AngleOffset -90 + Scale -128 64 128 //// UNLOCKED // Still / Deselect diff --git a/modeldef/dlc1/quadravol.txt b/modeldef/dlc1/quadravol.txt index 1f7d0d2c3..c079c2e06 100644 --- a/modeldef/dlc1/quadravol.txt +++ b/modeldef/dlc1/quadravol.txt @@ -35,11 +35,11 @@ Model "Quadravol" Model "Quadravol" { Path "models" - Model 2 "Quadravol1st_d.3d" - SurfaceSkin 2 5 "QuadCell.png" + Model 2 "Quadravol1st_Casing.iqm" // this was done very awkwardly + SurfaceSkin 2 0 "QuadCell.png" AngleOffset -90 - Scale -0.01 0.005 0.01 + Scale -128 64 128 // Eject FrameIndex XZWZ A 2 87 @@ -125,7 +125,7 @@ Model "Quadravol" Model "Quadravol" { Path "models" - Model 1 "Quadravol1st_d.3d" + Model 1 "Quadravol1st.iqm" SurfaceSkin 1 0 "DemoTags.png" SurfaceSkin 1 1 "DemoArms.png" SurfaceSkin 1 2 "DemoSoft.png" @@ -133,7 +133,7 @@ Model "Quadravol" SurfaceSkin 1 4 "QuadLED.png" AngleOffset -90 - Scale -0.01 0.005 0.01 + Scale -128 64 128 //// TWO HANDED // Still @@ -518,6 +518,6 @@ Model "Quadravol" FrameIndex XZWF J 1 377 FrameIndex XZWF K 1 378 FrameIndex XZWF L 1 379 - // Spin Skip (needed if we migrate to skeletal animation) + // Spin Skip (needed for skeletal animation) FrameIndex XZWF M 1 381 // Copy of frame 280 with rotation quat inverted } diff --git a/modeldef/dlc1/sheenhmg.txt b/modeldef/dlc1/sheenhmg.txt index 66ab1f619..b688b711c 100644 --- a/modeldef/dlc1/sheenhmg.txt +++ b/modeldef/dlc1/sheenhmg.txt @@ -85,69 +85,61 @@ Model "HeavyMahSheenGun" Offset 0 -60 -15 PitchOffset 90 - Scale -24 24 24 Skin 2 "SheenMuz0.png" - RollOffset 0 + Scale -24 24 24 FrameIndex XZW0 A 2 0 - RollOffset 120 - FrameIndex XZW0 B 2 0 - RollOffset 240 - FrameIndex XZW0 C 2 0 Scale -22 22 22 - Skin 2 "SheenMuz1.png" - RollOffset 0 - FrameIndex XZW0 D 2 0 - RollOffset 120 - FrameIndex XZW0 E 2 0 - RollOffset 240 - FrameIndex XZW0 F 2 0 + FrameIndex XZW0 B 2 0 Scale -20 20 20 + FrameIndex XZW0 C 2 0 + Skin 2 "SheenMuz1.png" + Scale -24 24 24 + FrameIndex XZW0 D 2 0 + Scale -22 22 22 + FrameIndex XZW0 E 2 0 + Scale -20 20 20 + FrameIndex XZW0 F 2 0 Skin 2 "SheenMuz2.png" - RollOffset 0 + Scale -24 24 24 FrameIndex XZW0 G 2 0 - RollOffset 120 + Scale -22 22 22 FrameIndex XZW0 H 2 0 - RollOffset 240 + Scale -20 20 20 FrameIndex XZW0 I 2 0 - Scale -18 18 18 Skin 2 "SheenMuz3.png" - RollOffset 0 + Scale -24 24 24 FrameIndex XZW0 J 2 0 - RollOffset 120 + Scale -22 22 22 FrameIndex XZW0 K 2 0 - RollOffset 240 + Scale -20 20 20 FrameIndex XZW0 L 2 0 - Scale -16 16 16 Skin 2 "SheenMuz4.png" - RollOffset 0 + Scale -24 24 24 FrameIndex XZW0 M 2 0 - RollOffset 120 + Scale -22 22 22 FrameIndex XZW0 N 2 0 - RollOffset 240 + Scale -20 20 20 FrameIndex XZW0 O 2 0 - Scale -14 14 14 Skin 2 "SheenMuz5.png" - RollOffset 0 + Scale -24 24 24 FrameIndex XZW0 P 2 0 - RollOffset 120 + Scale -22 22 22 FrameIndex XZW0 Q 2 0 - RollOffset 240 + Scale -20 20 20 FrameIndex XZW0 R 2 0 - Scale -12 12 12 Skin 2 "SheenMuz6.png" - RollOffset 0 + Scale -24 24 24 FrameIndex XZW0 S 2 0 - RollOffset 120 + Scale -22 22 22 FrameIndex XZW0 T 2 0 - RollOffset 240 + Scale -20 20 20 FrameIndex XZW0 U 2 0 - Scale -10 10 10 Skin 2 "SheenMuz7.png" - RollOffset 0 + Scale -24 24 24 FrameIndex XZW0 V 2 0 - RollOffset 120 + Scale -22 22 22 FrameIndex XZW0 W 2 0 - RollOffset 240 + Scale -20 20 20 FrameIndex XZW0 X 2 0 } @@ -155,14 +147,15 @@ Model "HeavyMahSheenGun" { Path "models" - Model 1 "SheenHMG1st_d.3d" + Model 1 "SheenHMG1st.iqm" SurfaceSkin 1 0 "DemoTags.png" SurfaceSkin 1 1 "DemoArms.png" SurfaceSkin 1 2 "DemoSoft.png" SurfaceSkin 1 3 "SheenHMG.png" SurfaceSkin 1 4 "SheenLED.png" - Scale -0.01 0.005 0.01 + AngleOffset -90 + Scale -128 64 128 Offset 0 -1 -2 // Still diff --git a/modeldef/items/itemgesture.txt b/modeldef/items/itemgesture.txt index 51a2f4d19..3af55441c 100644 --- a/modeldef/items/itemgesture.txt +++ b/modeldef/items/itemgesture.txt @@ -260,14 +260,14 @@ Model "MothPlushyGesture" Model "SayasMugGesture" { Path "models" - Model 0 "SayasMug1st_d.3d" + Model 0 "SayasMug1st.iqm" SurfaceSkin 0 0 "DemoTags.png" SurfaceSkin 0 1 "DemoArms.png" SurfaceSkin 0 2 "DemoSoft.png" SurfaceSkin 0 3 "SayasMug.png" AngleOffset -90 - Scale -0.005 0.0025 0.005 + Scale -64 32 64 // Base FrameIndex XZW1 A 0 0 diff --git a/models/CombatHammer.blend b/models/CombatHammer.blend index aadc00234..ce0120ee4 100644 Binary files a/models/CombatHammer.blend and b/models/CombatHammer.blend differ diff --git a/models/CombatHammer1st.blend b/models/CombatHammer1st.blend index 609c12ed1..4d0e591f6 100644 Binary files a/models/CombatHammer1st.blend and b/models/CombatHammer1st.blend differ diff --git a/models/CombatHammer1st.iqm b/models/CombatHammer1st.iqm new file mode 100644 index 000000000..88d303034 Binary files /dev/null and b/models/CombatHammer1st.iqm differ diff --git a/models/CombatHammer1st_a.3d b/models/CombatHammer1st_a.3d deleted file mode 100644 index af849d782..000000000 Binary files a/models/CombatHammer1st_a.3d and /dev/null differ diff --git a/models/CombatHammer1st_d.3d b/models/CombatHammer1st_d.3d deleted file mode 100644 index 3a129c3ea..000000000 Binary files a/models/CombatHammer1st_d.3d and /dev/null differ diff --git a/models/CombatHammerPickup.iqm b/models/CombatHammerPickup.iqm index b35d27331..226e22731 100644 Binary files a/models/CombatHammerPickup.iqm and b/models/CombatHammerPickup.iqm differ diff --git a/models/MortalRifle.blend b/models/MortalRifle.blend index 8b9819c68..c5bd186bd 100644 Binary files a/models/MortalRifle.blend and b/models/MortalRifle.blend differ diff --git a/models/MortalRifle1st.blend b/models/MortalRifle1st.blend index 9ea8c94db..a7f77f0e5 100644 Binary files a/models/MortalRifle1st.blend and b/models/MortalRifle1st.blend differ diff --git a/models/MortalRifle1st.iqm b/models/MortalRifle1st.iqm new file mode 100644 index 000000000..11d091e24 Binary files /dev/null and b/models/MortalRifle1st.iqm differ diff --git a/models/MortalRifle1st_a.3d b/models/MortalRifle1st_a.3d deleted file mode 100644 index 79a684110..000000000 Binary files a/models/MortalRifle1st_a.3d and /dev/null differ diff --git a/models/MortalRifle1st_d.3d b/models/MortalRifle1st_d.3d deleted file mode 100644 index 8ad92d8f7..000000000 Binary files a/models/MortalRifle1st_d.3d and /dev/null differ diff --git a/models/MortalRiflePickup.iqm b/models/MortalRiflePickup.iqm index 802766790..4fe3c8f1e 100644 Binary files a/models/MortalRiflePickup.iqm and b/models/MortalRiflePickup.iqm differ diff --git a/models/MortalRiflePickupBoltLock.iqm b/models/MortalRiflePickupBoltLock.iqm deleted file mode 100644 index 51fa5b959..000000000 Binary files a/models/MortalRiflePickupBoltLock.iqm and /dev/null differ diff --git a/models/Quadravol.blend b/models/Quadravol.blend index 8a958cd87..b5226cb5c 100644 Binary files a/models/Quadravol.blend and b/models/Quadravol.blend differ diff --git a/models/Quadravol1st.blend b/models/Quadravol1st.blend index 143972422..80c8bbf59 100644 Binary files a/models/Quadravol1st.blend and b/models/Quadravol1st.blend differ diff --git a/models/Quadravol1st.iqm b/models/Quadravol1st.iqm new file mode 100644 index 000000000..fdb3f6cac Binary files /dev/null and b/models/Quadravol1st.iqm differ diff --git a/models/Quadravol1st_Casing.iqm b/models/Quadravol1st_Casing.iqm new file mode 100644 index 000000000..b4af9a391 Binary files /dev/null and b/models/Quadravol1st_Casing.iqm differ diff --git a/models/Quadravol1st_a.3d b/models/Quadravol1st_a.3d deleted file mode 100644 index 5b5eea902..000000000 Binary files a/models/Quadravol1st_a.3d and /dev/null differ diff --git a/models/Quadravol1st_d.3d b/models/Quadravol1st_d.3d deleted file mode 100644 index 532dcf054..000000000 Binary files a/models/Quadravol1st_d.3d and /dev/null differ diff --git a/models/QuadravolPickup.iqm b/models/QuadravolPickup.iqm index 0074e6d09..144964652 100644 Binary files a/models/QuadravolPickup.iqm and b/models/QuadravolPickup.iqm differ diff --git a/models/SayasMug1st.blend b/models/SayasMug1st.blend index 828bec326..7e96d4330 100644 Binary files a/models/SayasMug1st.blend and b/models/SayasMug1st.blend differ diff --git a/models/SayasMug1st.iqm b/models/SayasMug1st.iqm new file mode 100644 index 000000000..3b888ec8a Binary files /dev/null and b/models/SayasMug1st.iqm differ diff --git a/models/SayasMug1st_a.3d b/models/SayasMug1st_a.3d deleted file mode 100644 index f49b58a36..000000000 Binary files a/models/SayasMug1st_a.3d and /dev/null differ diff --git a/models/SayasMug1st_d.3d b/models/SayasMug1st_d.3d deleted file mode 100644 index 4c0775e05..000000000 Binary files a/models/SayasMug1st_d.3d and /dev/null differ diff --git a/models/SheenHMG.blend b/models/SheenHMG.blend index 804624798..10f108f08 100644 Binary files a/models/SheenHMG.blend and b/models/SheenHMG.blend differ diff --git a/models/SheenHMG1st.blend b/models/SheenHMG1st.blend index d827e02e8..52b9f4315 100644 Binary files a/models/SheenHMG1st.blend and b/models/SheenHMG1st.blend differ diff --git a/models/SheenHMG1st.iqm b/models/SheenHMG1st.iqm new file mode 100644 index 000000000..cb3adbe43 Binary files /dev/null and b/models/SheenHMG1st.iqm differ diff --git a/models/SheenHMG1st_a.3d b/models/SheenHMG1st_a.3d deleted file mode 100644 index 4e0f7e0d1..000000000 Binary files a/models/SheenHMG1st_a.3d and /dev/null differ diff --git a/models/SheenHMG1st_d.3d b/models/SheenHMG1st_d.3d deleted file mode 100644 index e6751802b..000000000 Binary files a/models/SheenHMG1st_d.3d and /dev/null differ diff --git a/models/SheenHMGPickup.iqm b/models/SheenHMGPickup.iqm index ce9d73867..acbfb13ed 100644 Binary files a/models/SheenHMGPickup.iqm and b/models/SheenHMGPickup.iqm differ diff --git a/zscript/dlc1/swwm_hammertime.zsc b/zscript/dlc1/swwm_hammertime.zsc index d5e8aa2e2..9c447c5b9 100644 --- a/zscript/dlc1/swwm_hammertime.zsc +++ b/zscript/dlc1/swwm_hammertime.zsc @@ -212,6 +212,7 @@ Class ItamexHammer : SWWMWeapon Obituary "$O_HAMMER"; SWWMWeapon.Tooltip "$TT_HAMMER"; SWWMWeapon.GetLine "getitamexhammer"; + SWWMWeapon.BobFactor 1., .0001; Weapon.SlotNumber 1; Weapon.SlotPriority 2.; Weapon.SelectionOrder 1200; diff --git a/zscript/dlc1/swwm_heavymahsheengun.zsc b/zscript/dlc1/swwm_heavymahsheengun.zsc index df84ed4a1..805e3aecb 100644 --- a/zscript/dlc1/swwm_heavymahsheengun.zsc +++ b/zscript/dlc1/swwm_heavymahsheengun.zsc @@ -343,6 +343,7 @@ Class HeavyMahSheenGun : SWWMWeapon Obituary "$O_SHEENHMG"; SWWMWeapon.Tooltip "$TT_SHEENHMG"; SWWMWeapon.GetLine "getheavymahsheengun"; + SWWMWeapon.BobFactor 1., .0001; Weapon.UpSound "sheen/select"; Weapon.SlotNumber 5; Weapon.SlotPriority 2.; @@ -662,7 +663,7 @@ Class HeavyMahSheenGun : SWWMWeapon { let l = Spawn("SWWMWeaponLight",pos); l.target = self; - l.Args[3] -= psp.frame*2; + l.Args[3] -= (psp.frame%3)*20; } } Stop; diff --git a/zscript/dlc1/swwm_mister.zsc b/zscript/dlc1/swwm_mister.zsc index 892580bc7..a9d36e71e 100644 --- a/zscript/dlc1/swwm_mister.zsc +++ b/zscript/dlc1/swwm_mister.zsc @@ -1205,6 +1205,7 @@ Class MisterRifle : SWWMWeapon Obituary "$O_MORTALRIFLE"; SWWMWeapon.Tooltip "$TT_MORTALRIFLE"; SWWMWeapon.GetLine "getmortalrifle"; + SWWMWeapon.BobFactor 1., .0001; Weapon.SlotNumber 9; Weapon.SlotPriority 2.; Weapon.SelectionOrder 850; diff --git a/zscript/dlc1/swwm_notashotgun.zsc b/zscript/dlc1/swwm_notashotgun.zsc index 9715bdc51..d7c8925f9 100644 --- a/zscript/dlc1/swwm_notashotgun.zsc +++ b/zscript/dlc1/swwm_notashotgun.zsc @@ -415,6 +415,7 @@ Class Quadravol : SWWMWeapon Obituary "$O_QUADRAVOL"; SWWMWeapon.Tooltip "$TT_QUADRAVOL"; SWWMWeapon.GetLine "getquadravol"; + SWWMWeapon.BobFactor 1., .0001; Weapon.SlotNumber 6; Weapon.SlotPriority 2.; Weapon.SelectionOrder 650; diff --git a/zscript/player/swwm_player.zsc b/zscript/player/swwm_player.zsc index a13b70e0d..a3802b69f 100644 --- a/zscript/player/swwm_player.zsc +++ b/zscript/player/swwm_player.zsc @@ -510,10 +510,17 @@ Class Demolitionist : PlayerPawn int sgn = (diffz2>0)?1:-1; diffz2 = abs(diffz2)**.5*sgn; } - Vector3 bobvec = (diffy,-diffz,diffx)*20. + (cur.x,-cur.y,0)*10.; - Vector3 bobang = (diffang,diffpitch,diffroll)*.1 - (cur.x,cur.y,0)*.04 - (diffy2,diffz2,0)*.2; + Vector3 bobvec = (diffy,-diffz,diffx*.5)*20. + (cur.x,-cur.y,cur.y)*15.; + Vector3 bobang = (dangles.x,dangles.y,dangles.z)*.15 - (cur.x,cur.y,-cur.x*2.)*.05 - (diffy2,diffz2,0)*.02; double fready = SWWMUtility.Lerp(oldlagready,lagready,ticfrac); - return bobvec*fready, bobang*fready; + double rfact = 1., vfact = 1.; + if ( player.ReadyWeapon is 'SWWMWeapon' ) + { + let sw = SWWMWeapon(player.ReadyWeapon); + rfact = sw.bobfactor_ang; + vfact = sw.bobfactor_vec; + } + return bobvec*fready*vfact, bobang*fready*rfact; } // compatibility with 2D weapons diff --git a/zscript/swwm_gesture.zsc b/zscript/swwm_gesture.zsc index 2e57ad8f6..69b39e182 100644 --- a/zscript/swwm_gesture.zsc +++ b/zscript/swwm_gesture.zsc @@ -403,6 +403,7 @@ Class SWWMGesture : SWWMWeapon +INVENTORY.UNTOSSABLE; +INVENTORY.UNCLEARABLE; Weapon.SelectionOrder int.max; + SWWMWeapon.BobFactor 0., 0.; } States { @@ -742,6 +743,7 @@ Class SWWMItemGesture : SWWMWeapon abstract +INVENTORY.UNTOSSABLE; +INVENTORY.UNCLEARABLE; Weapon.SelectionOrder int.max; + SWWMWeapon.BobFactor 0., 0.; } States { diff --git a/zscript/weapons/swwm_baseweapon.zsc b/zscript/weapons/swwm_baseweapon.zsc index 14443ad84..0bc9163a1 100644 --- a/zscript/weapons/swwm_baseweapon.zsc +++ b/zscript/weapons/swwm_baseweapon.zsc @@ -11,10 +11,12 @@ Class SWWMWeapon : Weapon abstract meta Class dropammotype; int dropamount; bool bInitialized; + meta double bobfactor_ang, bobfactor_vec; Property Tooltip : tooltip; Property GetLine : getline; Property DropAmmoType : dropammotype; + Property BobFactor : bobfactor_ang, bobfactor_vec; FlagDef NoFirstGive : SWeaponFlags, 0; // don't give ammo on first pickup (for weapons with a clip count) FlagDef HideInMenu : SWeaponFlags, 1; // don't show in inventory menu (usually for sister weapons) @@ -704,6 +706,7 @@ Class SWWMWeapon : Weapon abstract Weapon.SlotPriority 1.; Inventory.RestrictedTo "Demolitionist"; Inventory.PickupFlash "SWWMRedPickupFlash"; + SWWMWeapon.BobFactor 1., 1.; +INVENTORY.IGNORESKILL; +WEAPON.NOALERT; +WEAPON.NODEATHINPUT;