[info=2b6a824d9fb5cf203043141c2121d43c512860ab061af81c6ae1ab7785f73292]
OBS-URL: https://build.opensuse.org/package/show/games/dsda-doom?expand=0&rev=18
This commit is contained in:
commit
7e66ea34fc
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.osc
|
4
_scmsync.obsinfo
Normal file
4
_scmsync.obsinfo
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
mtime: 1724023959
|
||||||
|
commit: 2b6a824d9fb5cf203043141c2121d43c512860ab061af81c6ae1ab7785f73292
|
||||||
|
url: https://src.opensuse.org/jengelh/dsda-doom
|
||||||
|
revision: master
|
3
build.specials.obscpio
Normal file
3
build.specials.obscpio
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:0c20734cd4158124d0b12c7c8b43994b88aa2c130d71996e166a8f094aba2d46
|
||||||
|
size 256
|
35
cmake-path-suffix.diff
Normal file
35
cmake-path-suffix.diff
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
From: Jan Engelhardt <jengelh@inai.de>
|
||||||
|
Date: 2023-11-01 14:19:29.990929358 +0100
|
||||||
|
References: https://github.com/kraflab/dsda-doom/issues/434
|
||||||
|
|
||||||
|
[ 6s] src/CMakeFiles/dsda-doom.dir/build.make:3952: warning: overriding recipe for target 'dsda-doom'
|
||||||
|
[ 6s] src/CMakeFiles/dsda-doom.dir/build.make:3943: warning: ignoring old recipe for target 'dsda-doom'
|
||||||
|
[ 6s] src/CMakeFiles/dsda-doom.dir/build.make:3952: warning: overriding recipe for target 'dsda-doom'
|
||||||
|
[ 6s] src/CMakeFiles/dsda-doom.dir/build.make:3943: warning: ignoring old recipe for target 'dsda-doom'
|
||||||
|
[ 6s] make[2]: *** No rule to make target 'optimized', needed by 'dsda-doom'. Stop.
|
||||||
|
[ 6s] make[1]: *** [CMakeFiles/Makefile2:172: src/CMakeFiles/dsda-doom.dir/all] Error 2
|
||||||
|
|
||||||
|
---
|
||||||
|
prboom2/cmake/FindLibMad.cmake | 2 --
|
||||||
|
1 file changed, 2 deletions(-)
|
||||||
|
|
||||||
|
Index: dsda-doom-0.27.2/prboom2/cmake/FindLibMad.cmake
|
||||||
|
===================================================================
|
||||||
|
--- dsda-doom-0.27.2.orig/prboom2/cmake/FindLibMad.cmake
|
||||||
|
+++ dsda-doom-0.27.2/prboom2/cmake/FindLibMad.cmake
|
||||||
|
@@ -59,13 +59,13 @@ select_dll_configurations(LibMad)
|
||||||
|
find_library(
|
||||||
|
LibMad_LIBRARY_RELEASE
|
||||||
|
NAMES mad
|
||||||
|
- PATH_SUFFIXES ../../lib
|
||||||
|
+ PATH_SUFFIXES ${CMAKE_CURRENT_BINARY_DIR}/../../lib
|
||||||
|
)
|
||||||
|
|
||||||
|
find_library(
|
||||||
|
LibMad_LIBRARY_DEBUG
|
||||||
|
NAMES mad
|
||||||
|
- PATH_SUFFIXES ../debug/lib
|
||||||
|
+ PATH_SUFFIXES ${CMAKE_CURRENT_BINARY_DIR}/../debug/lib
|
||||||
|
)
|
||||||
|
|
||||||
|
include(SelectLibraryConfigurations)
|
77
dsda-doom.changes
Normal file
77
dsda-doom.changes
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Aug 18 22:12:59 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
|
||||||
|
|
||||||
|
- Update to release 0.28.1
|
||||||
|
* Fixed freelook menu crash, fixed numlock menu crash
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Aug 15 16:10:13 UTC 2024 - Andrea Manzini <andrea.manzini@suse.com>
|
||||||
|
|
||||||
|
- Update to release 0.28.0
|
||||||
|
* Freelook aiming and projectile behavior has been rewritten
|
||||||
|
* Added MAPINFO flags to support finite height explosion behavior
|
||||||
|
* Added MAPINFO flags to support freelook
|
||||||
|
* improvement on Tools, Console, and many Bug Fixes
|
||||||
|
see https://github.com/kraflab/dsda-doom/blob/master/patch_notes/v0.28.md
|
||||||
|
- Delete cmake-path-suffix.diff
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Dec 3 16:22:11 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
|
||||||
|
|
||||||
|
- Update to release 0.27.5
|
||||||
|
* DSDAHUD lumps are "merged" now so only redefined huds are changed
|
||||||
|
* Fixed umapinfo bunny scroller crash
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Nov 18 18:14:25 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
|
||||||
|
|
||||||
|
- Update to release 0.27.4
|
||||||
|
* Added option to hide stat labels and totals
|
||||||
|
* Fixed an overflow causing distant sprites (~8k map units) to
|
||||||
|
not be rendered
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Nov 5 22:26:17 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
|
||||||
|
|
||||||
|
- Update to release 0.27.3
|
||||||
|
* New indexed light mode (software fidelity in OpenGL).
|
||||||
|
* Improved controller support.
|
||||||
|
* A new HUD system with new components.
|
||||||
|
* New console commands and better usability.
|
||||||
|
* UDMF support, MAPINFO support
|
||||||
|
* ZIP file loading
|
||||||
|
* Improved Heretic and Hexen suport
|
||||||
|
* Upgraded to OPL3 emulation
|
||||||
|
* You can switch back to OPL2 with config option mus_opl_opl3mode
|
||||||
|
- Delete prboom-nodatetime.diff, fluidsynth1.diff
|
||||||
|
- Add cmake-path-suffix.diff
|
||||||
|
- Note: If you updated from an old dsda-doom and use the same
|
||||||
|
config file, your default complevel may have been reset to 0. If
|
||||||
|
you run into an issue, check it out (suggested value is 21 /
|
||||||
|
mbf21, if you don't know what to pick).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Mar 30 18:39:27 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
|
||||||
|
|
||||||
|
- Update to release 0.24.3
|
||||||
|
* Improved automatic keyframe timeout behaviour
|
||||||
|
* Fixed a crash caused by saving the game state after an
|
||||||
|
intercept overrun
|
||||||
|
* Added mouse stutter correction option (on by default)
|
||||||
|
- Add fluidsynth1.diff
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Mar 4 19:55:59 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
|
||||||
|
|
||||||
|
- Update to release 0.24.2
|
||||||
|
* Added another batch of cheats to the console
|
||||||
|
* Removed process affinity hack
|
||||||
|
* Added support for SNDFONT lump
|
||||||
|
* Moved default soundfont into dsda-doom.wad
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Feb 19 16:16:32 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
|
||||||
|
|
||||||
|
- Initial package (v0.24.1) for build.opensuse.org
|
||||||
|
- Reuse prboom-hbar-all.diff, prboom-hbar-gradient.diff,
|
||||||
|
prboom-nodatetime.diff from prboom-plus package.
|
97
dsda-doom.spec
Normal file
97
dsda-doom.spec
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
#
|
||||||
|
# spec file for package dsda-doom
|
||||||
|
#
|
||||||
|
# Copyright (c) 2024 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
Name: dsda-doom
|
||||||
|
Version: 0.28.1
|
||||||
|
Release: 0
|
||||||
|
Summary: DOOM source port with Hexen support and demo compatibility
|
||||||
|
License: GPL-2.0-or-later
|
||||||
|
Group: Amusements/Games/3D/Shoot
|
||||||
|
URL: https://github.com/kraflab/dsda-doom
|
||||||
|
|
||||||
|
#Changelog: https://github.com/kraflab/dsda-doom/tree/master/patch_notes
|
||||||
|
#Announce: https://www.doomworld.com/forum/topic/118074-dsda-doom-source-port-v0243/
|
||||||
|
Source: https://github.com/kraflab/dsda-doom/archive/refs/tags/v%version.tar.gz
|
||||||
|
Patch1: prboom-hbar-all.diff
|
||||||
|
Patch2: prboom-hbar-gradient.diff
|
||||||
|
BuildRequires: Mesa-devel
|
||||||
|
BuildRequires: c++_compiler
|
||||||
|
BuildRequires: cmake
|
||||||
|
BuildRequires: fluidsynth
|
||||||
|
BuildRequires: fluidsynth-devel
|
||||||
|
BuildRequires: hicolor-icon-theme
|
||||||
|
BuildRequires: libmad-devel
|
||||||
|
BuildRequires: libpng-devel
|
||||||
|
BuildRequires: libvorbis-devel
|
||||||
|
BuildRequires: libzip-devel
|
||||||
|
BuildRequires: libzip-tools
|
||||||
|
BuildRequires: pcre-devel
|
||||||
|
BuildRequires: portmidi-devel
|
||||||
|
BuildRequires: portmidi-java
|
||||||
|
BuildRequires: update-desktop-files
|
||||||
|
BuildRequires: pkgconfig(SDL2_image)
|
||||||
|
BuildRequires: pkgconfig(SDL2_mixer)
|
||||||
|
BuildRequires: pkgconfig(SDL2_net)
|
||||||
|
BuildRequires: pkgconfig(sdl2)
|
||||||
|
Suggests: freedoom
|
||||||
|
Provides: prboom
|
||||||
|
|
||||||
|
%description
|
||||||
|
DSDA-Doom is a source port derived from the PrBoom history line.
|
||||||
|
It features:
|
||||||
|
|
||||||
|
* Extra tooling for demo recording, with focus on speedrunning:
|
||||||
|
record-rewind support
|
||||||
|
* Heretic and Hexen support
|
||||||
|
* MBFv21, UMAPINFO and DSDHacked specification support
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
pushd prboom2/
|
||||||
|
%cmake -DDOOMWADDIR="%_datadir/doom" -DDSDAPWADDIR="%_datadir/doom"
|
||||||
|
%cmake_build
|
||||||
|
popd
|
||||||
|
|
||||||
|
%install
|
||||||
|
pushd prboom2/
|
||||||
|
%cmake_install
|
||||||
|
b="%buildroot"
|
||||||
|
install -Dm0644 ICONS/dsda-doom.png "$b/%_datadir/icons/hicolor/apps/dsda-doom.png"
|
||||||
|
install -Dm0644 ICONS/dsda-doom.desktop "$b/%_datadir/applications/dsda-doom.desktop"
|
||||||
|
popd
|
||||||
|
|
||||||
|
%if 0%{?suse_version} && 0%{?suse_version} < 1550
|
||||||
|
%post
|
||||||
|
%desktop_database_post
|
||||||
|
%icon_theme_cache_post
|
||||||
|
|
||||||
|
%postun
|
||||||
|
%desktop_database_postun
|
||||||
|
%icon_theme_cache_postun
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%files
|
||||||
|
%_bindir/*
|
||||||
|
%_datadir/doom/
|
||||||
|
%_datadir/applications/*.desktop
|
||||||
|
%_datadir/icons/hicolor/apps/
|
||||||
|
%doc docs/*.md
|
||||||
|
|
||||||
|
%changelog
|
150
prboom-hbar-all.diff
Normal file
150
prboom-hbar-all.diff
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
From 882bcbe9f612b2bcc0daab095d73c7fb5e9723be Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jan Engelhardt <jengelh@inai.de>
|
||||||
|
Date: Wed, 1 May 2013 09:53:49 +0200
|
||||||
|
Subject: [PATCH 1/2] Add option to show health bar for all destructible mobjs
|
||||||
|
Origin: https://github.com/jengelh/dsda-doom
|
||||||
|
|
||||||
|
The current health bar fails to show for Lost Souls. In addition,
|
||||||
|
showing it for other destructible objects (such as barrels - or DEH
|
||||||
|
modifications in that spirit) can be used to gauge the objects'
|
||||||
|
remaining life.
|
||||||
|
---
|
||||||
|
prboom2/src/dsda/configuration.c | 4 ++++
|
||||||
|
prboom2/src/dsda/configuration.h | 1 +
|
||||||
|
prboom2/src/dsda/settings.c | 5 +++++
|
||||||
|
prboom2/src/dsda/settings.h | 1 +
|
||||||
|
prboom2/src/gl_intern.h | 1 +
|
||||||
|
prboom2/src/gl_main.c | 13 ++++++++++---
|
||||||
|
prboom2/src/m_menu.c | 1 +
|
||||||
|
prboom2/src/m_misc.c | 1 +
|
||||||
|
8 files changed, 24 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
Index: dsda-doom-0.28.0/prboom2/src/dsda/configuration.c
|
||||||
|
===================================================================
|
||||||
|
--- dsda-doom-0.28.0.orig/prboom2/src/dsda/configuration.c
|
||||||
|
+++ dsda-doom-0.28.0/prboom2/src/dsda/configuration.c
|
||||||
|
@@ -604,6 +604,10 @@ dsda_config_t dsda_config[dsda_config_co
|
||||||
|
"gl_health_bar", dsda_config_gl_health_bar,
|
||||||
|
CONF_BOOL(0), NULL, STRICT_INT(0)
|
||||||
|
},
|
||||||
|
+ [dsda_config_gl_health_bar_shootables] = {
|
||||||
|
+ "gl_health_bar_shootables", dsda_config_gl_health_bar_shootables,
|
||||||
|
+ CONF_BOOL(0), NULL, NOT_STRICT
|
||||||
|
+ },
|
||||||
|
[dsda_config_gl_usevbo] = {
|
||||||
|
"gl_usevbo", dsda_config_gl_usevbo,
|
||||||
|
CONF_BOOL(1), NULL, NOT_STRICT
|
||||||
|
Index: dsda-doom-0.28.0/prboom2/src/dsda/configuration.h
|
||||||
|
===================================================================
|
||||||
|
--- dsda-doom-0.28.0.orig/prboom2/src/dsda/configuration.h
|
||||||
|
+++ dsda-doom-0.28.0/prboom2/src/dsda/configuration.h
|
||||||
|
@@ -121,6 +121,7 @@ typedef enum {
|
||||||
|
dsda_config_gl_render_multisampling,
|
||||||
|
dsda_config_gl_render_fov,
|
||||||
|
dsda_config_gl_health_bar,
|
||||||
|
+ dsda_config_gl_health_bar_shootables,
|
||||||
|
dsda_config_gl_usevbo,
|
||||||
|
dsda_config_gl_fade_mode,
|
||||||
|
dsda_config_use_mouse,
|
||||||
|
Index: dsda-doom-0.28.0/prboom2/src/dsda/settings.c
|
||||||
|
===================================================================
|
||||||
|
--- dsda-doom-0.28.0.orig/prboom2/src/dsda/settings.c
|
||||||
|
+++ dsda-doom-0.28.0/prboom2/src/dsda/settings.c
|
||||||
|
@@ -251,6 +251,11 @@ dboolean dsda_ShowHealthBars(void) {
|
||||||
|
return dsda_IntConfig(dsda_config_gl_health_bar);
|
||||||
|
}
|
||||||
|
|
||||||
|
+dboolean dsda_ShowHealthBarsForShootables(void)
|
||||||
|
+{
|
||||||
|
+ return dsda_IntConfig(dsda_config_gl_health_bar_shootables);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
dboolean dsda_WipeAtFullSpeed(void) {
|
||||||
|
return dsda_IntConfig(dsda_config_wipe_at_full_speed);
|
||||||
|
}
|
||||||
|
Index: dsda-doom-0.28.0/prboom2/src/dsda/settings.h
|
||||||
|
===================================================================
|
||||||
|
--- dsda-doom-0.28.0.orig/prboom2/src/dsda/settings.h
|
||||||
|
+++ dsda-doom-0.28.0/prboom2/src/dsda/settings.h
|
||||||
|
@@ -50,6 +50,7 @@ dboolean dsda_ShowMinimap(void);
|
||||||
|
dboolean dsda_ShowLevelSplits(void);
|
||||||
|
dboolean dsda_ShowDemoAttempts(void);
|
||||||
|
dboolean dsda_ShowHealthBars(void);
|
||||||
|
+dboolean dsda_ShowHealthBarsForShootables(void);
|
||||||
|
dboolean dsda_MapCoordinates(void);
|
||||||
|
dboolean dsda_MapTotals(void);
|
||||||
|
dboolean dsda_MapTime(void);
|
||||||
|
Index: dsda-doom-0.28.0/prboom2/src/gl_intern.h
|
||||||
|
===================================================================
|
||||||
|
--- dsda-doom-0.28.0.orig/prboom2/src/gl_intern.h
|
||||||
|
+++ dsda-doom-0.28.0/prboom2/src/gl_intern.h
|
||||||
|
@@ -216,6 +216,7 @@ typedef enum
|
||||||
|
health_bar_null,
|
||||||
|
health_bar_red,
|
||||||
|
health_bar_yellow,
|
||||||
|
+ health_bar_green,
|
||||||
|
} health_bar_color_t;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
Index: dsda-doom-0.28.0/prboom2/src/gl_main.c
|
||||||
|
===================================================================
|
||||||
|
--- dsda-doom-0.28.0.orig/prboom2/src/gl_main.c
|
||||||
|
+++ dsda-doom-0.28.0/prboom2/src/gl_main.c
|
||||||
|
@@ -2031,12 +2031,18 @@ static void gld_DrawSprite(GLSprite *spr
|
||||||
|
|
||||||
|
static void gld_AddHealthBar(mobj_t* thing, GLSprite *sprite)
|
||||||
|
{
|
||||||
|
- if (((thing->flags & (MF_COUNTKILL | MF_CORPSE)) == MF_COUNTKILL) && (thing->health > 0))
|
||||||
|
+ bool all_shoot = dsda_ShowHealthBarsForShootables();
|
||||||
|
+ int init_color = all_shoot ? health_bar_green : health_bar_null;
|
||||||
|
+ bool show_bar = all_shoot ?
|
||||||
|
+ thing->flags & MF_SHOOTABLE :
|
||||||
|
+ (thing->flags & (MF_COUNTKILL | MF_CORPSE)) == MF_COUNTKILL;
|
||||||
|
+
|
||||||
|
+ if (thing->health > 0 && show_bar)
|
||||||
|
{
|
||||||
|
GLHealthBar hbar;
|
||||||
|
int health_percent = thing->health * 100 / P_MobjSpawnHealth(thing);
|
||||||
|
|
||||||
|
- hbar.color = health_bar_null;
|
||||||
|
+ hbar.color = init_color;
|
||||||
|
if (health_percent <= 50)
|
||||||
|
hbar.color = health_bar_red;
|
||||||
|
else if (health_percent <= 99)
|
||||||
|
@@ -2063,10 +2069,11 @@ static void gld_AddHealthBar(mobj_t* thi
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-static GLfloat health_bar_rgb[3][3] = {
|
||||||
|
+static GLfloat health_bar_rgb[][3] = {
|
||||||
|
[health_bar_null] = { 0.0f, 0.0f, 0.0f },
|
||||||
|
[health_bar_red] = { 1.0f, 0.0f, 0.0f },
|
||||||
|
[health_bar_yellow] = { 1.0f, 1.0f, 0.0f },
|
||||||
|
+ [health_bar_green] = { 0.0f, 1.0f, 0.0f },
|
||||||
|
};
|
||||||
|
|
||||||
|
static void gld_DrawHealthBars(void)
|
||||||
|
Index: dsda-doom-0.28.0/prboom2/src/m_menu.c
|
||||||
|
===================================================================
|
||||||
|
--- dsda-doom-0.28.0.orig/prboom2/src/m_menu.c
|
||||||
|
+++ dsda-doom-0.28.0/prboom2/src/m_menu.c
|
||||||
|
@@ -3155,6 +3155,7 @@ setup_menu_t demo_settings[] = {
|
||||||
|
{ "Coop Spawns", S_YESNO, m_conf, G_X, dsda_config_coop_spawns },
|
||||||
|
{ "Allow Jumping", S_YESNO, m_conf, G_X, dsda_config_allow_jumping },
|
||||||
|
{ "OpenGL Show Health Bars", S_YESNO, m_conf, G_X, dsda_config_gl_health_bar },
|
||||||
|
+ { "All Shootables have Health Bar", S_YESNO, m_conf, G_X, dsda_config_gl_health_bar_shootables },
|
||||||
|
|
||||||
|
PREV_PAGE(mapping_settings),
|
||||||
|
NEXT_PAGE(tas_settings),
|
||||||
|
Index: dsda-doom-0.28.0/prboom2/src/m_misc.c
|
||||||
|
===================================================================
|
||||||
|
--- dsda-doom-0.28.0.orig/prboom2/src/m_misc.c
|
||||||
|
+++ dsda-doom-0.28.0/prboom2/src/m_misc.c
|
||||||
|
@@ -171,6 +171,7 @@ cfg_def_t cfg_defs[] =
|
||||||
|
MIGRATED_SETTING(dsda_config_gl_render_fov),
|
||||||
|
MIGRATED_SETTING(dsda_config_gl_skymode),
|
||||||
|
MIGRATED_SETTING(dsda_config_gl_health_bar),
|
||||||
|
+ MIGRATED_SETTING(dsda_config_gl_health_bar_shootables),
|
||||||
|
MIGRATED_SETTING(dsda_config_gl_usevbo),
|
||||||
|
MIGRATED_SETTING(dsda_config_gl_fade_mode),
|
||||||
|
|
125
prboom-hbar-gradient.diff
Normal file
125
prboom-hbar-gradient.diff
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
From bef62d87d8de7236d2a6b306c588440b885f579b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jan Engelhardt <jengelh@inai.de>
|
||||||
|
Date: Wed, 1 May 2013 09:53:49 +0200
|
||||||
|
Subject: [PATCH] Implement color gradient for health bar
|
||||||
|
|
||||||
|
I drew inspiration from the gradient bars from Fire Fight.
|
||||||
|
---
|
||||||
|
prboom2/src/gl_intern.h | 11 +--------
|
||||||
|
prboom2/src/gl_main.c | 52 ++++++++++++++++++++++++-----------------
|
||||||
|
2 files changed, 31 insertions(+), 32 deletions(-)
|
||||||
|
|
||||||
|
Index: dsda-doom-0.28.0/prboom2/src/gl_intern.h
|
||||||
|
===================================================================
|
||||||
|
--- dsda-doom-0.28.0.orig/prboom2/src/gl_intern.h
|
||||||
|
+++ dsda-doom-0.28.0/prboom2/src/gl_intern.h
|
||||||
|
@@ -211,18 +211,9 @@ typedef struct
|
||||||
|
float light;
|
||||||
|
} GLShadow;
|
||||||
|
|
||||||
|
-typedef enum
|
||||||
|
-{
|
||||||
|
- health_bar_null,
|
||||||
|
- health_bar_red,
|
||||||
|
- health_bar_yellow,
|
||||||
|
- health_bar_green,
|
||||||
|
-} health_bar_color_t;
|
||||||
|
-
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
- health_bar_color_t color;
|
||||||
|
-
|
||||||
|
+ float cr, cg;
|
||||||
|
float x1, x2, x3;
|
||||||
|
float z1, z2, z3;
|
||||||
|
float y;
|
||||||
|
Index: dsda-doom-0.28.0/prboom2/src/gl_main.c
|
||||||
|
===================================================================
|
||||||
|
--- dsda-doom-0.28.0.orig/prboom2/src/gl_main.c
|
||||||
|
+++ dsda-doom-0.28.0/prboom2/src/gl_main.c
|
||||||
|
@@ -2032,24 +2032,41 @@ static void gld_DrawSprite(GLSprite *spr
|
||||||
|
static void gld_AddHealthBar(mobj_t* thing, GLSprite *sprite)
|
||||||
|
{
|
||||||
|
bool all_shoot = dsda_ShowHealthBarsForShootables();
|
||||||
|
- int init_color = all_shoot ? health_bar_green : health_bar_null;
|
||||||
|
bool show_bar = all_shoot ?
|
||||||
|
thing->flags & MF_SHOOTABLE :
|
||||||
|
(thing->flags & (MF_COUNTKILL | MF_CORPSE)) == MF_COUNTKILL;
|
||||||
|
+ /*
|
||||||
|
+ * These were called "health_bar_red", "health_bar_yellow" and
|
||||||
|
+ * "health_bar_green", respectively, in prboom-plus. I have given
|
||||||
|
+ * them some better names. —j.eng
|
||||||
|
+ */
|
||||||
|
+ static const int orange_ramp_end = 50;
|
||||||
|
+ static const int chartreuse_ramp_end = 99;
|
||||||
|
+ static const int green_end = 100;
|
||||||
|
|
||||||
|
if (thing->health > 0 && show_bar)
|
||||||
|
{
|
||||||
|
GLHealthBar hbar;
|
||||||
|
int health_percent = thing->health * 100 / P_MobjSpawnHealth(thing);
|
||||||
|
+ int yr = chartreuse_ramp_end - orange_ramp_end;
|
||||||
|
|
||||||
|
- hbar.color = init_color;
|
||||||
|
- if (health_percent <= 50)
|
||||||
|
- hbar.color = health_bar_red;
|
||||||
|
- else if (health_percent <= 99)
|
||||||
|
- hbar.color = health_bar_yellow;
|
||||||
|
+ hbar.cr = -1;
|
||||||
|
+ if (!all_shoot && health_percent == 100) {
|
||||||
|
+ } else if (health_percent <= 0) {
|
||||||
|
+ hbar.cr = 1;
|
||||||
|
+ hbar.cg = 0;
|
||||||
|
+ } else if (health_percent <= orange_ramp_end) {
|
||||||
|
+ hbar.cr = 1;
|
||||||
|
+ hbar.cg = yr == 0 ? 0 : (float)health_percent / yr;
|
||||||
|
+ } else if (health_percent <= chartreuse_ramp_end) {
|
||||||
|
+ hbar.cr = yr == 0 ? 1 : (float)(chartreuse_ramp_end - health_percent) / yr;
|
||||||
|
+ hbar.cg = 1;
|
||||||
|
+ } else if (health_percent <= green_end) {
|
||||||
|
+ hbar.cr = 0;
|
||||||
|
+ hbar.cg = 1;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- if (hbar.color != health_bar_null)
|
||||||
|
- {
|
||||||
|
+ if (hbar.cr >= 0) {
|
||||||
|
float sx2 = (float)thing->radius / 2.0f / MAP_SCALE;
|
||||||
|
float sx1 = sx2 - (float)health_percent * (float)thing->radius / 100.0f / MAP_SCALE;
|
||||||
|
float sx3 = -sx2;
|
||||||
|
@@ -2069,17 +2086,10 @@ static void gld_AddHealthBar(mobj_t* thi
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-static GLfloat health_bar_rgb[][3] = {
|
||||||
|
- [health_bar_null] = { 0.0f, 0.0f, 0.0f },
|
||||||
|
- [health_bar_red] = { 1.0f, 0.0f, 0.0f },
|
||||||
|
- [health_bar_yellow] = { 1.0f, 1.0f, 0.0f },
|
||||||
|
- [health_bar_green] = { 0.0f, 1.0f, 0.0f },
|
||||||
|
-};
|
||||||
|
-
|
||||||
|
static void gld_DrawHealthBars(void)
|
||||||
|
{
|
||||||
|
int i, count;
|
||||||
|
- int color = health_bar_null;
|
||||||
|
+ float cr = -1, cg = -1;
|
||||||
|
|
||||||
|
count = gld_drawinfo.num_items[GLDIT_HBAR];
|
||||||
|
if (count > 0)
|
||||||
|
@@ -2090,12 +2100,10 @@ static void gld_DrawHealthBars(void)
|
||||||
|
for (i = count - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
GLHealthBar *hbar = gld_drawinfo.items[GLDIT_HBAR][i].item.hbar;
|
||||||
|
- if (hbar->color != color)
|
||||||
|
- {
|
||||||
|
- color = hbar->color;
|
||||||
|
- glColor4f(health_bar_rgb[color][0],
|
||||||
|
- health_bar_rgb[color][1],
|
||||||
|
- health_bar_rgb[color][2], 1.0f);
|
||||||
|
+ if (hbar->cr != cr || hbar->cg != cg) {
|
||||||
|
+ cr = hbar->cr;
|
||||||
|
+ cg = hbar->cg;
|
||||||
|
+ glColor4f(cr, cg, 0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
glVertex3f(hbar->x1, hbar->y, hbar->z1);
|
3
v0.27.5.tar.gz
Normal file
3
v0.27.5.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:5e01be417033e1abf708bb22509d4d910b158a159a2790c4d5b46690daba67f0
|
||||||
|
size 11111842
|
BIN
v0.28.1.tar.gz
(Stored with Git LFS)
Normal file
BIN
v0.28.1.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user