Jump to content

How to quick find a missing class object?


Recommended Posts

If i having a issues with unknown class name or parent type not found.How can I quickly find which file the missing object is in?Or do I have to open many files and search them one by one?

Sorry for my bad engilsh

Share this post


Link to post
41 minutes ago, Kappes Buur said:

Which IWAD are you using?

Which PWAD/s are you trying to load?

What source port are you using?

 

I'm making my own mod but I'm having some issues like the title suggests. Just want to quickly find out which DECORATE document have missing object.
I'm using slade 3.2.6 gzdoom 4.12.2 and gzdoom builder 2.3...

 

Share this post


Link to post
Posted (edited)

I do not quite understand this bit about missing actors.

 

Have you included actors in your mod which do not show up in game (GZDoom) or do not show up in the editor (UDB) or are generally mia in the mod (no DECORATE).

 

At some point you must have decided as to which actors you want to include in your mod. You can use multiple DECORATE files, but after about 10 actors this becomes unwieldy, so that one DECORATE file with #including the actors is easier to deal with.

 

Each actor must have a DoomED number. This can be done either in the actor definition or in the MAPINFO file with a DoomEDnums block .

 

"Housekeeping" can becomes a big issue, then using the PK3 file format comes in handy. You can create a folder for each actor, As an example on how to do this properly I suggest checking out Enjay's Gene-Tech: Before the Storm

 

Addendum:

You might want to consider ZSCRIPT instead of DECORATE for actors, in which case you have to use the DoomEDnums block

 

 

 

 

Edited by Kappes Buur

Share this post


Link to post
11 hours ago, Kappes Buur said:

I do not quite understand this bit about missing actors.

 

Have you included actors in your mod which do not show up in game (GZDoom) or do not show up in the editor (UDB) or are generally mia in the mod (no DECORATE).

 

At some point you must have decided as to which actors you want to include in your mod. You can use multiple DECORATE files, but after about 10 actors this becomes unwieldy, so that one DECORATE file with #including the actors is easier to deal with.

 

Each actor must have a DoomED number. This can be done either in the actor definition or in the MAPINFO file with a DoomEDnums block .

 

"Housekeeping" can becomes a big issue, then using the PK3 file format comes in handy. You can create a folder for each actor, As an example on how to do this properly I suggest checking out Enjay's Gene-Tech: Before the Storm

 

Addendum:

You might want to consider ZSCRIPT instead of DECORATE for actors, in which case you have to use the DoomEDnums block

 

 

Thanks for the answer, I still have more to learn

 

 

Share this post


Link to post
Posted (edited)

The easiest way to find the error is the error message it is spitting out or opening the console and reading the errors listed there. 

 

If it says that "actor not found" Then the actor the the script is trying to call does not exist, or is not implemented properly.

 

If the game crashes during the load GZD will usually supply the error that caused the crash. Many times GZD can run when errors are present, but they do affect game performance.

Edited by kalensar

Share this post


Link to post
48 minutes ago, kalensar said:

The easiest way to find the error is the error message it is spitting out or opening the console and reading the errors listed there. 

 

If it says that "actor not found" Then the actor the the script is trying to call does not exist, or is not implemented properly.

 

If the game crashes during the load GZD will usually supply the error that caused the crash. Many times GZD can run when errors are present, but they do affect game performance.

Thank you for your answer. Actually, what I want to ask is that I have many DECORATE files that contain missing actor objects, but I don't know which file contains the missing actor objects. I need to open many files one by one to find the correct DECORATE file one by one, so I want to ask if there is a more convenient way

Share this post


Link to post
Posted (edited)
40 minutes ago, kkflving said:

Thank you for your answer. Actually, what I want to ask is that I have many DECORATE files that contain missing actor objects, but I don't know which file contains the missing actor objects. I need to open many files one by one to find the correct DECORATE file one by one, so I want to ask if there is a more convenient way

 

If all the names of the Decorate files is just simply Decorate then GZD  cannot supply the file address. In SLADE in a PK3 you can name the Decorate file as something like "Decorate.RIfles".and it will read as a referenced Decorate file GZDoom without needing to do a #Include <Insert address path>. 

 

In a WAD format every Decorate will need to be named Decorate and there is no way to have an expanded address/File name due to WAD title space limitations.

 

In order to find the right Error location in a WAD type setup you need 2 key pieces of information to locate the error: Line number mendtioned, and  hopefully the Actor name being referenced. 

Cntrol+F can be used to start the FInd- Text tool common in practically every word processor like Notepad and also in SLADE.

 

If GZDoom prints the Error Then usually the Line number is referenced for where the error caused a crash.

Sometimes GZD can throw an error such as " 1 Error found in DECORATE during Post Processing" or something very similar to that. This by far the most aggravating error type because it does not list the error location, with the result being that basically have to find the error manually and start fixing every error you see by sheer knowledge of the DECORATE syntax format, or ZSCRIPT if it that applies. I've had many project crashes due to errors like that and being unable to find the error location, and sometimes devolves into rebuilding the entire mod. 

Edited by kalensar

Share this post


Link to post
Posted (edited)
2 hours ago, kkflving said:

Actually, what I want to ask is that

I have many DECORATE files that contain missing actor objects, but I don't know which file contains the missing actor objects. I need to open many files one by one to find the correct DECORATE file one by one, so I want to ask if there is a more convenient way

 

OK, you have missing actors. How do you know that they are missing?

Which maps did you play?

Did you get error messages of some sort?

 

You must have done something in order to tell that DECORATE lumps are involved, which leads me back to my earlier post.

 

 

Edited by Kappes Buur

Share this post


Link to post
Posted (edited)

As far as I remember, a DECORATE lump is plaintext, there are a couple of ways you can look for particular values in a set of such text files. Export them from the WAD and options open up.


Visual Studio Code has a fairly handy function to search (inside of) files within a directory, with regex support. Most full featured IDEs will these days as well.

 

Alternatively if you're comfortable with gnu utils and have WSL installed (or are running Linux), you could use grep, e.g. grep "classname" *.lmp
Powershell does also support string searches within file objects but syntax is a bit weirder.

Edited by Zerofuchs
Minor clarity tweak

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...