Page 4 of 5

Posted: Wed Feb 04, 2004 10:28 am
by Graf Zahl
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.

Posted: Wed Feb 04, 2004 10:41 am
by Risen
Makes sense. I'm happy with anything I can get.

Posted: Wed Feb 04, 2004 2:49 pm
by randi
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.
Sure, I'd be happy to take that contribution.

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? :-)

Posted: Wed Feb 04, 2004 3:01 pm
by SargeBaldy
randy wrote:Although I don't think it's necessary, who thinks the lump should be called NEWSTUFF? :-)
heh, that works for me.

Posted: Wed Feb 04, 2004 3:22 pm
by Graf Zahl
randy wrote:
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.
Sure, I'd be happy to take that contribution.
Alright, I'll have it ready by the weekend.

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? :-)[/quote]

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

Posted: Wed Feb 04, 2004 4:47 pm
by Chris
If you want a new name, how about:

Code: Select all

NEWACTOR
AACTORS
ACTORDEF
ENEMYDEF
OBJDEF
THINGDEF
ZDACTDEF
I could probably think of more given time.

Posted: Thu Feb 05, 2004 9:10 am
by Risen
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.

Posted: Thu Feb 05, 2004 10:44 am
by Graf Zahl
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.

Posted: Thu Feb 05, 2004 10:52 am
by Risen
Sounds awesome. No pickup support doesn't bother me because if I need something, I can still just do a fake pickup the way you would right now, right?

Posted: Thu Feb 05, 2004 11:36 am
by Lumpy
Is there any way that this could be expanded to create player weapons. Ones that not only can use monster code pointers to shoot their projectiles, but can shoot newly defined projectiles. Or even any projectile for that matter like the ovum's, and the chicken morpher and such.

Posted: Thu Feb 05, 2004 12:46 pm
by Graf Zahl
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...

Posted: Thu Feb 05, 2004 2:10 pm
by Lumpy
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.

Posted: Thu Feb 05, 2004 2:50 pm
by Graf Zahl
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 ;) )

Posted: Thu Feb 05, 2004 3:29 pm
by Lumpy
Cool beans!!! Keep up the good work.

Posted: Thu Feb 05, 2004 3:40 pm
by Graf Zahl
I'm almost done. A little testing and I can send it to Randy. I hope he releases a new beta rather quickly so that you guys can mess around with it... ;)