[comp.sources.games.bugs] Some various semi-drastic Omega bugs....

ameiba@reed.UUCP (Keith Steiger) (11/02/88)

I've been collecting my discovered bugs over time, and it's time to post them
all.  Some are just mild fixes, some are really critical, but they all warrant
implementation.

In oeffect3.c:
1033,1040c1033,1038
<   if (!Player.status[SHADOWFORM]) {
<     mprint("You feel like a shadow.");
<     Player.immunity[NORMAL_DAMAGE]++;
<     Player.immunity[ACID]++;
<     Player.immunity[THEFT]++;
<     Player.immunity[INFECTION]++;
<     Player.status[SHADOWFORM]+=Player.level;
<   }
---
>   mprint("You feel like a shadow.");
>   Player.immunity[NORMAL_DAMAGE]++;
>   Player.immunity[ACID]++;
>   Player.immunity[THEFT]++;
>   Player.immunity[INFECTION]++;
>   Player.status[SHADOWFORM]+=Player.level;

     This corrects a fundamental bug with the Shadowform spell.  If you cast
     it twice and then dispell it, it will leave you immune to normal damage,
     acid, theft, and infection.  With this correction, that's no longer
     possible.

In oguild2.c:
621c620
<     *newitem = Objects[SHIELDID+7]; /* shield of deflection */
---
>     *newitem = Objects[SHIELDID+6]; /* shield of deflection */

     Now the Paladin's Guild will actually give you a shield of deflection,
     instead of a plasteel shield....

In oinv.c:
708c710
<     presenttime = Command_Duration;
---
> 
771,772c771,772
<     if (Command_Duration>presenttime)
<       calc_melee();
---
>     calc_melee();
>     dataprint();

     This stops the computer from checking your combat stats after commands
     which take no time, like moving around your directory.  This speeds things
     up immensely.  Furthermore, the dataprint() call is redundant, as
     calc_melee()'s last action is to call dataprint().

In omon.c:
179c179
<   if (m->id == ML10+0) { /* death */
---
>   if (m->id == ML10+10) { /* death */

     Now, as intended, Death cannot die.  This makes the Adept's Challenge
     far more complicated.  Furthermore, you cannot see Death's corpse, which
     is aptly entitled "No way can you be seeing this!".

In osave.c:
62c62
<     print1("Game Saved.");
---
>     print2("Game Saved.");
66c66,68
<       print2("Compressing Save File....");
---
>       morewait();
>       clearmsg();
>       print1("Compressing Save File....");

     This stops a completely (to my knowledge) useless request for a space.
     The users at Reed literally *BEGGED* for this one.

In oscr.c:
587,589c587
<     else if (showmonster)
<       return(Level->site[x][y].creature->monchar);
<     else return(WATER);
---
>     else return(Level->site[x][y].creature->monchar);

     This stops water-going monsters (most notably nightgaunts) from incorrectly
     erasing themselves.  This was really easy to fix, once I started looking
     for it--I'm surprised someone didn't beat me to it.

Well, that's all for now, boys and girls.  May Omega live long, prosper, be
forever supported on Unix machines, and get its very own newsgroup as soon as
possible.

    TTYL,
    Keith Steiger
    "If only live role-playing could be started and stopped at whim...."