Description

Intended for BDv21, aim to be minor adjustements and fixes, without changing the core of brutal doom. Includes: reduced drops for some types of ammo, weapon bug fixes, revamped revolver, powered up Railgun and grenade launcher, tweaked minigun, and more.

Preview
FindusBD21-Modular-Tweaks-v0.2.1
Post comment Comments
MarkVini6226
MarkVini6226 - - 92 comments

You said that it is Compatible with Bdv21.0.3 and also with bdv21.1.0 expansion, so it is (or will be) Compatible with the newest versions? Also what is the load order that i should use? Thanks

Reply Good karma Bad karma+1 vote
CapitanFindus Author
CapitanFindus - - 5 comments

I will reply your question in a different order, to try to explain things a bit better.

Load order (which should be in the README file, and if is not the I apologize), is
- Bdv21
- Expansions
- My modules, in any order you prefer
- other add ons: like textures, wads and so on.

Will not work properly with other weapons modifications or monsters.

Compatibility
For now the weapons module is not compatible (called Lowish_Ammo), while monster and armor modules are compatible. I want to say I'm working on it... but right now time is not really a thing I have. If I can make a stopgag patch just to make it work I will.

Now to be more specific:
The first thing to realize is that Brutal Doom, and its expansions, use the old standard of DECORATE and ACS scripts, while my mod use Zscript, the newer standard for Zdoom.
To put it short, you can go from Zscript to Decorate, bot not the other way around, so to make it work is needed to disable, recode, and override old objects into new ones. Is possibile to take a shortcut, like I did in the weapon module, replace the original files to modify the thins you want, and then just add the Actors needed to make it work with other mods... but it's really a messy approach and it breaks every time new things are added in the modules loaded before. And that's why weapon module is not compatible right now.

Final note con "Compatibility"
When say it's compatbile, it basically mean: "It will work, but it will replace the original version with the modded version, eventually losing every changes an in-between patch could have made".

Given how DECORATE works, while there's inheritance, it's only limited to thing like properties, and very limited behaviour, you can replaces part of it, for example only the firing state of a weapon, but even so if you do it you have to replace that part completely and lose access to the old one.
That's basically why I'm trying to take a roundabout way to disable old classes, and replace them with zscript.

Reply Good karma+3 votes
MarkVini6226
MarkVini6226 - - 92 comments

Thanks for this detailed explanation. It sure had answered my questions and, i hope, other people too. Thanks again

Reply Good karma Bad karma+1 vote
CapitanFindus Author
CapitanFindus - - 5 comments

No problem really.

If you're interested in understanding how it works and maybe you wanna change something yourself then I can add a couple of more reasons behind the choice, because I believe it matters and would be helpful.

Let's say from now on we sticks with DECORATE, to avoid entering zscript that would require even more explanations.

First problem: modifiy, add or remove ammo.
Decorate and Replace is the way to make the new data and actors in a different file, problem is you can't redefine them if they exists already, only replace them with something else, so if I want to decorate ammo they need to have a different name. Now on the map will spawn the new ammos in place of the old ones.

Second problem: If you replace ammo, then weapons have to recognize them. Even if in theory the system permits to define Actors as repalcements... weapons are a different story, they could referencing old ammos everywhere in the code, and the replacement work only for spawned actors, not for string references. So if you wanna decorate ammo... then you have to change the weapons as well, but if you change the weapons then what you do? decorate them as well and change their ammo used and names? Then you have to be sure weapons slots and pickups remains correct, and the chain goes on... and it's a lot of work.

Third problem: let's say you decorate ammo AND weapons correctly, everything works right? Nope!
Now we have collateral damage to think about it, let's say someone made an HUD for brutal DOOM, which search for specific ammo and weapon names... suddendly the HUD won't work anymore because it can't find anything, the names are all wrong....

And that's only the tip sadly.

There's a solution for these compatibility problem, but it rely on every modder to think their mods with scalability in mind.
For example if you wanna add a new type of ammo you can:

1) Replace the original ammo file and add your new ammo somewhere in the file. When you do this the old file is lost, completely replaced by the new one.

2) Make a new DECORATE file which contains only the stuff you add. NEVER remove or add actors from the original file, but you can change the actors which are already in there, for example to increase or decrease maximum ammo quantities.

In the beginning, when i made the weapon mod, I used the method number 1. The expansion, you can guess, also use the method number 1, it also remove and add actors in it, because is easier and faster. But it goes without saying that between the two methods, the number 2 is clearly the best one, because otherwise every new mod will basically override file from the previous, and so the compiler will start to complain (rightly so) that he can't find some actor, referenced by other files but now completely erased because the file that contained them is now overridden.

As i said in my previous reply, disabling and redefining everything in zscript would work, but even if it sound selfish it's a lot of work for a very little mod I made just beacuse I found myself wanting to adjust the gameply to my tastes, and then tought "Maybe someone would like it so I'll share it".

If you was able to bear through all of my ramblings then i salute you, and if you need help just ask.

Reply Good karma+1 vote
MarkVini6226
MarkVini6226 - - 92 comments

Wow that's a very detailed (in a good way) explanation of how DECORATE works. When i get my PC I'll sure learn DECORATE, ACS and Zscript. Thanks for giving us some time explaining how much effort is needed to make theses amazing mods.

Reply Good karma Bad karma+1 vote
Guest
Guest - - 691,073 comments

This comment is currently awaiting admin approval, join now to view.

emit800
emit800 - - 199 comments

WoW!!Awesome!!enable all unused monsters option and add copatibitity for professor existencial enhaced monsters addon and wepons mods,please.

Reply Good karma Bad karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: