The best around
User Profile | Member List | F.A.Q | Privacy Policy | New Blog | Search Forums | Forums Home
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Classic Doom > Source Ports > Older Doom versions
 
Author
All times are GMT. The time now is 19:30. Post New Thread    Post A Reply
entryway
Forum Staple


Posts: 2773
Registered: 01-04


I've researched some older DOOM EXEs for possible improvement of compatibility with doom 1.2 (-complevel 0) and found a few changes which probably are worth to be mentioned here:
http://doomwiki.org/wiki/Versions_of_Doom_and_Doom_II

1. Doom 1.4 and earlier versions do not check actor's radius in P_CheckMeleeRange:
code:
static dboolean P_CheckMeleeRange(mobj_t *actor) { mobj_t *pl = actor->target; return // killough 7/18/98: friendly monsters don't attack other friends pl && !(actor->flags & pl->flags & MF_FRIEND) && (P_AproxDistance(pl->x-actor->x, pl->y-actor->y) < (compatibility_level == doom_12_compatibility ? MELEERANGE : MELEERANGE - 20*FRACUNIT + pl->info->radius)) && P_CheckSight(actor, actor->target); }
http://prboom-plus.sf.net/P_CheckMeleeRange_14.png
http://prboom-plus.sf.net/P_CheckMeleeRange_15.png


2. A_SargAttack is completely different in doom 1.4 and earlier versions:
code:
void A_SargAttack(mobj_t *actor) { if (!actor->target) return; A_FaceTarget(actor); if (compatibility_level == doom_12_compatibility) { int damage = ((P_Random(pr_sargattack)%10)+1)*4; P_LineAttack(actor, actor->angle, MELEERANGE, 0, damage); } else { if (P_CheckMeleeRange(actor)) { int damage = ((P_Random(pr_sargattack)%10)+1)*4; P_DamageMobj(actor->target, actor, actor, damage); } } }
http://prboom-plus.sf.net/A_SargAttack_14.png
http://prboom-plus.sf.net/A_SargAttack_15.png

You should interpret (compatibility_level == doom_12_compatibility) as (compatibility_level < doom_15_compatibility)

Old Post Oct 28 2010 10:29 #
entryway is online now || Blog || PM || Post History || Add Buddy IP || Edit || Quote
Vermil
Senior Member


Posts: 1797
Registered: 03-04


Indeed, the original A_Sargattack, being a short range hitscan attack meant Demons could infight with eachother, hurt each other and were affected by the invisibility sphere.

Old Post Oct 28 2010 10:48 #
Vermil is offline || Blog || PM || Post History || Add Buddy IP || Edit || Quote
RjY
anARCHy


Posts: 1025
Registered: 05-02


I saw these patches go in yesterday. :) Nice work!

Old Post Oct 28 2010 10:53 #
RjY is offline || Blog || PM || Post History || Add Buddy IP || Edit || Quote
4mer
Junior Member


Posts: 223
Registered: 08-10


Great job.

Old Post Oct 28 2010 13:29 #
4mer is offline || Blog || PM || Post History || Add Buddy IP || Edit || Quote
entryway
Forum Staple


Posts: 2773
Registered: 01-04



4mer said:
Great job.

Only one demo is fixed after these changes for -complevel 0

ret12na.lmp @ return01.wad

Old Post Oct 28 2010 14:26 #
entryway is online now || Blog || PM || Post History || Add Buddy IP || Edit || Quote
Quasar
Moderator


Posts: 6461
Registered: 08-00


Versions 1.2 and earlier will need the old version of the line-of-sight checking code which operates more like the bullet tracer code rather than using a BSP crossing algorithm. This code can be found in Heretic, and has that quirk of occasionally allowing monsters to see the player through an arbitrary number of walls which I have dubbed the "Anywhere Moo" bug (because it is most noticeable with Maulotaurs, and in Doom, Cyberdemons).

Old Post Oct 28 2010 14:29 #
Quasar is offline Twitter account Youtube Github || Blog || PM || Post History || Add Buddy IP || Edit || Quote
entryway
Forum Staple


Posts: 2773
Registered: 01-04



Quasar said:
Versions 1.2 and earlier will need the old version of the line-of-sight checking code

Yes, I know.

Old Post Oct 28 2010 14:39 #
entryway is online now || Blog || PM || Post History || Add Buddy IP || Edit || Quote
Graf Zahl
Why don't I have a custom title by now?!


Posts: 8029
Registered: 01-03



Quasar said:
and has that quirk of occasionally allowing monsters to see the player through an arbitrary number of walls


That's a bug, not a quirk. A quirk would be odd behavior in otherwise correct code. This one's clearly broken though.

Old Post Oct 28 2010 15:33 #
Graf Zahl is offline || Blog || PM || Post History || Add Buddy IP || Edit || Quote
entryway
Forum Staple


Posts: 2773
Registered: 01-04


Another improvement:
code:
void A_Chase(mobj_t *actor) { if (actor->reactiontime) actor->reactiontime--; if (actor->threshold) { /* modify target threshold */ if (compatibility_level == doom_12_compatibility) { actor->threshold--; } else { if (!actor->target || actor->target->health <= 0) actor->threshold = 0; else actor->threshold--; } } ...
All demos by never_again on uac_dead.wad are in sync for now

Old Post Oct 28 2010 15:45 #
entryway is online now || Blog || PM || Post History || Add Buddy IP || Edit || Quote
All times are GMT. The time now is 19:30. Post New Thread    Post A Reply
 
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Classic Doom > Source Ports > Older Doom versions

Show Printable Version | Email this Page | Subscribe to this Thread

 

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are OFF
[IMG] code is ON
 

< Contact Us - Doomworld >

Powered by: vBulletin Version 2.2.5
Copyright ©2000, 2001, Jelsoft Enterprises Limited.