… | |
… | |
81 | |
81 | |
82 | if (delete $self->{need_update}) { |
82 | if (delete $self->{need_update}) { |
83 | glNewList $self->{list}; |
83 | glNewList $self->{list}; |
84 | |
84 | |
85 | if ($::MAP) { |
85 | if ($::MAP) { |
86 | my $sw = int $::WIDTH / (32 * $::CFG->{map_scale}); |
86 | my $sw = int $::WIDTH / (32 * $::CFG->{map_scale}) + 0.99; |
87 | my $sh = int $::HEIGHT / (32 * $::CFG->{map_scale}); |
87 | my $sh = int $::HEIGHT / (32 * $::CFG->{map_scale}) + 0.99; |
88 | |
88 | |
|
|
89 | glPushMatrix; |
89 | glScale $::CFG->{map_scale}, $::CFG->{map_scale}; |
90 | glScale $::CFG->{map_scale}, $::CFG->{map_scale}; |
90 | |
91 | |
91 | my $sx = $::CFG->{map_shift_x} / $::CFG->{map_scale}; my $sx0 = $sx & 31; $sx = ($sx - $sx0) / 32; |
92 | my $sx = $::CFG->{map_shift_x} / $::CFG->{map_scale}; my $sx0 = $sx & 31; $sx = ($sx - $sx0) / 32; |
92 | my $sy = $::CFG->{map_shift_y} / $::CFG->{map_scale}; my $sy0 = $sy & 31; $sy = ($sy - $sy0) / 32; |
93 | my $sy = $::CFG->{map_shift_y} / $::CFG->{map_scale}; my $sy0 = $sy & 31; $sy = ($sy - $sy0) / 32; |
93 | |
94 | |
… | |
… | |
143 | |
144 | |
144 | glEnable GL_BLEND; |
145 | glEnable GL_BLEND; |
145 | glBlendFunc GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA; |
146 | glBlendFunc GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA; |
146 | glEnable GL_TEXTURE_2D; |
147 | glEnable GL_TEXTURE_2D; |
147 | glTexEnv GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE; |
148 | glTexEnv GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE; |
|
|
149 | |
|
|
150 | glPopMatrix; |
148 | |
151 | |
149 | $self->{mapmap_texture} = |
152 | $self->{mapmap_texture} = |
150 | new CFClient::Texture |
153 | new CFClient::Texture |
151 | w => $w, |
154 | w => $w, |
152 | h => $h, |
155 | h => $h, |