
[Won't fix] Bug in TC osiris.wad "fountain of ammo"
Moderator: GZDoom Developers
Forum rules
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49229
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
I abandoned this project before finishing weapon support. (Too much work...
) The big issue with new weapons is that it requires a lot of rewriting of the weapon handling code. Weapon handling in Doom engine games uses hard coded indices for its weapons and that's something that hasn't changed in ZDoom. Aside from the fact that it's a lot of work it's certainly not recommendable to do something massive like this in a bug fixing stage whereas 'normal' actors could be added with just 2 or 3 lines added to the existing code and the rest being a source file on its own that doesn't really interact with the rest of the game so it can't introduce problems outside its own scope.

Sure, I'd be happy to take that contribution.Graf Zahl wrote:If you are interested I can easily integrate this in the DECORATE parser in 1-2 days and give it to you.
I remember when talk of adding monsters to DECORATE came up before, it was also suggested that an alternate name be allowed for the lump since monsters aren't decorations. Although I don't think it's necessary, who thinks the lump should be called NEWSTUFF?

- SargeBaldy
- Posts: 366
- Joined: Tue Jul 15, 2003 3:49 pm
- Location: Oregon
- Contact:
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49229
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Alright, I'll have it ready by the weekend.randy wrote:Sure, I'd be happy to take that contribution.Graf Zahl wrote:If you are interested I can easily integrate this in the DECORATE parser in 1-2 days and give it to you.
I remember when talk of adding monsters to DECORATE came up before, it was also suggested that an alternate name be allowed for the lump since monsters aren't decorations. Although I don't think it's necessary, who thinks the lump should be called NEWSTUFF?

Why not? Even though it reminds me a little of /newstuff.

- Chris
- Posts: 2971
- Joined: Thu Jul 17, 2003 12:07 am
- Graphics Processor: ATI/AMD with Vulkan/Metal Support
If you want a new name, how about:
I could probably think of more given time.
Code: Select all
NEWACTOR
AACTORS
ACTORDEF
ENEMYDEF
OBJDEF
THINGDEF
ZDACTDEF
A few questions for this:
Since it is a new addition and does not need to support DeHackEd backward compatability, it would seem we could easily have greater access to object flags and code pointers. If this is the case, how would they be specified? Would the pointers for all supported games be accessable? Is there an existing list of code pointers for all games? I'm willing to do some poking around in the source if I have to, but I'm not very familiar with it so a simple list would save a lot of time.
THINGDEF seems to make the most sense. But keeping them all in DECORATE is fine with me as well.
Since it is a new addition and does not need to support DeHackEd backward compatability, it would seem we could easily have greater access to object flags and code pointers. If this is the case, how would they be specified? Would the pointers for all supported games be accessable? Is there an existing list of code pointers for all games? I'm willing to do some poking around in the source if I have to, but I'm not very familiar with it so a simple list would save a lot of time.
THINGDEF seems to make the most sense. But keeping them all in DECORATE is fine with me as well.
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49229
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Ok, here's a short summary of what I'm doing:
1. Almost all flags are accessible. I disabled a few which require special coding or don't make sense (internal flags, pickups)
2. All code pointers accessible through Dehacked are accessible. I also added a small selection from Heretic and Hexen (but not much. Most are simply too hard coded for any generic use.) All code pointers are accessible in all games. Only the required sprites have to be provided.
3. The most important thing: Generic attack functions! (That was the major reason I started messing around with this stuff.) You can specify any projectile you like for use in a monster's attack! (but limited to one type per monster!) This alone makes most of Hexen's/Heretic's usable code pointers obsolete. These functions can shoot all original projectiles (including those with special properties, like the chicken morpher etc, of course you have to provide the sprites for them) and anything that's newly defined.
4. Of course I'll write some documentation before this is released. It would be a shame if it wasn't used to its potential because nobody knows how to use it, right?
And the one bad thing:
5. Unfortunately I had to remove pickup support. ZDoom handles pickups in a completely different way than PrBoom. With PrBoom I just could give an object some additional properties which were interpreted by the pickup code. ZDoom uses C++ subclasses for this.
Fortunately with ZDoom's scripting abilities this isn't such a bad thing because you can do so much more with ACS than ever was possible with what I had.
1. Almost all flags are accessible. I disabled a few which require special coding or don't make sense (internal flags, pickups)
2. All code pointers accessible through Dehacked are accessible. I also added a small selection from Heretic and Hexen (but not much. Most are simply too hard coded for any generic use.) All code pointers are accessible in all games. Only the required sprites have to be provided.
3. The most important thing: Generic attack functions! (That was the major reason I started messing around with this stuff.) You can specify any projectile you like for use in a monster's attack! (but limited to one type per monster!) This alone makes most of Hexen's/Heretic's usable code pointers obsolete. These functions can shoot all original projectiles (including those with special properties, like the chicken morpher etc, of course you have to provide the sprites for them) and anything that's newly defined.
4. Of course I'll write some documentation before this is released. It would be a shame if it wasn't used to its potential because nobody knows how to use it, right?
And the one bad thing:
5. Unfortunately I had to remove pickup support. ZDoom handles pickups in a completely different way than PrBoom. With PrBoom I just could give an object some additional properties which were interpreted by the pickup code. ZDoom uses C++ subclasses for this.
Fortunately with ZDoom's scripting abilities this isn't such a bad thing because you can do so much more with ACS than ever was possible with what I had.
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49229
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Look further above. Theoreticall it is possible but weapon handling requires some extensive rewrite of the current weapon code. This requires adding one tiny 'if' at one place and the rest is completely standalone.
BTW, I'm currently writing the docs for this. Currently I'm at 15270 bytes and it isn't even finished...
BTW, I'm currently writing the docs for this. Currently I'm at 15270 bytes and it isn't even finished...
Ah O.K. Also could you elaborate on the lose of pick-up support. I was a little unsure of what you meant? Does it effect normal Doom pick-ups? Or just those that were defined in DECORATE? Wether it be normal, or DECORATE will it be able to be added back in? That last question I'm especially concerned about, cuz I'm not sure if I want to give up new pick-up items in order to get new monsters.
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49229
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
As it is this format currently cannot handle pickups which was part of the original implementation. Pickups are handled in a completely different way in ZDoom which requires the code to determine whether an actor is a pickup at a point much earlier than I had done. The main problem is that the amount of work required to make the (rather limited) pickup support I had work with ZDoom is a little high compared to the benefits. With Decorate pickups and ACS you can achieve significantly more than with what I ever had. I somehow doubt there is much need to create new kinds of medikits, armors, keys and standard Doom powerups because that's all my original stuff could do.
This does neither affect the regular pickups (otherwise it'd be pointless) nor normal DECORATE pickups. The old DECORATE stuff hasn't been changed a bit (with the single exception that 'Actor' is now a keyword and can no longer be used as an actor's class name
)
This does neither affect the regular pickups (otherwise it'd be pointless) nor normal DECORATE pickups. The old DECORATE stuff hasn't been changed a bit (with the single exception that 'Actor' is now a keyword and can no longer be used as an actor's class name
