Git Product home page Git Product logo

whacked4's People

Contributors

gitexl avatar ioan-chera avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

whacked4's Issues

Title

Leave a comment
src\whacked4\ui\windows.py:233: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:235: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:237: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:239: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:241: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:243: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:245: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:247: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:249: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
Traceback (most recent call last):
File "src\whacked4\app.py", line 60, in OnInit
File "src\whacked4\ui\mainwindow.py", line 54, in init
File "src\whacked4\ui\editors\statesframe.py", line 63, in init
File "src\whacked4\ui\windows.py", line 1942, in init
File "src\whacked4\ui\spritepreview.py", line 35, in init
wx._core.wxAssertionError: C++ assertion "strcmp(setlocale(LC_ALL, NULL), "C") == 0" failed at ....\src\common\intl.cpp(1579) in wxLocale::GetInfo(): You probably called setlocale() directly instead of using wxLocale and now there is a mismatch between C/C++ and Windows locale.
Things are going to break, please only change locale by creating wxLocale objects to avoid this!
Traceback (most recent call last):
File "src\whacked4\ui\editors\thingsframe.py", line 314, in activate
File "src\whacked4\ui\editors\thingsframe.py", line 352, in update_properties
AttributeError: 'NoneType' object has no attribute 'things'
Traceback (most recent call last):
File "src\whacked4\ui\editors\thingsframe.py", line 314, in activate
File "src\whacked4\ui\editors\thingsframe.py", line 352, in update_properties
AttributeError: 'NoneType' object has no attribute 'things'

Saving in 1.3.0b destroys DEHEXTRA state table of files made in 1.2.4

This just happened to me. An error in the Extended DeHackEd state definitions in 1.3.0-beta's cfg/basetable_extended.json means that saving a file made in 1.2.4 causes irreversible data loss in states 1089-3999, which must then be fixed by hand.

