📄 init.cpp
字号:
//==============初始化有关函数==================
//****************************************************
//读取地图数据
BOOL LoadMaps()
{
char *Name[]={"maps\\home.map","maps\\city.map","maps\\wood.map","maps\\f_wood.map","maps\\palace.map",\
"maps\\shop01.map","maps\\shop02.map","maps\\shop03.map","maps\\shop04.map"};
FILE *fp;
for( int i=0; i<MAPS; i++)
{
fp=fopen(Name[i],"rb");
if( fp==NULL ) return FALSE;
fread(Map[ i ].Name, 32, 1, fp);
fread(&Map[ i ].Width, 4, 1, fp);
fread(&Map[ i ].Hight, 4, 1, fp);
fread(&Map[ i ].Ground, 1, 1, fp);
Map[ i ].Data=(unsigned short *)malloc( Map[ i ].Width * Map[ i ].Hight*2 );
fseek(fp,48,SEEK_SET);
fread(Map[ i ].Data, 2, Map[ i ].Width*Map[ i ].Hight, fp);
fclose(fp);
}
return TRUE;
}
//*********************************************
//读取NPC数据
BOOL LoadNpcData(int map)
{
char *Npc[]={"maps\\home.npc","maps\\city.npc","maps\\wood.npc","maps\\f_wood.npc","maps\\palace.npc",\
"maps\\shop01.npc","maps\\shop02.npc","maps\\shop03.npc","maps\\shop04.ncp"};
char *data=0;
int fh;
int nbytes;
int lpFile=0;
for( int i=0; i<MAPS; i++)
{
fh = _open( Npc[i], _O_RDONLY );
nbytes=_filelength(fh);
free(data);
data=(char *)malloc(nbytes);
_read( fh, data, nbytes );
_close(fh);
lpFile=0;
Map[i].Npc_Nums=ReadLine(data,lpFile,0);
//申请内存空间
Map[i].NPC=(Role *)calloc(sizeof(Role),Map[i].Npc_Nums);
for( int j=0; j<Map[i].Npc_Nums; j++)
{
Map[i].NPC[j].ID = ReadLine(data,lpFile,0);
Map[i].NPC[j].Pic = ReadLine(data,lpFile,0);
Map[i].NPC[j].Enemy = ReadLine(data,lpFile,0);
Map[i].NPC[j].TalkNum = ReadLine(data,lpFile,0);
Map[i].NPC[j].Active = ReadLine(data,lpFile,0);
Map[i].NPC[j].Show = ReadLine(data,lpFile,0);
ReadLine( data, lpFile, Map[i].NPC[j].Name);
Map[i].NPC[j].Width = ReadLine(data,lpFile,0);
Map[i].NPC[j].Hight = ReadLine(data,lpFile,0);
Map[i].NPC[j].x = ReadLine(data,lpFile,0);
Map[i].NPC[j].y = ReadLine(data,lpFile,0);
Map[i].NPC[j].old_x = ReadLine(data,lpFile,0);
Map[i].NPC[j].old_y = ReadLine(data,lpFile,0);
Map[i].NPC[j].Way = ReadLine(data,lpFile,0);
Map[i].NPC[j].Stats = ReadLine(data,lpFile,0);
Map[i].NPC[j].Level = ReadLine(data,lpFile,0);
Map[i].NPC[j].Exp = ReadLine(data,lpFile,0);
Map[i].NPC[j].Lift = ReadLine(data,lpFile,0);
Map[i].NPC[j].MaxLift = ReadLine(data,lpFile,0);
Map[i].NPC[j].Attack = ReadLine(data,lpFile,0);
Map[i].NPC[j].Defend = ReadLine(data,lpFile,0);
Map[i].NPC[j].Speed = ReadLine(data,lpFile,0);
ReadLine(data, lpFile, (char *)Map[i].NPC[j].Goods );
Map[i].NPC[j].Money = ReadLine(data,lpFile,0);
Map[i].NPC[j].Surface = lpDDSNpc[Map[i].NPC[j].Pic];
ReadLine(data,lpFile,0);
}
}
return TRUE;
}
//读行
int ReadLine(char *datas,int &n,char *Chs,int Seek)
{
char chr[1024]="";
char tmp;
int m=0;
n+=Seek;
memset(chr,0,1024);
while( 1 )
{
tmp=datas[n];
n++;
if( tmp==';' )
{
while(1)
{
tmp=datas[n];
n++;
if( tmp=='\n' ) break;
}
break;
}
chr[m]=tmp;
m++;
}
/*char s[100];
sprintf(s,"%d",atoi(chr));
MessageBox(hWnd,s,chr,MB_OK);*/
if( Chs==0 ) return atoi(chr);
else strcpy(Chs,chr);
return 1;
}
//********************
//读取声音数据
void LoadSoundData()
{
char *dead[]={"voc\\dead_00.wav","voc\\dead_01.wav","voc\\dead_02.wav"};
char *Ao[] ={"voc\\ao_00.wav", "voc\\ao_01.wav","voc\\ao_02.wav"};
char *Attack[]={"voc\\ack_00.wav","voc\\ack_01.wav","voc\\ack_02.wav"};
int i;
for(i=0; i<3; i++)
{
SoundDead[i]=LoadSoundFX(hWnd,dead[i]);
SoundAo[i]=LoadSoundFX(hWnd,Ao[i]);
SoundAttack[i]=LoadSoundFX(hWnd,Attack[i]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -