See Aum82:
Originally Posted By: Aum82
A: Use the code below and these tips:

1) The mirror entity shouldn't be rotated at all; create it and place it in the level using the same orientation.

2) The mirror entity should have its faces set to "flat", excepting the reflecting face, which should be set to "mirror".

3) The mirror code changes depending on the orientation of the mirror entity; my example allows you to place a mirror on the southern wall in Wed's top view.

4) The back of the mirror should have enough empty space; what you see in the mirror is actually created behind the mirror.

5) The level blocks faces that act as a frame for the mirror should be set to none.


Code:
VIEW* mirror = 
{
       layer = 10;
} 

function mirror_startup() 
{ 
       while (!player) {wait (1);}
       camera.portal = mirror; 
       set (mirror, NOSHADOW); // suppress shadows in the mirror 
       set (mirror, NOPARTICLE); // suppress particles in the mirror 
       set (mirror, PORTALCLIP); // clip at portal plane 
       while (1) 
       { 
               proc_kill(4);
               mirror.genius = camera.genius; 
               mirror.aspect = camera.aspect; 
               mirror.arc = -camera.arc; 
               mirror.x = camera.x; 
               mirror.y = camera.portal_y - (abs(camera.portal_y - camera.y)); 
               mirror.z = camera.z; 
               mirror.pan = -camera.pan; 
               mirror.tilt = camera.tilt; 
               mirror.roll = camera.roll; 
               wait(1); 
       } 
}