--- deliantra/Deliantra-Client/Client.xs 2006/09/19 22:02:38 1.153 +++ deliantra/Deliantra-Client/Client.xs 2006/10/09 23:30:44 1.161 @@ -3,6 +3,7 @@ # define _WIN32_WINNT 0x0500 // needed to get win2000 api calls # include # include +# include # pragma warning(disable:4244) #endif @@ -317,6 +318,8 @@ cell->darkness = 0; cell->stat_hp = 0; + cell->flags = 0; + cell->player = 0; } } } @@ -651,6 +654,35 @@ #endif void +win32_proxy_info () + PPCODE: +{ +#ifdef _WIN32 + char buffer[2048]; + DWORD buflen; + + EXTEND (SP, 3); + + buflen = sizeof (buffer); + if (InternetQueryOption (0, INTERNET_OPTION_PROXY, (void *)buffer, &buflen)) + if (((INTERNET_PROXY_INFO *)buffer)->dwAccessType == INTERNET_OPEN_TYPE_PROXY) + { + PUSHs (newSVpv (((INTERNET_PROXY_INFO *)buffer)->lpszProxy, 0)); + + buflen = sizeof (buffer); + if (InternetQueryOption (0, INTERNET_OPTION_PROXY_USERNAME, (void *)buffer, &buflen)) + { + PUSHs (newSVpv (buffer, 0)); + + buflen = sizeof (buffer); + if (InternetQueryOption (0, INTERNET_OPTION_PROXY_PASSWORD, (void *)buffer, &buflen)) + PUSHs (newSVpv (buffer, 0)); + } + } +#endif +} + +void add_font (char *file) CODE: FcConfigAppFontAddFile (0, (const FcChar8 *)file); @@ -762,9 +794,13 @@ _exit (1); void -_exit (int retval) +_exit (int retval = 0) CODE: +#ifdef WIN32 + ExitThread (retval); // unclean, please beam me up +#else _exit (retval); +#endif MODULE = CFPlus PACKAGE = CFPlus::Font @@ -1246,14 +1282,14 @@ CODE: { if (dx > 0) - map_blank (self, self->x, self->y, dx - 1, self->h); + map_blank (self, self->x, self->y, dx, self->h); else if (dx < 0) - map_blank (self, self->x + self->w + dx + 1, self->y, 1 - dx, self->h); + map_blank (self, self->x + self->w + dx + 1, self->y, -dx, self->h); if (dy > 0) - map_blank (self, self->x, self->y, self->w, dy - 1); + map_blank (self, self->x, self->y, self->w, dy); else if (dy < 0) - map_blank (self, self->x, self->y + self->h + dy + 1, self->w, 1 - dy); + map_blank (self, self->x, self->y + self->h + dy + 1, self->w, -dy); self->ox += dx; self->x += dx; self->oy += dy; self->y += dy; @@ -1289,10 +1325,8 @@ { if (!cell->darkness) { + memset (cell, 0, sizeof (*cell)); cell->darkness = 256; - cell->face [0] = 0; - cell->face [1] = 0; - cell->face [2] = 0; } //TODO: don't trust server data to be in-range(!) @@ -1353,10 +1387,7 @@ } } else - { - cell->darkness = 0; - cell->stat_hp = 0; - } + cell->darkness = 0; } }