Baron of Hell
Register | 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 12:06. Post New Thread    Post A Reply
entryway
Forum Staple


Posts: 2740
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 10-28-10 10:29 #
entryway is online now Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit || Quote
Vermil
Senior Member


Posts: 1746
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 10-28-10 10:48 #
Vermil is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
RjY
anARCHy


Posts: 987
Registered: 05-02


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

Old Post 10-28-10 10:53 #
RjY is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit || Quote
4mer
Junior Member


Posts: 223
Registered: 08-10


Great job.

Old Post 10-28-10 13:29 #
4mer is offline Profile || Blog || PM || Search || Add Buddy IP || Edit || Quote
entryway
Forum Staple


Posts: 2740
Registered: 01-04



4mer said:
Great job.

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

ret12na.lmp @ return01.wad

Old Post 10-28-10 14:26 #
entryway is online now Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit || Quote
Quasar
Moderator


Posts: 6175
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 10-28-10 14:29 #
Quasar is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit || Quote
entryway
Forum Staple


Posts: 2740
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 10-28-10 14:39 #
entryway is online now Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit || Quote
Graf Zahl
Why don't I have a custom title by now?!


Posts: 7793
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 10-28-10 15:33 #
Graf Zahl is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
entryway
Forum Staple


Posts: 2740
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 10-28-10 15:45 #
entryway is online now Profile || Blog || PM || Homepage || Search || Add Buddy IP || Edit || Quote
All times are GMT. The time now is 12:06. 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.