亚洲欧美第一页_禁久久精品乱码_粉嫩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在线| 成人精品免费网站| 久久久久久**毛片大全| 国产精品一区二区在线看| 国产欧美一区二区三区沐欲| 风间由美一区二区三区在线观看 | 亚洲精品日韩综合观看成人91| jlzzjlzz亚洲女人18| 一区二区三区在线播| 在线观看免费一区| 久久精品国产久精国产| 久久精品日产第一区二区三区高清版| 国产91丝袜在线18| 欧美国产乱子伦 | 亚洲色图视频网| 99精品视频一区| 日韩制服丝袜av| 久久精品一区二区三区不卡牛牛| 国产98色在线|日韩| 亚洲午夜私人影院| 久久亚区不卡日本| 91免费观看视频| 另类调教123区| 国产欧美日韩精品a在线观看| 欧美在线观看一二区| 日韩高清一级片| 亚洲女子a中天字幕| 7777精品伊人久久久大香线蕉的 | 精品少妇一区二区三区日产乱码 | 色综合咪咪久久| 久久国产综合精品| 国产精品自拍毛片| 久草在线在线精品观看| 青青草精品视频| 天天爽夜夜爽夜夜爽精品视频| 欧美一区二区在线不卡| 国产综合色视频| 久草在线在线精品观看| 丝袜美腿亚洲色图| 午夜激情综合网| 一区二区三区加勒比av| 一区二区三区四区在线免费观看| 国产精品日日摸夜夜摸av| 国产视频亚洲色图| 欧美激情在线免费观看| 欧美经典一区二区三区| 中文字幕欧美激情| 亚洲欧洲日韩av| 亚洲伦理在线精品| 一二三区精品视频| 亚洲午夜在线电影| 免费看精品久久片| 黄色资源网久久资源365| 国产一区二区不卡老阿姨| 成人精品一区二区三区中文字幕| 成人午夜av影视| 日本电影亚洲天堂一区| 欧美电影一区二区三区| 欧美电视剧在线看免费| 久久精品人人做人人爽97 | 国产精品自拍av| 成人理论电影网| 在线免费观看视频一区| 欧美一区二区三区视频在线| 欧美精品一区男女天堂| 日本一区二区视频在线观看| 亚洲六月丁香色婷婷综合久久| 亚洲成人综合视频| 国产老妇另类xxxxx| 在线视频国内自拍亚洲视频| 日韩视频一区在线观看| 中文字幕中文字幕在线一区| 午夜不卡在线视频| 成人性生交大片免费看中文| 欧美性生活久久| 国产欧美日韩在线观看| 日韩在线一二三区| 99视频有精品| 久久久99久久| 免费的国产精品| 在线观看www91| 欧美高清在线视频| 久久精品免费观看| 色婷婷综合五月| 久久久久久毛片| 日韩成人dvd| 欧美怡红院视频| 中文字幕一区二区不卡 | 国产福利91精品一区| 欧美日本免费一区二区三区| 亚洲国产精品精华液2区45| 蓝色福利精品导航| 欧美肥妇bbw| 亚洲第一电影网| 色婷婷av一区二区三区软件| 中文字幕巨乱亚洲| 国产在线不卡一区| 欧美一区二区视频在线观看 | 91精品在线麻豆| 亚洲成精国产精品女| 欧美在线三级电影| 亚洲国产欧美在线人成| 91小视频在线观看| 一区二区三区资源| 色综合久久综合网欧美综合网| 国产精品五月天| 成人白浆超碰人人人人| 国产精品免费网站在线观看| 懂色av一区二区三区蜜臀| 国产日韩高清在线| 成人禁用看黄a在线| 自拍偷自拍亚洲精品播放| 不卡一区中文字幕| 一区二区三区自拍| 欧美猛男gaygay网站| 免费人成在线不卡| 欧美精品一区二区三区很污很色的| 婷婷一区二区三区| 日韩欧美黄色影院| 成人精品免费视频| 亚洲综合在线五月| 91精品国产综合久久婷婷香蕉| 捆绑变态av一区二区三区| 国产欧美久久久精品影院| 972aa.com艺术欧美| 香蕉乱码成人久久天堂爱免费| 欧美大片拔萝卜| 91影院在线免费观看| 日本麻豆一区二区三区视频| 国产亚洲一区二区三区在线观看| 99国产欧美久久久精品| 日韩在线观看一区二区| 中文字幕的久久| 在线播放中文一区| 风间由美性色一区二区三区| 香港成人在线视频| 中文字幕中文字幕一区二区| 欧美精品高清视频| 99视频有精品| 国产一区欧美一区| 亚洲高清中文字幕| 国产精品久久久久久一区二区三区| 欧美午夜精品免费| voyeur盗摄精品| 精品一区二区免费看| 午夜精品久久久| 一区二区三区在线观看网站| 久久久www免费人成精品| 欧美精品日韩精品| 亚洲最大成人综合| 欧美日本乱大交xxxxx| 99精品视频一区| 国产精品亚洲一区二区三区妖精 | 亚洲美女屁股眼交3| 欧美激情资源网| 欧美精品一区二区三区四区| 欧美日本一区二区三区四区| 色综合久久中文综合久久97| 东方aⅴ免费观看久久av| 美女任你摸久久| 免费观看日韩av| 男女男精品网站| 蜜桃视频在线一区| 免费人成精品欧美精品| 水蜜桃久久夜色精品一区的特点| 一区二区成人在线观看| 一区二区三区在线影院| 亚洲综合色区另类av| 一区二区高清免费观看影视大全| 一区二区在线观看av| 一区二区在线免费| 无码av中文一区二区三区桃花岛| 一区二区欧美国产| 日本不卡在线视频| 久久国产精品99久久人人澡| 国产综合一区二区| 懂色中文一区二区在线播放| 不卡一区二区中文字幕| 91蜜桃免费观看视频| 欧美日韩一区精品| 欧美tk丨vk视频| 国产精品电影院| 亚洲va欧美va天堂v国产综合| 日日夜夜精品视频免费| 蜜桃视频免费观看一区| 国产精品一区二区三区四区| 成人永久aaa| 欧美精品一二三区| 久久久久久亚洲综合影院红桃| 1024亚洲合集| 秋霞电影网一区二区| 国产精品一级黄| 欧美性三三影院| 欧美激情一区二区三区在线| 亚洲一区二区三区四区在线| 强制捆绑调教一区二区| 99精品桃花视频在线观看|