How to reproduce:

  • Create a .bex file in Whacked4 v1.2.4 using the Extended DeHackEd mode, and modify some states in the extended range to make a sequenced animation (e.g. state 1089's next state is 1090, whose next state is then 1091 etc.).
  • Save, and open this same file in v1.3.0b. Save again without doing anything.
  • Re-open the file in 1.2.4. The next states are now reset for all states which linked to one immediate after (e.g. state 1089's next state is reset back to 1089).

Here's a 'working' example. It uses the extended states to make the pistol fire 4 shots in a row (bit of a contrived example, but good enough to demonstrate the bug). It also makes the BFG projectile red by setting its TRANSLATION and TRANSLATION2 flags, to demonstrate a tangentially related bug that I'll be covering in a moment.

Save this as a .bex file:

Patch File for DeHackEd v3.0
# Created with WhackEd4 1.2.4 BETA
# Note: Use the pound sign ('#') to start comment lines.

Doom version = 21
Patch format = 6


Thing 36 (BFG projectile)
Bits = NOBLOCKMAP+TRANSLUCENT+NOGRAVITY+TRANSLATION+DROPOFF+MISSILE+TRANSLATION2

Frame 13
Duration = 1
Next frame = 1089

Frame 1089
Sprite number = 3
Duration = 1
Next frame = 1090

Frame 1090
Sprite number = 3
Duration = 1
Next frame = 1091

Frame 1091
Sprite number = 3
Duration = 1
Next frame = 14

[CODEPTR]
FRAME 1089 = FirePistol
FRAME 1090 = FirePistol
FRAME 1091 = FirePistol

Now, open the file in WhackEd 1.3.0-beta and save without doing anything else. The .bex file now looks like this:

Patch File for DeHackEd v3.0
# Created with WhackEd4 1.3.0 BETA
# Note: Use the pound sign ('#') to start comment lines.

Doom version = 21
Patch format = 6


Frame 13
Duration = 1
Next frame = 1089

Frame 1089
Sprite number = 3
Duration = 1

Frame 1090
Sprite number = 3
Duration = 1

Frame 1091
Sprite number = 3
Duration = 1
Next frame = 14

[CODEPTR]
FRAME 1089 = FirePistol
FRAME 1090 = FirePistol
FRAME 1091 = FirePistol

When testing this newly saved .bex file in PrBoom+ 2.6.1um, the pistol now fires constantly in an infinite loop, even into the minus figures, and cannot be switched away from.

The bug is caused by an error introduced in the state table definitions. In WhackEd 1.2.4, the default Next State for all extended states is the same state (e.g. 1089's Next State is 1089), as it is in source ports. In WhackEd 1.3.0b, this is changed to the default Next State being the subsequent state (so 1089's Next State is now 1090). For any states which defined this in a .bex file, WhackEd 1.3.0 assumes they are unchanged from the default and doesn't include the Next State line for those states when saving, resulting in data loss, incorrect behaviour in source ports, and wasted evenings trawling through a ruined state table and fixing any that were messed up. Of course I pressed Save twice so my .bex.bak file is also wrecked.

Fixing involves some changes to cfg/basetable_extended.json to restore the old correct behaviour; I will submit a pull request to this end as soon as I have figured out this 'personal access token' nonsense that GitHub has decided to foist on us (FFS, can nothing be easy these days?).

As a side note, the cfg/basetable_mbf.json that Extended DeHackEd inherits from does not include the TRANSLATION2 flag defined in that port, resulting in the following error when opening the above .bex file in 1.3.0-beta:

Exceptions occurred during loading. The patch may be corrupted.

Last exception:
Ignoring unknown thing flag key "TRANSLATION2".

It also means the red colour of the BFG projectile is lost on save.

I fixed this locally by adding an entry for TRANSLATION2 to the thingFlags table in cfg/basetable_mbf.json, but it has added it underneath the UNUSED1 flag used by Boom (which cfg/basetable_mbf.json inherits from). If it's possible to 'remove' thing flag options set by inherited basetables, let me know how and I can submit a PR for this too.

brokenstate.bexs+fixes.zip

Final Doom DEHACKED Strings?

Something I've noticed that's completely missing from WhackEd is that there's no option to used dehacked in Final Doom mode, making it difficult to edit strings for Final Doom's EXEs.

ZDaemon tables

Hello!

This was supposed to be reguest so sorry if I put it into bad place
(also sorry for bad eng.)

I was curious if ZDaemon tables (config) could be added?
I could try write them by myself but its huge and complicated,
Authors of original tables have propably 10x more practice with it.
ZDaemon supports up to heretic and hexen (hexen partially but soon will be fully supported too). Using DEHSUPP we can utilize these states and actors to create custom new stuff. What is painy is that there is no other way, just to write everything "manually" in text editors. In comfy editor like WhackEd4 it's gonna be much user friendly.

Thank you!

[email protected]
Skype: Aeyesx

Doom Thing Flag Transshift

Currently, WhackEd4 has the Doom Thing Flag UNUSED1, but according to the Doom source code,
it should be TRANSSHIFT.
https://github.com/id-Software/DOOM/blob/master/linuxdoom-1.10/p_mobj.h
at line 201.
Even Greg Lewis's DeHackEd has 4 unused slots after the color 2 flag setting.
Might not be an issue, but certainly an observation.

More on this ...

Boom202 source code has this in BOOMDEH.txt ...

UNUSED1, 0x08000000 - undefined or second bit for translation
Color 2 (brown/red)

Yet the Boom202 source code p_mobj.h has the same as the Doom source ...
MF_TRANSSHIFT = 26,

???

More on this #2 ...

https://soulsphere.org/projects/boomref/mbfedit.html#sec6 point 4

So I'm guessing Boom should use the mnemonic TRANSLATION while MBF etc. can use either TRANSLATION or TRANSLATION1.

ZDaemon configuration: Selecting the "Render style" and "Game" drop-down boxs and picking an option crashes WhackEd.

Version
1.2.3 through 1.3.0 beta 2

OS
Windows 10 64-bit LTSC

Installed Python version
3.11.1 64-bit

Description
In the ZDaemon configuration, selecting the "Render style" or "Game" drop-down menus and selecting any option crashes WhackEd with the below error. The last version that this crash doesn't happen in is 1.2.1.

C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:242: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:244: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:246: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:248: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:250: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:252: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:254: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:256: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:258: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:2423: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:3667: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:3669: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:4077: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:4079: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
Traceback (most recent call last):
  File "C:\GitHub\WhackEd4\src\whacked4\ui\editors\thingsframe.py", line 594, in set_renderstyle
TypeError: 'dict_keys' object is not subscriptable

WhackEd4 does not detect chex.wad and chex3.wad (the 2008/2009 release) as valid IWADs.

Version
Up to and including 1.3.0 beta 2

OS
Windows 10 64-bit LTSC

Installed Python version
3.10.10 64-bit

Description
When trying to select the desired IWAD in the "Patch settings" dialogue box, the chex.wad and chex3.wad IWADs aren't recognized as IWADs. The reason for that is WhackEd4 relies solely on the presence of the 'IWAD' header in a selected WAD, and rejects any with the 'PWAD' header. However, any WAD created with DEUTEX (including chex.wad) has the PWAD header (unless the author uses a HEX editor).

https://github.com/GitExl/WhackEd4/blob/25cd23dbc3968c4b1d385177884953bd5a18158e/src/whacked4/doom/wad.py#LL84C1-L104C29

This is where the action takes place. An adjustment like the following could be made for the Chex Quest IWADs:
`

     # Read and validate header. Should contain PWAD or IWAD magic bytes.
        wad_type, entry_count, dir_offset = self.S_HEADER.unpack(f.read(self.S_HEADER.size))
        wad_type = wad_type.decode('ascii')
        if wad_type != self.TYPE_IWAD and wad_type != self.TYPE_PWAD:
            raise WADTypeError('Invalid WAD type "{}"'.format(type))

        # Read lump directory.
        f.seek(dir_offset)
        self.lumps = []
        for _ in range(entry_count):
            offset, size, name = self.S_LUMP.unpack(f.read(self.S_LUMP.size))

            # Strip trailing NULL characters.
            name = name.decode('ascii').split('\x00')[0]

            self.lumps.append(Lump(name, size, offset, self))

    self.filename = filename
    if (wad_type == self.TYPE_PWAD and self.get_lump('E1M1') and self.get_lump('E3M1')
    and self.get_lump('W94_1') and self.get_lump('POSSH0M0')):
        wad_type = self.TYPE_IWAD
    self.type = wad_type

`

Generate new json files

Say I made some modifications to the frame positions or added a few extra tables. How would I generate a new .json file with those changes? I've looked around but can't see exactly how someone would go about doing this.

Surely these 10,000 / 80,000 line files aren't made by hand?

Issue with MBF tables and above

State 968 frame seems to have the wrong next frame.
Currently 968's next frame is 965, which must be wrong.

Also this in the mbf source code info.c ...

// killough 8/9/98: grenade
{SPR_MISL,32768,1000,A_Die,S_GRENADE}, // S_GRENADE

// killough 8/10/98: variable damage explosion
{SPR_MISL,32769,4,A_Scream,S_DETONATE2}, // S_DETONATE
{SPR_MISL,32770,6,A_Detonate,S_DETONATE3}, // S_DETONATE2
{SPR_MISL,32771,10,NULL,S_NULL}, // S_DETONATE3

so if the mbf source is correct, the order should be
968, frame 0 next 968
969 frame 1 next 970
970 frame 2 next 971
971 frame 3 next 0

More typos

executable_doom19.json and executable_doom19u.json
line 304 has the word dropped twice.

tables_doom19.json and tables_doom19u.json
line 9583 has the word dropped twice.

basetable_boom_json
line 7613 has the word dropped twice.

Whacked4 1.30 beta 2 issues

MBF and above show this twice in the Things/Flags table ...

Color2 (brown\red)

To fix, this needs to be added to basetable_mbf.json ...

"UNUSED1" : {
"alias": "TRANSLATION2"
},

Also for MBF and above, TRANSLUCENT is not showing in its "correct" position. Should be under Friendly.

MBF minor issue

I've noticed that whacked4-1.3.0-beta places the TRANSLUCENT Thing Flag under the Color 2 flag,
whereas whacked4 1.2.4 places this flag correctly under the Friendly flag.

tables_doomretro.json error 1.3.0 beta

There is an error in tables_doomretro.json for 1.3.0 beta.

Lines 159 to 162 ...

"TRANSLUCENT": {
"field": "retroFlags",
"name": "Translucent"
},

should be deleted, as this is handled by basetable_boom.json and is a bit field, not a retrobits field.

WhackEd4 calls deprecated "item", advises :meth:'AddTool', plus Par Time and Booting Files

Either I'm using an old version of Python (are there system requirements I can look at?) or I'm trying to do something it can't do, period.

While trying to boot up an existing .BEX file, it issues a warning about an inability to locate text, asks if I would like to continue and, between hitting Yes and No, it still spills this out.

This is what it reads:

C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:242: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:244: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:246: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:248: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:250: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:252: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:254: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:256: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:258: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:2423: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:3667: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:3669: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:4077: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:4079: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
Traceback (most recent call last):
File "C:\GitHub\WhackEd4\src\whacked4\ui\dialogs\startdialog.py", line 46, in open_file
File "C:\GitHub\WhackEd4\src\whacked4\ui\mainwindow.py", line 166, in open_file_dialog
File "C:\GitHub\WhackEd4\src\whacked4\ui\mainwindow.py", line 260, in open_file
File "C:\GitHub\WhackEd4\src\whacked4\ui\mainwindow.py", line 451, in update_ui
File "C:\GitHub\WhackEd4\src\whacked4\ui\editors\statesframe.py", line 141, in build
File "C:\GitHub\WhackEd4\src\whacked4\ui\editors\statesframe.py", line 366, in filter_update
File "C:\GitHub\WhackEd4\src\whacked4\ui\state_list.py", line 146, in set_state_query_result
File "C:\GitHub\WhackEd4\src\whacked4\ui\state_list.py", line 110, in build
File "C:\GitHub\WhackEd4\src\whacked4\ui\state_list.py", line 131, in update_row
File "C:\GitHub\WhackEd4\src\whacked4\dehacked\patch.py", line 689, in get_state_name
IndexError: list index out of range

Also, when I press "Add" in the "Par Time" segment, I run into this one:

C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:242: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:244: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:246: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:248: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:250: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:252: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:254: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:256: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:258: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:2423: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:3667: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:3669: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:4077: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:4079: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
Traceback (most recent call last):
File "C:\GitHub\WhackEd4\src\whacked4\ui\editors\parframe.py", line 132, in par_add
File "C:\GitHub\WhackEd4\src\whacked4\dehacked\entry.py", line 68, in setitem
KeyError: 'Cannot find patch key "episode".'

So, I have python 3.10.8 (or rather, I downloaded and installed it). If WhackEd4 uses Python for its code and the most recent one is stable, here's hoping this will change things.

Update: And, nothing changed. It's still reading errors like crazy.

General issue with 1.3.0 beta

With 1.3.0 beta, with the Boom config and above, hover the mouse cursor over any Thing under the Flags tab.
There is a Key: and a Field: entry.
1.2.4 has this correct as Mnemonic.
Instead of Key: , could this be changed to Mnemonic ?

WhackEd4 is listening to my microphone actively

Dear dev,

This is very-very concerning. If I open a new file the program starts listening to the microphone. Usually this status only appears if a program is actively getting microphone input, for example when one would start a recording session in Audacity. This suggests to me that the microphone is constantly "recording".

image
(translation: WhackEd4 - 'New file' is using your microphone)

Thanks in advance!

this error message

src\whacked4\ui\windows.py:233: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:235: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:237: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:239: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:241: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:243: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:245: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:247: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:249: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
Traceback (most recent call last):
File "src\whacked4\app.py", line 60, in OnInit
File "src\whacked4\ui\mainwindow.py", line 54, in init
File "src\whacked4\ui\editors\statesframe.py", line 63, in init
File "src\whacked4\ui\windows.py", line 1942, in init
File "src\whacked4\ui\spritepreview.py", line 35, in init
wx._core.wxAssertionError: C++ assertion "strcmp(setlocale(LC_ALL, NULL), "C") == 0" failed at ....\src\common\intl.cpp(1579) in wxLocale::GetInfo(): You probably called setlocale() directly instead of using wxLocale and now there is a mismatch between C/C++ and Windows locale.
Things are going to break, please only change locale by creating wxLocale objects to avoid this!
Traceback (most recent call last):
File "src\whacked4\ui\editors\thingsframe.py", line 314, in activate
File "src\whacked4\ui\editors\thingsframe.py", line 352, in update_properties
AttributeError: 'NoneType' object has no attribute 'things'
Traceback (most recent call last):
File "src\whacked4\ui\editors\thingsframe.py", line 314, in activate
File "src\whacked4\ui\editors\thingsframe.py", line 352, in update_properties
AttributeError: 'NoneType' object has no attribute 'things'

error upon running

this is the error log:
src\whacked4\ui\windows.py:233: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:235: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:237: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:239: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:241: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:243: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:245: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:247: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
src\whacked4\ui\windows.py:249: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
Traceback (most recent call last):
File "src\whacked4\app.py", line 60, in OnInit
File "src\whacked4\ui\mainwindow.py", line 54, in init
File "src\whacked4\ui\editors\statesframe.py", line 63, in init
File "src\whacked4\ui\windows.py", line 1942, in init
File "src\whacked4\ui\spritepreview.py", line 35, in init
wx._core.wxAssertionError: C++ assertion "strcmp(setlocale(LC_ALL, NULL), "C") == 0" failed at ....\src\common\intl.cpp(1579) in wxLocale::GetInfo(): You probably called setlocale() directly instead of using wxLocale and now there is a mismatch between C/C++ and Windows locale.
Things are going to break, please only change locale by creating wxLocale objects to avoid this!
Traceback (most recent call last):
File "src\whacked4\ui\editors\thingsframe.py", line 314, in activate
File "src\whacked4\ui\editors\thingsframe.py", line 352, in update_properties
AttributeError: 'NoneType' object has no attribute 'things'
Traceback (most recent call last):
File "src\whacked4\ui\editors\thingsframe.py", line 314, in activate
File "src\whacked4\ui\editors\thingsframe.py", line 352, in update_properties
AttributeError: 'NoneType' object has no attribute 'things'

how do i fix this??

Crash on start up

WhackEd4 1.2.4 on Windows 10 2004.
Starting WhackEd4 results in a crash with the following output:

src\whacked4\ui\windows.py:233: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:235: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:237: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:239: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:241: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:243: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:245: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:247: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:249: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
Traceback (most recent call last):
  File "src\whacked4\app.py", line 60, in OnInit
  File "src\whacked4\ui\mainwindow.py", line 54, in __init__
  File "src\whacked4\ui\editors\statesframe.py", line 63, in __init__
  File "src\whacked4\ui\windows.py", line 1942, in __init__
  File "src\whacked4\ui\spritepreview.py", line 35, in __init__
wx._core.wxAssertionError: C++ assertion "strcmp(setlocale(LC_ALL, NULL), "C") == 0" failed at ..\..\src\common\intl.cpp(1579) in wxLocale::GetInfo(): You probably called setlocale() directly instead of using wxLocale and now there is a mismatch between C/C++ and Windows locale.
Things are going to break, please only change locale by creating wxLocale objects to avoid this!
Traceback (most recent call last):
  File "src\whacked4\ui\editors\thingsframe.py", line 314, in activate
  File "src\whacked4\ui\editors\thingsframe.py", line 352, in update_properties
AttributeError: 'NoneType' object has no attribute 'things'
Traceback (most recent call last):
  File "src\whacked4\ui\editors\thingsframe.py", line 314, in activate
  File "src\whacked4\ui\editors\thingsframe.py", line 352, in update_properties
AttributeError: 'NoneType' object has no attribute 'things'

This happens with the portable 7zip archive and the installer.

Whacked cannot be opened on latest Win10

I tried to open this program. And it failed. I'm using Microsoft Windows 10 (v2004)(10.0.19041 Build 19041)
The OS also tried to prevent to install it because there might be malicious code or virus.
I write dehacked code in text file but also want to try whacked.

image
image

Port to *Nix and other operating systems.

There doesn't seem to be that much preventing WhackEd4 from running on other operating systems, considering the WxWidget and Python base. However, it seems to rely on Win32GUI a bit too much.

Maybe port with WineLib or make it completely OS agnostic?

edit: or maybe it just looks like its incompatible with *Nix operating systems at first glance, as I see something about Mac fixes.

edit 2: At the very least, can you make it clearer that it can be compiled or run on other operating systems without Wine?

Thing editor suggests floating point numbers for Thing properties that can't be that.

Version
1.2.3 through 1.3.0 beta 2

OS
Windows 10 64-bit LTSC

Installed Python version
3.11.1 64-bit

Description
Beginning in 1.2.3, WhackEd4 suggests floating point numbers for Thing properties (Radius and Height) that don't accept such numbers. This creates a few different issues:

  • When 56.0 is displayed for Height, it suggests to users that replacing, say, 56.0 with 16.0 is the correct way to edit that property. When in reality, 16 is what is needed. Saving a patch this way will put in 1048576.0 as the height.
  • Even if users are savvy enough to know to put in 16 proper, moving from that edited Thing to a different one and back again will change the displayed input back to 16.0 (however, and confusing, it is internally stored as 16, so saving the patch will still produce a Height of 1048576 (the multiplied value DeHackEd users are familiar with).
  • If the former scenario is followed, users will be displayed a warning that the values in the patch aren't supported. This can cause a substantially large patch to have a lot of information stripped out.

Cause
Like with #35, the cause isn't tied to a specific commit. Rather, it's when the switch was made from Python 2.7 to 3.7. Regardless of wxPython version (whether 2.7-era 4.0.0b or 3.7-era 4.0.6), building a commit like ac38c2 with 3.7 causes the issue, while 2.7 doesn't have it.

Potential suggestion
Besides fixing it to not suggest floating point numbers for properties that do not support it, refusing to accept "." and other nonsense strokes in relevant fields (like Height and Radius) would both 'dummy proof' it, as well as act as a safety net in case a future Python update causes another regression.

Unused thing in state menu crashes WhackEd4 (MBF)

Version: 1.3
OS: Windows 10

Crash on scrolling down on filter in the states menu.
Format was MBF, clicking on 'unused' in the states menu achieves the same result.

Extra details below:
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:242: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:244: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:246: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:248: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:250: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:252: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:254: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:256: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:258: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:2423: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:3667: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:3669: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:4077: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:4079: wxPyDeprecationWarning: Call to deprecated item. Use :meth:AddTool instead.
Traceback (most recent call last):
File "C:\GitHub\WhackEd4\src\whacked4\ui\editors\statesframe.py", line 907, in filter_select
File "C:\GitHub\WhackEd4\src\whacked4\ui\editors\statesframe.py", line 364, in filter_update
File "C:\GitHub\WhackEd4\src\whacked4\dehacked\statequery\query.py", line 29, in execute
File "C:\GitHub\WhackEd4\src\whacked4\dehacked\statequery\unusedfilter.py", line 30, in apply
File "C:\GitHub\WhackEd4\src\whacked4\dehacked\statequery\filterbase.py", line 19, in expand_used_states
File "C:\GitHub\WhackEd4\src\whacked4\dehacked\statequery\filterbase.py", line 26, in __get_states_used_by
File "C:\GitHub\WhackEd4\src\whacked4\dehacked\table.py", line 225, in getitem
IndexError: list index out of range

Interlocked objects

Hi, I don't know if this is a WhackEd issue per se or if it's a Doom/Boom quirk, but i found that changing the SS Nazi or the Chaingun guy makes PRBoom crash with a line 11 error. Changing the plasma rifle projectile also affects the Arachnotron projectile. Apparently each can have their own sprite, but changing one's behavior also affects the other. In this case the game doesn't crash, but I spent some time trying to figure out why this was happening.

PermissionError: [Errno 13] Permission denied

Whenever I try to open a file in WhackEd, it crashes with the following error:

src\whacked4\ui\windows.py:233: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:235: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:237: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:239: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:241: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:243: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:245: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:247: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:249: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:2273: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:3522: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:3524: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:3936: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:3938: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
Traceback (most recent call last):
  File "src\whacked4\ui\mainwindow.py", line 765, in file_save
  File "src\whacked4\ui\mainwindow.py", line 405, in save_file
  File "src\whacked4\dehacked\patch.py", line 182, in write_dehacked
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\[censored]\\Downloads\\tower.deh'

This does not happen when I create a new file or open a file without an accompanying .WHACKED file, only when opening lone .DEHs or .BEXes or the like.

EDIT: Actually, it does happen when opening some files with .WHACKEDs. I'm currently looking into it further.

EDIT 2: Of all the DeHackEd patches I have, the only one afflicted by the bug is accpstl.deh, available on Doomworld. m8f-text.deh is also bugged, but by a different error:

src\whacked4\ui\windows.py:233: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:235: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:237: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:239: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:241: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:243: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:245: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:247: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:249: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:2273: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:3522: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:3524: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:3936: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:3938: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
Traceback (most recent call last):
  File "src\whacked4\ui\mainwindow.py", line 765, in file_save
  File "src\whacked4\ui\mainwindow.py", line 405, in save_file
  File "src\whacked4\dehacked\patch.py", line 220, in write_dehacked
  File "src\whacked4\dehacked\patch.py", line 255, in write_patch_ext_strings
KeyError: 'GOTARMOR   '

This might be a mistake on m8f's part. I'm fairly new to DeHackEd, however, so I doubt myself on that last statement very much.

Cacodemon & Baron Damage set to "Zero" (the Projectiles are 5 & 10, Though)

Projectiles and Lost Souls have a billed damage value, but not Cacodemons, Barons, Knights, Demons, or Spectres whose melee damage rides on said value (an Imp's A_TroopAttack piggy-backs off Projectile Damage). Yet, those damage values, according to v1.30 Beta's listings, are all zero.

This affects all project formats--Doom 1.9 to to DEHEXTRA. In 1.2.4, which I use since 1.30 is touchy, the lists are "correct." I assume I can reset the values and hit save, but someone new to DEHACKED might not know the correct values or where to input them. Veterans may resent the extra drudgery. What would happen if a Melee Attack always deals zero? Would that do as instructed or outright crash the game?

It's a minor issue--boot up, new project, enter values, move on--either an oversight or deliberate to address something I haven't come across. Do you know why this is and, if so, whether to fix it in the next version?

ZDaemon: "Rocket explosion style" in "Miscellaneous" does not permit useful input.

Version
Up to and including 1.3.0 beta 2

OS
Windows 10 64-bit LTSC

Installed Python version
3.10.10 64-bit

Description
When editing Things, the valid "Render style" options are:

  • None
  • Normal
  • Fuzzy
  • Lost soul translucency
  • Optional fuzzy
  • Shaded
  • Translucent
  • Additive
  • Stencil
  • Translucent stencil

However, when editing the separate option for rocket explosions in "Miscellaneous", the field of "Rocket explosion style" only permits entry of an integer of 0-255, none of which are valid render styles. This should be either:

  • Something akin to the On/Off booleans where clicking it will cycle through the valid options.
  • A field that offers a list of drop-down options if you click on it.
  • A plain string entry field, where users can input any string they want.

Trying to save an unsaved patch upon exiting WhackEd4 (1.3.0 beta 2) still crashes it.

Version
Up to and including 1.3.0 beta 2

OS
Windows 10 64-bit LTSC

Installed Python version
3.10.0 64-bit

Description
The 1.3.0 beta 1 release notes a fix when trying to save an unsaved patch upon exiting WhackEd4. 09f96ae is the commit in question.

However, as of 1.3.0 beta 2, the crash still occurs.

Crash log

C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:242: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:244: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:246: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:248: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:250: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:252: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:254: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:256: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:258: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:2423: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:3667: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:3669: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:4077: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
C:\GitHub\WhackEd4\src\whacked4\ui\windows.py:4079: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
Traceback (most recent call last):
  File "C:\GitHub\WhackEd4\src\whacked4\ui\editormixin.py", line 107, in workspace_update_data
RuntimeError: wrapped C/C++ object of type ThingsFrame has been deleted

Startup error with cx_freeze

This was working fine for the past few days on Win 10 x64, but today I tried to load it and all I get is this error. I've tried a few different versions with the same result. I've also tried reinstalling fresh with the same result. It could be something on my machine, but I am at a loss for what it could be that occurred in the past 48 hours. In any case, I'm documenting it here.

2019-08-21 18-44-19

[1.2.4] Sound priority values above 255 cause exception

1998's Twilight Warrior TC https://www.doomworld.com/idgames/levels/doom2/Ports/s-u/tw_11 was for Doom Legacy but AFAIK its twilight.deh is Doom 1.9 without BEX extras.

Opening twilight.deh using doom2.wad/1.9 mode with WhackEd4 v1.2.4 on Windows 10 (update 2004 not installed yet) causes an exception. Same when choosing Boom mode.

src\whacked4\ui\windows.py:233: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:235: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:237: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:239: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:241: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:243: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:245: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:247: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:249: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:2273: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:3522: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:3524: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:3936: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
src\whacked4\ui\windows.py:3938: wxPyDeprecationWarning: Call to deprecated item. Use :meth:`AddTool` instead.
Traceback (most recent call last):
  File "src\whacked4\app.py", line 68, in OnInit
  File "src\whacked4\ui\mainwindow.py", line 259, in open_file
  File "src\whacked4\ui\mainwindow.py", line 447, in update_ui
  File "src\whacked4\ui\editors\soundsframe.py", line 86, in build
  File "src\whacked4\ui\editors\soundsframe.py", line 119, in soundlist_build
  File "src\whacked4\ui\editors\soundsframe.py", line 152, in soundlist_update_row
IndexError: list index out of range

Ignoring unrelated deprecation messages, there seems to be an issue array dereferencing SoundsFramehttps.priority_colours?

# Colour-code rows by priority.
color_index = int(sound['priority'] / 32)
self.SoundList.SetItemBackgroundColour(row_index, self.priority_colours[color_index])

I noticed https://www.doomworld.com/idgames/levels/doom2/a-c/allhell opens fine and it only has a single custom sound entry. twilight.deh has these six entries:

Sound 74
Value = 120

Sound 80
Value = 300

Sound 84
Value = 32

Sound 98
Value = 100

Sound 99
Value = 64

Sound 103
Value = 300

If I remove the bottom five, WhackEd4 can now open twilight.deh.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.