Just a sample of the Echomail archive
Cooperative anarchy at its finest, still active today. Darkrealms is the Zone 1 Hub.
|    CBM    |    Commodore Computer Conference    |    4,328 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 2,249 of 4,328    |
|    Harry Potter to All    |
|    Re: Looking moremore optimizations!    |
|    27 Oct 18 05:21:07    |
   
   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 | Fido<>Usenet Gateway (3:770/3)   
|
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca