Wrong characters in Adonthell.

Bug #151516 reported by Major Andras
4
Affects Status Importance Assigned to Milestone
adonthell (Debian)
New
Undecided
Unassigned
adonthell (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Binary package hint: adonthell

In the game, named "Adonthell" every character has an ugly black backdrop.
The last errorless version is in dapper.

Revision history for this message
Major Andras (majorandras) wrote :
Revision history for this message
ksterker (kai-sterker) wrote :

This problem does not exist in the upstream version. It is introduced by a debian patch to the file win_ttf.cc

+Index: adonthell-0.3.4.cvs.20050813/src/win_ttf.cc
+===================================================================
+--- adonthell-0.3.4.cvs.20050813.orig/src/win_ttf.cc 2006-08-10 20:50:05.000000000 +0200
++++ adonthell-0.3.4.cvs.20050813/src/win_ttf.cc 2006-08-10 20:50:18.000000000 +0200
+@@ -137,7 +137,7 @@
+ if (s == NULL) return *(glyphs[' ']);
+
+ image tmp (s, bg);
+- image shadow (TTF_RenderUNICODE_Solid (ttf, unichar, bg), white);
++ image shadow (TTF_RenderUNICODE_Shaded (ttf, unichar, bg, bg), white);
+ image *glph = new image (tmp.length(), height_, false);
+ glph->fillrect (0, 0, tmp.length()+1, height_+1, screen::trans_col(), NULL);
+ shadow.draw (1, 1+height_-shadow.height(), 0, 0, shadow.length(), shadow.height(), NULL, glph);
--- adonthell-0.3.4.cvs.20050813.orig/debian/control
+++ adonthell-0.3.4.cvs.20050813/debian/control

It is supposed to fix a segfault that since is also fixed in upstream CVS. The proper patch __to the original version from CVS__ that corrects the segfault and does not exhibit the black boxes around the dialog text would be

--- win_ttf.cc 2004/12/13 08:56:58 1.2
+++ win_ttf.cc 2006/09/03 20:48:08 1.3
@@ -1,5 +1,5 @@
 /*
- $Id: win_ttf.cc,v 1.2 2004/12/13 08:56:58 ksterker Exp $
+ $Id: win_ttf.cc,v 1.3 2006/09/03 20:48:08 ksterker Exp $

    (C) Copyright 2004 Kai Sterker
    Part of the Adonthell Project http://adonthell.linuxgames.com
@@ -137,10 +137,20 @@
     if (s == NULL) return *(glyphs[' ']);

     image tmp (s, bg);
- image shadow (TTF_RenderUNICODE_Solid (ttf, unichar, bg), white);
     image *glph = new image (tmp.length(), height_, false);
     glph->fillrect (0, 0, tmp.length()+1, height_+1, screen::trans_col(), NULL);
- shadow.draw (1, 1+height_-shadow.height(), 0, 0, shadow.length(), shadow.height(), NULL, glph);
+
+ s = TTF_RenderUNICODE_Solid (ttf, unichar, bg);
+ if (s != NULL)
+ {
+ image shadow (s, white);
+ shadow.draw (1, 1+height_-shadow.height(), 0, 0, shadow.length(), shadow.height(), NULL, glph);
+ }
+ else
+ {
+ fprintf (stderr, "%s\n", TTF_GetError ());
+ }
+
     tmp.draw (0, height_-tmp.height(), 0, 0, tmp.length(), tmp.height(), NULL, glph);
     glyphs[glyph] = glph;

Kai

Revision history for this message
Daniel T Chen (crimsun) wrote :

Is this symptom still reproducible in 8.10?

Changed in adonthell:
status: New → Incomplete
Revision history for this message
ksterker (kai-sterker) wrote :

No. Looks like the version shipped in 8.10 is a 2008 CVS snapshot without the faulty Debian patch. Guess this bug can be closed.

Changed in adonthell:
status: Incomplete → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.