TIP: Click on subject to list as thread! ANSI
echo: cbm
to: All
from: Harry Potter
date: 2018-10-27 05:21:00
subject: Re: Looking moremore opti

Let me try again:
-------------------------
void vLook (void)//char Itm1)
{
   static void (*func)();
   if (Itm1!=0xFF) {
      if (SearchInvPlayer () || SearchInvRoom ())
      {
            if ((s=hidereadw((void*)&Item[Itm1].Info))==0) {
               printscr ("No help available for that item.");
               return;
            }
            printh (s);
            //printh ((void*)&Item[Itm1].Info);
         //else
         //   ;
         //return;
         //}
      }
      else {
         //puts (Message[msgItemNotAvail]);
         printmsg(msgItemNotAvail);
      }
      return;
   }
   CurRoomInv=Player.RoomInv[CRoom];
   CRm=(void*)&Room[CRoom];
   printh ((char*)hidereadw((void*)&CRm->Desc));
   func=hidereadw((void*)&CRm->RoomHandler);
   (*func) ();
   printcr();

   for (i=0; i<8 && (c=CurRoomInv[i])!=0xFF;++i) {
      prints ("There is a ");
      printh (hidereadw((void*)&Item[/*CurRoomInv[i]*/c].Name));
      printscr (" here.");
   }
   if (i)
      printcr();
}

void vLook2 (void)
{
   Itm1=-1;
   vLook ();

}

void vGo ()//char Itm1)
{
   if (Itm1>=160 && Itm1<164) {
      j = Itm1&0x0F; //goto godir;
      if ((i=CRm->NextRoom[j])==0xFF) {
         printmsg(msgCantGoThere); return;
      }
      CRoom = i; goto exitgood;
   }
   switch (Itm1)
   {
   case iTeleporter:
      if (!SearchInvRoom()) {
         printscr ("There's no teleporter here.");
         return;
      }
      Player.ExitRoom = CRoom;
      CRoom = rTeleporter;
      goto exitgood;
   }
   printmsg(msgCantGoThere); return;
godir:
exitgood:
   Player.ExitRoom =-1; vLook2();
}
------------------------------------
void main (void)
{
   //static unsigned char c;
   //static char Input [38];
   //static unsigned char Vrb;//, Itm, ItmNum, CurPos;
   //static unsigned char CurPos;//IncPos;
   //static unsigned char i;
   static void (* vfunc) ();
        //printf ("%X\n", &Item[0].Name);
        //cgetc();
   //bordercolor(8); bgcolor (1);
   //textcolor (4);
   brdrcol=8;
   backcol=1;
   //textcol=4;
      /*123456789012345678901234567890123456789*/
   //clrscr ();
   printscr("\f\n\x9cWelcome to \"Adventures on Planet Smir\n"
       "III, Episode 1, v .10\" for the Commo-\n"
       "dore 64 and emulators, created with cc65"
       "by Joseph Rose.\n\n"

       "Type INTRO during the game for\n"
       "instructions.\n\n"
       "Do you want to load a saved game?");
      switch (getkey ())
      {
      case 'd': ++c;
      case 'y': ++c;
      }
   InitPlayer ();
   if (c==2) {
      printscr ("Debug mode: Enter room #"); GetInput (Input, 4);
      for (CurPos=0;Input[CurPos]; ++CurPos)
      {
         CRoom=(((CRoom<<2)+CRoom)<<1)+(Input[CurPos]&0xF);
      }
   }
   vLook2 ();
   while (1)
   {
      DispScoreBoard();
      if (!GetInput (Input,38)) continue;
      Vrb = FindVerb (/*Input*/);
      if (Vrb == 0xFF) {
         prints ("I don't know how to ");
         prints (Input);
         printperiod ();
         continue;
      }
      while (Input[CurPos]==32) ++CurPos;
      if (Input[CurPos]) //Itm1=-1; goto runverb;}
      {
         if ((Itm1 = FindItem (&Input[CurPos]))==0xFF ) {
            prints ("I don't know what a ");
            prints (&Input[CurPos]);
            printscr (" is.");
            continue;
         }
      } else Itm1=0xFF;
      vfunc=hidereadw((void*)&Verb[Vrb].vdo);
      (*vfunc) ();
   }
}
-----------------------
Does this help?  :)

BTW, if necesssary, I can supply some of the variables' purposes.

--- SoupGate-Win32 v1.05
                                                                                                                  
* Origin: Agency HUB, Dunedin - New Zealand | FidoUsenet Gateway (3:770/3)

SOURCE: echomail via QWK@dmine.net

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.