Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1032 | Lrz | 1 | //Load BMP by Veliant |
2 | |||
3 | struct readimage{ |
||
4 | dword func, param1, param2, size, buffer; |
||
5 | byte z; |
||
6 | dword name; |
||
7 | }; |
||
8 | |||
9 | void Put_Image(dword x,y,w,h,name) |
||
10 | { |
||
11 | int i, j, size, off, off2; |
||
12 | byte r, g, b; |
||
13 | readimage image; |
||
14 | dword buf; |
||
15 | size=w*h*3+100; |
||
16 | buf=malloc(size); |
||
17 | image.func = 0; |
||
18 | image.param1 = 0; |
||
19 | image.param2 = 0; |
||
20 | image.size = size; |
||
21 | image.buffer = buf; |
||
22 | image.z = 0; |
||
23 | image.name = #path; |
||
24 | EAX = 70; |
||
25 | EBX = #image; |
||
26 | $int 0x40; |
||
27 | |||
28 | for(i=0;i |
||
29 | for (j=0;j |
||
30 | { |
||
31 | off=w*3*i+buf+0x36; |
||
32 | off2=w-j*3+off; |
||
33 | off=j*3+off; |
||
34 | |||
35 | r=ESBYTE[off2-3]; |
||
36 | g=ESBYTE[off2-2]; |
||
37 | b=ESBYTE[off2-1]; |
||
38 | ESBYTE[off2-3]=ESBYTE[off]; |
||
39 | ESBYTE[off2-2]=ESBYTE[off+1]; |
||
40 | ESBYTE[off2-1]=ESBYTE[off+2]; |
||
41 | ESBYTE[off]=r; |
||
42 | ESBYTE[off+1]=g; |
||
43 | ESBYTE[off+2]=b; |
||
44 | } |
||
45 | size=w*h; |
||
46 | for(i=0;i |
||
47 | { |
||
48 | off=buf+0x36; |
||
49 | off2=size-i*3+off; |
||
50 | off=i*3+off; |
||
51 | |||
52 | r=ESBYTE[off2-3]; |
||
53 | g=ESBYTE[off2-2]; |
||
54 | b=ESBYTE[off2-1]; |
||
55 | ESBYTE[off2-3]=ESBYTE[off]; |
||
56 | ESBYTE[off2-2]=ESBYTE[off+1]; |
||
57 | ESBYTE[off2-1]=ESBYTE[off+2]; |
||
58 | ESBYTE[off]=r; |
||
59 | ESBYTE[off+1]=g; |
||
60 | ESBYTE[off+2]=b; |
||
61 | } |
||
62 | EAX = 7; |
||
63 | EBX = buf+0x36; |
||
64 | ECX = w<<16+h; |
||
65 | EDX = x<<16+y+skin_width; |
||
66 | $int 0x40 |
||
67 | }16+y+skin_width; |