Bauul Posted October 15, 2017 Today I learned that in GZDoom's Standard light mode, a sector of 230 brightness or more will fade to light. A sector of 229 brightness will fade to half light. And a sector of 228 brightness or less will fade to darkness. 2 Share this post Link to post
RjY Posted October 15, 2017 4 hours ago, Dravencour said: You can't offset flats in vanilla either. If you want your flats aligned, your sectors have to conform to the grid. If you relax the vanilla requirement to Boom you can set flat alignment precisely using displacement scrollers (types 245/246). You have a control line / sector for each flat you want realigned, and one more that raises the floor of all your control sectors to ceiling, which needs to be activated somehow (by player or voodoo doll). So although it requires some effort, it is still at least possible outside of advanced formats. They just make it easier (in the same way that many Boom features were possible in vanilla with enough work). 3 Share this post Link to post
scifista42 Posted October 16, 2017 (edited) To offset flats in vanilla, you can make, include and use custom flats that look like the original ones with the offset you want, like this: A flat looking like this in an editor will look normal on a teleport pedestal sector that is offset by a specific value from the 64 unit grid. Edited October 16, 2017 by scifista42 8 Share this post Link to post
riderr3 Posted October 16, 2017 That's where the Final Doom cover came from. 16 Share this post Link to post
RjY Posted October 16, 2017 6 hours ago, scifista42 said: use custom flats Yeah, I'd call that the nuclear option. For last resort only. 1 Share this post Link to post
Linguica Posted October 17, 2017 Using some WAD hacking tricks, you could make a teleport texture be able to be aligned anywhere on an 8-pixel grid using only 60 kilobytes total, compared to the 256 kilobytes it would take to do it naively. 5 Share this post Link to post
Endless Posted October 17, 2017 That Doomguy is related to BJ. Wich is really nice. A family of badasses. 0 Share this post Link to post
SaladStream Posted October 20, 2017 Two players can thing run against eachother for an insane speedboost across pretty much any gap, such as the start of doom 2 map 29 to get straight onto the stairs at the end. Probably only doable in TAS due to needing the right angles and both players to move together 4 Share this post Link to post
Scypek2 Posted October 20, 2017 I just learned that the -turbo parameter was implemented to help Shawn Green defeat John Romero in deathmatch. 2 Share this post Link to post
Memfis Posted October 20, 2017 On 2017/10/17 at 4:14 AM, Linguica said: Using some WAD hacking tricks, you could make a teleport texture be able to be aligned anywhere on an 8-pixel grid using only 60 kilobytes total, compared to the 256 kilobytes it would take to do it naively. Go on... 0 Share this post Link to post
Maes Posted October 20, 2017 On 10/16/2017 at 8:39 PM, riderr3 said: That's where the Final Doom cover came from. I always wondered why they'd use a box of inert (dud) cartridges on the cover of a Doom game. Maybe as a subtle hint to gamers? 0 Share this post Link to post
Gez Posted October 20, 2017 It makes sense to use practice rounds for a simulation. 0 Share this post Link to post
Revenant100 Posted October 20, 2017 I just learned that id Software created a shockingly egregious canonical error when they censored all of the blood in Quake 3 Arena to create the T-rated Quake Live version. They ended up removing one of Doomguy's trademark characteristics, brazenly flying in the face of long established Doom canon! 1 Share this post Link to post
Maes Posted October 22, 2017 (edited) On 10/20/2017 at 3:52 PM, Gez said: It makes sense to use practice rounds for a simulation. Only that a "practice" round isn't necessarily the same thing as "inert" or "dummy". On 10/21/2017 at 2:16 AM, Revenant100 said: I just learned that id Software created a shockingly egregious canonical error when they censored all of the blood in Quake 3 Arena to create the T-rated Quake Live version. They ended up removing one of Doomguy's trademark characteristics, brazenly flying in the face of long established Doom canon! Well...maybe "Doom" just healed, after all this time. Does he really have to keep open, bleeding wounds for all Eternity? Who is he, Jesus Christ? ...OK, he got us there. Edited October 22, 2017 by Maes 1 Share this post Link to post
Deleted_Account Posted October 22, 2017 And he's always tearing shirts. 1 Share this post Link to post
BigDickBzzrak Posted October 22, 2017 On 17.10.2017. at 3:14 AM, Linguica said: Using some WAD hacking tricks, you could make a teleport texture be able to be aligned anywhere on an 8-pixel grid using only 60 kilobytes total, compared to the 256 kilobytes it would take to do it naively. Do you mean this? Or is it another discovery of yours? 1 Share this post Link to post
Linguica Posted October 22, 2017 3 minutes ago, bzzrak said: Do you mean this? Or is it another discovery of yours? Yes, basically that, but modified a little so flats don't have the one-off seam issue. 1 Share this post Link to post
scifista42 Posted October 22, 2017 (edited) Linguica said in that thread that offsets along just the Y axis are safe from the one-off seam issue, so I guess the "modification" consists of creating 8 copies of the extended flat data, each adjusted to look properly at a given 8-unit offset along the X axis, then define the Y offsets using the trick described in the thread - this way, the total size would be 8-times 8 KB. Taking the idea further, to cover every possible offset along both axes, the size would have to be 64-times 8 KB - 64 copies of the data for each X offset, while the Y offsets remain free. Edited October 22, 2017 by scifista42 0 Share this post Link to post
Optimus Posted October 29, 2017 Such a basic thing I never noticed. Found out from doom_txt on Twitter. Quote When you're hit, your face looks in the direction from which the damage came 0 Share this post Link to post
Memfis Posted October 29, 2017 Eh, is that always true? I feel like sometimes he looks, sometimes he doesn't. 0 Share this post Link to post
scifista42 Posted October 29, 2017 There seems to be a complicated priority-based behavior for the hud face's state changes: Spoiler // // This is a not-very-pretty routine which handles // the face states and their timing. // the precedence of expressions is: // dead > evil grin > turned head > straight ahead // void ST_updateFaceWidget(void) { int i; angle_t badguyangle; angle_t diffang; static int lastattackdown = -1; static int priority = 0; boolean doevilgrin; if (priority < 10) { // dead if (!plyr->health) { priority = 9; st_faceindex = ST_DEADFACE; st_facecount = 1; } } if (priority < 9) { if (plyr->bonuscount) { // picking up bonus doevilgrin = false; for (i=0;i<NUMWEAPONS;i++) { if (oldweaponsowned[i] != plyr->weaponowned[i]) { doevilgrin = true; oldweaponsowned[i] = plyr->weaponowned[i]; } } if (doevilgrin) { // evil grin if just picked up weapon priority = 8; st_facecount = ST_EVILGRINCOUNT; st_faceindex = ST_calcPainOffset() + ST_EVILGRINOFFSET; } } } if (priority < 8) { if (plyr->damagecount && plyr->attacker && plyr->attacker != plyr->mo) { // being attacked priority = 7; if (plyr->health - st_oldhealth > ST_MUCHPAIN) { st_facecount = ST_TURNCOUNT; st_faceindex = ST_calcPainOffset() + ST_OUCHOFFSET; } else { badguyangle = R_PointToAngle2(plyr->mo->x, plyr->mo->y, plyr->attacker->x, plyr->attacker->y); if (badguyangle > plyr->mo->angle) { // whether right or left diffang = badguyangle - plyr->mo->angle; i = diffang > ANG180; } else { // whether left or right diffang = plyr->mo->angle - badguyangle; i = diffang <= ANG180; } // confusing, aint it? st_facecount = ST_TURNCOUNT; st_faceindex = ST_calcPainOffset(); if (diffang < ANG45) { // head-on st_faceindex += ST_RAMPAGEOFFSET; } else if (i) { // turn face right st_faceindex += ST_TURNOFFSET; } else { // turn face left st_faceindex += ST_TURNOFFSET+1; } } } } if (priority < 7) { // getting hurt because of your own damn stupidity if (plyr->damagecount) { if (plyr->health - st_oldhealth > ST_MUCHPAIN) { priority = 7; st_facecount = ST_TURNCOUNT; st_faceindex = ST_calcPainOffset() + ST_OUCHOFFSET; } else { priority = 6; st_facecount = ST_TURNCOUNT; st_faceindex = ST_calcPainOffset() + ST_RAMPAGEOFFSET; } } } if (priority < 6) { // rapid firing if (plyr->attackdown) { if (lastattackdown==-1) lastattackdown = ST_RAMPAGEDELAY; else if (!--lastattackdown) { priority = 5; st_faceindex = ST_calcPainOffset() + ST_RAMPAGEOFFSET; st_facecount = 1; lastattackdown = 1; } } else lastattackdown = -1; } if (priority < 5) { // invulnerability if ((plyr->cheats & CF_GODMODE) || plyr->powers[pw_invulnerability]) { priority = 4; st_faceindex = ST_GODFACE; st_facecount = 1; } } // look left or look right if the facecount has timed out if (!st_facecount) { st_faceindex = ST_calcPainOffset() + (st_randomnumber % 3); st_facecount = ST_STRAIGHTFACECOUNT; priority = 0; } st_facecount--; } 0 Share this post Link to post
Scypek2 Posted October 29, 2017 The exit door on MAP06 is not the correctly-sized SPCDOOR2, instead it's an unfitting left half of BIGDOOR2. But my brain always perceives it as SPCDOOR2 anyway, so it doesn't matter. 0 Share this post Link to post
Spie812 Posted October 31, 2017 There's both a FLOOR6_2 (ash) and a FLOOR7_2 (marble) ceiling in e1m1. 1 Share this post Link to post
_42_ Posted November 4, 2017 On 9/24/2017 at 11:33 AM, DoomguyB said: I didn't know that the design of the Cacodemon was inspired (quite heavily, by the looks of it!) by the Astral Dreadnought creature from Dungeons & Dragons. Also the Beholder (somewhat) 0 Share this post Link to post
DoctorGenesis Posted November 4, 2017 On 10/20/2017 at 4:16 PM, Revenant100 said: I just learned that id Software created a shockingly egregious canonical error when they censored all of the blood in Quake 3 Arena to create the T-rated Quake Live version. They ended up removing one of Doomguy's trademark characteristics, brazenly flying in the face of long established Doom canon! Someone add this to the Wiki. 1 Share this post Link to post
VGamingJunkie Posted November 5, 2017 That's really stupid, too. It's not like the blood is free flowing, it's just a scar. I've seen children's cartoons that allow scars. Could just have dulled the color so it doesn't look like a fresh wound. 0 Share this post Link to post
Arctangent Posted November 10, 2017 Cacodemons don't have a melee attack like other monsters do - while their attack function is a "combo" attack that'll do a melee attack if you're close enough, they don't try to use this. Instead, they only try attacking via their missile attack, and won't try to continuously melee a nearby target like other monsters. Might explain why said combo attack doesn't make a melee sound; the melee attack might've been meant to be removed entirely, but the guy who did it didn't really understand how combo attacks worked. 2 Share this post Link to post
Da Werecat Posted November 10, 2017 You'd have to be pretty retarded to remove the sound but not remove the damage. 0 Share this post Link to post
scifista42 Posted November 10, 2017 (edited) I have a possible explanation of how it might have happened. Here are the attack functions of the Imp, Demon and Cacodemon, respectively: Spoiler void A_TroopAttack (mobj_t* actor) { int damage; if (!actor->target) return; A_FaceTarget (actor); if (P_CheckMeleeRange (actor)) { S_StartSound (actor, sfx_claw); damage = (P_Random()%8+1)*3; P_DamageMobj (actor->target, actor, actor, damage); return; } // launch a missile P_SpawnMissile (actor, actor->target, MT_TROOPSHOT); } void A_SargAttack (mobj_t* actor) { int damage; if (!actor->target) return; A_FaceTarget (actor); if (P_CheckMeleeRange (actor)) { damage = ((P_Random()%10)+1)*4; P_DamageMobj (actor->target, actor, actor, damage); } } void A_HeadAttack (mobj_t* actor) { int damage; if (!actor->target) return; A_FaceTarget (actor); if (P_CheckMeleeRange (actor)) { damage = (P_Random()%6+1)*10; P_DamageMobj (actor->target, actor, actor, damage); return; } // launch a missile P_SpawnMissile (actor, actor->target, MT_HEADSHOT); } These three functions actually immediately follow each other in the source code, and there are signs that the Cacodemon's function was based on the previous two, as it mostly looks like the Imp's function, but lacks a sound just like the Demon's function does. But the reason why the Demon's function lacks a sound is because the Demon makes it as a result of its attack sound property in the thing table. So, the function's creator may have assumed that the thing table will take care of the sound, while the thing table's creator may have assumed that the function will take care of the sound. Even if they were the same person, he could have made a mistake this way, by failing to realize that neither the side he was currently working on, nor the other side, took care of the sound. Edited November 10, 2017 by scifista42 5 Share this post Link to post
Graf Zahl Posted November 10, 2017 I think it's far more likely that the sound in A_TroopAttack was added later and A_HeadAttack was just forgotten about when the change was made. Doom actually shows lots of signs of sloppy and unorganized development all throughout its code. 1 Share this post Link to post