Rev 8407 | Rev 8789 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8407 | Rev 8780 | ||
---|---|---|---|
Line 98... | Line 98... | ||
98 | dword delay; // used iff Image.IsAnimated is set in Flags |
98 | dword delay; // used iff Image.IsAnimated is set in Flags |
99 | dword image; |
99 | dword image; |
100 | void load(); |
100 | void load(); |
101 | void convert_into(); |
101 | void convert_into(); |
102 | void replace_color(); |
102 | void replace_color(); |
- | 103 | void replace_2colors(); |
|
103 | void set_vars(); |
104 | void set_vars(); |
104 | void draw(); |
105 | void draw(); |
105 | }; |
106 | }; |
Line 106... | Line 107... | ||
106 | 107 | ||
Line 134... | Line 135... | ||
134 | } |
135 | } |
Line 135... | Line 136... | ||
135 | 136 | ||
136 | :void libimg_image::replace_color(dword old_color, new_color) |
137 | :void libimg_image::replace_color(dword old_color, new_color) |
137 | { |
138 | { |
- | 139 | EDX = w * h * 4 + imgsrc; |
|
- | 140 | ESI = old_color; |
|
138 | EDX = w * h * 4 + imgsrc; |
141 | ECX = new_color; |
- | 142 | FOR (EDI = imgsrc; EDI < EDX; EDI += 4) IF (DSDWORD[EDI]==ESI) DSDWORD[EDI] = ECX; |
|
- | 143 | } |
|
- | 144 | ||
- | 145 | :void libimg_image::replace_2colors(dword old_color1, new_color1, old_color2, new_color2) |
|
- | 146 | { |
|
- | 147 | EDX = w * h * 4 + imgsrc; |
|
- | 148 | ESI = old_color1; |
|
- | 149 | ECX = new_color1; |
|
- | 150 | EBX = old_color2; |
|
- | 151 | EAX = new_color2; |
|
- | 152 | FOR (EDI = imgsrc; EDI < EDX; EDI += 4) { |
|
- | 153 | IF (DSDWORD[EDI]==ESI) DSDWORD[EDI] = ECX; |
|
- | 154 | ELSE IF (DSDWORD[EDI]==EBX) DSDWORD[EDI] = EAX; |
|
139 | for (ESI = imgsrc; ESI < EDX; ESI += 4) if (DSDWORD[ESI]==old_color) DSDWORD[ESI] = new_color; |
155 | } |
Line 140... | Line 156... | ||
140 | } |
156 | } |
141 | 157 | ||
142 | :void libimg_image::draw(dword _x, _y, _w, _h, _xoff, _yoff) |
158 | :void libimg_image::draw(dword _x, _y, _w, _h, _xoff, _yoff) |