Example #1
0
//敵の出現情報をエクセルから読み込んで格納する関数
void load_story(){
	int n,num,i,fp;
	char fname[32]={"../dat/csv/番外1/storyH0.csv"};
	int input[64];
	char inputc[64];

	fp = FileRead_open(fname);//ファイル読み込み
	if(fp == NULL){
		printfDx("read error\n");
		return;
	}
	for(i=0;i<2;i++)//最初の2行読み飛ばす
		while(FileRead_getc(fp)!='\n');

	n=0 , num=0;
	while(1){
		for(i=0;i<64;i++){
			inputc[i]=input[i]=FileRead_getc(fp);//1文字取得する
			if(inputc[i]=='/'){//スラッシュがあれば
				while(FileRead_getc(fp)!='\n');//改行までループ
				i=-1;//カウンタを最初に戻して
				continue;
			}
			if(input[i]==',' || input[i]=='\n'){//カンマか改行なら
				inputc[i]='\0';//そこまでを文字列とし
				break;
			}
			if(input[i]==EOF){//ファイルの終わりなら
				goto EXFILE;//終了
			}
		}
		switch(num){
			case 0:	enemy_order[n].cnt		=atoi(inputc);break;
			case 1:	enemy_order[n].pattern	=atoi(inputc);break;
			case 2:	enemy_order[n].knd		=atoi(inputc);break;
			case 3:	enemy_order[n].x		=atof(inputc);break;
			case 4:	enemy_order[n].y		=atof(inputc);break;
			case 5:	enemy_order[n].sp		=atof(inputc);break;
			case 6:	enemy_order[n].bltime	=atoi(inputc);break;
			case 7:	enemy_order[n].blknd	=atoi(inputc);break;
			case 8:	enemy_order[n].col		=atoi(inputc);break;
			case 9:	enemy_order[n].hp		=atoi(inputc);break;
			case 10:enemy_order[n].blknd2	=atoi(inputc);break;
			case 11:enemy_order[n].wait		=atoi(inputc);break;
			case 12:enemy_order[n].item_n[0]=atoi(inputc);break;
			case 13:enemy_order[n].item_n[1]=atoi(inputc);break;
			case 14:enemy_order[n].item_n[2]=atoi(inputc);break;
			case 15:enemy_order[n].item_n[3]=atoi(inputc);break;
			case 16:enemy_order[n].item_n[4]=atoi(inputc);break;
			case 17:enemy_order[n].item_n[5]=atoi(inputc);break;
		}
		num++;
		if(num==18){
			num=0;
			n++;
		}
	}
EXFILE:
	FileRead_close(fp);
}
Example #2
0
//登録名・ファイルのパス・フォントの名前を指定
//ex ("HG96", "hoge.ttf", "Hogeman's_Font", 96, 5)
void Font::LoadFont(std::string reg_name, std::string file_path, std::string font_name, int fontsize, int thick){

	file_path = "Fonts/" + file_path;
	const char* filename = file_path.c_str();

	// ファイルのサイズを得る
	int FontFileSize = FileRead_size(filename);
	// フォントファイルを開く
	int FontFileHandle = FileRead_open(filename);
	// フォントデータ格納用のメモリ領域を確保
	void *Buffer = malloc(FontFileSize);
	// フォントファイルを丸ごとメモリに読み込む
	FileRead_read(Buffer, FontFileSize, FontFileHandle);
	// AddFontMemResourceEx引数用
	DWORD font_num = 0;
	// メモリに読み込んだフォントデータをシステムに追加
	if (AddFontMemResourceEx(Buffer, FontFileSize, NULL, &font_num) != 0){}
	else
	{
		// フォント読込エラー処理
		MessageBox(NULL, "フォント読込失敗", "", MB_OK);
	}

	int tmp_handle = CreateFontToHandle(font_name.c_str(), fontsize, thick, DX_FONTTYPE_ANTIALIASING_4X4);
	handlemap.emplace(reg_name.c_str(), tmp_handle);
}
Example #3
0
//---------------------------------------------------------------------
void SaveData::load()
{
    char str[1024];
    std::string s;
    std::stringstream ss;
    int num;

    int fp = FileRead_open("savedata/savedata.dat");
    if (fp == 0) {
        puts("Fail loading savedata file");
        return;
    }
    while (FileRead_gets(str, 256, fp) != -1) {
        ss.clear();
        ss.str(str);
        //---- 
        ss >> s;
        num = atoi(s.c_str());
        is_data[num] = 1;
        //---- 
        ss >> s;
        scenario_pos[num] = atoi(s.c_str());
        //---- 
        ss >> s;
        save_day[num] = s;
        ss >> s;
        save_time[num] = s;
    }
    FileRead_close(fp);
    puts("Success loading savedata file");
}
Example #4
0
//---------------------------------------------------------------------
void AllScenarioData::loadData()
{
    puts("シナリオデータをロードします");
    char str[1024];
    std::string s;
    std::stringstream ss;
    int num;
    int fp = FileRead_open("scenario/scenario_1.dat");
    // ファイル読み込み失敗
    if (fp == 0) {
        puts("シナリオデータの読み込みに失敗しました");
        return;
    }
    // ファイル読み込み処理
    while (FileRead_gets(str, 256, fp) != -1) {
        ss.clear();
        ss.str(str);
        ss >> s;
        //---- 番号
        if (s == "#NUM") {
            ss >> s;
            num = atoi(s.c_str());
            scenario_data[num]->setNum(num);
        }
        //---- 名前
        else if (s == "#NAME") {
Example #5
0
Songs::Songs(Font *font) {
	n = 0;
	SetUseASyncLoadFlag(FALSE);
	int file = FileRead_open("song/song.csv", FALSE);
	SetUseASyncLoadFlag(TRUE);
	char buf[3][256];
	int id = 0;
	while (FileRead_scanf(file, "%d,%[^,\n\r],%[^,\n\r],%[^\n\r]", &id, buf[0], buf[1], buf[2]) != EOF) {
		song[n] = new Song(font, id, buf[1], buf[2], buf[0]);
		n++;
	}
	FileRead_close(file);
}
Example #6
0
static DXPTEXTURE3* LoadPngImage(const char *FileName)
{
	u32 filesize;
	int fp = -1;
	DXPPNG png;
	DXPPNG_PARAMS params;
	void *buf = NULL;
	DXPTEXTURE3 *texptr = NULL;
	filesize = FileRead_size(FileName);
	if(!filesize)goto err;
	buf = malloc(filesize);
	if(!buf)goto err;
	texptr = dxpGraphicsCreateTexture();
	if(!texptr)goto err;
	fp = FileRead_open(FileName,0);
	if(fp == 0)goto err;
	FileRead_read(buf,filesize,fp);
	FileRead_close(fp);
	params.funcs.pmalloc = malloc;
	params.funcs.pmemalign = memalign;
	params.funcs.pfree = free;
	params.mode = DXPPNG_MODE_GPU;
	params.src = buf;
	params.srcLength = filesize;
	if(dxppng_decode(&params,&png) == -1)goto err;
	texptr->alphabit = png.alpha ? 1 : 0;
	texptr->colorkey = dxpGraphicsData.colorkey;
	texptr->width = png.widthN2;
	texptr->height = png.heightN2;
	texptr->pitch = png.pitch;
	texptr->ppalette = (u32 *)png.clut;
	texptr->psm = png.psm;
	texptr->reloadflag = 1;
	texptr->size2_nflag = (png.height == png.heightN2 && png.width == png.widthN2 ? 1 : 0);
	texptr->swizzledflag = 0;
	texptr->texdata = png.raw;
	texptr->texvram = 0;
	texptr->umax = png.width;
	texptr->vmax = png.height;
	return texptr;
err:
	FileRead_close(fp);
	free(buf);
	dxpGraphicsReleseTexture(texptr);
	return NULL;
}
Example #7
0
bool Client::load( ) {
	int fh = FileRead_open( "IP.ini" );
	if ( fh == 0 ) {
		return false;
	}

	IPDATA ip;
	if ( FileRead_read( &ip, sizeof( IPDATA ), fh ) == -1 ) {
		FileRead_close( fh ) ;
		return false;
	}

	_ip[ 0 ] = ip.d1;
	_ip[ 1 ] = ip.d2;
	_ip[ 2 ] = ip.d3;
	_ip[ 3 ] = ip.d4;

    FileRead_close( fh ) ;
	return true;
}
Example #8
0
void Subweponbox::GetSubweponForCSV(int id){
	int n, num, i, fp;
	char fname[256];
	int input[64];
	char inputc[64];

	
	sprintf_s(fname, "dat/Database/dbSW.csv");
	fp = FileRead_open(fname);	// ファイル読み込み
	if(fp == NULL){
		printfDx("read error\n");
		return;
	}
	for(i=0;i<2;i++)	// 最初の2行を読み飛ばす
		while(FileRead_getc(fp)!='\n');

	n=0, num=0;

	SubweponStatus tmpStatus;

	while(1){
		for(i=0;i<64;i++){
			inputc[i]=input[i]=FileRead_getc(fp);//1文字取得する
			if(inputc[i]=='/'){//スラッシュがあれば
				while(FileRead_getc(fp)!='\n');//改行までループ
				i=-1;//カウンタを最初に戻して
				continue;
			}
			if(input[i]==',' || input[i]=='\n'){//カンマか改行なら
				inputc[i]='\0';//そこまでを文字列とし
				break;
			}
			if(input[i]==EOF){//ファイルの終わりなら
				goto EXFILE;//終了
			}
		}
		switch(num){
			case  0: tmpStatus.Name			=inputc;	  break;
			case  1: tmpStatus.Kind			=atoi(inputc);break;
			case  2: tmpStatus.Damage		=atoi(inputc);break;
			case  3: tmpStatus.HitArea		=atoi(inputc);break;
			case  4: tmpStatus.Speed		=atoi(inputc);break;
			case  5: tmpStatus.Rappid		=atoi(inputc);break;
			case  6: tmpStatus.Penetoration	=atoi(inputc);break;
			case  7: tmpStatus.LoadNumber	=atoi(inputc);break;
			case  8: tmpStatus.Price		=atoi(inputc);break;
		}
		num++;
		if(num==9){
			tmpStatus.Id = n;
			if(n==id){
				Subwepon tmp;
				tmp.SetSubwepon(tmpStatus);
				Insert(tmp);
				break;
			}
			num=0;
			n++;
		}
	}
	EXFILE:
		FileRead_close(fp);}
Example #9
0
/*ストーリーロード*/
void TextClass::LoadStory(){
	//真の変数
	int							FileHandle;			//ファイルハンドル
	char						TmpBuf[128];		//テキスト取得用一時変数
	char						FileName[64];		//ファイル名格納
	std::string					TmpText;			//テキスト取得後操作用一時オブジェクト 
	std::vector<std::string>	SplitTextArray;		//分割された文字を格納する配列

	//カウンタ
	int	Count = 0;									//カウンタ
	int	Scene = 0;									//シーンカウンタ

	//行数管理
	int SerifNo = -1;								//セリフのナンバーを格納(最初は必ず加算されるので、初期値は負の数にしておく)

	//定数
	const int LoadTextLen = 128;					//読み込むテキストの文字数
	const int NAME		  = 0;						//分割された文字列を格納する配列に関するもの
	const int TEXT		  = 1;						//分割された文字列を格納する配列に関するもの


	//SceneMax(定数)までロード
	while( Scene <= SceneMax ){ 

		//ファイル名を取得
		sprintf(FileName,"./resource/story/zankyo scene%d.txt",Scene);
		
		//ファイルオープン
		FileHandle = FileRead_open(FileName);

		//ファイル終端までループ
		while( FileRead_eof(FileHandle) == 0 ){
			//ファイルから一行取得
			FileRead_gets(TmpBuf,LoadTextLen,FileHandle);
			
			//一文字目が '\0' なら空行と判断しスキップ
			if( TmpBuf[0] == '\0'  ) continue;

			//char型配列のTmpBufをStringオブジェクトのTmpTextに変換
			TmpText = TmpBuf;
				
			//TmpTextの一文字目が'\0'ならば空行と判断しスキップ
			if( TmpText[0] == NULL ) continue;

			//全角・半角スペースを除去
			CutSpace(TmpText);

			//TmpTextの一文字目が'\0'ならば空行と判断しスキップ
			if( TmpText[0] == '\0' ) continue;

			//TmpTextをNameとTextに分割
			SplitTextArray = StringSplit(TmpText,':');

			//分割された文字列をNameとTextに代入
			Name[Scene][Count] = SplitTextArray[NAME];
			Text[Scene][Count] = SplitTextArray[TEXT];

			//Nameが"コメント"ならコメントと判断しスキップ
			if( Name[Scene][Count] == "コメント" ) continue;

			//一時処理、Nameが"背景"ならとりまスキップ
			//if( Name[Scene][Count] == "背景" ) continue;

			//Textが'\0'なら前のテキストの続きと判断し、Nameに続きと代入し、TextにName(一行全て入ってる)の内容をコピー & 行数加算
			//それ以外ならば次のテキストと判断し、SerifNoを加算し、行数加算
			if( Text[Scene][Count] == "\0" ){
				Text[Scene][Count] = Name[Scene][Count];
				Name[Scene][Count] = "続き";
				LineNo[Scene][SerifNo]++;
			}else{
				SerifNo++;
				LineNo[Scene][SerifNo]++;
			}

			//最大行数加算
			LineMax[Scene]++;

			//カウントを進める
			Count++;
		}

		//シーンカウントを進める
		Scene++;

		//カウント初期化
		Count=0;
		SerifNo=-1;

	}
	
}