int BEScanner(int a, int b, int c){
int iBe, iHalt=-1;
for(iBe=0;iBe<iBoards;iBe++){
if(Boards[iBe].HiD[0] == b)
if(Boards[iBe].HiD[1] == c) iHalt=1;
if(iHalt==1){printf("Found @ %i", iBe); break;}
}
if(iHalt==-1) iBe=1;
return (iHalt * iBe);
}
//-----------------------
void BoardEntry(int iD, int HiDa, int HiDb){
if (BEScanner(iD, HiDa, HiDb)!=-1) return;
if(iBoards<=iD) iiBoard();
Boards[iD].ID = iD;
Boards[iD].HiD[0] = HiDa;
Boards[iD].HiD[1] = HiDb;
iBoards++;
printf("added %i", iBoards-1);
}
int HEScanner(int a, int b, int c, int d){
int iBe, iHalt=-1;
for(iBe=0;iBe<iHalves;iBe++){
if(Halves[iBe].GiD[0] == a)
if(Halves[iBe].GiD[1] == b)
if(Halves[iBe].GiD[2] == c)
if(Halves[iBe].GiD[3] == d) iHalt=1;
if(iHalt==1){printf("Found @ %i", iBe); break;}
}
if(iHalt==-1) iBe=1;
return (iHalt * iBe);
}
//-----------------------
void HalfEntry(int iD, int GiDa, int GiDb, int GiDc, int GiDd){
if (HEScanner(GiDa, GiDb, GiDc, GiDd)!=-1) return;
if(iHalves<=iD) iiHalf();
Halves[iD].ID = iD;
Halves[iD].GiD[0] = GiDa;
Halves[iD].GiD[1] = GiDb;
Halves[iD].GiD[2] = GiDc;
Halves[iD].GiD[3] = GiDd;
iHalves++;
}
//-----------------------------------
void iiGroup(){
if(iGroups==0){
Groups = (struct sGroup *)malloc(sizeof(struct sGroup));
} else {
group = realloc(Groups,(iGroups+2)* sizeof(struct sGroup));
if (group!=NULL) Groups = group;
}
}
//------------------
int GEScanner(int a, int b, int c, int d){
int iBe, iHalt=-1;
for(iBe=0;iBe<iGroups;iBe++){
if(Groups[iBe].PiD[0] == a)
if(Groups[iBe].PiD[1] == b)
if(Groups[iBe].PiD[2] == c)
if(Groups[iBe].PiD[3] == d) iHalt=1;
if(iHalt==1){printf("Found @ %i", iBe); break;}
}
if(iHalt==-1) iBe=1;
return (iHalt * iBe);
}
//-----------------------
void GroupEntry(int iD, int PiDa, int PiDb, int PiDc, int PiDd){
if (GEScanner(PiDa, PiDb, PiDc, PiDd)!=-1) return;
if(iGroups<=iD) iiGroup();
Groups[iD].ID = iD;
Groups[iD].PiD[0] = PiDa;
Groups[iD].PiD[1] = PiDb;
Groups[iD].PiD[2] = PiDc;
Groups[iD].PiD[3] = PiDd;
iGroups++;
}
int PEScanner(int a, int b, int c){
int iBe, iHalt=-1;
for(iBe=0;iBe<iPieces;iBe++){
if(Pieces[a].x == a)
if(Pieces[a].y == b)
if(Pieces[a].Val == c) iHalt=1;
if(iHalt==1){printf("Found @ %i", iBe); break;}
}
if(iHalt==-1) iBe=1;
return (iHalt * iBe);
}
//-----------------------
void PieceEntry(int iD, int Px, int Py, int PVal){
if(iPieces<=iD) iiPiece();
Pieces[iD].ID = iD;
Pieces[iD].x = Px;
Pieces[iD].y = Py;
Pieces[iD].Val = PVal;
iPieces++;
}
int BAttackXY(int x, int y, int b, int b2, int c, int d){
int Stepb=x, Stepb2=y;
int Jumpy=0;
while((Stepb!=c) + (Stepb2!=d)==2){
Stepb+=b;
Stepb2+=b2;
if((Jumpy=JumpX(Stepb, Stepb2))!=0) Stepb=c;
printf("%i", Jumpy);
}
}
//-----------------------------------------
void BAttack(int x, int y){
BAttackXY(x,y,1,1,8,8);
BAttackXY(x,y,1,-1,8,-1);
BAttackXY(x,y,-1,1,-1,8);
BAttackXY(x,y,-1,-1,-1,-1);
}