Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
JoelMurdoch

Millennium Enemy Attack Functions

Recommended Posts

James, I'm going to dig out the out Doom Millennium code to get the new bad guy attack functions sometime this weekend. Couple of questions.

1. Does the current Small implementation mean I can redo these attack routines in Small, or will I need you to put them in the main codebase?

2. I seem to remember reading something about a generic "launch projectile" function that could be called via EDF. Am I correct or am I imagining things?

Share this post


Link to post

Actually, if you gave me a precise enough description of what all the attacks need to do, I could either:

1) Refer you to the exact feature(s) you'll need to do them without using native code OR

2) Add them as codepointers and/or script functions very quickly before the next release, if they're feasible (and most of the Millennium features I know of would be). I really need to expand this stuff and adding it for you is a good way to focus on useful additions.

I do still have the p_enemy.c file from Millennium somewhere, but I was never given the rest of the source (and I needed it before I could work on absorbing some of the other stuff as engine features).

But no, you're not hallucinating about the generic attack functions. Bring up the Codepointer reference from the doc package (online version on engine page is up to date also) and look for the parameterized monster attack pointers. You'll find a treasure trove of info there ^_^

Share this post


Link to post

Good to know I wasn't seeing things on that function. From memory (and this is going back two years or more) most Millennium bad guys will be covered by those generic functions. Define the new projectile in EDF, launch it with the new function.

I think I may have lost the final revision of the source before the team collapsed, but I still have the original source archive Steve sent me. Most of the changes were spit shines or tweaks to the bad guys. The former are irrelevant, the latter Steve has already ported to EDF himself.

Between all of this stuff, the only things I think remain problematic for Millenium to run under Eternity with no custom code as original envisioned are the new weapons. The Ruby Plasma and ANTs specifically are bitches. Solve one problem and another crops up. The Ruby Plasma uses a particle stream that no matter what always seemed to overload and crash whatever particle system you tried it with. And the ANTs were things which ran around and attacked monsters. No matter how much I tweaked things it was possible to break the concept in various ways (eg getting them piled on top of each other or stuck against walls). I think Steve still wants both; I'd rather see them axed. Too much hassle.

Share this post


Link to post

I seem to remember some other stuff too, though -- like a monster who spawned child monsters and all of them would be removed when the main monster died. You certainly cannot do that with EDF currently.

Anyways, just let me know if/as soon as you run up against a barrier with EDF/ExtraData/Small/anything else you guys end up using where you say "ok I need native code for this." At that point I will let you know whether or not I could implement it as a generic editing feature in reasonable time.

I wanna be as helpful as possible to any project using Eternity ^_^

SECOND EDIT: I checked and I do NOT have the code for the ruby plasma effect, so I cannot try to fix it for you guys until somebody gets it to me. It's in a function named P_RPlasmaAttack. It is prototyped, but never defined, in the p_enemy.c file I was sent some time ago. I am missing several other such functions. If you have ANY version of the source, however old, I would really like to see it. I've asked for it several times in the past but Lut never could get it to me, and I never could catch you.

As far as the player spawning things, it has to be done like a Pain Elemental lost soul spit. No crossing lines or sticking inside existing objects. There's no current codepointer available for that. I should probably add one huh? :->

Share this post


Link to post

I'm also playing around with a new weapon. Also spawns a "helper" of sorts. Problem is the ammo type, and the fact that the player can fuck up the spawning very easily.

I would also love to have a flamethrower, including alternative death frames for the monsters killed with it, but I guess that's a bit too radical atm. Although Strife had it :)

Share this post


Link to post

A flamethrower could be done with the present codepointers, but if you wanted to create a new ammo type for it, you'd have to wait until EDF for weapons is implemented and that is still a while in coming. I haven't solved any of the problems related to generalizing the weapon system, and it unfortunately gets tangled up into the netcode issue when you start to deal with how weapon changes are recorded and transmitted.

New codepointers added last night:

ThingSummon
Generalized pointer to let a monster summon another monster
args[0] = thing type
args[1] = prestep distance
args[2] = z delta
args[3] = kill or remove if thing is stuck?
args[4] = make new thing child of current thing

KillChildren
Kills or removes all things marked as children of the current thing.
args[0] = kill or remove?

Share this post


Link to post
Quasar said:

KillChildren
Kills or removes all things marked as children of the current thing.
args[0] = kill or remove?



Thanks for the idea! ;)

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  
×