Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Altazimuth

Members
  • Content count

    393
  • Joined

  • Last visited

About Altazimuth

  • Rank
    Member

Recent Profile Visitors

3383 profile views
  1. Based on precedent you could go for an item (like soulsphere.org), a cheat (iddqd.ru), or an enemy (mancubus.net). Outside of that I'm not sure would be a good call that still has the name recognition of being tied to Doom, whilst not mentioning the trademark directly.
  2. Altazimuth

    How to port Decorate to EDF?

    Fair enough. Was just wondering why when UDMF is a thing. Here's an example wad that uses ExtraData (I ported it to UDMF for the final idgames release). e2l11.zip
  3. Altazimuth

    How to port Decorate to EDF?

    How come you're using ExtraData? Regardless I'd be willing to help with whatever issues you have.
  4. Altazimuth

    How to port Decorate to EDF?

    Bogged down with university work. Still no excuse for being lazy and not responding. To make up for this I'll try implement a codepointer for you that should make porting the Annihilator easier: A_SpawnProjectile, the successor to A_CustomMissile. Shouldn't be too hard?
  5. Altazimuth

    How to port Decorate to EDF?

    For some reason the ASCII for the annihilator was really really screwed up. Sorted it out, copy the code above, which is updated.
  6. Altazimuth

    How to port Decorate to EDF?

    Based on what I said it should look something like this. This probably won't work, but might? thingtype Annihilator : Mobj, 30111 { obituary_normal "was blown away by The Cyber Annihilator's rockets." spawnhealth 7000 radius 40.0 height 110.0 mass 1000 speed 16 painchance 16 basictype Mosnter addflags "DMGIGNORED|FOOTCLIP|NORADIUSDMG|BOSS|HIGHERMPROB" seesound "monster/annsit" painsound "cyber/pain" deathsound "monster/anndth" activesound "cyber/active" states @" Spawn: ANNI AB 10 A_Look Loop See: ANNI A 3 A_PlaySoundEx("monster/anhoof") ANNI ABBCC 3 A_Chase ANNI D 3 A_PlaySoundEx("monster/anhoof") ANNI D 3 A_Chase Loop Missile: ANNI E 0 A_Jump(128,11) ANNI E 6 A_FaceTarget ANNI F 0 Bright A_MissileAttack("Rocket2", normal, 40) ANNI F 12 Bright A_MissileAttack("Rocket2", normal, 40) ANNI E 12 A_FaceTarget ANNI F 0 Bright A_MissileAttack("Rocket2", normal, 40) ANNI F 12 Bright A_MissileAttack("Rocket2", normal, 40) ANNI E 12 A_FaceTarget ANNI F 0 Bright A_MissileAttack("Rocket2", normal, 40) ANNI F 12 Bright A_MissileAttack("Rocket2", normal, 40) ANNI E 0 A_Jump(128,1) Goto See ShootMore: // If memory serves labels must be after gotos in EDF ANNI E 6 A_FaceTarget ANNI F 0 Bright A_MissileAttack("HomRocket1", normal, 40) ANNI F 12 Bright A_MissileAttack("HomRocket1", normal, 40) ANNI E 12 A_FaceTarget ANNI F 0 Bright A_MissileAttack("HomRocket1", normal, 40) ANNI F 12 Bright A_MissileAttack("HomRocket1", normal, 40) ANNI E 12 A_FaceTarget ANNI F 0 Bright A_MissileAttack("HomRocket1", normal, 40) ANNI F 12 Bright A_MissileAttack("HomRocket1", normal, 40) Goto See Pain: ANNI G 10 A_Pain Goto See Death: ANNI H 10 Bright ANNI I 10 Bright A_Scream ANNI JKL 10 Bright ANNI M 10 Bright A_Fall ANNI NO 10 Bright ANNI P 30 ANNI P -1 A_BossDeath "@ } I'll try get this done before the end of the day, editing the tutorial-of-sorts up above.
  7. Altazimuth

    How to port Decorate to EDF?

    It's easy enough to make EDF sounds, it's just a question of is SNDINFO works with "/" stuff.
  8. Altazimuth

    How to port Decorate to EDF?

    IDunno.zip This has the appropriate structure for initial urn code. Please compare your EDF with this, and let me know what was different.
  9. Altazimuth

    How to port Decorate to EDF?

    Can you post the first line of EURNS?
  10. Altazimuth

    How to port Decorate to EDF?

    OK so I'll break this down, starting with the marble urns, then moving on to the Annihilator. In the global WAD namespace (not between some FOO_START FOO_END tags) you'll want a lump called EDFROOT. The contents of that lump should be fair simple to start off with. stdinclude("root.edf") setdialect("ALFHEIM") // This enables using : for inheritance and doomednum setting lumpinclude("EURNS") // You can call the lump whatever you want, but EURNS seems like a sensible name lumpinclude("EANILATR") // Again, call it whatever you want Now let's create the EURNS and EANILATR lumps. If we look at the DECORATE we see the first actor, "ACTOR MarbleUrn 13571". In EDF this translates to "thingtype MarbleUrn : Mobj, 13571". This syntax in general means "thingtype NameOfThing : ThingItInheritsFrom, DoomEdNum". "Mobj" is just a dummy value, meaning that it inherits from nothing. Now let's break down the properties one by one. It's worth noting that property names are case insensitive, so the property "radius" and the property "rAdIuS" are the same thing Radius 16: This line is an easy translation, turning to "radius 16.0". The ".0" isn't necessary, but I like keeping it there as it reminds me that it's not strictly a whole number Height 40: Same thing as radius, it goes to "height 40.0" +SOLID: OK, so flags are handled different in EDF, there's a few flags properties, but also one more important "cflags" property which lets you combine all other flags. Thankfully this is rather simple in this case, and just translates to "cflags SOLID". Alternatively you could use "basictype SolidDecor", which does the same thing. The idea behind basictype is that it's a pre-defined set of flags that commonly crop up (so SolidDector is just SOLID, but other ones are more complex). States (stuff): OK so states isn't different at all really, but you have to replace '{' with '@"' and '}' with '"@'. Everything else can stay the same if you want. You should end up with something like this: thingtype MarbleUrn : Mobj, 13571 { radius 16.0 height 40.0 cflags SOLID // using cflags instead of basictype as it's the closer thing to directly copying from the DECORATE states @" Spawn: MURN A -1 Stop "@ } Now that we've got the first one defined, the rest are a doddle. I trust you to figure out how to do Red/Black/Tan/Blue if I provide you with the steps to do the red one. So not much has changed here. We just want to make MarbleUrnGrey which inherits from MarbleUrn, and has DoomEdNum 13572 This can just go below the MarbleUrn in the same file. Additionally the states will be different. Changing properties from their inherited values in EDF is much the same as it is in DECORATE. The only thing we need to remember is to place the dummy "Mobj" field in the definition with the thingtype we're inheriting from, which in this case is "MarbleUrn". Ultimately this is the result. ... // Pretend that the entirety of MarbleUrn is up here } thingtype MarbleUrnGrey : MarbleUrn, 13572 { states @" Spawn: MURN B -1 Stop "@ } OK let's shift gears to the Annihilator. Go to the EANILATR lump we made earlier. This one's a bit less obvious, especially since we have to define new sounds and two whole projectiles! Let's sort out the sounds first. Note that you can't have ogg vorbis sounds in EE currently, so you'll need to turn them into mono WAVs (or actual Doom sounds). I don't remember if EE would be capable of parsing the Annihilator SNDINFO, so you'll need to get back to me on if the sounds actually work. Now let's define the Annihilator. Like before, the first line should be "thingtype Annihilator : Mobj, 30111". Now we have to deal with the obituary. A limitation of EDF obituaries as of current is that the obituaries always start with "Playername ", which is then put before the obituary string. So in this case we could rework the line to be "obituary_normal "was blown away by the Cyber Annihilator's rockets."". Health , radius, height, mass, speed, and painchance all can just be used verbatim. Now we get to MONSTER. This is the DECORATE version of a basictype. If we look at the EDF thing reference and go to basictype we can see that the nearest match is "basictype Monster". Now for the rest of the flags, we want to add them with the addflags property. In this case it should be "addflags". Looking at documentation the closest thing to NOTARGET is DMGIGNORED, FLOORCLIP goes to FOOTCLIP, NORADIUSDMG remains the same, BOSS remains the same, and MISSILEEVENMORE doesn't have a direct correlation to any flag, the closest being HIGHERMPROB. This results in the following: "addflags DMGIGNORED|FOOTCLIP|NORADIUSDMG|BOSS|HIGHERMPROB". The sound properties might work as-is, so that's fine. Moving on the the states. Copy them verbatim, swapping out the '{' for '@"' and '}' for '"@'. Now we need to look at the list of codepointers on the wiki to see which codepointers exist. Looking at (A_)PlaySound we see that it uses misc1 and misc2 parameters, meaning it can't be used in DECORATE states, but it says that we can use A_PlaySoundEx instead. A_Jump works the same, so that can stay as-is. Now we get to A_CustomMissile, which isn't present in Eternity. Under "AI attack" > "Parameterized" there's MissileAttack. Looking at the parameters we see that there's no equivalent for the x/y offset (which makes me think that I should try and at least partially adapt A_SpawnProjectile to Eternity for convenience), but it roughly translates to "A_MissileAttack("Rocket2", normal, 40)", you might want to add another parameter after to define the angle offset though. TODO: More
  11. Altazimuth

    How to port Decorate to EDF?

    Well there's no panacea for converting DECORATE to EDF, and in some cases it might be impossible. What monster and items do you wish to port? I can give specific guidance if I'm provided with that.
  12. It's a Medusa. I've debugged it and it crashes exactly where a Medusa does, doing a read access violation in R_DrawMaskedColumn. Choco crashes even on mostly symptomless Medusa errors, that vanilla handles just fine. You've got a multipatch on a 2S midtexture somewhere, and it needs to be fixed. (Thanks to Quasar for actually telling me what my findings mean; he's the one that actually knew this stuff.) Edit: I think it's line 2562, at least?
  13. If people found those terms upsetting then sure, this is positive. My concerns are more pragmatic, that being that replacement terminology is inconsistent. Django has leader and follower, Redis has primary and replica, and now Python has parent and child. I'm sure there's even more than just those terms for other projects that I'm not aware of. If one set of terminology becomes de-facto standard then that's fine, but nobody is following anybody else's lead outside of in the abstract, so there's way more confusion than is necessary when moving between projects.
  14. Altazimuth

    Ports That Support MP3 (and other non-MIDI) playback

    Not exactly sure, but ogg support is pretty good comparatively (and MP3s are pretty unpredictable, I'd stay away from them). PRBoom+, ZDoom, Eternity, etc.
  15. Altazimuth

    Avactor Release !

    May I suggest distributing this as a zip or 7z file? As a zip file it's 30MB, and it's only 14 if a 7z. Regardless I'm looking forward to playing!
×