Commit graph

17 commits

Author SHA1 Message Date
Christoph Oelckers
fad406c4c9 - got rid of FNameNoInit and made the default constructor of FName non-initializing.
This setup has been a constant source of problems so now I reviewed all uses of FName to make sure that everything that needs to be initialized is done manually.
This also merges the player_t constructor into the class definition as default values.
2018-08-19 08:19:19 +02:00
Christoph Oelckers
5eb898107f - now that all 2D is guaranteed to be drawn in true color, the Heretic E2 end pic can be handled with less hacks.
This removes the entire palette switch and all the special checks to ensure that no menu can be drawn over this image.
Instead it gives this texture its special palette in the texture manager so that the proper image is created right away.

I decided against exposing this as an editing feature because it is far too specific to this particular image and the raw page format it uses.
A quick check of /idgames shows no project ever replacing it - especially no ZDoom-based project - so no extended handling is needed to make this work with other texture formats.
2018-04-08 10:10:26 +02:00
alexey.lysiuk
370b639ab1 Fixed crash on returning to title screen
https://mantis.zdoom.org/view.php?id=615
2017-04-22 09:58:38 +03:00
Christoph Oelckers
6dee9ff566 - replaced another large batch of homegrown type use. 2017-03-08 18:55:53 +01:00
Christoph Oelckers
b8f7e305db - changed TObjPtr to take a pointer as its template argument and not the class it points to.
This addresses the main issue with TObjPtr, namely that using it required pulling in the entire class hierarchy in basic headers like r_defs which polluted nearly every single source file in the project.
2017-03-08 13:35:21 +01:00
Christoph Oelckers
f343d36ea9 - implemented the basics of a working metadata system.
This will store class meta properties in a separate memory block so that it won't have to muck around with PClass - which made the implementation from the scripting branch relatively useless because extending the data wasn't particularly easy and also not well implemented. This can now be handled just like the defaults.
2017-02-27 23:28:19 +01:00
Christoph Oelckers
dadc8e2ec2 - removed all uses of DTA_Translation except for the single one that passes a custom built table.
This means that with the exception of 3 pointers the DrawTexture interface only accepts numeric values now.
Still need to get rid of the last 3 to have this ready for scripting.
2017-02-04 23:26:28 +01:00
Christoph Oelckers
7b7623d2c4 - split DObject::Destroy into the main method, a native OnDestroy and a scripted OnDestroy method and made the main method non-virtual
This was done to ensure it can be properly overridden in scripts without causing problems when called during engine shutdown for the type and symbol objects the VM needs to work and to have the scripted version always run first.
Since the scripted OnDestroy method never calls the native version - the native one is run after the scripted one - this can be simply skipped over during shutdown.
2017-01-12 22:49:18 +01:00
Christoph Oelckers
66d28a24b8 - disabled the scripted virtual function module after finding out that it only works if each single class that may serve as a parent for scripting is explicitly declared.
Needless to say, this is simply too volatile and would require constant active maintenance, not to mention a huge amount of work up front to get going.
It also hid a nasty problem with the Destroy method. Due to the way the garbage collector works, Destroy cannot be exposed to scripts as-is. It may be called from scripts but it may not be overridden from scripts because the garbage collector can call this function after all data needed for calling a scripted override has already been destroyed because if that data is also being collected there is no guarantee that proper order of destruction is observed. So for now Destroy is just a normal native method to scripted classes
2016-11-25 00:25:26 +01:00
Randy Heit
55142078d8 Normalize line endings 2016-03-01 09:47:10 -06:00
Randy Heit
562cf04db2 - Update scripting branch to trunk.
SVN r3758 (scripting)
2012-07-14 03:04:41 +00:00
Randy Heit
8e8331d44c - Fixed: Pressing a key to advance an intermission screen only worked on
the local computer.



SVN r3328 (trunk)
2011-12-06 02:51:32 +00:00
Christoph Oelckers
5e5ddd8cc8 - fixed: The help screens were stretched on 16:9 displays
- fixed: The bunny scroller did not advance its animation to the end when aborted.


SVN r3102 (trunk)
2011-01-14 09:22:09 +00:00
Christoph Oelckers
48e17ccf1c - fixed: The cast call could not handle actors with changing sprites
- fixed: The cast call was missing some NULL pointer checks for invalid actor classes.
- fixed: The cast call did not use a translation defined for an actor class.


SVN r2968 (trunk)
2010-10-30 07:21:16 +00:00
Christoph Oelckers
f318653a11 - fixed: The intermission data was never freed.
SVN r2955 (trunk)
2010-10-17 13:25:21 +00:00
Christoph Oelckers
ec3e4bb7c7 - fixed: The Player played no sounds in the Doom2 cast.
- fixed: The player's melee state is not a proper melee state so it should not be entered when used in the cast.
- fixed: Sounds were played before changing states. That missed situations where the state was entered from anywhere else but the previous state.


SVN r2915 (trunk)
2010-10-06 17:57:56 +00:00
Christoph Oelckers
d9970ab9b6 - merged finale branch back into trunk.
SVN r2911 (trunk)
2010-10-06 10:44:03 +00:00