* make Corona a fully scripted class so that AActor can be made final again.
* add global vkversion variable for use by the survey code.
* move progress bar on generic start screen to the bottom and made it longer.
* revert BulletPuff to its GZDoom version because the changes are not compatible with Dehacked.
- Show item counter on automap
- Enable thicker automap lines and anti-aliased lines for better visibility with high res displays
- Enable textured automap
- HUD border scaling factor to better match default status bar scaling
- Enable subtitles
- Set render quality to "quality" to fix level mesh seams (gl_seamless)
- Enable mouse in menus by default (instead of touchscreen-like)
- Don't show ENDDOOM when quitting the app
- Enable the first crosshair, and set its scale slightly smaller
- Grow crosshair when picking up items
- Set autoaim slider to 0
- Show nametags when switching items and weapons
- Always run enabled
- Disable save/load confirmation dialog
- Enable quicksave rotation
- Enable additively-translucent Doom rocket explosion
- Increase default particles to 10k, and increase the slider to 65k (engine limit)
- Disable night vision effect
- Set sprite clipping to "Always" as this looks better than having sprites sink into the geometry
- Set particle style to round as it matches the pixelated aesthetics better
This also adds the `r_actorspriteshadowalpha` and `r_actorspriteshadowfadeheight`
cvars for greater control (only effective in hardware renderers).
These are set to 0.5 and 0 by default, which means this fading behavior
is disabled by default.
When enabled, this has two benefits:
- It becomes easier for the player to judge an entity's height since
the shadow opacity now gives this information.
- Entities that are far high above the ground no longer cast a shadow,
which looked strange.
- Made the 2 TArrays into a class called DActorModelData.
- Removed the skinindex and now just uses one index
- Replaced a bunch of nullptr for modelDef checking with NAME_None
- Added some garbage cleanup to A_ChangeModel itself, as well as removing memory of modelData that is no longer needed
- Attempted serialize code, putting up for review
-Added A_ChangeModelDef
A_ChangeModel(modeldef, modelpath, model, modelindex, skinpath, skin, skinid, flags)
This can change the modeldef, model and skins of an actor.
Currently, modelindex and skinindex accept indices from 0-15.
An actor MUST have a modeldef in order to use this function, either defined from modeldef, or given one through the modeldef parameter. You can pass "" to use the same modeldef. Likewise, passing "" for model or skin will just revert to the default model.
Available flags:
CMDL_WEAPONTOPLAYER - If used on a weapon, this instead change's the model on the player instead.
One issue I am aware of right now is that clearing a model by "" sort of works but is buggy. For now you can just manually set the model back using the names explicitly. However, I am stumped and I think getting more eyes on it would help.
* consolidated the getter functions on the game data side
* better handling of per-sprite lighting with fog
* allow negative values for additive per-sprite lighting.
* also fixed return type of UpdateWaterDepth.
Makes it so that if an actor's master is invisible due to camera/mirror/portal shenanigans, then the actor will also be invisible. Name based off of an Unreal Engine flag that does the exact same thing.
Co-authored-by: Christoph Oelckers <coelckers@users.noreply.github.com>
Adjusts the thing's 3D position on render side. This allows for adjusting a thing's visual position without impacting their hitbox.
# Conflicts:
# src/playsim/p_mobj.cpp
- Offset: The offset from the actor's view to move the camera about.
- Flags: (Default is -1, which means don't change flags)
- VPSF_ABSOLUTEOFFSET: Don't include actor angles in calculation.
- VPSF_ABSOLUTEPOS: Position is absolute, and disables all transformations. Modders are responsible for being portal aware!
Notes:
- `ViewPos` in Actor will be `null` until A_SetViewPos is called for the first time.
**Issues:**
- Hiding sprite while in portal incomplete.