ruby-miyako 2.1.4 → 2.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/miyako_sprite2.c CHANGED
@@ -20,8 +20,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
20
  */
21
21
 
22
22
  /*
23
- =拡張ライブラリmiyako_no_katana
24
- Authors:: サイロス誠
23
+ =miyako_no_katana
24
+ Authors:: Cyross Makoto
25
25
  Version:: 2.1
26
26
  Copyright:: 2007-2009 Cyross Makoto
27
27
  License:: LGPL2.1
@@ -381,12 +381,14 @@ static VALUE sprite_list_move_to(VALUE self, VALUE x, VALUE y)
381
381
  */
382
382
  static VALUE sprite_list_each(VALUE self)
383
383
  {
384
+ int i;
385
+ VALUE array, *ptr;
386
+
384
387
  RETURN_ENUMERATOR(self, 0, 0);
385
388
 
386
- VALUE array = rb_iv_get(self, str_list);
389
+ array = rb_iv_get(self, str_list);
387
390
 
388
- int i;
389
- VALUE *ptr = RARRAY_PTR(array);
391
+ ptr = RARRAY_PTR(array);
390
392
  for(i=0; i<RARRAY_LEN(array); i++)
391
393
  rb_yield_values(1, *(ptr+i));
392
394
 
@@ -398,12 +400,14 @@ static VALUE sprite_list_each(VALUE self)
398
400
  */
399
401
  static VALUE sprite_list_each_pair(VALUE self)
400
402
  {
403
+ int i;
404
+ VALUE array, *ptr;
405
+
401
406
  RETURN_ENUMERATOR(self, 0, 0);
402
407
 
403
- VALUE array = rb_iv_get(self, str_list);
408
+ array = rb_iv_get(self, str_list);
404
409
 
405
- int i;
406
- VALUE *ptr = RARRAY_PTR(array);
410
+ ptr = RARRAY_PTR(array);
407
411
  for(i=0; i<RARRAY_LEN(array); i++)
408
412
  {
409
413
  VALUE *sptr = RSTRUCT_PTR(*(ptr+i));
@@ -418,12 +422,14 @@ static VALUE sprite_list_each_pair(VALUE self)
418
422
  */
419
423
  static VALUE sprite_list_each_name(VALUE self)
420
424
  {
425
+ int i;
426
+ VALUE array, *ptr;
427
+
421
428
  RETURN_ENUMERATOR(self, 0, 0);
422
429
 
423
- VALUE array = rb_iv_get(self, str_list);
430
+ array = rb_iv_get(self, str_list);
424
431
 
425
- int i;
426
- VALUE *ptr = RARRAY_PTR(array);
432
+ ptr = RARRAY_PTR(array);
427
433
  for(i=0; i<RARRAY_LEN(array); i++)
428
434
  rb_yield_values(1, *(RSTRUCT_PTR(*(ptr+i))+0));
429
435
 
@@ -435,12 +441,14 @@ static VALUE sprite_list_each_name(VALUE self)
435
441
  */
436
442
  static VALUE sprite_list_each_value(VALUE self)
437
443
  {
444
+ int i;
445
+ VALUE array, *ptr;
446
+
438
447
  RETURN_ENUMERATOR(self, 0, 0);
439
448
 
440
- VALUE array = rb_iv_get(self, str_list);
449
+ array = rb_iv_get(self, str_list);
441
450
 
442
- int i;
443
- VALUE *ptr = RARRAY_PTR(array);
451
+ ptr = RARRAY_PTR(array);
444
452
  for(i=0; i<RARRAY_LEN(array); i++)
445
453
  rb_yield_values(1, *(RSTRUCT_PTR(*(ptr+i))+1));
446
454
 
@@ -452,11 +460,13 @@ static VALUE sprite_list_each_value(VALUE self)
452
460
  */
453
461
  static VALUE sprite_list_each_index(VALUE self)
454
462
  {
463
+ int i;
464
+ VALUE array;
465
+
455
466
  RETURN_ENUMERATOR(self, 0, 0);
456
467
 
457
- VALUE array = rb_iv_get(self, str_list);
468
+ array = rb_iv_get(self, str_list);
458
469
 
459
- int i;
460
470
  for(i=0; i<RARRAY_LEN(array); i++)
461
471
  rb_yield_values(1, INT2NUM(i));
462
472
 
@@ -551,9 +561,11 @@ VALUE _miyako_sprite_list_render(VALUE splist)
551
561
  */
552
562
  static VALUE sprite_list_render_to(VALUE self, VALUE dst)
553
563
  {
554
- if(rb_iv_get(self, str_visible) == Qfalse) return self;
555
- VALUE array = rb_iv_get(self, str_list);
556
564
  int i;
565
+ VALUE array;
566
+
567
+ if(rb_iv_get(self, str_visible) == Qfalse) return self;
568
+ array = rb_iv_get(self, str_list);
557
569
  for(i=0; i<RARRAY_LEN(array); i++)
558
570
  {
559
571
  VALUE pair = *(RARRAY_PTR(array)+i);
data/miyako_transform.c CHANGED
@@ -20,8 +20,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
20
  */
21
21
 
22
22
  /*
23
- =拡張ライブラリmiyako_no_katana
24
- Authors:: サイロス誠
23
+ =miyako_no_katana
24
+ Authors:: Cyross Makoto
25
25
  Version:: 2.0
26
26
  Copyright:: 2007-2008 Cyross Makoto
27
27
  License:: LGPL2.1
@@ -48,13 +48,16 @@ static volatile int one = Qnil;
48
48
  static GLOBAL_DEFINE_GET_STRUCT(Surface, GetSurface, cSurface, "SDL::Surface");
49
49
 
50
50
  /*
51
- 画像を回転させて貼り付ける
52
51
  */
53
52
  static VALUE bitmap_miyako_rotate(VALUE self, VALUE vsrc, VALUE vdst, VALUE radian)
54
53
  {
55
54
  MiyakoBitmap src, dst;
56
55
  MiyakoSize size;
57
56
  SDL_Surface *scr = GetSurface(rb_iv_get(mScreen, "@@screen"))->surface;
57
+ double rad;
58
+ long isin, icos;
59
+ int x, y, a1, a2, nx, ny, px, py, pr, pb, qx, qy, qr, qb;
60
+ Uint32 sr, sg, sb, sa, dr, dg, db, da, *tp, *psrc;
58
61
 
59
62
  _miyako_setup_unit_2(vsrc, vdst, scr, &src, &dst, Qnil, Qnil, 1);
60
63
 
@@ -65,37 +68,34 @@ static VALUE bitmap_miyako_rotate(VALUE self, VALUE vsrc, VALUE vdst, VALUE radi
65
68
 
66
69
  if(dst.rect.w >= 32768 || dst.rect.h >= 32768){ return Qnil; }
67
70
 
68
- double rad = NUM2DBL(radian) * -1.0;
69
- long isin = (long)(sin(rad)*4096.0);
70
- long icos = (long)(cos(rad)*4096.0);
71
-
72
- int px = -(NUM2INT(*(RSTRUCT_PTR(src.unit)+7)));
73
- int py = -(NUM2INT(*(RSTRUCT_PTR(src.unit)+8)));
74
- int pr = src.rect.w + px;
75
- int pb = src.rect.h + py;
76
- int qx = -(NUM2INT(*(RSTRUCT_PTR(dst.unit)+7)));
77
- int qy = -(NUM2INT(*(RSTRUCT_PTR(dst.unit)+8)));
78
- int qr = dst.rect.w + qx;
79
- int qb = dst.rect.h + qy;
80
- Uint32 sr, sg, sb, sa;
81
- Uint32 dr, dg, db, da;
71
+ rad = NUM2DBL(radian) * -1.0;
72
+ isin = (long)(sin(rad)*4096.0);
73
+ icos = (long)(cos(rad)*4096.0);
74
+
75
+ px = -(NUM2INT(*(RSTRUCT_PTR(src.unit)+7)));
76
+ py = -(NUM2INT(*(RSTRUCT_PTR(src.unit)+8)));
77
+ pr = src.rect.w + px;
78
+ pb = src.rect.h + py;
79
+ qx = -(NUM2INT(*(RSTRUCT_PTR(dst.unit)+7)));
80
+ qy = -(NUM2INT(*(RSTRUCT_PTR(dst.unit)+8)));
81
+ qr = dst.rect.w + qx;
82
+ qb = dst.rect.h + qy;
82
83
 
83
84
  SDL_LockSurface(src.surface);
84
85
  SDL_LockSurface(dst.surface);
85
86
 
86
- int x, y;
87
87
  for(y = qy; y < qb; y++)
88
88
  {
89
- Uint32 *tp = dst.ptr + (dst.rect.y + y - qy) * dst.surface->w + dst.rect.x;
89
+ tp = dst.ptr + (dst.rect.y + y - qy) * dst.surface->w + dst.rect.x;
90
90
  for(x = qx; x < qr; x++)
91
91
  {
92
- int nx = (x*icos-y*isin) >> 12;
92
+ nx = (x*icos-y*isin) >> 12;
93
93
  if(nx < px || nx >= pr){ tp++; continue; }
94
- int ny = (x*isin+y*icos) >> 12;
94
+ ny = (x*isin+y*icos) >> 12;
95
95
  if(ny < py || ny >= pb){ tp++; continue; }
96
96
  #if SDL_BYTEORDER == SDL_LIL_ENDIAN
97
97
  da = (*tp >> 24) | dst.a255;
98
- Uint32 *psrc = src.ptr + (src.rect.x + ny - py) * src.surface->w + src.rect.x + nx - px;
98
+ psrc = src.ptr + (src.rect.x + ny - py) * src.surface->w + src.rect.x + nx - px;
99
99
  sa = (*psrc >> 24) | src.a255;
100
100
  if(sa == 0){ tp++; continue; }
101
101
  if(da == 0 || sa == 255)
@@ -104,8 +104,8 @@ static VALUE bitmap_miyako_rotate(VALUE self, VALUE vsrc, VALUE vdst, VALUE radi
104
104
  tp++;
105
105
  continue;
106
106
  }
107
- int a1 = sa + 1;
108
- int a2 = 256 - sa;
107
+ a1 = sa + 1;
108
+ a2 = 256 - sa;
109
109
  dr = *tp & 0xff0000;
110
110
  dg = *tp & 0xff00;
111
111
  db = *tp & 0xff;
@@ -121,7 +121,7 @@ static VALUE bitmap_miyako_rotate(VALUE self, VALUE vsrc, VALUE vdst, VALUE radi
121
121
  dg = (*tp & dst.fmt->Gmask) >> dst.fmt->Gshift;
122
122
  db = (*tp & dst.fmt->Bmask) >> dst.fmt->Bshift;
123
123
  da = (*tp & dst.fmt->Amask) | dst.a255;
124
- Uint32 *psrc = src.ptr + (src.rect.x + ny - py) * src.surface->w + src.rect.x + nx - px;
124
+ psrc = src.ptr + (src.rect.x + ny - py) * src.surface->w + src.rect.x + nx - px;
125
125
  sa = (*psrc & src.fmt->Amask) | src.a255;
126
126
  if(sa == 0){ tp++; continue; }
127
127
  if(da == 0 || sa == 255)
@@ -130,8 +130,8 @@ static VALUE bitmap_miyako_rotate(VALUE self, VALUE vsrc, VALUE vdst, VALUE radi
130
130
  tp++;
131
131
  continue;
132
132
  }
133
- int a1 = sa + 1;
134
- int a2 = 256 - sa;
133
+ a1 = sa + 1;
134
+ a2 = 256 - sa;
135
135
  sr = (*psrc & src.fmt->Rmask) >> src.fmt->Rshift;
136
136
  sg = (*psrc & src.fmt->Gmask) >> src.fmt->Gshift;
137
137
  sb = (*psrc & src.fmt->Bmask) >> src.fmt->Bshift;
@@ -151,15 +151,17 @@ static VALUE bitmap_miyako_rotate(VALUE self, VALUE vsrc, VALUE vdst, VALUE radi
151
151
  }
152
152
 
153
153
  /*
154
- 画像を拡大・縮小・鏡像(ミラー反転)させて貼り付ける
155
154
  */
156
155
  static VALUE bitmap_miyako_scale(VALUE self, VALUE vsrc, VALUE vdst, VALUE xscale, VALUE yscale)
157
156
  {
157
+ Uint32 sr, sg, sb, sa;
158
+ Uint32 dr, dg, db, da;
158
159
  MiyakoBitmap src, dst;
159
160
  MiyakoSize size;
160
161
  SDL_Surface *scr = GetSurface(rb_iv_get(mScreen, "@@screen"))->surface;
161
- Uint32 sr, sg, sb, sa;
162
- Uint32 dr, dg, db, da;
162
+ double tscx, tscy;
163
+ int x, y, a1, a2, scx, scy, off_x, off_y, nx, ny, px, py, pr, pb, qx, qy, qr, qb;
164
+ Uint32 *tp, *psrc;
163
165
 
164
166
  _miyako_setup_unit_2(vsrc, vdst, scr, &src, &dst, Qnil, Qnil, 1);
165
167
 
@@ -169,42 +171,41 @@ static VALUE bitmap_miyako_scale(VALUE self, VALUE vsrc, VALUE vdst, VALUE xscal
169
171
 
170
172
  if(dst.rect.w >= 32768 || dst.rect.h >= 32768){ return Qnil; }
171
173
 
172
- double tscx = NUM2DBL(xscale);
173
- double tscy = NUM2DBL(yscale);
174
+ tscx = NUM2DBL(xscale);
175
+ tscy = NUM2DBL(yscale);
174
176
 
175
177
  if(tscx == 0.0 || tscy == 0.0){ return Qnil; }
176
178
 
177
- int scx = (int)(4096.0 / tscx);
178
- int scy = (int)(4096.0 / tscy);
179
+ scx = (int)(4096.0 / tscx);
180
+ scy = (int)(4096.0 / tscy);
179
181
 
180
- int off_x = scx < 0 ? 1 : 0;
181
- int off_y = scy < 0 ? 1 : 0;
182
+ off_x = scx < 0 ? 1 : 0;
183
+ off_y = scy < 0 ? 1 : 0;
182
184
 
183
- int px = -(NUM2INT(*(RSTRUCT_PTR(src.unit)+7)));
184
- int py = -(NUM2INT(*(RSTRUCT_PTR(src.unit)+8)));
185
- int pr = src.rect.w + px;
186
- int pb = src.rect.h + py;
187
- int qx = -(NUM2INT(*(RSTRUCT_PTR(dst.unit)+7)));
188
- int qy = -(NUM2INT(*(RSTRUCT_PTR(dst.unit)+8)));
189
- int qr = dst.rect.w + qx;
190
- int qb = dst.rect.h + qy;
185
+ px = -(NUM2INT(*(RSTRUCT_PTR(src.unit)+7)));
186
+ py = -(NUM2INT(*(RSTRUCT_PTR(src.unit)+8)));
187
+ pr = src.rect.w + px;
188
+ pb = src.rect.h + py;
189
+ qx = -(NUM2INT(*(RSTRUCT_PTR(dst.unit)+7)));
190
+ qy = -(NUM2INT(*(RSTRUCT_PTR(dst.unit)+8)));
191
+ qr = dst.rect.w + qx;
192
+ qb = dst.rect.h + qy;
191
193
 
192
194
  SDL_LockSurface(src.surface);
193
195
  SDL_LockSurface(dst.surface);
194
196
 
195
- int x, y;
196
197
  for(y = qy; y < qb; y++)
197
198
  {
198
- Uint32 *tp = dst.ptr + (dst.rect.y + y - qy) * dst.surface->w + dst.rect.x;
199
+ tp = dst.ptr + (dst.rect.y + y - qy) * dst.surface->w + dst.rect.x;
199
200
  for(x = qx; x < qr; x++)
200
201
  {
201
- int nx = (x*scx) >> 12 - off_x;
202
+ nx = (x*scx) >> 12 - off_x;
202
203
  if(nx < px || nx >= pr){ tp++; continue; }
203
- int ny = (y*scy) >> 12 - off_y;
204
+ ny = (y*scy) >> 12 - off_y;
204
205
  if(ny < py || ny >= pb){ tp++; continue; }
205
206
  #if SDL_BYTEORDER == SDL_LIL_ENDIAN
206
207
  da = (*tp >> 24) | dst.a255;
207
- Uint32 *psrc = src.ptr + (src.rect.x + ny - py) * src.surface->w + src.rect.x + nx - px;
208
+ psrc = src.ptr + (src.rect.x + ny - py) * src.surface->w + src.rect.x + nx - px;
208
209
  sa = (*psrc >> 24) | src.a255;
209
210
  if(sa == 0){ tp++; continue; }
210
211
  if(da == 0 || sa == 255)
@@ -213,8 +214,8 @@ static VALUE bitmap_miyako_scale(VALUE self, VALUE vsrc, VALUE vdst, VALUE xscal
213
214
  tp++;
214
215
  continue;
215
216
  }
216
- int a1 = sa + 1;
217
- int a2 = 256 - sa;
217
+ a1 = sa + 1;
218
+ a2 = 256 - sa;
218
219
  dr = *tp & 0xff0000;
219
220
  dg = *tp & 0xff00;
220
221
  db = *tp & 0xff;
@@ -230,7 +231,7 @@ static VALUE bitmap_miyako_scale(VALUE self, VALUE vsrc, VALUE vdst, VALUE xscal
230
231
  dg = (*tp & dst.fmt->Gmask) >> dst.fmt->Gshift;
231
232
  db = (*tp & dst.fmt->Bmask) >> dst.fmt->Bshift;
232
233
  da = (*tp & dst.fmt->Amask) | dst.a255;
233
- Uint32 *psrc = src.ptr + (src.rect.x + ny - py) * src.surface->w + src.rect.x + nx - px;
234
+ psrc = src.ptr + (src.rect.x + ny - py) * src.surface->w + src.rect.x + nx - px;
234
235
  sa = (*psrc & src.fmt->Amask) | src.a255;
235
236
  if(sa == 0){ tp++; continue; }
236
237
  if(da == 0 || sa == 255)
@@ -239,8 +240,8 @@ static VALUE bitmap_miyako_scale(VALUE self, VALUE vsrc, VALUE vdst, VALUE xscal
239
240
  tp++;
240
241
  continue;
241
242
  }
242
- int a1 = sa + 1;
243
- int a2 = 256 - sa;
243
+ a1 = sa + 1;
244
+ a2 = 256 - sa;
244
245
  sr = (*psrc & src.fmt->Rmask) >> src.fmt->Rshift;
245
246
  sg = (*psrc & src.fmt->Gmask) >> src.fmt->Gshift;
246
247
  sb = (*psrc & src.fmt->Bmask) >> src.fmt->Bshift;
@@ -260,58 +261,58 @@ static VALUE bitmap_miyako_scale(VALUE self, VALUE vsrc, VALUE vdst, VALUE xscal
260
261
  }
261
262
 
262
263
  /*
263
- ===回転・拡大・縮小・鏡像用インナーメソッド
264
264
  */
265
265
  static void transform_inner(MiyakoBitmap *src, MiyakoBitmap *dst, VALUE radian, VALUE xscale, VALUE yscale)
266
266
  {
267
- if(dst->rect.w >= 32768 || dst->rect.h >= 32768) return;
268
-
269
267
  MiyakoSize size;
268
+ double rad, tscx, tscy;
269
+ long isin, icos;
270
+ int x, y, a1, a2, scx, scy, off_x, off_y, nx, ny, px, py, pr, pb, qx, qy, qr, qb;
271
+ Uint32 sr, sg, sb, sa, dr, dg, db, da, *tp, *psrc;
272
+
273
+ if(dst->rect.w >= 32768 || dst->rect.h >= 32768) return;
270
274
 
271
275
  if(_miyako_init_rect(src, dst, &size) == 0) return;
272
276
 
273
- double rad = NUM2DBL(radian) * -1.0;
274
- long isin = (long)(sin(rad)*4096.0);
275
- long icos = (long)(cos(rad)*4096.0);
277
+ rad = NUM2DBL(radian) * -1.0;
278
+ isin = (long)(sin(rad)*4096.0);
279
+ icos = (long)(cos(rad)*4096.0);
276
280
 
277
- double tscx = NUM2DBL(xscale);
278
- double tscy = NUM2DBL(yscale);
281
+ tscx = NUM2DBL(xscale);
282
+ tscy = NUM2DBL(yscale);
279
283
 
280
284
  if(tscx == 0.0 || tscy == 0.0) return;
281
285
 
282
- int scx = (int)(4096.0 / tscx);
283
- int scy = (int)(4096.0 / tscy);
286
+ scx = (int)(4096.0 / tscx);
287
+ scy = (int)(4096.0 / tscy);
284
288
 
285
- int off_x = scx < 0 ? 1 : 0;
286
- int off_y = scy < 0 ? 1 : 0;
289
+ off_x = scx < 0 ? 1 : 0;
290
+ off_y = scy < 0 ? 1 : 0;
287
291
 
288
- int px = -(NUM2INT(*(RSTRUCT_PTR(src->unit)+7)));
289
- int py = -(NUM2INT(*(RSTRUCT_PTR(src->unit)+8)));
290
- int pr = src->rect.w + px;
291
- int pb = src->rect.h + py;
292
- int qx = -(NUM2INT(*(RSTRUCT_PTR(dst->unit)+7)));
293
- int qy = -(NUM2INT(*(RSTRUCT_PTR(dst->unit)+8)));
294
- int qr = dst->rect.w + qx;
295
- int qb = dst->rect.h + qy;
296
- Uint32 sr, sg, sb, sa;
297
- Uint32 dr, dg, db, da;
292
+ px = -(NUM2INT(*(RSTRUCT_PTR(src->unit)+7)));
293
+ py = -(NUM2INT(*(RSTRUCT_PTR(src->unit)+8)));
294
+ pr = src->rect.w + px;
295
+ pb = src->rect.h + py;
296
+ qx = -(NUM2INT(*(RSTRUCT_PTR(dst->unit)+7)));
297
+ qy = -(NUM2INT(*(RSTRUCT_PTR(dst->unit)+8)));
298
+ qr = dst->rect.w + qx;
299
+ qb = dst->rect.h + qy;
298
300
 
299
301
  SDL_LockSurface(src->surface);
300
302
  SDL_LockSurface(dst->surface);
301
303
 
302
- int x, y;
303
304
  for(y = qy; y < qb; y++)
304
305
  {
305
- Uint32 *tp = dst->ptr + (dst->rect.y + y - qy) * dst->surface->w + dst->rect.x;
306
+ tp = dst->ptr + (dst->rect.y + y - qy) * dst->surface->w + dst->rect.x;
306
307
  for(x = qx; x < qr; x++)
307
308
  {
308
- int nx = (((x*icos-y*isin) >> 12) * scx) >> 12 - off_x;
309
+ nx = (((x*icos-y*isin) >> 12) * scx) >> 12 - off_x;
309
310
  if(nx < px || nx >= pr){ tp++; continue; }
310
- int ny = (((x*isin+y*icos) >> 12) * scy) >> 12 - off_y;
311
+ ny = (((x*isin+y*icos) >> 12) * scy) >> 12 - off_y;
311
312
  if(ny < py || ny >= pb){ tp++; continue; }
312
313
  #if SDL_BYTEORDER == SDL_LIL_ENDIAN
313
314
  da = (*tp >> 24) | dst->a255;
314
- Uint32 *psrc = src->ptr + (src->rect.x + ny - py) * src->surface->w + src->rect.x + nx - px;
315
+ psrc = src->ptr + (src->rect.x + ny - py) * src->surface->w + src->rect.x + nx - px;
315
316
  sa = (*psrc >> 24) | src->a255;
316
317
  if(sa == 0){ tp++; continue; }
317
318
  if(da == 0 || sa == 255)
@@ -320,8 +321,8 @@ static void transform_inner(MiyakoBitmap *src, MiyakoBitmap *dst, VALUE radian,
320
321
  tp++;
321
322
  continue;
322
323
  }
323
- int a1 = sa + 1;
324
- int a2 = 256 - sa;
324
+ a1 = sa + 1;
325
+ a2 = 256 - sa;
325
326
  dr = *tp & 0xff0000;
326
327
  dg = *tp & 0xff00;
327
328
  db = *tp & 0xff;
@@ -337,7 +338,7 @@ static void transform_inner(MiyakoBitmap *src, MiyakoBitmap *dst, VALUE radian,
337
338
  dg = (*tp & dst->fmt->Gmask) >> dst->fmt->Gshift;
338
339
  db = (*tp & dst->fmt->Bmask) >> dst->fmt->Bshift;
339
340
  da = (*tp & dst->fmt->Amask) | dst->a255;
340
- Uint32 *psrc = src->ptr + (src->rect.x + ny - py) * src->surface->w + src->rect.x + nx - px;
341
+ psrc = src->ptr + (src->rect.x + ny - py) * src->surface->w + src->rect.x + nx - px;
341
342
  sa = (*psrc & src->fmt->Amask) | src->a255;
342
343
  if(sa == 0){ tp++; continue; }
343
344
  if(da == 0 || sa == 255)
@@ -346,8 +347,8 @@ static void transform_inner(MiyakoBitmap *src, MiyakoBitmap *dst, VALUE radian,
346
347
  tp++;
347
348
  continue;
348
349
  }
349
- int a1 = sa + 1;
350
- int a2 = 256 - sa;
350
+ a1 = sa + 1;
351
+ a2 = 256 - sa;
351
352
  sr = (*psrc & src->fmt->Rmask) >> src->fmt->Rshift;
352
353
  sg = (*psrc & src->fmt->Gmask) >> src->fmt->Gshift;
353
354
  sb = (*psrc & src->fmt->Bmask) >> src->fmt->Bshift;
@@ -365,7 +366,6 @@ static void transform_inner(MiyakoBitmap *src, MiyakoBitmap *dst, VALUE radian,
365
366
  }
366
367
 
367
368
  /*
368
- 画像を変形(回転・拡大・縮小・鏡像)させて貼り付ける
369
369
  */
370
370
  static VALUE bitmap_miyako_transform(VALUE self, VALUE vsrc, VALUE vdst, VALUE radian, VALUE xscale, VALUE yscale)
371
371
  {
@@ -381,14 +381,15 @@ static VALUE bitmap_miyako_transform(VALUE self, VALUE vsrc, VALUE vdst, VALUE r
381
381
  }
382
382
 
383
383
  /*
384
- インスタンスの内容を画面に描画する(回転/拡大/縮小/鏡像付き)
385
384
  */
386
385
  static VALUE sprite_render_transform(VALUE self, VALUE radian, VALUE xscale, VALUE yscale)
387
386
  {
387
+ MiyakoBitmap src, dst;
388
+ SDL_Surface *scr;
389
+
388
390
  VALUE visible = rb_iv_get(self, "@visible");
389
391
  if(visible == Qfalse) return self;
390
- MiyakoBitmap src, dst;
391
- SDL_Surface *scr = GetSurface(rb_iv_get(mScreen, "@@screen"))->surface;
392
+ scr = GetSurface(rb_iv_get(mScreen, "@@screen"))->surface;
392
393
 
393
394
  _miyako_setup_unit_2(self, mScreen, scr, &src, &dst, Qnil, Qnil, 1);
394
395
 
@@ -399,14 +400,15 @@ static VALUE sprite_render_transform(VALUE self, VALUE radian, VALUE xscale, VAL
399
400
  }
400
401
 
401
402
  /*
402
- インスタンスの内容を画面に描画する(回転/拡大/縮小/鏡像付き)
403
403
  */
404
404
  static VALUE sprite_render_to_sprite_transform(VALUE self, VALUE vdst, VALUE radian, VALUE xscale, VALUE yscale)
405
405
  {
406
+ MiyakoBitmap src, dst;
407
+ SDL_Surface *scr;
408
+
406
409
  VALUE visible = rb_iv_get(self, "@visible");
407
410
  if(visible == Qfalse) return self;
408
- MiyakoBitmap src, dst;
409
- SDL_Surface *scr = GetSurface(rb_iv_get(mScreen, "@@screen"))->surface;
411
+ scr = GetSurface(rb_iv_get(mScreen, "@@screen"))->surface;
410
412
 
411
413
  _miyako_setup_unit_2(self, vdst, scr, &src, &dst, Qnil, Qnil, 1);
412
414
 
data/miyako_utility.c CHANGED
@@ -20,8 +20,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
20
  */
21
21
 
22
22
  /*
23
- =拡張ライブラリmiyako_no_katana
24
- Authors:: サイロス誠
23
+ =miyako_no_katana
24
+ Authors:: Cyross Makoto
25
25
  Version:: 2.0
26
26
  Copyright:: 2007-2008 Cyross Makoto
27
27
  License:: LGPL2.1
@@ -39,13 +39,15 @@ static GLOBAL_DEFINE_GET_STRUCT(Surface, GetSurface, cSurface, "SDL::Surface");
39
39
 
40
40
  void _miyako_setup_unit(VALUE unit, SDL_Surface *screen, MiyakoBitmap *mb, VALUE x, VALUE y)
41
41
  {
42
+ VALUE *mb_p;
43
+
42
44
  mb->unit = unit;
43
45
  if(rb_obj_is_kind_of(mb->unit, sSpriteUnit) == Qfalse){
44
46
  mb->unit = rb_funcall(mb->unit, rb_intern("to_unit"), 0);
45
47
  if(mb->unit == Qnil){ rb_raise(eMiyakoError, "Source instance has not SpriteUnit!"); }
46
48
  }
47
49
 
48
- VALUE *mb_p = RSTRUCT_PTR(mb->unit);
50
+ mb_p = RSTRUCT_PTR(mb->unit);
49
51
 
50
52
  mb->rect.x = NUM2INT(*(mb_p + 1));
51
53
  mb->rect.y = NUM2INT(*(mb_p + 2));
@@ -89,6 +91,8 @@ void _miyako_setup_unit_2(VALUE unit_s, VALUE unit_d,
89
91
  MiyakoBitmap *mb_s, MiyakoBitmap *mb_d,
90
92
  VALUE x, VALUE y)
91
93
  {
94
+ VALUE *ms_p, *md_p;
95
+
92
96
  mb_s->unit = unit_s;
93
97
  if(rb_obj_is_kind_of(mb_s->unit, sSpriteUnit) == Qfalse){
94
98
  mb_s->unit = rb_funcall(mb_s->unit, rb_intern("to_unit"), 0);
@@ -105,8 +109,8 @@ void _miyako_setup_unit_2(VALUE unit_s, VALUE unit_d,
105
109
  mb_s->ptr = (Uint32 *)(mb_s->surface->pixels);
106
110
  mb_s->fmt = mb_s->surface->format;
107
111
 
108
- VALUE *ms_p = RSTRUCT_PTR(mb_s->unit);
109
- VALUE *md_p = RSTRUCT_PTR(mb_d->unit);
112
+ ms_p = RSTRUCT_PTR(mb_s->unit);
113
+ md_p = RSTRUCT_PTR(mb_d->unit);
110
114
 
111
115
  mb_s->rect.x = NUM2INT(*(ms_p + 1));
112
116
  mb_s->rect.y = NUM2INT(*(ms_p + 2));
@@ -184,14 +188,9 @@ int _miyako_init_rect(MiyakoBitmap *src, MiyakoBitmap *dst, MiyakoSize *size)
184
188
  int dw = dst->rect.w;
185
189
  int dh = dst->rect.h;
186
190
 
187
- // ox(oy)が画像のw(h)以上の時は転送不可
188
-
189
191
  if(src->rect.x >= src->surface->w || src->rect.y >= src->surface->h) return 0;
190
192
  if(dst->rect.x >= dst->surface->w || dst->rect.y >= dst->surface->h) return 0;
191
193
 
192
- // ox(oy)がマイナスの時は、ow(oh)を減らしておいて、ox, oyをゼロにしておく
193
- // 0以下になったら転送不可
194
-
195
194
  if(src->rect.x < 0){
196
195
  sw += src->rect.x;
197
196
  src->rect.x = 0;
@@ -213,9 +212,6 @@ int _miyako_init_rect(MiyakoBitmap *src, MiyakoBitmap *dst, MiyakoSize *size)
213
212
  if(dh <= 0) return 0;
214
213
  }
215
214
 
216
- // ox(oy)+ow(oh)が、w(h)を越える場合は、ow(oh)を減らしておく
217
- // 0以下になったら転送不可
218
-
219
215
  if(src->rect.x + sw > src->surface->w)
220
216
  {
221
217
  sw += (src->surface->w - src->rect.x - sw);
@@ -237,14 +233,9 @@ int _miyako_init_rect(MiyakoBitmap *src, MiyakoBitmap *dst, MiyakoSize *size)
237
233
  if(dh <= 0) return 0;
238
234
  }
239
235
 
240
- // ox(oy)が画像のw(h)以上、-w(-h)以下の時は転送不可
241
-
242
236
  if(src->x >= dw || src->x <= -dw) return 0;
243
237
  if(src->y >= dh || src->y <= -dh) return 0;
244
238
 
245
- // x(y)がマイナスの時は、ow(oh)を減らしておいて、x, yをゼロにしておく
246
- // 0以下になったら転送不可
247
-
248
239
  if(src->x < 0){
249
240
  dw += src->x;
250
241
  src->x = 0;
data/miyako_yuki.c CHANGED
@@ -20,8 +20,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
20
  */
21
21
 
22
22
  /*
23
- =拡張ライブラリmiyako_no_katana
24
- Authors:: サイロス誠
23
+ =miyako_no_katana
24
+ Authors:: Cyross Makoto
25
25
  Version:: 2.1
26
26
  Copyright:: 2007-2009 Cyross Makoto
27
27
  License:: LGPL2.1
@@ -73,8 +73,9 @@ static VALUE yuki_is_exec(VALUE self)
73
73
  */
74
74
  static VALUE yuki_ua(VALUE self)
75
75
  {
76
+ VALUE over_yuki;
76
77
  _miyako_sprite_list_update_animation(rb_iv_get(self, str_visibles));
77
- VALUE over_yuki = rb_iv_get(self, str_o_yuki);
78
+ over_yuki = rb_iv_get(self, str_o_yuki);
78
79
  if(over_yuki == Qnil) return self;
79
80
  if(yuki_is_exec(self) == Qtrue){
80
81
  yuki_ua(over_yuki);
@@ -87,10 +88,11 @@ static VALUE yuki_ua(VALUE self)
87
88
  */
88
89
  static VALUE yuki_render(VALUE self)
89
90
  {
91
+ VALUE over_yuki;
90
92
  if(rb_iv_get(self, str_visible) == Qtrue){
91
93
  _miyako_sprite_list_render(rb_iv_get(self, str_visibles));
92
94
  }
93
- VALUE over_yuki = rb_iv_get(self, str_o_yuki);
95
+ over_yuki = rb_iv_get(self, str_o_yuki);
94
96
  if(over_yuki == Qnil) return self;
95
97
  if(yuki_is_exec(self) == Qtrue){
96
98
  yuki_render(over_yuki);
@@ -103,10 +105,11 @@ static VALUE yuki_render(VALUE self)
103
105
  */
104
106
  static VALUE yuki_render_to(VALUE self, VALUE dst)
105
107
  {
108
+ VALUE over_yuki;
106
109
  if(rb_iv_get(self, str_visible) == Qtrue){
107
110
  _miyako_sprite_list_render_to(rb_iv_get(self, str_visibles), dst);
108
111
  }
109
- VALUE over_yuki = rb_iv_get(self, str_o_yuki);
112
+ over_yuki = rb_iv_get(self, str_o_yuki);
110
113
  if(over_yuki == Qnil) return self;
111
114
  if(yuki_is_exec(self) == Qtrue){
112
115
  yuki_render_to(over_yuki, dst);
@@ -143,11 +146,12 @@ static VALUE iyuki_post_process(VALUE self)
143
146
  */
144
147
  static VALUE iyuki_update(VALUE self)
145
148
  {
149
+ VALUE amt;
146
150
  rb_funcall(self, id_update_inner, 1, self);
147
151
  rb_iv_set(self, "@pause_release", Qfalse);
148
152
  rb_iv_set(self, "@select_ok", Qfalse);
149
153
  rb_iv_set(self, "@select_cansel", Qfalse);
150
- VALUE amt = rb_iv_get(self, "@select_amount");
154
+ amt = rb_iv_get(self, "@select_amount");
151
155
  *(RARRAY_PTR(amt)+0) = nZero;
152
156
  *(RARRAY_PTR(amt)+1) = nZero;
153
157
  return self;
@@ -221,7 +221,7 @@ class MainScene
221
221
  ws = Sprite.new(:file=>"wait_cursor.png", :type=>:ac)
222
222
  ws.oh = ws.ow
223
223
  ws = SpriteAnimation.new(:sprite=>ws, :wait=>0.2, :pattern_list=>[0,1,2,3,2,1])
224
- @ws = ws
224
+ @ws = ws
225
225
  cs = Sprite.new(:file=>"cursor.png", :type=>:ac)
226
226
  cs.oh = cs.ow
227
227
  cs = SpriteAnimation.new(:sprite=>cs, :wait=>0.2, :pattern_list=>[0,1,2,3,2,1])
@@ -238,7 +238,7 @@ class MainScene
238
238
  @parts[:box].centering!
239
239
  @parts.center!.bottom!{ TEXTBOX_BOTTOM }
240
240
 
241
- @yuki = Yuki.new
241
+ @yuki = ScenarioEngine.new
242
242
  @yuki.update_text = self.method(:update_text)
243
243
 
244
244
  @imgs = {}