… | |
… | |
18 | |
18 | |
19 | our $TEX_DIALOGUE = new_from_resource DC::Texture |
19 | our $TEX_DIALOGUE = new_from_resource DC::Texture |
20 | "dialogue.png", minify => 1, mipmap => 1; |
20 | "dialogue.png", minify => 1, mipmap => 1; |
21 | |
21 | |
22 | our $TEX_NOFACE = new_from_resource DC::Texture |
22 | our $TEX_NOFACE = new_from_resource DC::Texture |
23 | "noface.png", minify => 1, mipmap => 1; |
23 | "noface.png", minify => 1, mipmap => 1, wrap => 1; |
24 | |
24 | |
25 | our $TEX_HIDDEN = new_from_resource DC::Texture |
25 | our $TEX_HIDDEN = new_from_resource DC::Texture # MUST be POT |
26 | "hidden.png", minify => 1, mipmap => 1; |
26 | "hidden-0.png", minify => 1, mipmap => 1, wrap => 1; |
27 | |
27 | |
28 | sub MIN_TEXTURE_UNUSED() { 1 }#d# |
28 | sub MIN_TEXTURE_UNUSED() { 1 }#d# |
29 | |
29 | |
30 | sub new { |
30 | sub new { |
31 | my ($class, %arg) = @_; |
31 | my ($class, %arg) = @_; |
… | |
… | |
101 | } |
101 | } |
102 | |
102 | |
103 | { |
103 | { |
104 | $self->{hidden} = my $tex = $TEX_HIDDEN; |
104 | $self->{hidden} = my $tex = $TEX_HIDDEN; |
105 | $self->{map}->set_texture (3, @$tex{qw(name w h s t)}, @{$tex->{minified}}); |
105 | $self->{map}->set_texture (3, @$tex{qw(name w h s t)}, @{$tex->{minified}}); |
|
|
106 | $self->{map_widget}{hidden_tex} = $tex;#d# |
106 | } |
107 | } |
107 | |
108 | |
108 | # $self->{expire_count} = DC::DB::FIRST_TILE_ID; # minimum non-fixed tile id |
109 | # $self->{expire_count} = DC::DB::FIRST_TILE_ID; # minimum non-fixed tile id |
109 | # $self->{expire_w} = EV::timer 1, 1, sub { |
110 | # $self->{expire_w} = EV::timer 1, 1, sub { |
110 | # my $count = (int @{ $self->{texture} } / MIN_TEXTURE_UNUSED) || 1; |
111 | # my $count = (int @{ $self->{texture} } / MIN_TEXTURE_UNUSED) || 1; |
… | |
… | |
410 | ? (($new & $_ ? "+" : "-") . $self->{spell_paths}{$_}) |
411 | ? (($new & $_ ? "+" : "-") . $self->{spell_paths}{$_}) |
411 | : () |
412 | : () |
412 | } |
413 | } |
413 | sort { $a <=> $b } keys %{$self->{spell_paths}}; |
414 | sort { $a <=> $b } keys %{$self->{spell_paths}}; |
414 | |
415 | |
415 | join "", @diff |
416 | "\u$name: " . (join ", ", @diff) |
416 | } |
417 | } |
417 | |
418 | |
418 | # all stats that are chacked against changes |
419 | # all stats that are chacked against changes |
419 | my @statchange = ( |
420 | my @statchange = ( |
420 | [&CS_STAT_STR => \&_stat_numdiff, "Str"], |
421 | [&CS_STAT_STR => \&_stat_numdiff, "Str"], |
… | |
… | |
475 | } |
476 | } |
476 | |
477 | |
477 | if ( |
478 | if ( |
478 | my @diffs = map $_->[1]->($self, $_->[2], $prev->{$_->[0]}, $stats->{$_->[0]}), @statchange |
479 | my @diffs = map $_->[1]->($self, $_->[2], $prev->{$_->[0]}, $stats->{$_->[0]}), @statchange |
479 | ) { |
480 | ) { |
480 | my $msg = "<b>stat change</b>: " . (join " ", @diffs); |
481 | my $msg = "<b>stat change</b>: " . (join " ", map "($_)", @diffs); |
481 | $self->{statusbox}->add ($msg, group => "stat $msg", fg => [0.8, 1, 0.2, 1], timeout => 20); |
482 | $self->{statusbox}->add ($msg, group => "stat $msg", fg => [0.8, 1, 0.2, 1], timeout => 20); |
482 | } |
483 | } |
483 | |
484 | |
484 | $self->update_stats_window ($stats, $prev); |
485 | $self->update_stats_window ($stats, $prev); |
485 | |
486 | |
… | |
… | |
998 | |
999 | |
999 | my $tex = $self->{texture}[$tile] ||= |
1000 | my $tex = $self->{texture}[$tile] ||= |
1000 | new DC::Texture |
1001 | new DC::Texture |
1001 | tile => $tile, |
1002 | tile => $tile, |
1002 | image => $data, delete_image => 1, |
1003 | image => $data, delete_image => 1, |
1003 | minify => 1, mipmap => 1; |
1004 | minify => 1; |
1004 | |
1005 | |
1005 | if (my $cbs = delete $self->{tile_cb}{$tile}) { |
1006 | if (my $cbs = delete $self->{tile_cb}{$tile}) { |
1006 | $_->($tex) for @$cbs; |
1007 | $_->($tex) for @$cbs; |
1007 | } |
1008 | } |
1008 | } |
1009 | } |