ASCII 2D game-map

PHP 857 bytes

Not really what anyone could call "golfed" but since nobody else seems to have entered anything at all, I figured this was a start. It's massive, but it seems to work. Will make an effort to golf it tomorrow if I get the time.

function a($a,$b){$c=sizeof($a);$d=sizeof($a[0]);for($e=0;$e<$c;$e++){for($f=0;$f<$d;$f++){$A=$GLOBALS['h']=$a[$e][$f];$i=$GLOBALS['i']=$b[$e][$f];$B=j($i==1&&$b[$e-1][$f]>0);$C=j($i==1&&$b[$e][$f+1]>0);$D=j($i==1&&$b[$e+1][$f]>0);$E=j($i==1&&$b[$e][$f-1]>0);$F=j($i>0&&$b[$e-1][$f]>0);$G=j($i>0&&$b[$e][$f+1]>0);$H=j($i>0&&$b[$e+1][$f]>0);$I=j($i>0&&$b[$e][$f-1]>0);$J=j($i==1);$K=j($i==1||($i>1&&$b[$e-1][$f]>0));$L=j($i==1||($i>1&&$b[$e][$f+1]>0));$M=j($i==1||($i>1&&$b[$e+1][$f]>0));$N=j($i==1||($i>1&&$b[$e][$f-1]>0));$O=j($i>0);$P=$e*8;$g[$P].="$A$B$F$F$F$F$B$A";$g[$P+1].="$E$J$K$K$K$K$J$C";$l="$I$N$O$O$O$O$L$G";$g[$P+2].=$l;$g[$P+3].=$l;$g[$P+4].=$l;$g[$P+5].=$l;$g[$P+6].="$E$J$M$M$M$M$J$C";$g[$P+7].="$A$D$H$H$H$H$D$A";}}foreach($g as$h){echo str_repeat(' ', $i++)."$h\n";}}function j($k){return($k)?strtr($GLOBALS['i'],'12','@#'):$GLOBALS['h'];}

Test case

error_reporting(0);
$a=[[a,b,a],[b,a,b],[a,b,a]];
$b=[[1,1,1],[2,0,1],[2,0,0]];
a($a,$b);

Output

aaaaaaaabbbbbbbbaaaaaaaa
 a@@@@@@@@@@@@@@@@@@@@@@a
  a@@@@@@@@@@@@@@@@@@@@@@a
   a@@@@@@@@@@@@@@@@@@@@@@a
    a@@@@@@@@@@@@@@@@@@@@@@a
     a@@@@@@@@@@@@@@@@@@@@@@a
      a@@@@@@@@@@@@@@@@@@@@@@a
       a@@@@@@abbbbbbbba@@@@@@a
        bb####bbaaaaaaaab@@@@@@b
         bb####bbaaaaaaaab@@@@@@b
          bb####bbaaaaaaaab@@@@@@b
           bb####bbaaaaaaaab@@@@@@b
            bb####bbaaaaaaaab@@@@@@b
             bb####bbaaaaaaaab@@@@@@b
              bb####bbaaaaaaaab@@@@@@b
               bb####bbaaaaaaaabbbbbbbb
                aa####aabbbbbbbbaaaaaaaa
                 aa####aabbbbbbbbaaaaaaaa
                  aa####aabbbbbbbbaaaaaaaa
                   aa####aabbbbbbbbaaaaaaaa
                    aa####aabbbbbbbbaaaaaaaa
                     aa####aabbbbbbbbaaaaaaaa
                      aaaaaaaabbbbbbbbaaaaaaaa
                       aaaaaaaabbbbbbbbaaaaaaaa

Test case

error_reporting(0);
$a=[['.', ',', '.', ',', '.', ',', '.'],['.', ',', '.', ',', '.', ',', '.'],['.', ',', '.', ',', '.', ',', '1']];
$b=[[0,1,0,0,1,2,0],[1,1,1,2,2,2,2],[0,2,0,0,0,1,0]];
a($a,$b);

Output

