davids@mulga.oz (David Spaziani) (02/01/88)
Hi, I have some more bugs that have cropped up in Omega, and the fixes that seem to work. I have posted the list to the author of Omega, who assures me that these and other bugs will be fixed in the next release coming soon. However, for those of you who can't wait, heres what I've found. I have only described the fixes rather than supply diffs - my solutions are probably not THE solutions. The first bug causes a core dump, and is found in "oaux2.c". The situation in which this occurs is when a monster disengages from a battle and runs. In the procedure "tacexecute", the DISENGAGE case in the switch statement contains two consecutive calls to "movemonster". The correct procedure is "monster_move". The second error occurs when a player surrenders to a guard. The guard remains hostile, following the player to gaol, eventually killing the player. The guard accepts the surrender in "m_guard_talk", in the file "omonf.c", but does not have the status changed from HOSTILE. The fix is to add the call "m_status_reset(m,HOSTILE)" to the block of code in which the player is sent to gaol. The last bug occurs when a player is bitten by a tsetse fly. The player is woken instantly (ie, at the next tick). The problem occurs because in "otime.c", the flag Skipplayer is always set to false each tick, even is Player.status[SLEPT] > 0. The solution is to only conditionally set Skipplayer, ie if (Player.status[SLEPT] <= 0) Skipplayer = FALSE; David Spaziani ============== =========================== UUCP: {seismo,mcvax,ukc,ubc-vision}!munnari!davids ARPA: davids%munnari.oz@seismo.css.gov CSNET: davids%munnari.oz@australia
pwing@apple.UUCP (Philip L. Wing) (02/04/88)
I've found some more bugs with Omega, Version 2: 1. Hit points are *NOT* updated correctly in Tactical Combat Mode. They are updated when the battle begins, not before you enter in your battle manuevers. This means that you can be low on hit points without realizing it when in combat. 2. Enchanters seem to be still active while you are near where they use to be before you kill them. I just had a game where the ghost Enchanter was still throwing snowballs (Balls of Snow, as in Balls of Lightning) at me and finally killed me. 3. In the arena, *YOU* are penalized if your opponent runs away as if you ran away. The first two are serious, the third not quite so. -- Live Long And Prosper and May The Force Be With You(And The Carrier, Too...) Philip L. Wing
ajcd@its63b.ed.ac.uk (Angus Duggan, Department of Computer Science, University of Edinburgh,) (02/09/88)
[warning - line eater at work] Here's another omega bug: If you buy a penthouse from the Rampart Arms, and then try to put money in it's safe, omega coredumps. And here's a fix: add a new declaration to function l_condo in file "osite.c" - void l_condo() { pol ol,prev=NULL; int i,done=FALSE,over=FALSE,weeksleep=FALSE; char response; pob money; and then add an if statement after the call to getitem later on in l_condo - menuprint("d: Retire permanently.\n"); menuprint("ESCAPE: Leave this place.\n"); response = mgetc(); if (response == 'a') { i = getitem(NULL); if (i == CASHVALUE) { money = detach_money(); if (money != NULL) { ol = ((pol) malloc(sizeof(oltype))); ol->thing = money; ol->next = Condoitems; Condoitems = ol; } } else if (i != ABORT) { if (Player.possessions[i-'a']->blessing < 0) mprint("The item just doesn't want to be stored away..."); The function detach_money should be declared as - extern pob detach_money() -- Angus Duggan, Department of Computer Science, University of Edinburgh, James Clerk Maxwell Building, The King's Buildings, Mayfield Road, Edinburgh, EH9 3JZ, Scotland, U.K. JANET: ajcd@uk.ac.ed.ecsvax ARPA: ajcd%ed.ecsvax@nss.cs.ucl.ac.uk USENET: ajcd@ecsvax.ed.ac.uk UUCP: ...!mcvax!ukc!ed.ecsvax!ajcd BITNET: ukacrl.earn!ed.ecsvax!ajcd or ajcd%ed.ecsvax@uk.ac