[Bug] Lightning Hunter's load order issue

DaniJ wrote:
Doomsday 1.9.8 introduces a new feature which allows mods to only change certain values in a definition rather than override the whole thing. Mods like Sambo's sound pack should be updated to make use of this new functionality so they won't need to be updated again in future.

For example, if you have a State definition that only changes the value of tics you can use a definition like the following to only alter that value:
State mods "STATEID" { # Unique identifier of the state to change
  Tics = 4; # The new value.
}

Yeah, that's much better. The only reason I really wanted to use a new objects.ded was so that I could make my own "nightmare" version of Doom, in which the monsters have way more health and move faster, but don't respawn. It would be nice if I only had to put the health differences and such.

Until this feature is introduced, could you be so kind as to inform us of when objects.ded is modified? I would to know so I can make those changes to my own ded files. I'm guessing you haven't modified it in quite a while, since everything works the way it should when I use my modified .ded files.

Comments

  • edited 2012 Mar 2
    DaniJ meant 1.9.7; they are already in.

    For an example, open 1.9.7's 'JDoom.pk3' in "Data/JDoom" and head to "defs/JDoom/Chex/objects.ded".
  • Vermil wrote:
    DaniJ meant 1.9.7; they are already in.

    For an example, open 'JDoom.pk3' in "Data/JDoom" and head to "defs/JDoom/Chex/objects.ded".

    Oh, I didn't know it was already implemented! Awesome. I'll go have a look and change my mods. Maybe I'll also make an updated version of Sambo's pack for everyone to use.
  • Vermil wrote:
    DaniJ meant 1.9.7; they are already in.

    Oh, I didn't know it was already implemented! Awesome. I'll go have a look and change my mods. Maybe I'll also make an updated version of Sambo's pack for everyone to use.
    Yeah that was typo, sorry about that. That functionality is already implemented in 1.9.7
  • Hmm, what am I doing wrong? I'm trying to change only the health of some monsters, and they disappear in the game. This is what I have in my modified objects.ded (as an addon):
    Thing {
      ID = "POSSESSED";
      Name = "Zombieman";
      DoomEd number = 3004;
      Spawn health = 28;
    }
    

    Is there anything else I'm missing? Shouldn't all the other information be taken from the original file?
  • You aren't using the syntax I demonstrated. Your version is a replacement rather than a modification.
  • I'm a noob coder... :-/

    I tried to modify what you had said, but I guess I'm doing something wrong, because it crashes with "cann't recognize spawn health" or something. This is what I tried. Am I even close?
    State mods "POSSESSED" {
      Spawn health = 3008;
    }
    

    A simple example on how to change the health/reaction time/speed of a thing would help me greatly.
  • Try this:
    Thing mods "POSSESSED" {
      Spawn health = 28;
    }
    
  • DaniJ wrote:
    Try this:
    Thing mods "POSSESSED" {
      Spawn health = 28;
    }
    

    Ah, that worked! So I was supposed to be using "Thing Mods". I should have known. In case you are wondering, I was using spawned health 3008 as a test to see if it's working. Hehe.
  • I have no problem with Sambo's sound pack and I always use it. What problem is caused by it?
  • gary wrote:
    I have no problem with Sambo's sound pack and I always use it. What problem is caused by it?

    Well, it is based on a very old version of objects.ded. Whenever I had his soundpack in use with the latest versions of Doomsday, I would have strange movement behavior. For example, if you try to slide along a wall, you just get stuck.
  • edited 2012 Mar 3
    Hey Dani, there seems to be an issue with the load priority (load order) of modded "things". If you try to have multiple addons that both have "things mods", then the priority gets very finicky. For example, I was trying to get my difficulty mod to work with Sambo's sound pack, but they will not work together unless the difficulty mod is on the top for the load order in snowberry.

    Sambo's sound pack seems to work no matter what the order. However, if the difficulty mod is lower on the priority list, it will fail to work altogether. The load order should definitely not matter in this case, because neither mod changes the same values. Sambo's Soundpack only changes the sounds, while the difficulty mod changes the spawnhealth values and such. In fact, some of the monsters are not even listed in both mods, yet they still do not work in the difficulty mod if the load orders it not top priority.

    Here are both mods:

    Updated Sambo's Soundpack:
    http://filebeam.com/df2c66572d46a96a0fe83030cf94edf9

    Difficulty mod:
    http://filebeam.com/ac6e74c8cbce24b02ae61d4033ad7253

    In order to test what I mean, load both addons with different load orders. To make it easier to test, I suggest boosting the spawned health of the monsters to something much higher. That way, you will know it's working when they don't die.
  • I don't understand how that could happen, there is nothing which limits the use of the mods attribute to a single add-on. All such definitions should be applied as expected according to the load order.

    I'll see if I can replicate this...
  • Did you see my edited post? I changed a few things.
  • I have just tried this with two definition files of my own and achieved the correct result, i.e., that the first file modifies the value then the second file modifies it again. I can't replicate it with my own definition files.

    There is however an issue when I use the add-ons you provided. I suspect that you have one or more definitions in there that you've overlooked and those are replacing your first modification with a replacement definition.
  • DaniJ wrote:
    I suspect that you have one or more definitions in there that you've overlooked and those are replacing your first modification with a replacement definition.

    How is this possible? The code is as simple as pie. This is the code in Sambo's soundpack:
    Thing mods "UNDEAD"{
      Pain sound = "skepn";
    }
    Thing mods "TROOP"{
      Pain sound = "bgpain";
    }
    Thing mods "HEAD"{
      Pain sound = "capain";
      Active sound = "cacact";
    }
    Thing mods "BRUISER"{
      Active sound = "brsact";
    }
    Thing mods "KNIGHT"{
      Active sound = "brsact";
    }
    Thing mods "SKULL"{
      Pain sound = "sklpn";
      Active sound = "sklact";
    }
    Thing mods "SPIDER"{
      Pain sound = "spipn";
      Active sound = "spiact";
    }
    Thing mods "BABY"{
      Pain sound = "bspain";
    }
    Thing mods "CYBORG"{
      Pain sound = "cypain";
      Active sound = "cybact";
    }
    Thing mods "PAIN"{
      Active sound = "cacact";
    }
    

    And this is the code for the difficulty mod:
    Thing mods "POSSESSED" {
      Spawn health = 28;
    }
    Thing mods "SHOTGUY"{
      Spawn health = 38;
    }
    Thing mods "VILE"{
      Spawn health = 850;
      Speed = 16;
    }
    Thing mods "UNDEAD"{
      Spawn health = 400;
      Speed = 12;
    }
    Thing mods "TRACER"{
      Speed = 13;
      Damage = 10;
    }
    Thing mods "FATSO"{
      Spawn health = 750;
    }
    Thing mods "FATSHOT"{
      Speed = 25;
      Damage = 12;
    }
    Thing mods "CHAINGUY"{
      Spawn health = 85;
    }
    Thing mods "TROOP"{
      Speed = 10;
      Spawn health = 75;
    }
    Thing mods "SERGEANT"{
      Spawn health = 175;
    }
    Thing mods "SHADOWS"{
      Spawn health = 165;
    }
    Thing mods "HEAD"{
      Spawn health = 450;
    }
    Thing mods "BRUISER"{
      Spawn health = 1100;
    }
    Thing mods "BRUISERSHOT"{
      Speed = 22;
      Damage = 10;
    }
    Thing mods "KNIGHT"{
      Spawn health = 550;
    }
    Thing mods "SPIDER"{
      Spawn health = 3500;
    }
    Thing mods "BABY"{
      Spawn health = 550;
    }
    Thing mods "CYBORG"{
      Spawn health = 4250;
    }
    Thing mods "PAIN"{
      Spawn health = 425;
    }
    Thing mods "TROOPSHOT"{
      Speed = 18;
      Damage = 6;
    }
    Thing mods "HEADSHOT"{
      Speed = 20;
      Damage = 8;
    }
    Thing mods "ARACHPLAZ"{
      Speed = 30;
      Damage = 7;
    }
    

    That's it. I'm not using anymore addons to test. Just these two. How is the code from these mods conflicting at all?
  • I've just tried these two in separate files and it worked as expected:

    first.ded:
    Thing mods "HEAD"{
      Pain sound = "capain";
      Active sound = "cacact";
    }
    
    second.ded:
    Thing mods "HEAD"{
      Spawn health = 450;
    }
    
  • Ok, so what is different about those two and the mods?
  • You'll have to answer that question through trial and error; I can't replicate a problem here.
  • Ok, so try this to replicate the issue. Delete EVERYTHING in Sambo's soundpack, except "info". That way it still appears in the list, but does not run any definitions or anything. Now select both mods in the addons list as usual, and put the difficulty mod LOWER in the priority list. It STILL does not work, even though the ONLY code that is being run is this:
    Thing mods "POSSESSED" {
      Spawn health = 2008;
    }
    Thing mods "SHOTGUY"{
      Spawn health = 38;
    }
    Thing mods "VILE"{
      Spawn health = 8050;
      Speed = 16;
    }
    Thing mods "UNDEAD"{
      Spawn health = 4000;
      Speed = 12;
    }
    Thing mods "TRACER"{
      Speed = 13;
      Damage = 10;
    }
    Thing mods "FATSO"{
      Spawn health = 750;
    }
    Thing mods "FATSHOT"{
      Speed = 25;
      Damage = 12;
    }
    Thing mods "CHAINGUY"{
      Spawn health = 85;
    }
    Thing mods "TROOP"{
      Speed = 1000;
      Spawn health = 75;
    }
    Thing mods "SERGEANT"{
      Spawn health = 1075;
    }
    Thing mods "SHADOWS"{
      Spawn health = 1065;
    }
    Thing mods "HEAD"{
      Spawn health = 4050;
    }
    Thing mods "BRUISER"{
      Spawn health = 1100;
    }
    Thing mods "BRUISERSHOT"{
      Speed = 22;
      Damage = 10;
    }
    Thing mods "KNIGHT"{
      Spawn health = 550;
    }
    Thing mods "SPIDER"{
      Spawn health = 3500;
    }
    Thing mods "BABY"{
      Spawn health = 550;
    }
    Thing mods "CYBORG"{
      Spawn health = 4250;
    }
    Thing mods "PAIN"{
      Spawn health = 425;
    }
    Thing mods "TROOPSHOT"{
      Speed = 18;
      Damage = 6;
    }
    Thing mods "HEADSHOT"{
      Speed = 20;
      Damage = 8;
    }
    Thing mods "ARACHPLAZ"{
      Speed = 30;
      Damage = 7;
    }
    

    What on earth? So what could be causing this? Literally all that is being run is two info files, and one definition file for the difficulty mod, in the code above. However, it STILL has to be higher in the priority list to work.

    Edit: Ok, so I've found that if ANY mod at all is in the list with the difficulty mod, then the difficulty mod will NOT work unless it is first in the load order. It doesn't matter if the other mod has just an "info". Basically, this error is not caused by conflicts from definition files. Can you reproduce this, Dani?
  • I'm not using any of the add-ons, I'm simply testing the definitions you've given me and loading them with -def on the command line. I don't know what you may have changed in the add-ons and I wanted to categorically prove to myself that the definition database is being modified correctly, regardless of the load order. I've stepped through it in a debugger several times with different load orders and they work.

    I can only conclude that the issue is either with your add-ons or something else in your install.
  • But Dani, I've found that this issue is directly related to addons and the load order, and not conflicting definitions as I originally suspected. Follow these instructions EXACTLY to replicate the issue. Please do not use command lines or anything else. Use Snowberry with the addons menu, just like I am. First create a .pk3 addon file that contains a .ded file with the following code:
    Thing mods "HEAD"{
      Spawn health = 4050;
    }
    

    This should give the Cacodemon a lot of health. If you load the game with just this addon, it works as expected. HOWEVER, try loading ANY OTHER ADDON in the list with it. Make SURE the code above is lower in the list for the load order. Just look at this screenshot as an example:
    http://i6.photobucket.com/albums/y226/l ... xample.jpg

    You'll notice I put the Doom high-res texure pack above the difficulty mod in the load order. This makes it so the difficulty mod does not work at all. In other words, if ANY ADDON is given higher priority in snowberry, regardless of what it might be - the thing mods do NOT work.
  • I've just loaded the attached pk3 along with the dhtp using the following command line:
    -file "c:/users/danij/documents/doom/addons/deng-dhtp-20101225.pk3" -file "c:/users/danij/documents/doom/addons/difficulty.pk3"
    

    It worked as expected.
  • How is that any sort of test whenever capain and cacact don't even exist? How do you KNOW if it's working? Can you please give the Cacodemon a Spawn Health of something large instead and test that? Also, is that commandline the same as using the load priority as shown in my screenshot above? I don't even know how to use commandlines like that, so I can't even test it the way you did. Do you use a batch file? Where is the .exe file you load?
  • I KNOW its working because I can actually watch the value change in memory as it happens with the help of a debugger. I'm not using some airy fairy testing method involving shooting the thing to see how long it takes to die. Loose the attitude Lightning Hunter or you can forget about getting any assistance from me.
  • How can you expect to reproduce a bug if you don't do exactly what the user did to encounter the bug? If you try to reproduce it exactly how I'm telling you, I guarantee it will be reproduced. I'm not having an attitude; I'm simply trying to help you reproduce the bug, which I know for a fact exists since I just did a fresh install of build 427 with nothing but the addon I'm testing.

    Here is exactly what I did. I guarantee you will see what I'm talking about if you try it without commandlines or shorcuts. Please, please - could you try it exactly this way?

    -download the attached addon, which merely changes the health of the Revenant to 4,000.
    -Using the Snowberry addon list (and not commandlines) load the addon I attached with something else, as demonstrated in the screenshot here:
    http://i6.photobucket.com/albums/y226/l ... xample.jpg
    -warp to Doom2 map 16, which has a Revenant right outside the door. He will die in 3 shots with the super shotgun, even though he is supposed to have 4,000 health. If you load the difficulty mod by itself with no other addons, or put it on the highest priority, the Revenant will be nearly invulnerable like he's supposed to.

    I guarantee you 100% the bug will be reproduced if you do it this way. I did a fresh install with absolutely no changes to encounter this bug.
  • Now that you've actually supplied me with the add-on you are having a problem with, I was able to test it. You are indeed correct, when using this addon in combination with the DHTP in the load order you said - it doesn't work.

    I can now look into it to see why...

    This would have been a whole lot easier if you simply supplied the addon in the first place rather than forcing me to work from the bottom up in ruling out possibilities.
  • DaniJ wrote:
    This would have been a whole lot easier if you simply supplied the addon in the first place rather than forcing me to work from the bottom up in ruling out possibilities.

    I did give you the difficulty mod in my first post. You were quick to dismiss the issue as something that was my fault, so I decided you might believe me if I had you code something simple yourself. However, that was obviously a bad idea on my behalf... I'm sorry it took so long for me to help you reproduce this bug; I really am.
  • When I read your original post there were no files attached, only a couple of code blocks containing the two definitions with no mention of other add-ons or load orders. I copied those definitions into my own files to test them and they worked. I did not notice you had since uploaded your add-on files and gone back to edit your post.

    Anyways, thats beside the point. We can now find out whats going wrong :)
  • Sorry about that! I didn't realize you had missed my edits.
Sign In or Register to comment.