........,,,,,,,,........,,,,,,,,........,,,,,,,,........
 ........,@@@@@@,........,,,,,,,,.@@@@@@@,,,,,,,,........
  ........,@@@@@@,........,,,,,,,,.@@@@@@@######,,........
   ........,@@@@@@,........,,,,,,,,.@@@@@@@######,,........
    ........,@@@@@@,........,,,,,,,,.@@@@@@@######,,........
     ........,@@@@@@,........,,,,,,,,.@@@@@@@######,,........
      ........,@@@@@@,........,,,,,,,,.@@@@@@@,,####,,........
       ........,@@@@@@,........,,,,,,,,.@@@@@@.,,####,,........
        ........,@@@@@@,........,,,,,,,,..####..,,####,,........
         .@@@@@@@@@@@@@@@@@@@@@@@,,,,,,,,..####..,,####,,........
          .@@@@@@@@@@@@@@@@@@@@@@@##############################..
           .@@@@@@@@@@@@@@@@@@@@@@@##############################..
            .@@@@@@@@@@@@@@@@@@@@@@@##############################..
             .@@@@@@@@@@@@@@@@@@@@@@@##############################..
              .@@@@@@@@@@@@@@@@@@@@@@@,,,,,,,,........,,####,,........
               ........,@@@@@@,........,,,,,,,,........,,####,,........
                ........,,####,,........,,,,,,,,........,@@@@@@,11111111
                 ........,,####,,........,,,,,,,,........,@@@@@@,11111111
                  ........,,####,,........,,,,,,,,........,@@@@@@,11111111
                   ........,,####,,........,,,,,,,,........,@@@@@@,11111111
                    ........,,####,,........,,,,,,,,........,@@@@@@,11111111
                     ........,,####,,........,,,,,,,,........,@@@@@@,11111111
                      ........,,,,,,,,........,,,,,,,,........,@@@@@@,11111111
                       ........,,,,,,,,........,,,,,,,,........,,,,,,,,11111111

Test case

error_reporting(0);
$a=[[p,p,p,p,h,h,h,p,p,p,p],[p,p,p,p,h,h,h,p,p,p,p],[p,p,p,p,h,h,h,p,p,p,p],[p,p,p,p,h,h,h,p,p,p,p],[p,p,p,p,h,h,h,p,p,p,p]];
$b=[[1,1,1,0,1,0,1,0,1,1,1],[1,0,1,0,1,0,1,0,1,0,1],[1,1,1,0,1,1,1,0,1,1,1],[1,0,0,0,1,0,1,0,1,0,0],[1,0,0,0,1,0,1,0,1,0,0]];
a($a,$b);

Output

pppppppppppppppppppppppppppppppphhhhhhhhhhhhhhhhhhhhhhhhpppppppppppppppppppppppppppppppp
 p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
  p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
   p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
    p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
     p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
      p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
       p@@@@@@pppppppppp@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@pppppppppp@@@@@@p
        p@@@@@@pppppppppp@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@pppppppppp@@@@@@p
         p@@@@@@pppppppppp@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@pppppppppp@@@@@@p
          p@@@@@@pppppppppp@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@pppppppppp@@@@@@p
           p@@@@@@pppppppppp@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@pppppppppp@@@@@@p
            p@@@@@@pppppppppp@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@pppppppppp@@@@@@p
             p@@@@@@pppppppppp@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@pppppppppp@@@@@@p
              p@@@@@@pppppppppp@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@pppppppppp@@@@@@p
               p@@@@@@pppppppppp@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@pppppppppp@@@@@@p
                p@@@@@@pppppppppp@@@@@@ppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@pppppppppp@@@@@@p
                 p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@@@@@@@@@@@@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
                  p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@@@@@@@@@@@@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
                   p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@@@@@@@@@@@@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
                    p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@@@@@@@@@@@@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
                     p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@@@@@@@@@@@@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
                      p@@@@@@@@@@@@@@@@@@@@@@ppppppppph@@@@@@@@@@@@@@@@@@@@@@hppppppppp@@@@@@@@@@@@@@@@@@@@@@p
                       p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                        p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                         p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                          p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                           p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                            p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                             p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                              p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                               p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                                p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                                 p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                                  p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                                   p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                                    p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                                     p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                                      p@@@@@@ppppppppppppppppppppppppph@@@@@@hhhhhhhhhh@@@@@@hppppppppp@@@@@@ppppppppppppppppp
                                       pppppppppppppppppppppppppppppppphhhhhhhhhhhhhhhhhhhhhhhhpppppppppppppppppppppppppppppppp

JavaScript (ES6), 250 207 bytes

