User Tools

Site Tools


vodur:luaafile

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
vodur:luaafile [2015/11/01 07:35] vodurvodur:luaafile [2015/11/11 04:40] (current) vodur
Line 6: Line 6:
  
 Cons:\\ Cons:\\
-Less performant\\+Less performant (bigger filesize, slower save/load)\\
 Confusing to use new save/load code? Confusing to use new save/load code?
  
Line 12: Line 12:
  
 <code C> <code C>
- 
       fprintf( fp, "#VER %d\n", CURR_AREA_VERSION );       fprintf( fp, "#VER %d\n", CURR_AREA_VERSION );
  
Line 233: Line 232:
   },   },
 } }
 +</code>
 +
 +===== Example old loading code: =====
 +
 +<code C>
 +    for ( ; ; )
 +    {
 +        word   = feof( fp ) ? "End" : fread_word( fp );
 +        fMatch = FALSE;
 +
 +        switch ( UPPER(word[0]) )
 +        {
 +      /* Added for the new areas command - Astark Dec 2012 */
 +        case 'A':
 +            if (!str_cmp(word, "AProg") )
 +            {
 +                PROG_LIST *pAprog;
 +                const char *word;
 +                int trigger = 0;
 +
 +                pAprog              = alloc_ATRIG();
 +                word                = fread_word( fp );
 +                if ( (trigger = flag_lookup( word, aprog_flags )) == NO_FLAG )
 +                {
 +                    bugf("load_area.AProg: invalid trigger '%s' for area %s.", word, pArea->name);
 +                    exit(1);
 +                }
 +                SET_BIT(pArea->aprog_flags, trigger );
 +                pAprog->trig_type   = trigger;
 +                pAprog->vnum        = fread_number( fp );
 +                pAprog->trig_phrase = fread_string( fp );
 +                pAprog->next        = pArea->aprogs;
 +                pArea->aprogs   = pAprog;
 +            }
 +            break;
 +        case 'M':
 +            KEY("Minlevel", pArea->minlevel, fread_number( fp ));
 +            KEY("Maxlevel", pArea->maxlevel, fread_number( fp ));
 +            KEY("Miniquests", pArea->miniquests, fread_number( fp ));
 +        case 'N':
 +            SKEY( "Name", pArea->name );
 +            if ( !str_cmp(word, "NoQuest"))
 +            {
 +                SET_BIT(pArea->area_flags,AREA_NOQUEST);
 +                break;
 +            }
 +            if ( !str_cmp(word, "NoHide"))
 +            {
 +                SET_BIT(pArea->area_flags,AREA_NOHIDE);
 +                break;
 +            }
 +            SKEY( "Comments", pArea->comments );
 +            break;
 +        case 'R':
 +            if ( !str_cmp(word, "Remort"))
 +                SET_BIT(pArea->area_flags,AREA_REMORT);
 +            break;
 +        case 'S':
 +            KEY( "Security", pArea->security, fread_number( fp ) );
 +            if ( !str_cmp(word, "Solo") )
 +            {
 +                SET_BIT(pArea->area_flags, AREA_SOLO);
 +                break;
 +            }
 +            break;
 +        case 'T':
 +            KEY("Time", pArea->reset_time, fread_number( fp ));
 +        case 'V':
 +            if ( !str_cmp( word, "VNUMs" ) )
 +            {
 +                pArea->min_vnum = fread_number( fp );
 +                pArea->max_vnum = fread_number( fp );
 +            }
 +            break;
 +        case 'E':
 +            if ( !str_cmp( word, "End" ) )
 +            {
 +                fMatch = TRUE;
 +                if ( area_first == NULL )
 +                    area_first = pArea;
 +                if ( area_last  != NULL )
 +                    area_last->next = pArea;
 +
 +                area_last    = pArea;
 +                pArea->next  = NULL;
 +                current_area = pArea;
 +                top_area++;
 +
 +                return;
 +            }
 +            break;
 +        case 'B':
 +            SKEY( "Builders", pArea->builders );
 +            break;
 +        case 'C':
 +            SKEY( "Credits", pArea->credits );
 +            break;
 +        }
 +
 +        if ( !fMatch )
 +        {
 +            // no nothing but avoid warning
 +        }
 +    }
 </code> </code>
  
vodur/luaafile.1446363341.txt.gz · Last modified: 2015/11/01 07:35 by vodur