ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/Client.xs
(Generate patch)

Comparing deliantra/Deliantra-Client/Client.xs (file contents):
Revision 1.320 by root, Sun Nov 18 01:00:10 2018 UTC vs.
Revision 1.321 by root, Sun Nov 18 01:15:04 2018 UTC

481 ev.data2 = 0; 481 ev.data2 = 0;
482 482
483 SDL_PushEvent ((SDL_Event *)&ev); 483 SDL_PushEvent ((SDL_Event *)&ev);
484} 484}
485 485
486// approximately divide by 255
486static unsigned int 487static unsigned int
487div255 (unsigned int n) 488div255 (unsigned int n)
488{ 489{
489 return (n + (n >> 8)) >> 8; 490 return (n + (n >> 8)) >> 8;
490} 491}
1083 OUTPUT: 1084 OUTPUT:
1084 RETVAL 1085 RETVAL
1085 1086
1086int 1087int
1087Mix_OpenAudio (int frequency = 44100, int format = MIX_DEFAULT_FORMAT, int channels = 2, int chunksize = 4096) 1088Mix_OpenAudio (int frequency = 44100, int format = MIX_DEFAULT_FORMAT, int channels = 2, int chunksize = 4096)
1088 POSTCALL: 1089 POSTCALL:
1089 Mix_HookMusicFinished (music_finished); 1090 Mix_HookMusicFinished (music_finished);
1090 Mix_ChannelFinished (channel_finished); 1091 Mix_ChannelFinished (channel_finished);
1091 1092
1092void 1093void
1093Mix_QuerySpec () 1094Mix_QuerySpec ()
1917 1918
1918void 1919void
1919set_smooth (DC::Map self, int face, int smooth, int level) 1920set_smooth (DC::Map self, int face, int smooth, int level)
1920 CODE: 1921 CODE:
1921{ 1922{
1922 tileid texid; 1923 tileid texid;
1923 maptex *tex; 1924 maptex *tex;
1924 1925
1925 if (face < 0 || face >= self->faces) 1926 if (face < 0 || face >= self->faces)
1926 return; 1927 return;
1927 1928
1928 if (smooth < 0 || smooth >= self->faces) 1929 if (smooth < 0 || smooth >= self->faces)
1929 return; 1930 return;
1930 1931
1931 texid = self->face2tile [face]; 1932 texid = self->face2tile [face];
1932 1933
1933 if (!texid) 1934 if (!texid)
1934 return; 1935 return;
1935 1936
1936 tex = self->tex + texid; 1937 tex = self->tex + texid;
1969} 1970}
1970 1971
1971void 1972void
1972expire_textures (DC::Map self, int texid, int count) 1973expire_textures (DC::Map self, int texid, int count)
1973 PPCODE: 1974 PPCODE:
1974 for (; texid < self->texs && count; ++texid, --count) 1975 for (; texid < self->texs && count; ++texid, --count)
1975 { 1976 {
1976 maptex *tex = self->tex + texid; 1977 maptex *tex = self->tex + texid;
1977 1978
1978 if (tex->name) 1979 if (tex->name)
1979 { 1980 {
2181 | (b << 16) 2182 | (b << 16)
2182 | (a << 24); 2183 | (a << 24);
2183 } 2184 }
2184 } 2185 }
2185 2186
2186 RETVAL = map_sv; 2187 RETVAL = map_sv;
2187} 2188}
2188 OUTPUT: 2189 OUTPUT:
2189 RETVAL 2190 RETVAL
2190 2191
2191void 2192void
2192draw (DC::Map self, int mx, int my, int sw, int sh, int Tw, int Th, U32 player = 0xffffffff, int sdx = 0, int sdy = 0) 2193draw (DC::Map self, int mx, int my, int sw, int sh, int Tw, int Th, U32 player = 0xffffffff, int sdx = 0, int sdy = 0)
2193 CODE: 2194 CODE:
2194{ 2195{
2195 int x, y, z; 2196 int x, y, z;
2196 2197
2197 HV *smooth = (HV *)sv_2mortal ((SV *)newHV ()); 2198 HV *smooth = (HV *)sv_2mortal ((SV *)newHV ());
2198 uint32_t smooth_level[256 / 32]; // one bit for every possible smooth level 2199 uint32_t smooth_level[256 / 32]; // one bit for every possible smooth level
2199 static uint8_t smooth_max[256][256]; // egad, fast and wasteful on memory (64k) 2200 static uint8_t smooth_max[256][256]; // egad, fast and wasteful on memory (64k)
2200 smooth_key skey; 2201 smooth_key skey;
2201 int pl_x, pl_y; 2202 int pl_x, pl_y;
2202 maptex pl_tex; 2203 maptex pl_tex;
2720 else 2721 else
2721 *data++ = 0; 2722 *data++ = 0;
2722 } 2723 }
2723 } 2724 }
2724 2725
2725 /* if size is w*h + 5 then no data has been found */ 2726 /* if size is w*h + 5 then no data has been found */
2726 if (data - (uint8_t *)SvPVX (data_sv) != w * h + 5) 2727 if (data - (uint8_t *)SvPVX (data_sv) != w * h + 5)
2727 { 2728 {
2728 SvPOK_only (data_sv); 2729 SvPOK_only (data_sv);
2729 SvCUR_set (data_sv, data - (uint8_t *)SvPVX (data_sv)); 2730 SvCUR_set (data_sv, data - (uint8_t *)SvPVX (data_sv));
2730 } 2731 }
2731 2732
2732 RETVAL = data_sv; 2733 RETVAL = data_sv;
2733} 2734}
2734 OUTPUT: 2735 OUTPUT:
2735 RETVAL 2736 RETVAL
2736 2737
2737void 2738void
3427 3428
3428void 3429void
3429find_widget (SV *self, NV x, NV y) 3430find_widget (SV *self, NV x, NV y)
3430 PPCODE: 3431 PPCODE:
3431{ 3432{
3432 if (within_widget (self, x, y)) 3433 if (within_widget (self, x, y))
3433 XPUSHs (self); 3434 XPUSHs (self);
3434} 3435}
3435 3436
3436BOOT: 3437BOOT:
3437{ 3438{
3445 3446
3446void 3447void
3447draw (SV *self) 3448draw (SV *self)
3448 CODE: 3449 CODE:
3449{ 3450{
3450 HV *hv; 3451 HV *hv;
3451 SV **svp; 3452 SV **svp;
3452 NV x, y, w, h; 3453 NV x, y, w, h;
3453 SV *draw_x_sv = GvSV (draw_x_gv); 3454 SV *draw_x_sv = GvSV (draw_x_gv);
3454 SV *draw_y_sv = GvSV (draw_y_gv); 3455 SV *draw_y_sv = GvSV (draw_y_gv);
3455 SV *draw_w_sv = GvSV (draw_w_gv); 3456 SV *draw_w_sv = GvSV (draw_w_gv);
3456 SV *draw_h_sv = GvSV (draw_h_gv); 3457 SV *draw_h_sv = GvSV (draw_h_gv);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines