D4D - v3 Alpha 8.8 Final (11/22/2020)
-
-
- Posts: 26539
- Joined: Tue Jul 15, 2003 4:58 pm
- Location: Scotland
Re: D4D - Now On GitHub!
Can I ask where the source for the footsteps ACS module is? I'd like to see how it is done because it seems to be pretty reliable but I can't find the source script file.
-
- Posts: 1528
- Joined: Thu Jul 14, 2011 12:06 am
- Location: Gold Coast, Queensland, Australia
Re: D4D - Now On GitHub!
It was written in C by yours truly, intended to be compiled with GDCC. I'm not sure why the source isn't included with the mod.Enjay wrote:Can I ask where the source for the footsteps ACS module is? I'd like to see how it is done because it seems to be pretty reliable but I can't find the source script file.
main.c
Code: Select all
#define ACS_SHORT_NAMES
#include <stdio.h>
#include <stdfix.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
#include <ACS_ZDoom.h>
#include "utility.h"
char *astrtoc(__str s)
{
static char *buf;
static size_t alloc;
size_t len = StrLen(s) + 1;
if (alloc < len)
buf = realloc(buf, len);
for (size_t i = 0; i != len; ++i)
buf[i] = s[i];
return buf;
}
[[call("ScriptS"), script("Enter")]]
void Footsteps()
{
int delay = 0;
__str sound_default = StrParam("%LS", s"STEP_DEFAULT");
while (true)
{
if (GetActorZ(0) - GetActorFloorZ(0) == 0)
{
char *flats = astrtoc(StrParam("%LS", s"STEP_FLATS"));
char *token = strtok(flats, ":");
fixed vx = GetActorVelX(0);
fixed vy = GetActorVelY(0);
fixed speed = VectorLength(vx, vy) / 16;
if (speed > 1)
speed = 1;
delay = 35 - (25 * speed) * GetCVarFixed(s"fs_delay_mul");
fixed volume = speed * GetCVarFixed(s"fs_volume_mul");
if (volume > 0)
{
while (token != NULL)
{
__str token_str = ctoastr(token);
if (CheckActorFloorTexture(0, token_str))
{
__str langdef = StrParam("STEP_%S", token_str);
__str sound = StrParam("%LS", langdef);
if (!StrICmp(langdef, sound))
PlaySound(0, sound_default, CHAN_AUTO, volume);
else
PlaySound(0, sound, CHAN_AUTO, volume);
break;
}
token = strtok(NULL, ":");
}
}
else
delay = 35;
}
if (delay > 1)
Delay(delay);
else
Delay(1);
}
}
Code: Select all
#ifndef SRC_UTIL_H_
#define SRC_UTIL_H_
#include <ACS_ZDoom.h>
#include <stdio.h>
#include <stdlib.h>
#define HudMessage(flags, id, color, x, y, hold, opt1, opt2, opt3, ...) \
( \
ACS_BeginHudMessage(), \
__nprintf(__VA_ARGS__), \
ACS_MoreHudMessage(), \
ACS_OptHudMessage(flags, id, color, x, y, hold), \
ACS_EndHudMessageXXX(opt1, opt2, opt3) \
)
#define PrintBold(...) \
( \
ACS_BeginPrintBold(), \
__nprintf(__VA_ARGS__), \
ACS_EndPrint() \
)
#define Print(...) \
( \
ACS_BeginPrint(), \
__nprintf(__VA_ARGS__), \
ACS_EndPrint() \
)
#define StrParam(...) \
( \
ACS_BeginStrParam(), \
__nprintf(__VA_ARGS__), \
ACS_EndStrParam() \
)
#define PrintSprite(spr, id, x, y, delay) \
( \
ACS_SetFont(spr), \
HudMessage(HUDMSG_PLAIN, id, CR_UNTRANSLATED, x, y, delay, 0.0, 0.0, 0.0, "A") \
)
#define ClearMessage(id) \
( \
HudMessage(HUDMSG_PLAIN, id, CR_UNTRANSLATED, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, "") \
)
#define Log(...) \
( \
ACS_BeginLog(), \
__nprintf(__VA_ARGS__), \
ACS_EndLog() \
)
#define PrintName(n) \
( \
ACS_BeginPrint(), \
ACS_PrintName(n), \
ACS_EndStrParam() \
)
#define StrParamL(...) \
( \
StrParam("%LS", StrParam(__VA_ARGS__)) \
)
#define ctoastr(cstr) \
( \
ACS_BeginStrParam(), \
__nprintf(cstr), \
ACS_EndStrParam() \
)
#endif // SRC_UTIL_H_
-
-
- Posts: 26539
- Joined: Tue Jul 15, 2003 4:58 pm
- Location: Scotland
Re: D4D - Now On GitHub!
Thanks for that. So it's not actually ACS? I didn't realise doing something like that was even possible. Got to say that it works very nicely.
-
- Posts: 8192
- Joined: Sun Jan 28, 2007 3:55 pm
- Preferred Pronouns: He/Him
- Location: QZDoom Maintenance Team
Re: D4D - Now On GitHub!
It's even doable in Decorate thanks to overlays, but yes. I'll be taking it off of ACS and moving it into the player, along with many other scripts.
This will allow for maximum compatibility with save game files.
This will allow for maximum compatibility with save game files.
-
- Posts: 3489
- Joined: Sun Oct 19, 2014 6:45 pm
- Location: Plahnit Urff
Re: D4D - Now On GitHub!
Oh cool, a new thread!
WHAAAAAT?! We can use compiled C programs directly for Doom projects?! HOLY FREAKIN' SHIZ, that's perfect! I just passed a C Programming Platform class this past semester... I wonder what I can do with that...
Also... what's this new project that DBT is working on now?
WHAAAAAT?! We can use compiled C programs directly for Doom projects?! HOLY FREAKIN' SHIZ, that's perfect! I just passed a C Programming Platform class this past semester... I wonder what I can do with that...
Also... what's this new project that DBT is working on now?
-
- Admin
- Posts: 6190
- Joined: Thu Feb 26, 2004 3:02 pm
- Preferred Pronouns: He/Him
Re: D4D - Now On GitHub!
Wonder no more with the magic that is GDCC! Although ZScript may help supersede the need for this, won't it?
-
- Posts: 8192
- Joined: Sun Jan 28, 2007 3:55 pm
- Preferred Pronouns: He/Him
- Location: QZDoom Maintenance Team
Re: D4D - Now On GitHub!
Yeah I'm not using GDCC. I shun everything to do with ACS except map control.
-
- Posts: 26
- Joined: Thu Dec 18, 2014 12:30 pm
Re: D4D - Now On GitHub!
I hope it's not too annoying that I ask this here. First up a little sucking up, I absolutely love this project, it is just unreal how refined it feels with the amount of stuff added to it. There is some true talent behind this. Anyway, I really want to play this with the old-ish Doom One wad here: http://www.moddb.com/mods/doomone/downloads/doomone-v04
The problem I'm having is Ep 2 and 3 skip the whole sequence and just end the level. Looking at the comments on there, others had the same problem, so it may not be just D4D. Anyway, I was hoping if someone could point me in the right direction and see if there's a way I can fix this. I think D4D with the Doom One maps would be amazing, I mean, Ep 1 and 4 that I can play are. I'm sorry to be "that idiot", but would appreciate any help! Thanks!
The problem I'm having is Ep 2 and 3 skip the whole sequence and just end the level. Looking at the comments on there, others had the same problem, so it may not be just D4D. Anyway, I was hoping if someone could point me in the right direction and see if there's a way I can fix this. I think D4D with the Doom One maps would be amazing, I mean, Ep 1 and 4 that I can play are. I'm sorry to be "that idiot", but would appreciate any help! Thanks!
-
- Posts: 8192
- Joined: Sun Jan 28, 2007 3:55 pm
- Preferred Pronouns: He/Him
- Location: QZDoom Maintenance Team
Re: D4D - Now On GitHub!
They're probably relying on Thing_Count. Ask them to change over to using TIDs instead.
-
- Posts: 1
- Joined: Fri Jan 06, 2017 11:21 pm
Re: D4D - Now On GitHub!
Hi All,
This is my first post on here, woohoo!
I have just completed a play-through of Plutonia with D4D 2.0.3 on GZDoom 2.2 on Ultra Nightmare difficulty. What a blast! My sincerest thanks to the mod authors for creating this amazing mod. I have played Doom 2016 and while it is a great game it still does not quite match the speed an ferocity of classic Doom. Especially not classic Doom with D4D!
I have some feedback for future versions. I hope it is interesting or useful otherwise feel free to tell me to shut the hell up
1) The chaingunner replacement's lightning gun needs a bit of change. The delayed beam certainly makes for interesting game play in terms of planning your movement but the effect and the stationary model come off a little odd at times. Especially at long ranges. Perhaps something a little more traditional would be better suited. Maybe the chaingunner can fire projectiles at rate of fire that increases over time. Like the player's chaingun.
2) Holo grenades are a little OP. It seems odd that the monsters ignore you even if you shoot them when the hologram is active. I think once you have shot a monster it should ignore the hologram and attack you.
3) The supercharge powerup feels like it needs to be re-purposed. The siphon grenade and the health drops make this powerup almost redundant.
4) I have seen a request to make the weapon upgrades a configuration option. The request is to have the upgrades as normal, completely off or available immediately.
That is all for now. I can provide examples of the above if required. If anyone is interested the full play-though can be viewed here: https://www.youtube.com/playlist?list=P ... mE2t0mhRCF
Thanks again!
This is my first post on here, woohoo!
I have just completed a play-through of Plutonia with D4D 2.0.3 on GZDoom 2.2 on Ultra Nightmare difficulty. What a blast! My sincerest thanks to the mod authors for creating this amazing mod. I have played Doom 2016 and while it is a great game it still does not quite match the speed an ferocity of classic Doom. Especially not classic Doom with D4D!
I have some feedback for future versions. I hope it is interesting or useful otherwise feel free to tell me to shut the hell up
1) The chaingunner replacement's lightning gun needs a bit of change. The delayed beam certainly makes for interesting game play in terms of planning your movement but the effect and the stationary model come off a little odd at times. Especially at long ranges. Perhaps something a little more traditional would be better suited. Maybe the chaingunner can fire projectiles at rate of fire that increases over time. Like the player's chaingun.
2) Holo grenades are a little OP. It seems odd that the monsters ignore you even if you shoot them when the hologram is active. I think once you have shot a monster it should ignore the hologram and attack you.
3) The supercharge powerup feels like it needs to be re-purposed. The siphon grenade and the health drops make this powerup almost redundant.
4) I have seen a request to make the weapon upgrades a configuration option. The request is to have the upgrades as normal, completely off or available immediately.
That is all for now. I can provide examples of the above if required. If anyone is interested the full play-though can be viewed here: https://www.youtube.com/playlist?list=P ... mE2t0mhRCF
Thanks again!
-
- Posts: 8192
- Joined: Sun Jan 28, 2007 3:55 pm
- Preferred Pronouns: He/Him
- Location: QZDoom Maintenance Team
Re: D4D - Now On GitHub!
1. You can change the laser beams in the option menu for another.
2. Works as intended. If we nerf it anymore it's no good for escaping, especially in tight spaces.
3. Upgrade your HP and you'll find it has another purpose too. But I do plan on giving it more.
4. Only we turned that one 'upgrade' on the super shotgun into an actual option. It was a bad idea to introduce double trouble as an upgrade from the getgo honestly.
2. Works as intended. If we nerf it anymore it's no good for escaping, especially in tight spaces.
3. Upgrade your HP and you'll find it has another purpose too. But I do plan on giving it more.
4. Only we turned that one 'upgrade' on the super shotgun into an actual option. It was a bad idea to introduce double trouble as an upgrade from the getgo honestly.
-
- Posts: 1406
- Joined: Tue Oct 27, 2009 12:58 pm
Re: D4D - Now On GitHub!
Why is that?4. Only we turned that one 'upgrade' on the super shotgun into an actual option. It was a bad idea to introduce double trouble as an upgrade from the getgo honestly.
-
- Posts: 8192
- Joined: Sun Jan 28, 2007 3:55 pm
- Preferred Pronouns: He/Him
- Location: QZDoom Maintenance Team
Re: D4D - Now On GitHub!
Because in Doom 16, each barrel shot had the exact same damage as firing both barrels at once. In D4D, that's not the case. It does half the damage of firing both barrels at once -- as it should be. So there's no advantage gained.
Thus it doesn't make sense to keep it as an 'upgrade'.
Thus it doesn't make sense to keep it as an 'upgrade'.
-
- Posts: 8192
- Joined: Sun Jan 28, 2007 3:55 pm
- Preferred Pronouns: He/Him
- Location: QZDoom Maintenance Team
Re: D4D - Now On GitHub!
Also, with the recently announced 'death' of zdoom, I hereby declare D4D is SQeeGeeZDoom only (That's QZDoom and GZDoom). While I will not be removing the old code for software rendering (ZDoom), expect none of the effects to see further enhancements unless contributed by someone else.
-
- Posts: 970
- Joined: Tue Jul 15, 2003 5:43 pm
Re: D4D - Now On GitHub!
Since both engines support truecolor, will the sprites be converted to unpalleted PNG in the future? Currently playing with certain megawads that change the palletes creates anomalies with the colors.
http://imgur.com/a/pq7ad
http://imgur.com/a/pq7ad