[comp.sources.games.bugs] truncated OMEGA source

alkis@bucsb.UUCP (Alkis Kornilios) (01/23/88)

While trying to sh all the omega archive files i found an error in 3 of them,
#2 #4 and #5. i figured out (ok i guessed what) the errors are. Could someone
please repost those part or better yet post the pieces that are missing.
That way i could just attach the necessary piece to the end and then sh
the whole file. Here's what's missing. In part 2 of the archive the file
got truncated in source file oitemf.c. below is the last couple of lines in
the file just in case you might prefer to post only the missing pieces.

Archive 2 was truncated after
The file contained ofile.c and oilemf.c
X
Xvoid i_corpse(o)
Xpob o;
X{
X  switch (o->aux) {
X  case ML0+1: 
X  case ML0+2:
X  case ML0+3:
X  case ML0+4:
X  case ML2+0:
X  case ML2+2:
X  case ML7+3:
X  case ML10+0: /* cannibalism */
X    mprint("Yechh! How could you! You didn't even cook him, first!");
X    if (Player.alignment > 0) Player.food = 25;
X    Player.food += 8;
X    Player.alignment -=10;
X    foodcheck();
X    break;
X  case ML1+2: /* fnord */
X    mprint("You feel illuminated!");
X    Player.iq++;
X    break;
X  case ML4+3: /* denebian slime devil */
X    mprint("I don't believe this. You ate Denebian Slime?");
X    mprint("You deserve a horrible wasting death, uncurable by any means!");
X    break;
X  case ML5+0:
X    mprint("Those dragon-steaks were fantastic!");
X    Player.food=24;
X    foodcheck();
X    break;
X  case ML7+0:
X    mprint("You feel infinitely more virile now.");
X    Player.str = max(Player.str,Player.maxstr+10);
X    Player.food = 24;
X    foodcheck();
X    break;
X  case ML9+1:
X    mprint("Guess what? You're invisible.");
X    if (Player.status[INVISIBLE] < 1000) Player.status[INVISIBLE] = 666;
X    Player.food+=6;
X    foodcheck();
X    break;
X  case ML7+2:  
X    mprint("You ATE a unicorn's horn?!?!?");
X    Player.immunity[POISON]=1000;
X    break;
X  case ML0+0:
X  case ML1+0:
X  case ML1+1:
X  case ML1+4:
X  case ML1+5:
X  case ML1+6:
X  case ML1+10:
X  case ML2+1:
X  case ML2+4:
X  case ML4+1:
X  case ML4+4:
X  case ML5+3:
X    mprint("Well, you forced it down. Not much nutrition, though.");
X    Player.food++;
X    foodcheck();
X    break;
X  case ML1+3:
X  case ML1+7:
X  case ML2+3:
X  case ML2+5:
X  case ML3+1:
X  case ML4+5:
X  case ML9+3:
X  case ML10+1:
X    mprint("Oh, yuck. The 'food' seems to be tainted.");
X    mprint("You feel very sick. You throw up.");
X    Player.food = min(Player.food, 4);
X    if (! Player.immunity[INFECTION])
X      Player






In archive 4 it truncated after
This file contained oguild.c

X
Xvoid l_merc_guild()
X{
X  char action;
X  int i,j,done=FALSE;
X  pob newitem;
X
X  mprint("Legion of Destiny, Mercenary Guild, Inc.");
X  if (nighttime())
X    mprint("The barracks are under curfew right now."); 
X  else {
X    while (! done) {
X      menuclear();
X      menuprint("a: Enlist in the Guild.\n");
X      menuprint("b: Apply for a promotion.\n");
X      menuprint("ESCAPE: Go on leave.\n");
X      action = mgetc();
X      if (action == ESCAPE) done = TRUE;
X      else if (action == 'a') {
X	done = TRUE;
X	if (Player.rank[LEGION]>0)
X	  mprint("You are already a recruit!");
X	else if (Player.rank[ARENA]>0)
X	  mprint("The legion don't need any Arena Jocks. Git!");
X	else if (Player.con < 13) {
X	  mprint("You are too fragile to join the legion.");
X	}
X	else if (Player.str < 13) {
X	  mprint("Your strength is too low to pass the physical!");
X	}
X	else {
X	  printm("\nCommandant");
X	  mprint(Commandant);
X	  mprint("shakes your hand.");
X	  mprint("The Legion pays you a 100Au induction fee.");
X	  mprint("You are also issued a shortsword and leather.");
X	  mprint("You are now a Legionaire.");
X	  newitem = ((pob) calloc(1,sizeof(objtype)));
X	  *newitem = Objects[WEAPONID+1]; /* shortsword */
X	  add_item_to_pack(newitem);
X	  newitem = ((pob) calloc(1,sizeof(objtype)));
X	  *newitem = Objects[ARMORID+1]; /* leather */
X	  add_item_to_pack(newitem);
X	  Player.cash += 100;
X	  Player.rank[LEGION] = LEGIONAIRE;
X	  Merclevel = Player.level;
X	  Player.str++; Player.con++;
X	  Player.maxstr++; Player.maxcon++;
X	}
X      }
X      else if (action == 'b') {
X	done = TRUE;
X	if (Player.rank[LEGION]==0)
X	  mprint("You have not even enlisted, yet!");
X	else if (Player.rank[LEGION]==COMMANDANT)
X	  mprint("You can't be promoted any further!");
X	else if (Player.rank[LEGION]==COLONEL) {
X	  if (Player.level-Merclevel <= Commandantlevel)
X	    mprint("Your record does not yet permit promotion.");
X	  else if (! (i=inpack(WEAPONID+37,-1)+1))
X	    mprint("You must return with the Sword of the Dark Emperor!");
X	  else  {
X	    mprint("T








In archive 5 it was truncated after
This archive contained files ohelp.txt and oinitmon4to7.c

X
X#include <strings.h>
X#include "oglob.h"
X
Xvoid initmon4to7()
X{
X  /* the manticore */
X  Monsters[ML4+0].id = ML4+0;
X  Monsters[ML4+0].hp = 100;
X  Monsters[ML4+0].speed = 6;
X  Monsters[ML4+0].hit = 15;
X  Monsters[ML4+0].actions = 4;
X  Monsters[ML4+0].tactics = MM_BERSERK+MM_POOR;
X  Monsters[ML4+0].ac = 12;
X  Monsters[ML4+0].dmg = 25;
X  Monsters[ML4+0].sense = 6;
X  Monsters[ML4+0].wakeup = 2;
X  Monsters[ML4+0].level = 4;
X  Monsters[ML4+0].status = HOSTILE+HUNGRY+MOBILE+FLYING;
X  Monsters[ML4+0].immunity = 0;
X  Monsters[ML4+0].sleep = 25;
X  Monsters[ML4+0].treasure = 2;
X  Monsters[ML4+0].possessions = NULL;
X  Monsters[ML4+0].xpv = 100;
X  Monsters[ML4+0].x = -1;
X  Monsters[ML4+0].y = -1;
X  Monsters[ML4+0].transformid = STICKID+11;
X  Monsters[ML4+0].corpsevalue = 20;
X  Monsters[ML4+0].monchar = 'M';
X  strcpy(Monsters[ML4+0].monstring,"manticore");
X  strcpy(Monsters[ML4+0].corpsestr,"manticore spikes");
X  Monsters[ML4+0].corpseweight = 100;
X  Monsters[ML4+0].talkf = M_TALK_HUNGRY;
X  Monsters[ML4+0].movef = M_MOVE_NORMAL;
X  Monsters[ML4+0].meleef = M_MELEE_NORMAL;
X  Monsters[ML4+0].strikef = M_STRIKE_MISSILE;
X  Monsters[ML4+0].specialf = M_NO_OP;
X
X  /* the tasmanian devil */
X  Monsters[ML4+1].id = ML4+1;
X  Monsters[ML4+1].hp = 50;
X  Monsters[ML4+1].speed = 2;
X  Monsters[ML4+1].hit = 12;
X  Monsters[ML4+1].actions =  8;
X  Monsters[ML4+1].tactics = MM_BERSERK+MM_POOR;
X  Monsters[ML4+1].hitloc = LOW;
X  Monsters[ML4+1].ac = 10;
X  Monsters[ML4+1].dmg = 10;
X  Monsters[ML4+1].sense = 10;
X  Monsters[ML4+1].wakeup = 10;
X  Monsters[ML4+1].level = 4;
X  Monsters[ML4+1].status = HOSTILE+HUNGRY+MOBILE;
X  Monsters[ML4+1].immunity = 0;
X  Monsters[ML4+1].xpv = 75;
X  Monsters[ML4+1].treasure = 0;
X  Monsters[ML4+1].possessions = NULL;
X  Monsters[ML4+1].sleep = 50;
X  Monsters[ML4+1].x = -1;
X  Monsters[ML4+1].y = -1;
X  Monsters[ML4+1].transformid = POTIONID+6;
X  Monsters[ML4+1].corpsevalue = 10;
X  Monsters[ML4+1].monchar = 'T';
X  strcpy(Monsters[ML4+1].monstring,"tasmanian devil");
X  strcpy(Monsters[ML4+1].corpsestr,"dead tasmanian devil");
X  Monsters[ML4+1].corpseweight = 300;
X  Monsters[ML4+1].talkf = M_TALK_HUNGRY;
X  Monsters[ML4+1].movef = M_MOVE_FLUTTER;
X  Monsters[ML4+1].meleef = M_MELEE_NORMAL;
X  Monsters[ML4+1].strikef = M_NO_OP;
X  Monsters[ML4+1].specialf = M_NO_OP;
X
X  /* Automaton Minor */
X  Monsters[ML4+2].id = ML4+2;
X  Monsters[ML4+2].hp = 100;
X  Monsters[ML4+2].speed = 7;
X  Monsters[ML4+2].hit = 15;
X  Monsters[ML4+2].actions = 4;
X  Monsters[ML4+2].tactics = MM_FORCED+MM_AVERAGE;
X  Monsters[ML4+2].hitloc = CENTER;
X  Monsters[ML4+2].ac = 15;
X  Monsters[ML4+2].dmg = 50;
X  Monsters[ML4+2].sense = 5;
X  Monsters[ML4+2].wakeup = 2;
X  Monsters[ML4+2].level = 4;
X  Monsters[ML4+2].status = HOSTILE+MOBILE;
X  Monsters[ML4+2].immunity = pow2(SLEEP)+pow2(POISON)+pow2(FEAR)+
X                             pow2(ELECTRICITY);
X  Monsters[ML4+2].xpv = 100;
X  Monsters[ML4+2].treasure = 0;
X  Monsters[ML4+2].possessions = NULL;
X  Monsters[ML4+2].sleep = 100;
X  Monsters[ML4+2].x = -1;
X  Monsters[ML4+2].y = -1;
X  Monsters[ML4+2].transformid = -1;
X  Monsters[ML4+2].corpsevalue = 0;
X  Monsters[ML4+2].monchar = 'a';
X  strcpy(Monsters[ML4+2].monstring,"automatum minor");
X 


Thanks.
                                              ---- freefall@bucsf.bu.edu