int g3DMapData[2][8][8]; // 縦の壁と横の壁に分けて、8x8マスのマップ情報を格納
(中略)
if( g3DMapData[ (*dirc)&1 ][ ((*y)+(*dirc==kSouth))&7 ][ ((*x)+(*dirc==kEast))&7 ]==0 ){
switch( *dirc )
{
case kNorth: *y = ( --(*y) ) & 7; break;
case kEast: *x = ( ++(*x) ) & 7; break;
case kSouth: *y = ( ++(*y) ) & 7; break;
case kWest: *x = ( --(*x) ) & 7; break;
}
}
(以下略)

Wiz形式ですので参考までにどぞ。・・・C廚とか言うんじゃねーぞ。HSP知らないんだから。
だれかHSPとCが分かる奴翻訳してくれ。