亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? readmap.c

?? 最新主流石器時代源代碼,包含諸多目前流行功能代碼.
?? C
?? 第 1 頁 / 共 3 頁
字號:
#include "version.h"#include <stdio.h>#include <stdlib.h>#include <string.h>#include <dirent.h>#include <errno.h>#include <unistd.h>#include <netinet/in.h>#include <sys/stat.h>#include "common.h"#include "object.h"#include "readmap.h"#include "buf.h"#include "util.h"#include "char.h"#include "lssproto_serv.h"#include "configfile.h"#define MAP_MAGIC  "LS2MAP"static void MAP_makeDefaultImageData( MAP_ImageData* one ){    one->data[MAP_WALKABLE]     = TRUE;    one->data[MAP_HAVEHEIGHT]   = FALSE;    one->data[MAP_DEFENCE]     = 0;    one->data[MAP_INTODAMAGE]   = 0;    one->data[MAP_OUTOFDAMAGE]  = 0;    one->data[MAP_SETED_BATTLEMAP]    = 0;    one->data[MAP_BATTLEMAP]       = 0;    one->data[MAP_BATTLEMAP2]       = 0;    one->data[MAP_BATTLEMAP3]       = 0;    one->data[MAP_INTODARKNESS]     = 0;    one->data[MAP_INTOCONFUSION]    = 0;    one->data[MAP_OUTOFPOISON]       = 0;    one->data[MAP_OUTOFPARALYSIS]    = 0;    one->data[MAP_OUTOFSILENCE]      = 0;    one->data[MAP_OUTOFSTONE]        = 0;    one->data[MAP_OUTOFDARKNESS]     = 0;    one->data[MAP_OUTOFCONFUSION]    = 0;}static int MAP_flgSet( char* string ){    int     tmp;    tmp = atoi(string);    if( tmp == 0 )        return 0;    return 1;}typedef enum{    MAP_INTENTRY=0,    MAP_CHARENTRY=1,    MAP_INTFUNC=2,    MAP_CHARFUNC=3,}MAP_DATATYPECATEGORY;static struct MAP_itemconfentry{    int     type;    int     index;    void*   func;}MAP_confentries[MAP_DATAINT_NUM+MAP_DATACHAR_NUM]={    {MAP_INTENTRY,  MAP_WALKABLE,       MAP_flgSet},    {MAP_INTENTRY,  MAP_HAVEHEIGHT,     MAP_flgSet},    {MAP_INTENTRY,  MAP_DEFENCE,       NULL},    {MAP_INTENTRY,  MAP_INTODAMAGE,     NULL},    {MAP_INTENTRY,  MAP_OUTOFDAMAGE,    NULL},    {MAP_INTENTRY,  MAP_SETED_BATTLEMAP,  NULL},    {MAP_INTENTRY,  MAP_BATTLEMAP,	    NULL},    {MAP_INTENTRY,  MAP_BATTLEMAP2,	    NULL},    {MAP_INTENTRY,  MAP_BATTLEMAP3,	    NULL},    {MAP_INTENTRY,  MAP_INTODARKNESS,   NULL},    {MAP_INTENTRY,  MAP_INTOCONFUSION,  NULL},    {MAP_INTENTRY,  MAP_OUTOFPOISON,    NULL},    {MAP_INTENTRY,  MAP_OUTOFPARALYSIS, NULL},    {MAP_INTENTRY,  MAP_OUTOFSILENCE,   NULL},    {MAP_INTENTRY,  MAP_OUTOFSTONE,     NULL},    {MAP_INTENTRY,  MAP_OUTOFDARKNESS,  NULL},    {MAP_INTENTRY,  MAP_OUTOFCONFUSION, NULL},};static MAP_ImageData*  MAP_imagedata;static unsigned int    MAP_imagedatanum;static  int     MAP_imgfilt[65535];BOOL MAP_readMapConfFile( char* filename ){    FILE*   file;    char    line[512];    int     maximagenumber=0;    int     i;    int     linenum=0;    int     imgdataindex=0;    file = fopen( filename , "r" );    if( file == NULL ){        fprint( "無法打開文件 %s\n", filename );        return FALSE;    }    while( fgets( line , sizeof( line ) , file ) ){        char    imgnum[16];        BOOL    ret;        int     imgnumber;        deleteSequentChar( line, " \t" );        pohcd( line, " \t" );        dchop(line, " \t");        if( line[0] == '#' )continue;        if( line[0] == '\n' )continue;        chomp( line );        ret = getStringFromIndexWithDelim( line , " " ,  1 , imgnum , sizeof( imgnum ) );        if( ret == FALSE )continue;        imgnumber = atoi(imgnum);        maximagenumber = max( maximagenumber , imgnumber );    }    MAP_imagedatanum = maximagenumber + 1;    MAP_imagedata=allocateMemory(sizeof(MAP_ImageData)*MAP_imagedatanum);    if( MAP_imagedata == NULL ){        fprint("無法分配地圖數據大小=%d\n",MAP_imagedatanum);        return FALSE;    }    for( i = 0; i <arraysizeof( MAP_imgfilt) ; i ++ )        MAP_imgfilt[i] = -1;    if( fseek( file, 0 , SEEK_SET ) != 0 ){        fprint( "無法查找 SEEK_SET %s\n" , strerror( errno ));        return FALSE;    }    while( fgets( line , sizeof( line ) , file ) ){        char    token[64];        int     imagenumber;        int     ret;        int     i;        MAP_ImageData  *one;        int     offset;        linenum++;        deleteSequentChar( line, " \t" );        pohcd( line, " \t" );        chomp(line);        if( line[0] == '#' )continue;        if( line[0] == '\n' )continue;        chomp( line );        ret = getStringFromIndexWithDelim(line, " " ,1, token , sizeof( token ) );        if( ret == FALSE )continue;        imagenumber = atoi( token );        MAP_imgfilt[imagenumber] = imgdataindex;        one = &MAP_imagedata[imgdataindex];        imgdataindex ++;        MAP_makeDefaultImageData(one);        offset = 4 ;        for( i = 0 ; i < MAP_DATAINT_NUM + MAP_DATACHAR_NUM ; i ++ ){            BOOL    ret;            ret = getStringFromIndexWithDelim(line, " " ,i + offset, token, sizeof(token) );            if( ret == FALSE )continue;            switch( MAP_confentries[i].type ){            case MAP_INTENTRY:                one->data[MAP_confentries[i].index]                    = atoi( token );                break;            case MAP_CHARENTRY:                strcpysafe( one->string[MAP_confentries[i].index].string,                            sizeof( one->string[MAP_confentries[i].index].                                    string),                            token);                break;            case MAP_INTFUNC:            {                int (*intfunction)(char* );                intfunction = MAP_confentries[i].func;                one->data[MAP_confentries[i].index]                    = intfunction(token);                break;            }            case MAP_CHARFUNC:            {                char* (*charfunction)(char* );                charfunction = MAP_confentries[i].func;                strcpysafe( one->string[MAP_confentries[i].index].string,                            sizeof(one->string[MAP_confentries[i].index].                                   string),                            charfunction(token));                break;            }            default:                break;            }        }    }    fclose( file );    return TRUE;}#if 1BOOL MAP_readBattleMapConfFile( char* filename ){    FILE*   file;    char    line[512];    int     i, j;    int     linenum=0;	int 	BattleMapNo[3], iRet, iWork, iPre[3],iFirst, iLast;    file = fopen( filename , "r" );    if( file == NULL ){        fprint( "無法打開 %s\n", filename );        return FALSE;    }	BattleMapNo[0] = 0;	BattleMapNo[1] = 0;	BattleMapNo[2] = 0;    while( fgets( line , sizeof( line ) , file ) ){        char    *p;        linenum++;        pohcd( line, " \t" );        dchop(line, " \t");        if( line[0] == '#' )continue;        if( line[0] == '\n' )continue;        chomp( line );		if( line[0] == '$' ){			iRet = sscanf( line+1, "%d %d %d", &iPre[0], &iPre[1], &iPre[2] );			BattleMapNo[0] = BattleMapNo[1] = BattleMapNo[2] = iPre[0];			if( iRet < 1 ){				print( "!!!!!錯誤 無法讀取戰斗地圖(%s)( line %d )\n", filename, linenum );			}			for( i = 0; i < iRet; i ++ ){				BattleMapNo[i] = iPre[i];				if( BattleMapNo[i] < 0 ){					print( "!!!!!錯誤 戰斗地圖號碼為負值 (%s)( line %d )\n", filename, linenum );				}			}			continue;		}		if( sscanf( line, "%d", &iWork ) != 1 ){			continue;		}		if( iWork < 0 ){			print( "!!!!!錯誤 金錢號碼為負值 (%s)( line %d )\n", filename, linenum );			continue;		}		iFirst = iWork;		p = strstr( line, "to" );		if( p != NULL ){			if( sscanf( p+2, "%d", &iWork ) != 1 ){				iLast = iFirst;			}else{				iLast = iWork;			}			if( iWork < 0 ){				print( "!!!!!錯誤 金錢號碼為負值 (%s)( line %d )\n", filename, linenum );				continue;			}		}else{			iLast = iFirst;		}		for( i = iFirst; i <= iLast; i ++ ){			if( MAP_getImageInt( i, MAP_SETED_BATTLEMAP ) > 0 ){				print( "!!!!!錯誤 相同金錢重復設定了兩次(%s)( line %d )(%d)(%d & %d)\n",					filename, linenum, i,					MAP_getImageInt( i, MAP_BATTLEMAP ),					BattleMapNo[0] );			}			//   颶  寞懇仄中井"			if( IsValidImagenumber( i ) == FALSE ){				continue;			}			MAP_setImageInt( i, MAP_BATTLEMAP,  BattleMapNo[0] );			MAP_setImageInt( i, MAP_BATTLEMAP2, BattleMapNo[1] );			MAP_setImageInt( i, MAP_BATTLEMAP3, BattleMapNo[2] );			MAP_setImageInt( i, MAP_SETED_BATTLEMAP, 1 );		}    }    fclose( file );	for( j = 0; j < arraysizeof( MAP_imgfilt ); j ++ ){		if( MAP_imgfilt[j] == -1 )continue;		if( MAP_getImageInt( j, MAP_SETED_BATTLEMAP ) == 0 ){			print( "!!!!!錯誤 金錢(%d)尚未設定 (%s)\n", j, filename );		}	}    return TRUE;}#endifBOOL IsValidImagenumber( int imagenumber ){    if( imagenumber < 0 || imagenumber >= arraysizeof( MAP_imgfilt ) )        return FALSE;    if( MAP_imgfilt[imagenumber] == -1 )    	return FALSE;    return TRUE;}int MAP_getImageInt( int imagenumber, int element ){    if( imagenumber < 0 || imagenumber >= arraysizeof( MAP_imgfilt ))        return FALSE;    if( MAP_imgfilt[imagenumber] == -1 )return FALSE;    return MAP_imagedata[MAP_imgfilt[imagenumber]].data[element];}BOOL MAP_setImageInt( int imagenumber, int element, int value ){    if( imagenumber < 0 || imagenumber >= arraysizeof( MAP_imgfilt ))        return FALSE;    if( MAP_imgfilt[imagenumber] == -1 )return FALSE;    MAP_imagedata[MAP_imgfilt[imagenumber]].data[element] = value;    return TRUE;}static MAP_Map*         MAP_map;static unsigned int     MAP_mapnum;static unsigned int     MAP_mapnum_index;static int*             MAP_idjumptbl;static int              MAP_idtblsize;BOOL MAP_initMapArray( int num ){    MAP_mapnum = num ;    MAP_map = allocateMemory( sizeof( MAP_Map ) * MAP_mapnum );    if( MAP_map == NULL )return FALSE;    MAP_mapnum_index = 0;    return TRUE;}void MAP_endMapArray( void ){    int i;    for( i = 0 ; i < MAP_mapnum ; i ++ ){        if( MAP_map[i].tile != NULL )            freeMemory( MAP_map[i].tile );        if( MAP_map[i].obj  != NULL)            freeMemory( MAP_map[i].obj );    }    MAP_mapnum = 0;    MAP_mapnum_index = 0;    freeMemory( MAP_map );    MAP_map = NULL;}static BOOL MAP_IsMapFile( char*    filename ){    FILE*   f;    char    buf[16];    int     ret;    f  = fopen(filename, "r");    if( f == NULL ){        errorprint;        return FALSE;    }    ret = fread( buf , sizeof( char ) , 6 , f);    if( ret != 6 )        goto FCLOSERETURNFALSE;    buf[ret] = '\0';    if( strcmp( buf , MAP_MAGIC ) != 0 )        goto FCLOSERETURNFALSE;    else        goto FCLOSERETURNTRUE;FCLOSERETURNFALSE:    fclose(f);    return FALSE;FCLOSERETURNTRUE:    fclose(f);    return TRUE;}static BOOL MAP_readMapOne( char*   filename ){    FILE*   f;					/*  白央奶伙    */    char    buf[16];            /*  穴斥永弁瓜件田□  心迕  */    short   data[1024];         /*  撲亦□玄  心迕田永白央  */    int     ret;                /*  忒曰襖熬仃潸曰迕        */    int     i;                  /*  伙□皿  醒  */    int     mapindex;    int     id=0,xsiz=0,ysiz=0;     /*  穴永皿犯□正及域凜傘  樺赭  */    short   *tile=NULL;    short   *obj=NULL;    MAP_Objlink**   olink=NULL;    char    showstring[32];         /*  穴永皿犯□正及域凜傘  樺赭  */    struct  stat    filestat;       /*  民尼永弁迕卞銀丹    */    BOOL    invaliddata=FALSE;    if( MAP_mapnum_index >= MAP_mapnum ){        fprint( "這里沒有足夠空間裝載地圖數組.\n" );        return FALSE;    }    mapindex=MAP_mapnum_index;    f  = fopen(filename, "r");    if( f == NULL ){        errorprint;        return FALSE;    }    if( fstat( fileno(f) , &filestat ) != 0 ){        errorprint;        goto FCLOSERETURNFALSE;    }    ret = fread( buf , sizeof( char ) , 6 , f);    if( ret != 6 ){        errorprint;        goto FCLOSERETURNFALSE;    }    buf[ret] = '\0';    if( strcmp( buf , MAP_MAGIC ) != 0 )        goto FCLOSERETURNFALSE;    ret = fread( data , sizeof( short ) , 1 , f);    if( ret != 1 ){        errorprint;        goto FCLOSERETURNFALSE;    }    id = ntohs( data[0] );    ret = fread( showstring , sizeof(char), arraysizeof(showstring), f);    if( ret != arraysizeof(showstring) ){        errorprint;        goto FCLOSERETURNFALSE;    }    showstring[arraysizeof(showstring)-1] = '\0';    ret = fread( data, sizeof( short ) , 1 , f);    if( ret != 1 ){        errorprint;        goto FCLOSERETURNFALSE;    }    xsiz = ntohs( data[0] );    ret = fread( data, sizeof( short ) , 1 , f);    if( ret != 1 ){        errorprint;        goto FCLOSERETURNFALSE;    }    ysiz = ntohs( data[0] );    tile = allocateMemory( sizeof( short ) * xsiz * ysiz );    if( tile == NULL ){        fprint( "無法分配內存給頭銜名稱:%s xsiz:%d ysiz:%d\n", filename, xsiz, ysiz);        goto FREEOBJHP;    }    obj = allocateMemory( sizeof( short ) * xsiz * ysiz );    if( obj == NULL ){        fprint( "無法分配內存給對象\n");        goto FREETILE;    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美va天堂va视频va在线| 亚洲福中文字幕伊人影院| 午夜在线电影亚洲一区| 国产精品99久久久久久有的能看| 色视频成人在线观看免| 久久久一区二区三区捆绑**| 日本欧美在线看| 欧美视频一区二区| 亚洲人成网站在线| av一区二区久久| 欧美mv和日韩mv的网站| 天堂资源在线中文精品| 97久久超碰国产精品电影| 久久精品人人爽人人爽| 久久99国产精品久久| 欧美一区二区三区日韩| 午夜私人影院久久久久| 日韩一级片在线播放| 亚洲高清在线精品| 色婷婷亚洲综合| 亚洲国产精品激情在线观看| 激情欧美一区二区三区在线观看| 91久久精品网| 日韩成人免费看| 日韩欧美色综合网站| 激情综合色综合久久| 国产三级一区二区三区| 国v精品久久久网| 美女精品自拍一二三四| 欧美日韩精品一区视频| 亚洲国产日韩av| 日韩一区二区三区视频| 裸体一区二区三区| 日本一二三四高清不卡| 色综合久久久久久久久久久| 欧美性猛片aaaaaaa做受| 欧美一区二区三区人| 精品一区二区三区蜜桃| 亚洲视频免费在线观看| 欧美色图一区二区三区| 亚洲男女一区二区三区| 色婷婷av一区| 国产在线观看一区二区| 一区二区三区日韩在线观看| 精品国产污网站| 色综合久久久网| 国产成人99久久亚洲综合精品| 亚洲一区av在线| 中文字幕综合网| 国产午夜精品久久久久久久| 5858s免费视频成人| av在线一区二区| 九一久久久久久| 亚洲成人动漫在线观看| 国产三级精品三级在线专区| 欧美色手机在线观看| 大白屁股一区二区视频| 久久精品国产免费| 亚洲bt欧美bt精品| 亚洲欧洲精品一区二区三区| 亚洲精品一区二区三区影院| 日本韩国一区二区三区视频| 精品一区二区三区视频| 亚洲同性同志一二三专区| 国产亚洲1区2区3区| 日韩精品一区在线观看| 91精品国产综合久久精品图片 | 免费观看在线综合| 国产亚洲综合av| 91麻豆自制传媒国产之光| 成人国产电影网| 国产麻豆视频一区二区| 麻豆一区二区99久久久久| 天天影视涩香欲综合网| 一区二区三区鲁丝不卡| 精品999在线播放| 91精品国产综合久久香蕉麻豆 | 51午夜精品国产| 欧美一级一区二区| 欧美sm极限捆绑bd| 精品国产一区a| 国产精品视频线看| 国产精品麻豆欧美日韩ww| 中文一区一区三区高中清不卡| 国产亚洲精品超碰| 亚洲三级小视频| 亚洲不卡av一区二区三区| 久久只精品国产| 国产精品乱人伦一区二区| 国产精品日韩精品欧美在线| 中文字幕一区在线观看视频| 亚洲黄色在线视频| 理论片日本一区| 91麻豆国产福利精品| 精品视频在线看| 亚洲国产成人一区二区三区| 亚洲色图欧洲色图婷婷| 极品少妇一区二区三区精品视频 | 亚洲成av人片一区二区梦乃| 青青草原综合久久大伊人精品优势| 国产激情一区二区三区四区| 在线观看视频一区二区| 久久久久久久久97黄色工厂| 亚洲影院免费观看| 中文字幕一区二区三| 精品剧情在线观看| 最新日韩在线视频| 国产在线国偷精品免费看| 色综合天天天天做夜夜夜夜做| 欧美一级欧美一级在线播放| 国产精品狼人久久影院观看方式| 日韩精品欧美成人高清一区二区| 国产99久久久国产精品免费看| 91福利国产成人精品照片| 久久久亚洲精品石原莉奈| 亚洲狠狠爱一区二区三区| 成人黄色软件下载| 中文字幕巨乱亚洲| 精一区二区三区| 日韩一区二区影院| 五月婷婷综合激情| 色综合av在线| 亚洲人快播电影网| 成人福利视频在线看| 久久综合资源网| 激情图片小说一区| 精品国产乱码久久| 五月天亚洲婷婷| 2024国产精品视频| 久久99国产乱子伦精品免费| 精品少妇一区二区三区在线播放 | 国产精品久久久久久亚洲伦 | 日韩精品一区二区三区中文不卡| 亚洲男人的天堂av| 在线观看亚洲精品| 午夜精品福利视频网站| 91精品国产福利在线观看| 亚洲综合免费观看高清完整版在线 | 国产精品电影一区二区三区| 成人伦理片在线| 亚洲天堂免费看| 91超碰这里只有精品国产| 麻豆免费精品视频| www国产精品av| 99久久久久久| 亚洲自拍偷拍网站| 亚洲精品一区二区在线观看| 成人听书哪个软件好| 亚洲图片欧美视频| 久久精品人人做人人爽97| 色婷婷av一区二区三区大白胸| 五月婷婷综合网| 国产人妖乱国产精品人妖| 91亚洲永久精品| 美女久久久精品| 亚洲日本在线观看| 欧美变态口味重另类| 97久久久精品综合88久久| 日韩av中文在线观看| 国产日韩精品一区| 欧美日韩精品欧美日韩精品一| 久久99精品一区二区三区 | 日本亚洲免费观看| 国产精品亲子伦对白| 欧美二区三区91| 国产成人综合网| 久草这里只有精品视频| 亚洲国产日日夜夜| 国产精品网曝门| 日韩无一区二区| 欧美性淫爽ww久久久久无| 成人精品视频一区| 蜜臀av一区二区三区| 亚洲自拍欧美精品| 亚洲欧美色图小说| 国产精品免费视频一区| 精品99一区二区三区| 欧美精品1区2区3区| 91黄视频在线| 91麻豆精品秘密| 成人免费高清在线| 国产欧美一区二区精品忘忧草| 欧美日本一道本在线视频| 91极品美女在线| 一本久久a久久免费精品不卡| 成人免费毛片嘿嘿连载视频| 狠狠色丁香久久婷婷综合丁香| 日本中文在线一区| 蓝色福利精品导航| 国产在线精品一区二区三区不卡| 狠狠色丁香婷婷综合久久片| 精品一区二区三区视频在线观看| 久久99精品久久久| 麻豆精品久久久| 精彩视频一区二区三区| 国产麻豆视频一区| av动漫一区二区| 色婷婷精品久久二区二区蜜臂av| 欧美在线播放高清精品| 欧美日本韩国一区|