--- deliantra/Deliantra-Client/Client.xs 2008/07/18 22:32:54 1.264 +++ deliantra/Deliantra-Client/Client.xs 2008/07/20 02:51:40 1.266 @@ -758,12 +758,15 @@ if (m && m != (SDL_Rect **)-1) while (*m) { - AV *av = newAV (); - av_push (av, newSViv ((*m)->w)); - av_push (av, newSViv ((*m)->h)); - av_push (av, newSViv (rgb)); - av_push (av, newSViv (alpha)); - XPUSHs (sv_2mortal (newRV_noinc ((SV *)av))); + if ((*m)->w >= 400 && (*m)->h >= 300) + { + AV *av = newAV (); + av_push (av, newSViv ((*m)->w)); + av_push (av, newSViv ((*m)->h)); + av_push (av, newSViv (rgb)); + av_push (av, newSViv (alpha)); + XPUSHs (sv_2mortal (newRV_noinc ((SV *)av))); + } ++m; } @@ -1779,7 +1782,12 @@ } } else - cell->darkness = 0; + { + cell->darkness = 0; + cell->stat_hp = 0; + cell->flags = 0; + cell->player = 0; + } } } OUTPUT: @@ -1841,7 +1849,7 @@ RETVAL void -draw (DC::Map self, int mx, int my, int sw, int sh, int T, U32 player = 0xffffffff, int pdx = 0, int pdy = 0) +draw (DC::Map self, int mx, int my, int sw, int sh, int T, U32 player = 0xffffffff, int sdx = 0, int sdy = 0) CODE: { int x, y, z; @@ -2098,8 +2106,8 @@ if (pl_tex.name) { maptex tex = pl_tex; - int px = pl_x + pdx; - int py = pl_y + pdy; + int px = pl_x + sdx; + int py = pl_y + sdy; key.texname = tex.name; arr = rc_array (rc, &key);