Edit Bug fix :(

A function taking inputs in currying syntax (a)(b).

a=>b=>a.map((r,i)=>k.map(y=>(h+=' ')+r.map((c,j)=>k.map(x=>(t=x<v,s=x>7-v,!v|t&(!q[j-1]|w|u)|s&(!q[j+1]|w|u)|u&(!p[j]|t|s)|w&(!(b[i+1]||[])[j]|t|s)?c:'-@#'[v]),v=q[j],w=y>7-v,u=y<v).join``).join``,p=q,q=b[i]).join`
`,h=q=[],k=[...'01234567']).join`
`

Less golfed

a=>b=>a.map((r,i)=>
  [0,1,2,3,4,5,6,7].map(y=>
    (h+=' ') + r.map((c,j)=>
      [0,1,2,3,4,5,6,7].map(x=> (
        t=x<v, s=x>7-v,
        v == 0 
        || t && (!B[i][j-1] | w|u)
        || s && (!B[i][j+1] | w|u)
        || u && (!(B[i-1]||[])[j] | t|s)
        || w && (!(B[i+1]||[])[j] | t|s)
        ? c : '-@#'[v] )
      , v = B[i][j], w=y>7-v,u=y<v).join``
    ).join``
  ).join`\n`
,h = '').join`\n`

Test

F=
a=>b=>a.map((r,i)=>k.map(y=>(h+=' ')+r.map((c,j)=>k.map(x=>(t=x<v,s=x>7-v,!v|t&(!q[j-1]|w|u)|s&(!q[j+1]|w|u)|u&(!p[j]|t|s)|w&(!(b[i+1]||[])[j]|t|s)?c:'-@#'[v]),v=q[j],w=y>7-v,u=y<v).join``).join``,p=q,q=b[i]).join`
`,h=q=[],k=[...'01234567']).join`
`

A=[['a','b','a'],['b','a','b'],['a','b','a']]
B=[[1,1,1],[2,0,1],[2,0,0]]

O.textContent = F(A)(B)+'\n'
A=[['.', ',', '.', ',', '.', ',', '.'],['.', ',', '.', ',', '.', ',', '.'],['.', ',', '.', ',', '.', ',', '1']]
B=[[0,1,0,0,1,2,0],[1,1,1,2,2,2,2],[0,2,0,0,0,1,0]]

O.textContent += F(A)(B)
<pre id=O></pre>


Java - 661 bytes

Hi! This is my first submission here. If I did something wrong please tell me.

static void m(char[][]b,int[][]t){String z="";int w=b[0].length;int h=b.length;char[][]r=new char[h*8][w*8];for(int j=0;j<h;j++){for(int i=0;i<w;i++){for(int x=0;x<8;x++)for(int y=0;y<8;y++){r[j*8+y][i*8+x]=b[j][i];int n=t[j][i];if(n!=0){char c;int d,e;if(n==1){c='@';e=0;d=7;}else{c='#';e=1;d=6;}if(x>e&&y>e&&x<d&&y<d)r[j*8+y][i*8+x]=c;if(x>e&&x<d){if(j>0&&y<2&&t[j-1][i]!=0)r[j*8+y][i*8+x]=c;if(j<h-1&&y>5&&t[j+1][i]!=0)r[j*8+y][i*8+x]=c;}if(y>e&&y<d){if(i>0&&x<2&&t[j][i-1]!=0)r[j*8+y][i*8+x]=c;if(i<w-1&&x>5&&t[j][i+1]!=0)r[j*8+y][i*8+x]=c;}}}}for(int l=0;l<8;l++){System.out.println(z+Arrays.toString(r[j*8+l]).replaceAll("[\\[\\]]|[, ]\\s",""));z+=" ";}}}

You can try it here :)

Unminified:

static void m(char[][] b, int[][] t) {
    String z="";
    int w=b[0].length;int h=b.length;
    char[][]r=new char[h*8][w*8];
    for(int j=0;j<h;j++){
        for(int i=0;i<w;i++){
            for(int x=0;x<8;x++)for(int y=0;y<8;y++){
                r[j*8+y][i*8+x] = b[j][i];
                int n=t[j][i];
                if(n!=0){
                    char c;int d,e;
                    if(n==1){c='@';e=0;d=7;}
                    else{c='#';e=1;d=6;}
                    if(x>e&&y>e&&x<d&&y<d)r[j*8+y][i*8+x]=c;

                    if(x>e&&x<d){
                        if(j>0&&y<2&&t[j-1][i]!=0)r[j*8+y][i*8+x]=c;
                        if(j<h-1&&y>5&&t[j+1][i]!=0)r[j*8+y][i*8+x]=c;
                    }
                    if(y>e&&y<d){
                        if(i>0&&x<2&&t[j][i-1]!=0)r[j*8+y][i*8+x]=c;
                        if(i<w-1&&x>5&&t[j][i+1]!=0)r[j*8+y][i*8+x]=c;
                    }
                }
            }
        }
        for(int l=0;l<8;l++){System.out.println(z+Arrays.toString(r[j*8+l]).replaceAll("[\\[\\]]|[, ]\\s",""));z+=" ";}
    }
}