… | |
… | |
80 | |
80 | |
81 | if (delete $self->{need_update}) { |
81 | if (delete $self->{need_update}) { |
82 | glNewList $self->{list}; |
82 | glNewList $self->{list}; |
83 | |
83 | |
84 | if ($::MAP) { |
84 | if ($::MAP) { |
85 | my $sw = int $::WIDTH / 32; |
85 | my $sw = int $::WIDTH / (32 * $::CFG->{map_scale}); |
86 | my $sh = int $::HEIGHT / 32; |
86 | my $sh = int $::HEIGHT / (32 * $::CFG->{map_scale}); |
87 | |
87 | |
|
|
88 | glScale $::CFG->{map_scale}, $::CFG->{map_scale}; |
|
|
89 | |
88 | my $sx = $::CFG->{map_shift_x}; my $sx0 = $sx & 31; $sx = ($sx - $sx0) / 32; |
90 | my $sx = $::CFG->{map_shift_x} / $::CFG->{map_scale}; my $sx0 = $sx & 31; $sx = ($sx - $sx0) / 32; |
89 | my $sy = $::CFG->{map_shift_y}; my $sy0 = $sy & 31; $sy = ($sy - $sy0) / 32; |
91 | my $sy = $::CFG->{map_shift_y} / $::CFG->{map_scale}; my $sy0 = $sy & 31; $sy = ($sy - $sy0) / 32; |
90 | |
92 | |
91 | glTranslate $sx0 - 32, $sy0 - 32, 0; |
93 | glTranslate $sx0 - 32, $sy0 - 32, 0; |
92 | |
94 | |
93 | my ($w, $h, $data) = $::MAP->draw ($sx, $sy, 0, 0, $sw + 1, $sh + 1); |
95 | my ($w, $h, $data) = $::MAP->draw ($sx, $sy, 0, 0, $sw + 1, $sh + 1); |
94 | |
96 | |