diff --git a/Readme.md b/Readme.md index 9151123..5874dcf 100644 --- a/Readme.md +++ b/Readme.md @@ -9,11 +9,12 @@ This mod requires GZDoom 3.4.0 or later. - Stinger (slot 3) (replaces shotgun) - Backpack (replaces backpack, identical to Doom Tournament version) + - Unreal 1 HUD + - Translator (has to be spawned in, since it would only be useful for mappers) ## In progress - - Unreal 1 HUD - - Translator (has to be spawned in, since it would only be useful for mappers) + - Flak Cannon (slot 6) (replaces rocket launcher) ## Planned @@ -22,7 +23,6 @@ This mod requires GZDoom 3.4.0 or later. - Automag (slot 2) (replaces pistol) - ASMD (slot 4) (replaces shotgun) - Eightball (slot 5) (replaces rocket launcher) - - Flak Cannon (slot 6) (replaces rocket launcher) - Razorjack (slot 7) (replaces chaingun) - GES Bio Rifle (slot 8) (replaces plasma rifle) - Rifle (slot 9) (replaces plasma rifle) diff --git a/brightmaps/JPickup1.png b/brightmaps/JPickup1.png new file mode 100644 index 0000000..b5569c5 Binary files /dev/null and b/brightmaps/JPickup1.png differ diff --git a/gldefs.txt b/gldefs.txt index c9fd8a0..3cf73ab 100644 --- a/gldefs.txt +++ b/gldefs.txt @@ -46,3 +46,15 @@ HardwareShader Texture "models/JTaryPick1.png" { Shader "shaders/glsl/AmbientGlow.fp" } +/*Brightmap Texture "models/JPickup1.png" +{ + Map "brightmaps/JPickup1.png" +}*/ +HardwareShader Texture "models/JPickup1_.png" +{ + Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" +} +HardwareShader Texture "models/Jflakshel1_.png" +{ + Shader "shaders/glsl/AmbientGlow.fp" +} diff --git a/graphics/BlueSky.png b/graphics/BlueSky.png new file mode 100644 index 0000000..8405251 Binary files /dev/null and b/graphics/BlueSky.png differ diff --git a/modeldef.flak b/modeldef.flak new file mode 100644 index 0000000..a61fd26 --- /dev/null +++ b/modeldef.flak @@ -0,0 +1,167 @@ +Model "UFlakBox" +{ + Path "models" + Model 0 "flakboxMesh_d.3d" + Skin 0 "JPickup1_.png" + Scale 0.09 0.09 0.108 + ZOffset 6 + RollOffset 180 + + FrameIndex FBOX A 0 0 +} + +Model "UFlakAmmo" +{ + Path "models" + Model 0 "FlakSh_d.3d" + Skin 0 "Jflakshel1_.png" + Scale 0.2 0.24 0.2 + ZOffset 2.25 + RollOffset -90 + + FrameIndex FSHL B 0 0 +} + +Model "UFlakCannon" +{ + Path "models" + Model 1 "FlakPick_d.3d" + Skin 1 "Jflak1.png" + ZOffset 4 + AngleOffset -90 + Scale 0.12 0.12 0.134 + + FrameIndex FLKP B 1 0 + + ZOffset 12 + ROTATING + FrameIndex FLKP A 1 0 +} + +Model "UFlakCannon" +{ + Path "models" + Model 0 "flak_d.3d" + SurfaceSkin 0 0 "Jflak1.png" + Scale 0.1 -0.08 0.1 + AngleOffset -90 + Offset 5 -9 -5 + + // Select + FrameIndex FLKS A 0 0 + FrameIndex FLKS B 0 1 + FrameIndex FLKS C 0 2 + FrameIndex FLKS D 0 3 + FrameIndex FLKS E 0 4 + FrameIndex FLKS F 0 5 + FrameIndex FLKS G 0 6 + FrameIndex FLKS H 0 7 + FrameIndex FLKS I 0 8 + FrameIndex FLKS J 0 9 + FrameIndex FLKS K 0 10 + FrameIndex FLKS L 0 11 + FrameIndex FLKS M 0 12 + FrameIndex FLKS N 0 13 + FrameIndex FLKS O 0 14 + FrameIndex FLKS P 0 15 + FrameIndex FLKS Q 0 16 + FrameIndex FLKS R 0 17 + FrameIndex FLKS S 0 18 + FrameIndex FLKS T 0 19 + FrameIndex FLKS U 0 20 + FrameIndex FLKS V 0 21 + FrameIndex FLKS W 0 22 + FrameIndex FLKS X 0 23 + FrameIndex FLKS Y 0 24 + FrameIndex FLKS Z 0 25 + FrameIndex FLS2 A 0 26 + FrameIndex FLS2 B 0 27 + FrameIndex FLS2 C 0 28 + FrameIndex FLS2 D 0 29 + // Loading + FrameIndex FLKL A 0 30 + FrameIndex FLKL B 0 31 + FrameIndex FLKL C 0 32 + FrameIndex FLKL D 0 33 + FrameIndex FLKL E 0 34 + FrameIndex FLKL F 0 35 + FrameIndex FLKL G 0 36 + FrameIndex FLKL H 0 37 + FrameIndex FLKL I 0 38 + FrameIndex FLKL J 0 39 + FrameIndex FLKL K 0 40 + FrameIndex FLKL L 0 41 + FrameIndex FLKL M 0 42 + FrameIndex FLKL N 0 43 + FrameIndex FLKL O 0 44 + // Still + FrameIndex FLKI A 0 45 + // Fire + FrameIndex FLKF A 0 46 + FrameIndex FLKF B 0 47 + FrameIndex FLKF C 0 48 + FrameIndex FLKF D 0 49 + FrameIndex FLKF E 0 50 + FrameIndex FLKF F 0 51 + FrameIndex FLKF G 0 52 + FrameIndex FLKF H 0 53 + FrameIndex FLKF I 0 54 + FrameIndex FLKF J 0 55 + // AltFire + FrameIndex FLKA A 0 56 + FrameIndex FLKA B 0 57 + FrameIndex FLKA C 0 58 + FrameIndex FLKA D 0 59 + FrameIndex FLKA E 0 60 + FrameIndex FLKA F 0 61 + FrameIndex FLKA G 0 62 + FrameIndex FLKA H 0 63 + FrameIndex FLKA I 0 64 + FrameIndex FLKA J 0 65 + FrameIndex FLKA K 0 66 + // Eject + FrameIndex FLKE A 0 67 + FrameIndex FLKE B 0 68 + FrameIndex FLKE C 0 69 + FrameIndex FLKE D 0 70 + FrameIndex FLKE E 0 71 + FrameIndex FLKE F 0 72 + FrameIndex FLKE G 0 73 + FrameIndex FLKE H 0 74 + FrameIndex FLKE I 0 75 + FrameIndex FLKE J 0 76 + FrameIndex FLKE K 0 77 + FrameIndex FLKE L 0 78 + FrameIndex FLKE M 0 79 + FrameIndex FLKE N 0 80 + FrameIndex FLKE O 0 81 + FrameIndex FLKE P 0 82 + FrameIndex FLKE Q 0 83 + FrameIndex FLKE R 0 84 + FrameIndex FLKE S 0 85 + // Down2 + FrameIndex FLD2 A 0 86 + FrameIndex FLD2 B 0 87 + FrameIndex FLD2 C 0 88 + FrameIndex FLD2 D 0 89 + FrameIndex FLD2 E 0 90 + FrameIndex FLD2 F 0 91 + FrameIndex FLD2 G 0 92 + FrameIndex FLD2 H 0 93 + FrameIndex FLD2 I 0 94 + FrameIndex FLD2 J 0 95 + FrameIndex FLD2 K 0 96 + FrameIndex FLD2 L 0 97 + FrameIndex FLD2 M 0 98 + FrameIndex FLD2 N 0 99 + FrameIndex FLD2 O 0 100 + // Still2 + FrameIndex FLI2 A 0 101 + // Down + FrameIndex FLKD A 0 104 + FrameIndex FLKD B 0 105 + FrameIndex FLKD C 0 106 + FrameIndex FLKD D 0 107 + FrameIndex FLKD E 0 108 + FrameIndex FLKD F 0 109 +} diff --git a/modeldef.stinger b/modeldef.stinger index d84376f..2ed8235 100644 --- a/modeldef.stinger +++ b/modeldef.stinger @@ -57,7 +57,7 @@ Model "Stinger" Model 2 "StingerM_d.3d" SurfaceSkin 2 2 "FireEffect18.png" SurfaceSkin 2 3 "FireEffect18.png" - Scale 0.1 -0.05 0.1 + Scale 0.1 -0.08 0.1 AngleOffset 89 Offset 6.8 -13.2 -10.6 DONTCULLBACKFACES @@ -82,7 +82,7 @@ Model "Stinger" Model 0 "StingerM_d.3d" SurfaceSkin 0 0 "Sting1.png" SurfaceSkin 0 1 "Sting1.png" - Scale 0.1 -0.05 0.1 + Scale 0.1 -0.08 0.1 AngleOffset 89 Offset 6.8 -13.2 -10.6 diff --git a/models/Backpack2_d.3d b/models/Backpack2_d.3d index 8928716..b14df30 100644 Binary files a/models/Backpack2_d.3d and b/models/Backpack2_d.3d differ diff --git a/models/FlakPick_a.3d b/models/FlakPick_a.3d new file mode 100644 index 0000000..61272e1 Binary files /dev/null and b/models/FlakPick_a.3d differ diff --git a/models/FlakPick_d.3d b/models/FlakPick_d.3d new file mode 100644 index 0000000..32566cf Binary files /dev/null and b/models/FlakPick_d.3d differ diff --git a/models/FlakSh_a.3d b/models/FlakSh_a.3d new file mode 100644 index 0000000..0bfada6 Binary files /dev/null and b/models/FlakSh_a.3d differ diff --git a/models/FlakSh_d.3d b/models/FlakSh_d.3d new file mode 100644 index 0000000..c2ca56c Binary files /dev/null and b/models/FlakSh_d.3d differ diff --git a/models/JPickup1.png b/models/JPickup1.png new file mode 100644 index 0000000..a1c4f01 Binary files /dev/null and b/models/JPickup1.png differ diff --git a/models/JPickup1_.png b/models/JPickup1_.png new file mode 100644 index 0000000..4648448 Binary files /dev/null and b/models/JPickup1_.png differ diff --git a/models/Jflak1.png b/models/Jflak1.png new file mode 100644 index 0000000..161aae7 Binary files /dev/null and b/models/Jflak1.png differ diff --git a/models/Jflakshel1.png b/models/Jflakshel1.png new file mode 100644 index 0000000..36e12a3 Binary files /dev/null and b/models/Jflakshel1.png differ diff --git a/models/Jflakshel1_.png b/models/Jflakshel1_.png new file mode 100644 index 0000000..36e12a3 Binary files /dev/null and b/models/Jflakshel1_.png differ diff --git a/models/flak_a.3d b/models/flak_a.3d new file mode 100644 index 0000000..eacfc09 Binary files /dev/null and b/models/flak_a.3d differ diff --git a/models/flak_d.3d b/models/flak_d.3d new file mode 100644 index 0000000..5e8c815 Binary files /dev/null and b/models/flak_d.3d differ diff --git a/models/flakboxMesh_a.3d b/models/flakboxMesh_a.3d new file mode 100644 index 0000000..7d614b3 Binary files /dev/null and b/models/flakboxMesh_a.3d differ diff --git a/models/flakboxMesh_d.3d b/models/flakboxMesh_d.3d new file mode 100644 index 0000000..124d393 Binary files /dev/null and b/models/flakboxMesh_d.3d differ diff --git a/textures.flak b/textures.flak new file mode 100644 index 0000000..535d822 --- /dev/null +++ b/textures.flak @@ -0,0 +1,113 @@ +Sprite "FBOXA0",1,1{} +Sprite "FSHLA0",1,1{} +Sprite "FSHLB0",1,1{} +Sprite "FLKPA0",1,1{} +Sprite "FLKPB0",1,1{} +Sprite "FLKSA0",1,1{} +Sprite "FLKSB0",1,1{} +Sprite "FLKSC0",1,1{} +Sprite "FLKSD0",1,1{} +Sprite "FLKSE0",1,1{} +Sprite "FLKSF0",1,1{} +Sprite "FLKSG0",1,1{} +Sprite "FLKSH0",1,1{} +Sprite "FLKSI0",1,1{} +Sprite "FLKSJ0",1,1{} +Sprite "FLKSK0",1,1{} +Sprite "FLKSL0",1,1{} +Sprite "FLKSM0",1,1{} +Sprite "FLKSN0",1,1{} +Sprite "FLKSO0",1,1{} +Sprite "FLKSP0",1,1{} +Sprite "FLKSQ0",1,1{} +Sprite "FLKSR0",1,1{} +Sprite "FLKSS0",1,1{} +Sprite "FLKST0",1,1{} +Sprite "FLKSU0",1,1{} +Sprite "FLKSV0",1,1{} +Sprite "FLKSW0",1,1{} +Sprite "FLKSX0",1,1{} +Sprite "FLKSY0",1,1{} +Sprite "FLKSZ0",1,1{} +Sprite "FLS2A0",1,1{} +Sprite "FLS2B0",1,1{} +Sprite "FLS2C0",1,1{} +Sprite "FLS2D0",1,1{} +Sprite "FLKLA0",1,1{} +Sprite "FLKLB0",1,1{} +Sprite "FLKLC0",1,1{} +Sprite "FLKLD0",1,1{} +Sprite "FLKLE0",1,1{} +Sprite "FLKLF0",1,1{} +Sprite "FLKLG0",1,1{} +Sprite "FLKLH0",1,1{} +Sprite "FLKLI0",1,1{} +Sprite "FLKLJ0",1,1{} +Sprite "FLKLK0",1,1{} +Sprite "FLKLL0",1,1{} +Sprite "FLKLM0",1,1{} +Sprite "FLKLN0",1,1{} +Sprite "FLKLO0",1,1{} +Sprite "FLKIA0",1,1{} +Sprite "FLKFA0",1,1{} +Sprite "FLKFB0",1,1{} +Sprite "FLKFC0",1,1{} +Sprite "FLKFD0",1,1{} +Sprite "FLKFE0",1,1{} +Sprite "FLKFF0",1,1{} +Sprite "FLKFG0",1,1{} +Sprite "FLKFH0",1,1{} +Sprite "FLKFI0",1,1{} +Sprite "FLKFJ0",1,1{} +Sprite "FLKAA0",1,1{} +Sprite "FLKAB0",1,1{} +Sprite "FLKAC0",1,1{} +Sprite "FLKAD0",1,1{} +Sprite "FLKAE0",1,1{} +Sprite "FLKAF0",1,1{} +Sprite "FLKAG0",1,1{} +Sprite "FLKAH0",1,1{} +Sprite "FLKAI0",1,1{} +Sprite "FLKAJ0",1,1{} +Sprite "FLKAK0",1,1{} +Sprite "FLKEA0",1,1{} +Sprite "FLKEB0",1,1{} +Sprite "FLKEC0",1,1{} +Sprite "FLKED0",1,1{} +Sprite "FLKEE0",1,1{} +Sprite "FLKEF0",1,1{} +Sprite "FLKEG0",1,1{} +Sprite "FLKEH0",1,1{} +Sprite "FLKEI0",1,1{} +Sprite "FLKEJ0",1,1{} +Sprite "FLKEK0",1,1{} +Sprite "FLKEL0",1,1{} +Sprite "FLKEM0",1,1{} +Sprite "FLKEN0",1,1{} +Sprite "FLKEO0",1,1{} +Sprite "FLKEP0",1,1{} +Sprite "FLKEQ0",1,1{} +Sprite "FLKER0",1,1{} +Sprite "FLKES0",1,1{} +Sprite "FLD2A0",1,1{} +Sprite "FLD2B0",1,1{} +Sprite "FLD2C0",1,1{} +Sprite "FLD2D0",1,1{} +Sprite "FLD2E0",1,1{} +Sprite "FLD2F0",1,1{} +Sprite "FLD2G0",1,1{} +Sprite "FLD2H0",1,1{} +Sprite "FLD2I0",1,1{} +Sprite "FLD2J0",1,1{} +Sprite "FLD2K0",1,1{} +Sprite "FLD2L0",1,1{} +Sprite "FLD2M0",1,1{} +Sprite "FLD2N0",1,1{} +Sprite "FLD2O0",1,1{} +Sprite "FLI2A0",1,1{} +Sprite "FLKDA0",1,1{} +Sprite "FLKDB0",1,1{} +Sprite "FLKDC0",1,1{} +Sprite "FLKDD0",1,1{} +Sprite "FLKDE0",1,1{} +Sprite "FLKDF0",1,1{} diff --git a/textures.misc b/textures.misc index c045330..68652c7 100644 --- a/textures.misc +++ b/textures.misc @@ -6,4 +6,4 @@ Texture "-kinsie-",128,128 WorldPanning Patch "-noflat-",0,0{} } -Sprite "BPAKA0",0,0{} +Sprite "BPAKA0",1,1{} diff --git a/zscript/flakcannon.zsc b/zscript/flakcannon.zsc index e69de29..a736979 100644 --- a/zscript/flakcannon.zsc +++ b/zscript/flakcannon.zsc @@ -0,0 +1,117 @@ +Class UFlakBox : Ammo +{ + Default + { + Tag "Flak Shell Box"; + Inventory.Icon "I_Flak"; + Inventory.PickupMessage "You picked up 10 Flak Shells."; + Inventory.Amount 10; + Inventory.MaxAmount 50; + Ammo.BackpackAmount 5; + Ammo.BackpackMaxAmount 100; + Ammo.DropAmount 5; + } + States + { + Spawn: + FBOX A -1; + Stop; + } +} + +Class UFlakAmmo : UFlakBox +{ + Default + { + Tag "Flak Shell"; + Inventory.Icon "I_Flak"; + Inventory.PickupMessage "You picked up a Flak Shell."; + Inventory.Amount 1; + Ammo.DropAmount 1; + } + States + { + Spawn: + FSHL B -1; + Stop; + } +} + +Class UFlakCannon : UnrealWeapon +{ + bool bLoaded; + action void A_Loading( bool first = false ) + { + invoker.bLoaded = true; + if ( first ) A_PlaySound("uflak/load",CHAN_WEAPON); + else A_PlaySound("uflak/reload",CHAN_6); + } + Default + { + Tag "Flak Cannon"; + Inventory.PickupMessage "You got the Flak Cannon."; + Weapon.UpSound "uflak/select"; + Weapon.SlotNumber 6; + Weapon.SelectionOrder 4; + Weapon.AmmoType "UFlakBox"; + Weapon.AmmoUse 1; + Weapon.AmmoType2 "UFlakBox"; + Weapon.AmmoUse2 1; + Weapon.AmmoGive 10; + } + States + { + Spawn: + FLKP A -1; + Stop; + FLKP B -1; + Stop; + Select: + FLKS A 1 A_Raise(int.max); + Wait; + Ready: + FLKS ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 A_WeaponReady(WRF_NOFIRE); + FLS2 ABCD 1 A_WeaponReady(WRF_NOFIRE); + FLKL A 1 A_Loading(true); + FLKL BCEFGIJKMNO 1; + Goto Idle; + Loading: + FLKL A 1 A_Loading(); + FLKL BCEFGIJKMNO 1; + Goto Idle; + Idle: + FLKI A 1 + { + A_CheckReload(); + A_WeaponReady(); + } + Wait; + Idle2: + FLI2 A 1 + { + A_CheckReload(); + A_WeaponReady(); + } + Wait; + Fire: + FLKI A 0 A_JumpIf(!invoker.bLoaded,"Loading"); + FLKF ABCDEFGHIJ 1; + FLKE ABCDEFGHIJKLMNS 1; + FLKE S 0 A_JumpIfNoAmmo("Idle2"); + Goto Loading; + AltFire: + FLKI A 0 A_JumpIf(!invoker.bLoaded,"Loading"); + FLKA ABCDEFGHIJK 2; + FLKA K 0 A_JumpIfNoAmmo("Idle2"); + Goto Loading; + Deselect: + FLKD A 0 A_JumpIfNoAmmo("Deselect2"); + FLKD ABCDEF 1; + FLKD F 1 A_Lower(int.max); + Wait; + Deselect2: + FLD2 ABCDEF 1; + FLD2 F 1 A_Lower(int.max); + Wait; + } +} diff --git a/zscript/miscitems.zsc b/zscript/miscitems.zsc index ed341b5..a2803ae 100644 --- a/zscript/miscitems.zsc +++ b/zscript/miscitems.zsc @@ -115,7 +115,7 @@ Class UTranslator : UnrealInventory String ttxt; if ( bShowHint && (Hint.length() > 0) ) ttxt = String.Format("Hint: %s",Hint); else if ( NewMessage.length() > 0 ) ttxt = NewMessage; - else ttxt = "I'd just like to interject for a moment. What you're referring to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX."; + else ttxt = "No new messages."; BrokenLines lines = tfnt.BreakLines(ttxt,220); int th = tfnt.GetHeight(); CurX += 20;